diff --git a/packages/igniteui-mcp/docs-backend/docs-backend/igniteui-docs.db b/packages/igniteui-mcp/docs-backend/docs-backend/igniteui-docs.db
index 53ef147c0..4546920f6 100644
Binary files a/packages/igniteui-mcp/docs-backend/docs-backend/igniteui-docs.db and b/packages/igniteui-mcp/docs-backend/docs-backend/igniteui-docs.db differ
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/data/group-summaries/angular.json b/packages/igniteui-mcp/igniteui-doc-mcp/data/group-summaries/angular.json
index a937c494f..ef519c90b 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/data/group-summaries/angular.json
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/data/group-summaries/angular.json
@@ -3,8 +3,8 @@
"groupKey": "AI-Assisted Development",
"section": "AI-Assisted Development",
"groupLabel": "",
- "summary": "Configure agent skills and MCP servers for coding assistants to scaffold apps, answer API questions, generate themes, and orchestrate consensus-based workflows",
- "hash": "796e453c7cd747753e31eb9727f318da",
+ "summary": "Configure Agent Skills and MCP servers for AI assistants, scaffold and modify apps, find API details, generate themes, and plan tasks with consensus voting.",
+ "hash": "b5e5c74caf9d2c7842fe374e64b91b66",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -12,8 +12,8 @@
"groupKey": "Charts",
"section": "Charts",
"groupLabel": "",
- "summary": "Create and configure category, financial, data, polar, scatter, shape, pie, sparkline, and hierarchical charts with series, axes, legends, tooltips, zooming, and styling",
- "hash": "975da8af99b8827df5bab220583ba197",
+ "summary": "Covers category, financial, scatter, polar, shape, sparkline, pie, treemap, and stacked charts, plus series, axes, legends, styling, selection, and chart APIs.",
+ "hash": "defb55661957eceddfea5f998c297fe0",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -21,8 +21,8 @@
"groupKey": "Charts > Chart Features",
"section": "Charts",
"groupLabel": "Chart Features",
- "summary": "Configure chart axes, annotations, aggregation, filtering, legends, selection, highlighting, navigation, tooltips, overlays, trendlines, and performance.",
- "hash": "f8121d78bf282ce318ba24512eb31ae3",
+ "summary": "Covers chart axes, animations, annotations, aggregation, filtering, legends, tooltips, selection, highlighting, navigation, overlays, trendlines, zooming, and performance.",
+ "hash": "fecc19b11d32f2e564d3e5cb99dc6dad",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -30,8 +30,8 @@
"groupKey": "Dashboards",
"section": "Dashboards",
"groupLabel": "",
- "summary": "Configure Dashboard Tile visualization and toolbar, with automatic visualization selection from data sources plus chart, gauge, and map integrations.",
- "hash": "1e8fbef0744f3841964639a3bed51d8e",
+ "summary": "Covers Dashboard Tile setup, data binding, automatic visualization selection, changing visualization types, configuring properties, and toolbar capabilities.",
+ "hash": "77408fbac5bec2b53cff775aaa7d2bd1",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -39,8 +39,8 @@
"groupKey": "Data Entry & Display",
"section": "Data Entry & Display",
"groupLabel": "",
- "summary": "Configure selection controls, inputs, buttons, toggles, ratings, badges, chips, progress, pagination, virtualization, masking, highlighting, and theming",
- "hash": "5793c5450ec55244d80b5df1528e541b",
+ "summary": "Covers inputs, selection controls, buttons, badges, progress indicators, QR codes, dividers, chips, text highlighting, pagination, and virtualized collections.",
+ "hash": "5122ba3b819ff6f35486b44452342880",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -48,8 +48,8 @@
"groupKey": "Data Entry & Display > Drop Down",
"section": "Data Entry & Display",
"groupLabel": "Drop Down",
- "summary": "Covers single-item selection, grouped and hierarchical data, menus, keyboard navigation, custom themes, virtualization, chunk loading, and multi-select chips.",
- "hash": "3a36aed8050479861e843ddcfa6b6945",
+ "summary": "Configure option selection, grouped and hierarchical items, keyboard navigation, local/remote virtualization, and tree-grid selection with removable chips.",
+ "hash": "d8b3ad83cccd43a081e4497c77463812",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -57,8 +57,8 @@
"groupKey": "Data Entry & Display > Icon",
"section": "Data Entry & Display",
"groupLabel": "Icon",
- "summary": "Covers font and SVG families, colors and sizes, inactive states, Material Symbols, theme styling, family registration, aliases, service methods, and template rendering",
- "hash": "c568d462ce18a1bb650331f07e8b522a",
+ "summary": "Display and customize SVG icons and Material Symbols; register font and SVG families, map references, retrieve icons, and search, filter, copy, or download them",
+ "hash": "b954ea6731748790513b4970a3cb4563",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -66,8 +66,8 @@
"groupKey": "Data Entry & Display > Query Builder",
"section": "Data Entry & Display",
"groupLabel": "Query Builder",
- "summary": "Create expression trees with entities, fields, conditions, grouping, and custom templates; define, serialize, filter data, build subqueries, and generate SQL.",
- "hash": "f2dcf481a325d0bcbbf18ab754d2d7ff",
+ "summary": "Build data-filtering queries and expression trees with nested expressions, subqueries, value templates, binding, SQL generation, and grid results.",
+ "hash": "b67c788939a540f95512f79a493f9d88",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -75,8 +75,8 @@
"groupKey": "Frameworks > Excel Library",
"section": "Frameworks",
"groupLabel": "Excel Library",
- "summary": "Create, load, and save workbooks; manage worksheets, cells, tables, charts, and sparklines with formulas, formatting, protection, filtering, and file utilities.",
- "hash": "d789da0e8c10a480b199e96f03851c27",
+ "summary": "Create, load, and save workbooks; configure cells, worksheets, tables, charts, and sparklines with formulas, formatting, filtering, sorting, and protection.",
+ "hash": "a0a5c41d0fb1bc015e88a68c541399f9",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -84,8 +84,8 @@
"groupKey": "Gauges",
"section": "Gauges",
"groupLabel": "",
- "summary": "Use bullet graphs and linear or radial gauges with scales, needles, ranges, labels, tick marks, backing, targets, titles, optical scaling, and animation",
- "hash": "de174a5edb99f40780600706fd0240e0",
+ "summary": "Configure bullet, linear, and radial gauges to compare values, customize scales, ranges, ticks, labels, backing, needles, animation, and interactive dragging.",
+ "hash": "536b89aeafa601c78de8f6129835f118",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -93,8 +93,8 @@
"groupKey": "General",
"section": "General",
"groupLabel": "",
- "summary": "Covers installation, licensing, localization, updates, SSR, code splitting, data binding, grid and chart configuration, and data analysis workflows.",
- "hash": "28ba05e2716757a9f412dabb661b0c40",
+ "summary": "Covers setup, licensing, localization, updates, SSR, code splitting, grid configuration, remote data, data analysis, charting, and release history.",
+ "hash": "2c38f347159e1975f772a942977efff7",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -102,8 +102,8 @@
"groupKey": "General > Angular Schematics & Ignite UI CLI",
"section": "General",
"groupLabel": "Angular Schematics & Ignite UI CLI",
- "summary": "Scaffold projects and component views, choose templates and themes, run applications, configure AI assistants and MCP integrations, and implement authentication.",
- "hash": "120cbcf191b68dc333fa94f3cea6d3f8",
+ "summary": "Scaffold projects and component views with CLI or schematics, choose templates and themes, configure AI assistants and MCP, and set up authentication endpoints and social providers",
+ "hash": "958eb2bee468f6e02b68f72349aa1946",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -111,8 +111,8 @@
"groupKey": "General > How to",
"section": "General",
"groupLabel": "How to",
- "summary": "Build live-data dashboards, validate reactive forms, connect CRUD services, customize themes, use standalone components, and scaffold apps through MCP.",
- "hash": "f1cbe10c92d0d446cf12e2516a3e5790",
+ "summary": "Configure hubs and live data, validate reactive forms, implement Grid CRUD, customize themes and tokens, use standalone components, and scaffold with MCP.",
+ "hash": "4ecb818947d9d9f9a719b805b9668583",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -120,8 +120,8 @@
"groupKey": "General > WPF to Angular guide",
"section": "General",
"groupLabel": "WPF to Angular guide",
- "summary": "Covers application creation, components, one- and two-way data binding, events, pipes, structural directives, and Flexbox/Grid layouts for migration.",
- "hash": "e5ec35449bbe353d15727abedd3008fb",
+ "summary": "Covers application setup, components, one-way and two-way binding, events, pipes, structural directives, and CSS Flexbox and Grid layouts",
+ "hash": "5e68b27e76ff53877470fa0002c652ae",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -129,8 +129,8 @@
"groupKey": "Grids & Lists",
"section": "Grids & Lists",
"groupLabel": "",
- "summary": "Covers data grids, trees, and lists with data operations, editing, selection, filtering, templating, navigation, lazy loading, accessibility, styling, and export.",
- "hash": "9e881f4db3910f905043a871825684b4",
+ "summary": "Build data grids, hierarchical trees, and templated lists with searching, filtering, editing, grouping, selection, export, on-demand loading, and custom styling",
+ "hash": "bff16a9ae069fbc34d8add97ddd85ba3",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -138,8 +138,8 @@
"groupKey": "Grids & Lists > Combo",
"section": "Grids & Lists",
"groupLabel": "Combo",
- "summary": "Configure ComboBox data binding for local and remote data, filtering, grouping, custom values, templates, forms, selection, overlays, and keyboard navigation.",
- "hash": "99fcbd08b624695358044273571f998b",
+ "summary": "Configure ComboBox and Simple ComboBox data/value binding, selection, filtering, custom values, grouping, remote data, virtual scrolling, templates, and keyboard navigation",
+ "hash": "c76f1f4123ad946fc369ac89134db97f",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -147,8 +147,8 @@
"groupKey": "Grids & Lists > Data Grid",
"section": "Grids & Lists",
"groupLabel": "Data Grid",
- "summary": "Build data grids with local, remote, and live data, virtualization, editing, validation, filtering, sorting, grouping, selection, and export",
- "hash": "8874a12176a124e2ab0c770fa1896b85",
+ "summary": "Covers Data Grid setup, columns, data binding, editing, filtering, sorting, grouping, selection, virtualization, remote operations, export, and theming.",
+ "hash": "b0f148729c9fab57b0b5fa2e2dff338b",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -156,8 +156,8 @@
"groupKey": "Grids & Lists > Grid Lite",
"section": "Grids & Lists",
"groupLabel": "Grid Lite",
- "summary": "Configure grids with data binding, column sizing, visibility, cell and header templates, filtering, sorting, virtualization, and theming.",
- "hash": "53a678d177f5fa202128d3cfc8e4b1be",
+ "summary": "Covers setup, data binding, column configuration, cell and header templates, sorting, filtering, virtualization, theming, and custom data pipelines",
+ "hash": "b897052d4ec0026b9f24e938e1fc32e2",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -165,8 +165,8 @@
"groupKey": "Grids & Lists > Hierarchical Grid",
"section": "Grids & Lists",
"groupLabel": "Hierarchical Grid",
- "summary": "Configure hierarchical grids for nested and load-on-demand data with CRUD, filtering, sorting, selection, virtualization, exports, and state persistence",
- "hash": "04883c554e4cf024aef7afd658839578",
+ "summary": "Covers hierarchical tabular data, row islands, load-on-demand, remote data operations, editing, filtering, sorting, paging, virtualization, selection, pinning, and theming.",
+ "hash": "74ccfa7d9e2771bee04dd87ac9aa7945",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -174,8 +174,8 @@
"groupKey": "Grids & Lists > Pivot Grid",
"section": "Grids & Lists",
"groupLabel": "Pivot Grid",
- "summary": "Covers Pivot Grid setup, dimensions, values, aggregations, filtering, sorting, selection, summaries, Excel/PDF export, remote data, and state persistence.",
- "hash": "2a06f697b7e123063084739d6d4e557b",
+ "summary": "Configure Pivot Grid dimensions, aggregations, filters, features, remote grouping, Excel/PDF export, state persistence, and Sass or CSS theming.",
+ "hash": "7ef25a480c2a39a177b0873f4da0a947",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -183,8 +183,8 @@
"groupKey": "Grids & Lists > Spreadsheet",
"section": "Grids & Lists",
"groupLabel": "Spreadsheet",
- "summary": "Covers Excel workbook loading and saving, editing, formatting, navigation, charts, clipboard actions, conditional formatting, data validation, hyperlinks, and commands.",
- "hash": "240be6d2d1937a564b5dd502d0e246ac",
+ "summary": "Covers spreadsheet configuration, workbook loading and saving, active cells, panes and worksheets, charts, clipboard, conditional formatting, validation, hyperlinks, and commands",
+ "hash": "7858e118735c6684527ad018358a392e",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -192,8 +192,8 @@
"groupKey": "Grids & Lists > Tree Grid",
"section": "Grids & Lists",
"groupLabel": "Tree Grid",
- "summary": "Configure hierarchical data, remote operations, virtualization, editing, filtering, sorting, selection, grouping, pinning, exporting, and state persistence.",
- "hash": "9dbae68c9662496615910ad132a312a6",
+ "summary": "Configure hierarchical data, editing, filtering, sorting, grouping, paging, virtualization, selection, pinning, exporting, theming, state persistence, and Tree Grid layout.",
+ "hash": "110e05e2b63b1efa5f326d6419bae209",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -201,8 +201,8 @@
"groupKey": "Interactions",
"section": "Interactions",
"groupLabel": "",
- "summary": "Covers messaging, dialogs, sliders, ripples, toggles, tooltips, drag and drop, chart zooming, and action strips with positioning, styling, and customization",
- "hash": "66a0109c9fcf5211475e965a10db757a",
+ "summary": "Covers interactive chat, dialogs, sliders, ripple effects, toggles, tooltips, drag and drop, zoom navigation, and action strips with theming and accessibility.",
+ "hash": "c2a814d7bfe244f8dccc5fdf56192059",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -210,8 +210,8 @@
"groupKey": "Interactions > Overlay",
"section": "Interactions",
"groupLabel": "Overlay",
- "summary": "Covers attaching, positioning, showing, hiding, and detaching components or elements, overlay settings, scroll strategies, toggle integration, outlets, and scoped styling.",
- "hash": "cf90be24a0e8a75f531eab1f1c80fc7c",
+ "summary": "Attach, display, hide, and detach components; configure overlay settings, positioning and scroll strategies; style content, modal backdrops, and custom outlets",
+ "hash": "fdfdeca9f21982db3920928daf5ccf13",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -219,8 +219,8 @@
"groupKey": "Interactivity",
"section": "Interactivity",
"groupLabel": "",
- "summary": "Covers right-to-left directionality configuration and calendar toggling, plus Section 508 and WCAG accessibility compliance, matrices, and theme notes.",
- "hash": "546d5a581e53b19ca71828ddd96ab77f",
+ "summary": "Covers RTL direction and calendar switching, RTL limitations and stylesheet changes, accessibility standards, conformance requests, and issue reporting",
+ "hash": "07bce087516f70a3136f6c8afd0b938a",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -228,8 +228,8 @@
"groupKey": "Layouts",
"section": "Layouts",
"groupLabel": "",
- "summary": "Create layouts with flex direction, spacing, alignment, wrapping, carousels, tabs, cards, accordions, steppers, split panes, docked panes, avatars, and draggable tiles",
- "hash": "32a71b303d55be6733005241ea8dc972",
+ "summary": "Arrange elements with flex layouts, carousels, tabs and tab bars, cards, accordions, avatars, breadcrumbs, splitters, steppers, and dock or tile managers",
+ "hash": "0834622c84f10ac638e7b6acda517777",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -237,8 +237,8 @@
"groupKey": "Maps",
"section": "Maps",
"groupLabel": "",
- "summary": "Display geospatial data on imagery maps with geographic series, data binding, triangulation, scaling, navigation, tooltips, heat color scales, shapefile shapes.",
- "hash": "20e2cbf1dcf5a86d3df2d0664bcb9cc9",
+ "summary": "Render geographic data on imagery map with scatter area, contour, density, bubble and symbol series, polygons and polylines, navigation, tooltips, map APIs.",
+ "hash": "e0253f0eb3c74d3268850a85ba62e1b4",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -246,8 +246,8 @@
"groupKey": "Maps > Geographic Map Features",
"section": "Maps",
"groupLabel": "Geographic Map Features",
- "summary": "Covers geographic maps with imagery, geographic series, CSV/JSON/model/Shape File binding, overlays, heat imagery, navigation, shape styling, and geospatial utilities",
- "hash": "d99d959c1245b0772535da6940b2fb32",
+ "summary": "Displays map data with imagery, shape, polyline, and symbol series; covers CSV, JSON, model, and shapefile binding, styling, navigation, and geospatial utilities",
+ "hash": "bfcbaebf944aa7ebaabfdd575fcf6849",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -255,8 +255,8 @@
"groupKey": "Menus",
"section": "Menus",
"groupLabel": "",
- "summary": "Covers toolbars with chart linking and actions; responsive navigation with pinned/mini modes, routing, and hierarchical menus; headers with back navigation",
- "hash": "91c8c6af511fd8387487e98ba7994cb1",
+ "summary": "Configure toolbars, navigation drawers, and navbars with chart actions, custom commands, responsive and hierarchical navigation, routing, icons, and theming.",
+ "hash": "4771fb7247ea97c2ec497ddb2a10279e",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -264,8 +264,8 @@
"groupKey": "Notifications",
"section": "Notifications",
"groupLabel": "",
- "summary": "Display banners, snackbars, and toasts with custom content, actions, animations, events, timing, positioning, interactions, and styling.",
- "hash": "baa8a94c1325914eea4278a2fa6f6808",
+ "summary": "Display and customize banners, snackbars, and toast notifications with messages, icons, actions, positioning, auto-hide timing, events, and themes",
+ "hash": "3f17df0366d54d46d2fb87d43eaaac85",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -273,8 +273,8 @@
"groupKey": "Scheduling",
"section": "Scheduling",
"groupLabel": "",
- "summary": "Covers date and time editing, single, multi, and range selection, month and year picking, formatting, validation, localization, forms, navigation, and styling.",
- "hash": "6c4becff8680231103061f71657a8c81",
+ "summary": "Configure date-time editors, calendars, date, date-range, month, and time pickers for selecting, formatting, localization, validation, forms, navigation, and styling",
+ "hash": "35b7321d0037c3b978eec14a7ea4f300",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -282,8 +282,8 @@
"groupKey": "Services",
"section": "Services",
"groupLabel": "",
- "summary": "Export arrays and grid data to CSV, TSV, TAB, Excel, or PDF with delimiters, filtering, excluded rows or columns, page options, and Unicode fonts.",
- "hash": "016ff0121692e10f1fb8420756ca31b5",
+ "summary": "Export arrays and grid data to CSV, TAB, TSV, Excel, or PDF, with toolbar exports, row and column exclusions, page formatting, and custom fonts",
+ "hash": "6375f07bf3dd7f9e60e1062b193c2adf",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -291,8 +291,8 @@
"groupKey": "Services > Transaction Service",
"section": "Services",
"groupLabel": "Transaction Service",
- "summary": "Accumulate, commit, clear, undo, and redo flat or hierarchical data changes with transaction services, factories, logs, batch editing, and custom implementations.",
- "hash": "1c5788e7a8fe47a4537577e09b618c6b",
+ "summary": "Stage add, update, and delete operations; inspect transaction records and state; commit, clear, undo, or redo changes; and configure factories and service types.",
+ "hash": "6ea93cdd9183a33e7b33cdb50bea9e84",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -300,8 +300,8 @@
"groupKey": "Styling & Themes",
"section": "Styling & Themes",
"groupLabel": "",
- "summary": "Customize themes with CSS variables or Sass, including palettes, elevations, typography, roundness, display density, and application- or component-level spacing.",
- "hash": "b39a2e4779ebeea26f84d8ca40a46283",
+ "summary": "Customize themes with palettes, elevations, typography, roundness, density, spacing, CSS variables, Sass utilities, and accessibility settings for components.",
+ "hash": "729dee20dffdf048899e90670ad1baa8",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -309,8 +309,8 @@
"groupKey": "Styling & Themes > Sass",
"section": "Styling & Themes",
"groupLabel": "Sass",
- "summary": "Configure Sass palettes, schemas, typography, elevations, animations, roundness, scoped themes, presets, printing, and Material or Bootstrap integrations",
- "hash": "1aefc24674a81e2d89039a2757f6da7e",
+ "summary": "Covers Sass palettes, schemas, typography, elevations, animations, roundness, global and component themes, presets, CSS variables, and framework integrations",
+ "hash": "907a1ad97c2b4d34c2da5e039e1d992f",
"model": "gpt-5.6-luna",
"promptVersion": 1
}
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/data/group-summaries/blazor.json b/packages/igniteui-mcp/igniteui-doc-mcp/data/group-summaries/blazor.json
index 0558c6077..ea25e0213 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/data/group-summaries/blazor.json
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/data/group-summaries/blazor.json
@@ -3,8 +3,8 @@
"groupKey": "AI-Assisted Development",
"section": "AI-Assisted Development",
"groupLabel": "",
- "summary": "Configure Agent Skills and MCP servers for scaffolding, component generation, documentation and API answers, palettes, themes, typography, CSS, Sass, design-token overrides, and step plans",
- "hash": "d4d13f572a1100d09d2d131407de6f9a",
+ "summary": "Configure Agent Skills and MCP servers, connect CLI and Theming tools, scaffold apps, generate components, create palettes, themes, typography, and overrides",
+ "hash": "018bdf4ce8760dfddb13f1b6d2ce137c",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -12,8 +12,8 @@
"groupKey": "Charts",
"section": "Charts",
"groupLabel": "",
- "summary": "Build area, bar, bubble, column, line, pie, donut, scatter, polar, radial, stock, treemap, and sparkline charts with series, data binding, axes, styling, and legends.",
- "hash": "cf160d0edb6e45999dd967316a49338e",
+ "summary": "Create and style area, bar, bubble, column, line, pie, polar, radial, scatter, stock, treemap, and sparkline charts with data binding, axes, legends, and stacking",
+ "hash": "9739bbfbd5c88319ad6d69181a652ca9",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -21,8 +21,8 @@
"groupKey": "Charts > Chart Features",
"section": "Charts",
"groupLabel": "Chart Features",
- "summary": "Configure chart axes, annotations, animations, highlighting, markers, navigation, overlays, performance, tooltips, trendlines, filtering, and aggregation.",
- "hash": "ec4b08d4c381c4f817ae8b68a6d7aaff",
+ "summary": "Configure chart axes, annotations, overlays, tooltips, legends, selection, highlighting, navigation, markers, trendlines, filtering, aggregation, and performance.",
+ "hash": "898986efcce04ed514d84bcd193e0832",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -30,8 +30,8 @@
"groupKey": "Dashboards",
"section": "Dashboards",
"groupLabel": "",
- "summary": "Configure dashboard tiles with automatic visualization selection, data binding, supported visualizations, and toolbar tools for changing and configuring views.",
- "hash": "196a4f1cda43d6eda9a5a5711d252c52",
+ "summary": "Analyzes bound data to select an appropriate visualization, with controls to change visualization types and configure dashboard tiles using the toolbar",
+ "hash": "fc6b0775974a4ac73516cb72dbc56ba0",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -39,8 +39,8 @@
"groupKey": "Data Entry & Display",
"section": "Data Entry & Display",
"groupLabel": "",
- "summary": "Covers buttons, selection controls, inputs, masked date and time entry, dropdowns, progress indicators, badges, icons, chips, ratings, color editing, and styling.",
- "hash": "f72097377f04e06007a2af48986489ca",
+ "summary": "Covers status indicators, buttons, button groups, text and date-time inputs, masks, selections, ratings, switches, icons, chips, progress, highlighting, validation, and styling.",
+ "hash": "6160be7796bd52142d1ebe1b6d02c16d",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -48,8 +48,8 @@
"groupKey": "Data Entry & Display > Combo Box",
"section": "Data Entry & Display",
"groupLabel": "Combo Box",
- "summary": "Covers ComboBox data binding, single selection, quick filtering, grouping, sorting, validation, keyboard navigation, styling, disabled states, and templates.",
- "hash": "1086484e5a5921630dd8e27d104602d0",
+ "summary": "Configure ComboBox binding, selections, validation, filtering, grouping, sorting, keyboard navigation, styling, templates, and header, footer, and empty states.",
+ "hash": "8b4d351118e2e279e53afac5a494ceec",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -57,8 +57,8 @@
"groupKey": "Frameworks > Excel Library",
"section": "Frameworks",
"groupLabel": "Excel Library",
- "summary": "Create, load, edit, and export workbooks with cells, tables, worksheets, charts, sparklines, formulas, formatting, filtering, sorting, and protection.",
- "hash": "ab346db52f8f576373552f2dc8eb933b",
+ "summary": "Create, load, save, and export Excel workbooks with cells, formulas, tables, worksheets, charts, sparklines, formatting, protection, filtering, and sorting.",
+ "hash": "805ff4e65393bf9ed44e12445aefee77",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -66,8 +66,8 @@
"groupKey": "Gauges",
"section": "Gauges",
"groupLabel": "",
- "summary": "Configure bullet graphs and linear or radial gauges with scales, needles, ranges, tick marks, labels, backing, highlights, animation, and dragging.",
- "hash": "a74e8a92a3cc941fb6339b8dabe3de47",
+ "summary": "Configure bullet graphs and linear or radial gauges with comparative ranges, needles, scales, tick marks, labels, backings, optical scaling, and animation",
+ "hash": "8d7b3b3d5046cc7eac87053212128bfb",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -75,8 +75,8 @@
"groupKey": "General",
"section": "General",
"groupLabel": "",
- "summary": "Covers open-source versus Premium licensing, available controls, grid upgrades, and release notes for new components, API changes, breaking changes, and bug fixes.",
- "hash": "3554387b18a229c563d250548c138c51",
+ "summary": "Compare open-source and premium components, licensing, premium features, Grid Lite upgrade path; review releases, fixes, breaking changes, and migration notes.",
+ "hash": "afd19feb802645b89b3dffffbfd2a6c8",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -84,8 +84,17 @@
"groupKey": "General > Getting Started",
"section": "General",
"groupLabel": "Getting Started",
- "summary": "Create server, WebAssembly, Web App, and hybrid applications; install and register packages, configure styles and scripts, and render components",
- "hash": "6e0698d58dd94293606c83a9fe70afba",
+ "summary": "Create server, client, web, hybrid, and open-source projects; install and register libraries, configure resources, and render cards, buttons, and components",
+ "hash": "3407fc03e74106ffba602ec9e545b56f",
+ "model": "gpt-5.6-luna",
+ "promptVersion": 1
+ },
+ {
+ "groupKey": "General > Ignite UI CLI",
+ "section": "General",
+ "groupLabel": "Ignite UI CLI",
+ "summary": "Covers CLI installation, interactive wizard project scaffolding, theme configuration, component templates and views, and AI assistant setup through MCP.",
+ "hash": "b93e720009c8b03455252b054f4eb1aa",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -93,8 +102,8 @@
"groupKey": "General > Installation",
"section": "General",
"groupLabel": "Installation",
- "summary": "Configure private NuGet feeds and install packages using Visual Studio, the .NET CLI, or Package Manager, with licensed and trial sources covered",
- "hash": "19434fd8865f3735021242c27ad43fa2",
+ "summary": "Configure the private NuGet feed and install packages with Visual Studio, NuGet CLI, .NET CLI, or Package Manager for licensed or trial use.",
+ "hash": "f2794428c7f3f557c5b7af830ea99713",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -102,8 +111,8 @@
"groupKey": "Grids & Lists",
"section": "Grids & Lists",
"groupLabel": "",
- "summary": "Display text/contact and hierarchical data with headers, slots, avatars, buttons, static or data-bound items, expansion, selection, keyboard navigation, and styling",
- "hash": "ad5ac512f0820f197a2871a02d9ddf2a",
+ "summary": "Display text and contact items with headers, slots, avatars, buttons, and sizes; build hierarchical trees with expansion, selection, and keyboard navigation.",
+ "hash": "127077b4c93c64377e0d37f145698460",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -111,8 +120,8 @@
"groupKey": "Grids & Lists > Grid",
"section": "Grids & Lists",
"groupLabel": "Grid",
- "summary": "Configure grids with data binding, columns, filtering, sorting, editing, grouping, selection, paging, virtualization, exporting, theming, and row actions.",
- "hash": "a15870be3f0464018ffcdc2fc2ebbc04",
+ "summary": "Configure data binding, columns, editing, filtering, sorting, grouping, selection, paging, virtualization, export, pinning, and state persistence.",
+ "hash": "479595adf7fbb196fb23139350c130de",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -120,8 +129,8 @@
"groupKey": "Grids & Lists > Grid Lite",
"section": "Grids & Lists",
"groupLabel": "Grid Lite",
- "summary": "Covers Grid Lite setup, List binding, column configuration, virtualization, keyboard navigation, filtering, sorting, theming, and CSS customization.",
- "hash": "c9d9736231fd5612ce75d8cf1d1c91ee",
+ "summary": "Covers setup, lightweight data presentation, column configuration and resizing, List binding, filtering, sorting, runtime state, events, and CSS custom properties.",
+ "hash": "9f0e9ee5b14fa5f833a569f8747504b0",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -129,8 +138,8 @@
"groupKey": "Grids & Lists > Hierarchical Grid",
"section": "Grids & Lists",
"groupLabel": "Hierarchical Grid",
- "summary": "Configure hierarchical grids with nested data, row islands, load-on-demand, editing, filtering, sorting, selection, export, state, and virtualization.",
- "hash": "a422873e40f0bcad5dbd77afc9619165",
+ "summary": "Configure hierarchical grids for nested and remote data, editing, filtering, sorting, selection, column operations, export, virtualization, sizing, and state.",
+ "hash": "3248d5e2191e18a535e1410e4c246665",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -138,8 +147,8 @@
"groupKey": "Grids & Lists > Pivot Grid",
"section": "Grids & Lists",
"groupLabel": "Pivot Grid",
- "summary": "Configure Pivot Grid rows, columns, values, filters, and aggregations; persist state and manage dimensions with sorting, resizing, selection, and compact mode.",
- "hash": "d9f5e6092f70bd97cde111f7e50b76c0",
+ "summary": "Configure Pivot Grid dimensions and values to group and aggregate data, use date hierarchies, persist state, and enable sorting, selection, and compact mode",
+ "hash": "de3fb8dd540b406bf6ae0201555d1d4d",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -147,8 +156,8 @@
"groupKey": "Grids & Lists > Tree Grid",
"section": "Grids & Lists",
"groupLabel": "Tree Grid",
- "summary": "Configure hierarchical data, editing, filtering, sorting, selection, summaries, exporting, virtualization, state persistence, column and row APIs, and styling",
- "hash": "279c8c630ed9accc6f1baf8e956fcfeb",
+ "summary": "Configure hierarchical data, columns, editing, filtering, sorting, selection, pinning, paging, exports, virtualization, summaries, and state persistence",
+ "hash": "b438ec3d2d32243bb3d33949cd4058fe",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -156,8 +165,8 @@
"groupKey": "Interactions",
"section": "Interactions",
"groupLabel": "",
- "summary": "Covers ripple animations and color customization, tooltips with anchors, placement, triggers, and accessibility, plus sliders with ranges, ticks, labels, and events.",
- "hash": "a313de8ca9e21b98bb3f33ffc37a1ff7",
+ "summary": "Configure chat messages, typing indicators, tooltips, ripple effects, sliders, and query builders with events, styling, templates, and expression trees.",
+ "hash": "ec5e4f6e156e57d03baf1d3ff19789b3",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -165,8 +174,8 @@
"groupKey": "Interactivity",
"section": "Interactivity",
"groupLabel": "",
- "summary": "Covers accessibility support against Section 508 and WCAG guidelines, including compliance matrices, legends, and WAI-ARIA guidance.",
- "hash": "75d7c9b2a6f38a71d3392e5d95469421",
+ "summary": "Covers accessibility standards, component accessibility behavior, application configuration, formal conformance reports, and accessibility issue reporting.",
+ "hash": "c77b5554345025bcd4633880b225233e",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -174,8 +183,8 @@
"groupKey": "Layouts",
"section": "Layouts",
"groupLabel": "",
- "summary": "Build expandable panels, cards, carousels, tabs, steppers, avatars, dividers, and resizable tiles with navigation, customization, reordering, and keyboard support",
- "hash": "392b7c99a19822ba83ec1a98f9e0d863",
+ "summary": "Build panels, cards, carousels, tabs, steppers, split panes, tile layouts, avatars, and dividers with expansion, navigation, sizing, accessibility, and styling",
+ "hash": "e9e57c19392a0b153affe9173ad228e5",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -183,8 +192,8 @@
"groupKey": "Layouts > Dock Manager",
"section": "Layouts",
"groupLabel": "Dock Manager",
- "summary": "Configure split panes, document hosts, tab groups, pinned/floating panes; update content and embed charts, gauges, and maps with iframes, plus styling",
- "hash": "34a7905d3d0e753c2bd3366d1878a296",
+ "summary": "Build split panes with document hosts, tab groups, floating panes, button slots, styling, keyboard navigation, iframes, and manager-driven chart/map updates.",
+ "hash": "8cd82a47f5b1d4c25f46f12914c0a163",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -192,8 +201,8 @@
"groupKey": "Maps",
"section": "Maps",
"groupLabel": "",
- "summary": "Covers map navigation, coordinate conversion, data binding, and configuration for scatter area, contour, density, bubble, symbol, polygon, and polyline series",
- "hash": "a941417a6bf4c1c4a4154da9b82e85f1",
+ "summary": "Map geographic data to scatter area, contour, density, bubble, and symbol series; support polygon/polyline maps, navigation, and coordinate conversion",
+ "hash": "9f999ffe5dc1cc65e326d5449835290a",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -201,8 +210,8 @@
"groupKey": "Maps > Geographic Map Features",
"section": "Maps",
"groupLabel": "Geographic Map Features",
- "summary": "Display geographic data on imagery maps, bind CSV, JSON, models, and shapefiles, overlay sources and series, configure imagery, navigation, and resources",
- "hash": "3c1687542ef1a1d64b77cc1f5235fb01",
+ "summary": "Display geographic data and imagery, bind CSV, JSON, custom models, and shapefiles, overlay map series and sources, zoom and pan, and use world utilities.",
+ "hash": "c6827746c0157db213b6399ce1d18922",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -210,8 +219,8 @@
"groupKey": "Menus",
"section": "Menus",
"groupLabel": "",
- "summary": "Covers toolbars with chart components, custom actions, commands, icons, orientation, navbars, and expandable navigation drawers with mini mode and styling",
- "hash": "9ef15ab69f98a67d4376a7e185cc69be",
+ "summary": "Configure toolbars, navbars, and navigation drawers with custom actions, icons, orientation, titles, mini variants, positioning, toggling, selection, and CSS parts.",
+ "hash": "eff009a582a8eca937deca0fc58d4544",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -219,8 +228,8 @@
"groupKey": "Notifications",
"section": "Notifications",
"groupLabel": "",
- "summary": "Display banners, snackbars, toasts, and dialogs with custom content, actions, timing, positioning, events, modal prompts, forms, behavior, and styling.",
- "hash": "0322ccba726baaa05fd26d2c486f6465",
+ "summary": "Display and customize banners, snackbars, toasts, and dialogs with messages, actions, visibility, timing, events, modal behavior, and CSS styling.",
+ "hash": "9774da876fa4674848aa8d86e9d91471",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -228,8 +237,8 @@
"groupKey": "Scheduling",
"section": "Scheduling",
"groupLabel": "",
- "summary": "Covers calendar date selection, disabled and special dates, keyboard navigation, date picker input and formatting, and date range binding and validation",
- "hash": "d6f85e2e65c55a8c041a92f25528bf9d",
+ "summary": "Calendar, Date Picker, and Date Range Picker cover selection modes, date ranges, events, formatting, keyboard navigation, validation, slots, and styling.",
+ "hash": "c635fa6cd3cf060b8ef54b58d2cd54ff",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -237,8 +246,8 @@
"groupKey": "Styling & Themes",
"section": "Styling & Themes",
"groupLabel": "",
- "summary": "Load and configure bundled themes, switch light and dark stylesheet paths, and customize type scales, font families, and individual styles with CSS variables.",
- "hash": "e4d81ce2fc6175a01174e0792020bc8d",
+ "summary": "Covers theme loading, CSS variables and Sass, palettes, light/dark themes, typography, elevations, spacing, CSS parts, accessibility utilities, and design tokens",
+ "hash": "423bf402f49bf4b064473258837530e7",
"model": "gpt-5.6-luna",
"promptVersion": 1
}
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/data/group-summaries/react.json b/packages/igniteui-mcp/igniteui-doc-mcp/data/group-summaries/react.json
index 9597c92aa..fffcd7e19 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/data/group-summaries/react.json
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/data/group-summaries/react.json
@@ -3,8 +3,8 @@
"groupKey": "AI-Assisted Development",
"section": "AI-Assisted Development",
"groupLabel": "",
- "summary": "Configure AI coding assistants with MCP tools for project scaffolding, component APIs, documentation, design tokens, themes, and validated executable plans.",
- "hash": "a72059eec4fa4219a2dd50881eb88320",
+ "summary": "Configure agent skills and MCP servers for AI coding assistants to scaffold projects, modify components, answer documentation questions, and generate themes.",
+ "hash": "3d399aef178bb5a4535d242f9a161064",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -12,8 +12,8 @@
"groupKey": "Charts",
"section": "Charts",
"groupLabel": "",
- "summary": "Create area, bar, column, line, pie, donut, scatter, polar, radial, stock, treemap, and sparkline charts with axes, series, legends, styling, and interaction.",
- "hash": "89cf5307d7cd3da883729065fd78a252",
+ "summary": "Build and style area, bar, column, line, pie, donut, scatter, polar, radial, stock, treemap, and sparkline charts with data binding, axes, series, and legends",
+ "hash": "f1b8aade6932e2fa665f8cfe09f06daf",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -21,8 +21,8 @@
"groupKey": "Charts > Chart Features",
"section": "Charts",
"groupLabel": "Chart Features",
- "summary": "Configure chart axes, annotations, animation, highlighting, navigation, overlays, tooltips, trendlines, selection, synchronization, and performance.",
- "hash": "52d64ad56f47c3c6f59dab53dc35790c",
+ "summary": "Configure chart axes, annotations, overlays, animations, tooltips, selection, highlighting, navigation, trendlines, filtering, aggregation, and performance",
+ "hash": "c0db5822d7fe862b609e1452e2332506",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -30,8 +30,8 @@
"groupKey": "Dashboards",
"section": "Dashboards",
"groupLabel": "",
- "summary": "Covers dashboard tile module registration, data binding, automatic visualization selection, toolbar tools, and supported visualization types.",
- "hash": "79bebf5c77ce3313046b8cd7998eac9f",
+ "summary": "Covers Dashboard Tile data-source analysis, automatic visualization selection, and customization of displayed visualizations through the toolbar and properties.",
+ "hash": "845e1fc13b9c4041844fbdc27e6885a2",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -39,8 +39,8 @@
"groupKey": "Data Entry & Display",
"section": "Data Entry & Display",
"groupLabel": "",
- "summary": "Covers badges, buttons, chips, icons, color editing, text and masked date/time inputs, selection controls, dropdowns, ratings, and progress indicators.",
- "hash": "d0a9ff3fd8e9ce36d914d62705f84e3d",
+ "summary": "Covers inputs, selection, actions, status, progress indicators, icons, QR codes, highlighting, and virtual scrolling with validation, styling, and accessibility.",
+ "hash": "714161fc5a48ce3919f014adb6c3e843",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -48,8 +48,8 @@
"groupKey": "Data Entry & Display > Combo Box",
"section": "Data Entry & Display",
"groupLabel": "Combo Box",
- "summary": "Configure data binding, filtering, grouping, selection, validation, keyboard navigation, disabled states, and custom item, header, footer, and icon content.",
- "hash": "c6ef493262b64b5bda304d628fcc0199",
+ "summary": "Covers ComboBox data binding, displayed and selected values, filtering, grouping, validation, keyboard navigation, templates, slots, and single-selection mode",
+ "hash": "aecaed629caf0cffe9de0169ca822a9c",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -57,8 +57,8 @@
"groupKey": "Frameworks > Excel Library",
"section": "Frameworks",
"groupLabel": "Excel Library",
- "summary": "Create, load, save, and manipulate Excel workbooks, worksheets, cells, tables, charts, sparklines, formulas, formatting, filtering, sorting, protection, and supported file formats.",
- "hash": "5cd4d2a03c124690db7e1e2245ad6745",
+ "summary": "Create, load, save, and export Excel workbooks; manage worksheets, cells, tables, charts, sparklines, formulas, formatting, protection, and filtering.",
+ "hash": "349f8f38b618d2fcf10662f87b1c8688",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -66,8 +66,8 @@
"groupKey": "Gauges",
"section": "Gauges",
"groupLabel": "",
- "summary": "Compare values and targets against scales with bullet, linear, and radial gauges using needles, ranges, labels, tick marks, backings, and animation.",
- "hash": "19ecaa289fd76d5a49aa72174cad882c",
+ "summary": "Configure bullet graphs and linear/radial gauges to compare performance and targets, with needles, ranges, scales, labels, tick marks, backings, and animation",
+ "hash": "126b4d10333ad0f7e33974a5abc66984",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -75,8 +75,8 @@
"groupKey": "General",
"section": "General",
"groupLabel": "",
- "summary": "Install and scaffold applications, render grids, localize components, manage licensing, compare component tiers, use client/server patterns, and track updates.",
- "hash": "57d54f41eaf1d226b3d15c002cfe65ba",
+ "summary": "Install and update applications, render a Grid, configure licensing and packages, localize components, use client/server rendering, and review release changes.",
+ "hash": "6230d5b51b3098de7e87a80b221f9380",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -84,8 +84,8 @@
"groupKey": "General > How to",
"section": "General",
"groupLabel": "How to",
- "summary": "Follow an end-to-end workflow to scaffold an app, connect MCP servers, add features, query documentation, and apply custom themes.",
- "hash": "188f25174be9aa6e708242e9911e75ff",
+ "summary": "Use CLI and Theming MCP in one chat workflow to scaffold an app, add features, ask documentation questions, and apply a custom theme.",
+ "hash": "c943eb3fbdfce550492dc683d9df7f56",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -93,8 +93,8 @@
"groupKey": "General > Ignite UI CLI",
"section": "General",
"groupLabel": "Ignite UI CLI",
- "summary": "Scaffold projects and component views, configure templates, themes, Vite development commands, AI tooling, and MCP integration through an interactive wizard.",
- "hash": "c0ce5432ddce0a726fc42d4f99364bc3",
+ "summary": "Install the CLI, scaffold projects and component views, choose templates and themes, run development workflows, and configure AI tooling through its MCP server",
+ "hash": "112a6b9eb6e7acf2660cab1833dcaebc",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -102,8 +102,8 @@
"groupKey": "Grids & Lists",
"section": "Grids & Lists",
"groupLabel": "",
- "summary": "Display text and templated items with headers, slots, avatars, and buttons, or show hierarchical data with expansion, selection, keyboard navigation, and styling.",
- "hash": "1c97b115f7d1c7f6f6e729d59924b2e8",
+ "summary": "Build lists with headers, slotted items, avatars, action buttons, sizing, and CSS parts; create hierarchical trees with expansion, selection, and keyboard navigation",
+ "hash": "a0928c04427b8ecdea38dabd89b335fa",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -111,8 +111,8 @@
"groupKey": "Grids & Lists > Grid",
"section": "Grids & Lists",
"groupLabel": "Grid",
- "summary": "Configure data, columns, editing, filtering, sorting, paging, grouping, selection, virtualization, exporting, clipboard, pinning, theming, and state persistence",
- "hash": "e9e29648a31d1627981fbbd97230129d",
+ "summary": "Configure data binding, columns, editing, filtering, sorting, grouping, selection, paging, virtualization, exporting, pinning, resizing, navigation, and state persistence.",
+ "hash": "3fb3a158e792cdb95548d6ee3347be58",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -120,8 +120,8 @@
"groupKey": "Grids & Lists > Grid Lite",
"section": "Grids & Lists",
"groupLabel": "Grid Lite",
- "summary": "Covers installation, data binding, data generation, column configuration, cell and header templates, filtering, sorting, remote operations, and theming.",
- "hash": "6534e67e987d22d8455cd245f22d2ab2",
+ "summary": "Covers installing and using lightweight data grids, data binding, column configuration, cell and header templates, filtering, sorting, events, remote operations, and CSS/Sass theming.",
+ "hash": "59c3597d65b45657360dd27e6ef425d6",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -129,8 +129,8 @@
"groupKey": "Grids & Lists > Hierarchical Grid",
"section": "Grids & Lists",
"groupLabel": "Hierarchical Grid",
- "summary": "Covers nested binding, row islands, editing, filtering, sorting, selection, column management, exporting, remote operations, state, summaries, and virtualization",
- "hash": "de2a6acdba170dd4f0fb036a19213ec9",
+ "summary": "Configure hierarchical grids with nested row islands, remote and on-demand data, editing, filtering, sorting, selection, pinning, exporting, and virtualization",
+ "hash": "dbe8381241a7139692891a9ca8f15318",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -138,8 +138,8 @@
"groupKey": "Grids & Lists > Pivot Grid",
"section": "Grids & Lists",
"groupLabel": "Pivot Grid",
- "summary": "Configure pivot grids for multidimensional data analysis with dimensions, values, aggregations, filtering, selection, sorting, resizing, and state persistence",
- "hash": "03615af8fbb7d329e5bc4bfc022b52b8",
+ "summary": "Configure row, column, filter, and value dimensions; persist state; use date hierarchies, custom aggregations, sorting, resizing, selection, and compact mode.",
+ "hash": "af301c962abb5997322c985cfe1fba0c",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -147,8 +147,8 @@
"groupKey": "Grids & Lists > Spreadsheet",
"section": "Grids & Lists",
"groupLabel": "Spreadsheet",
- "summary": "Manage Excel-like workbooks with editing, navigation, clipboard, charts, conditional formatting, data validation, hyperlinks, commands, and file import/export",
- "hash": "912e7f4afe961351c3ac6225a2b408f5",
+ "summary": "Load and manage workbooks with Excel-like editing, active cells and worksheets, charts, clipboard actions, formatting, validation, hyperlinks, and commands",
+ "hash": "16fda9e979643c7b95a4c7a88f5840d5",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -156,8 +156,8 @@
"groupKey": "Grids & Lists > Tree Grid",
"section": "Grids & Lists",
"groupLabel": "Tree Grid",
- "summary": "Covers hierarchical data, expandable rows, editing, filtering, sorting, selection, exporting, summaries, state persistence, and virtualization.",
- "hash": "86e17329e1ce10a2123936f37fbccbc6",
+ "summary": "Covers hierarchical data, editing, filtering, sorting, paging, selection, column and row features, virtualization, summaries, state persistence, clipboard, and export",
+ "hash": "533f24f0570660e0839dfe3ce960204a",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -165,8 +165,8 @@
"groupKey": "Interactions",
"section": "Interactions",
"groupLabel": "",
- "summary": "Build chats with attachments and Markdown, add ripples and tooltips, configure sliders and zoom navigation, and create query builders with expression trees.",
- "hash": "63aac80606e4276a58671d3fbfe4c50c",
+ "summary": "Build chat experiences with messages and attachments; add ripples and tooltips; configure sliders and ZoomSlider navigation; create query builders",
+ "hash": "bc9dceeb08f11950da29ef7a8b178de6",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -174,8 +174,8 @@
"groupKey": "Interactivity",
"section": "Interactivity",
"groupLabel": "",
- "summary": "Covers accessibility compliance, including Section 508, WCAG, and WAI-ARIA support, compliance matrices, legends, and implementation considerations.",
- "hash": "3964f9c3c24a65f6a0feecfcd503844b",
+ "summary": "Covers accessibility standards, configuration considerations, component coverage, formal conformance documentation requests, and accessibility issue reporting.",
+ "hash": "acdf2c17c57e68664c4f2267a6c4bb4c",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -183,8 +183,8 @@
"groupKey": "Layouts",
"section": "Layouts",
"groupLabel": "",
- "summary": "Build expandable panels, cards, carousels, tabs, steppers, split panes, dividers, avatars, and tile managers with navigation, sizing, and styling.",
- "hash": "8fa4516222cb5d788c6c6c78a86201bb",
+ "summary": "Cover accordions, avatars, breadcrumbs, cards, carousels, expansion panels, steppers, tabs, splitters, and tile managers with layouts, styling, and accessibility",
+ "hash": "f2360f9132b8e7fe17c44be95e5ac2f5",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -192,8 +192,8 @@
"groupKey": "Layouts > Dock Manager",
"section": "Layouts",
"groupLabel": "Dock Manager",
- "summary": "Configure split, tab, document, content, and floating panes with docking, persistence, events, styling, keyboard navigation, pane updates, and iframe embedding.",
- "hash": "14e5f1a55833fe209aecb0c544156846",
+ "summary": "Define and update layouts with content, split, tab group, document host, and floating panes; organize content, embed iframes, and support docking, styling, and navigation",
+ "hash": "f7e42337a908d339c76d3689898a8f15",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -201,8 +201,8 @@
"groupKey": "Maps",
"section": "Maps",
"groupLabel": "",
- "summary": "Configure maps with scatter area, contour, density, bubble, symbol, polygon, and polyline series, covering binding, scales, styling, tooltips, and navigation",
- "hash": "6d2b32054774f756fa069be9a601cb3d",
+ "summary": "Map geographic coordinates and shapefiles with scatter, bubble, symbol, density, area, and contour series plus polygon and polyline series; configure scales, zoom, and viewport APIs.",
+ "hash": "07cfe93784c2a3eddf68dbb0d11e242f",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -210,8 +210,8 @@
"groupKey": "Maps > Geographic Map Features",
"section": "Maps",
"groupLabel": "Geographic Map Features",
- "summary": "Covers geographic maps with imagery tiles, CSV, JSON, model, and shapefile data; overlays series, styles shapes, adds heat maps, and supports map navigation.",
- "hash": "d7464d539c8e03d1b475661d8a1cbdf8",
+ "summary": "Covers geographic maps with map imagery, CSV/JSON/model/shapefile data binding, overlays, shape styling, navigation, heat maps, tooltips, and utilities",
+ "hash": "9a2a7c88da1cbead41cd5bd9f79183c2",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -219,8 +219,8 @@
"groupKey": "Menus",
"section": "Menus",
"groupLabel": "",
- "summary": "Covers Toolbar actions, chart integration, icons, and color editing; Navbar titles, content, and icons; and Navigation Drawer items, toggling, selection, and styling",
- "hash": "7da18519e479d8ca654e6e5ec7ebd42b",
+ "summary": "Covers chart toolbars with built-in and custom actions, navbars with titles and navigation, and drawers with menu items, mini variants, and open/close controls",
+ "hash": "0c421cd2df39868026558eb80c3ea60d",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -228,8 +228,8 @@
"groupKey": "Notifications",
"section": "Notifications",
"groupLabel": "",
- "summary": "Display banners, snackbars, toasts, and modal dialogs with customized content, actions, timing, visibility duration, closing behavior, forms, slots, and styling.",
- "hash": "1045610aec7af9b68f0d8ea727656e61",
+ "summary": "Display and customize banners, snackbars, toasts, and modal dialogs with messages, icons, actions, timing, visibility, forms, footers, events, and styling",
+ "hash": "4b410e910cb1977807744dbb29839d9e",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -237,8 +237,8 @@
"groupKey": "Scheduling",
"section": "Scheduling",
"groupLabel": "",
- "summary": "Configure calendars and date pickers for date selection, ranges, entry, formatting, validation, localization, disabled dates, events, keyboard navigation, and styling",
- "hash": "ac1f5b60b7cb6769d26fbdd7bf554f85",
+ "summary": "Configure calendars, date pickers, and date range pickers with selection modes, ranges, formatting, validation, localization, keyboard navigation, and forms",
+ "hash": "ae46b80ca6016d148f673ac910be8cb5",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -246,8 +246,8 @@
"groupKey": "Styling & Themes",
"section": "Styling & Themes",
"groupLabel": "",
- "summary": "Load and configure bundled Bootstrap, Material, Fluent, and Indigo themes, with light and dark theme paths and the ConfigureTheme API.",
- "hash": "86ffc94fd61992d17ffa33b747cd05f1",
+ "summary": "Load and customize themes with CSS variables or Sass, configuring palettes, typography, elevation, roundness, spacing, CSS parts, accessibility, and utility classes",
+ "hash": "99613c214c233ccd1d00f0bb87ae5d6b",
"model": "gpt-5.6-luna",
"promptVersion": 1
}
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/data/group-summaries/webcomponents.json b/packages/igniteui-mcp/igniteui-doc-mcp/data/group-summaries/webcomponents.json
index b648c6b36..5d7d297fc 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/data/group-summaries/webcomponents.json
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/data/group-summaries/webcomponents.json
@@ -3,8 +3,8 @@
"groupKey": "AI-Assisted Development",
"section": "AI-Assisted Development",
"groupLabel": "",
- "summary": "Configure Agent Skills and MCP servers to scaffold projects, generate components, answer API questions, create themes, and orchestrate validated AI workflows.",
- "hash": "9a5f628e6c1f82c312fa2639ea4b80a9",
+ "summary": "Configure agent skills and MCP servers to scaffold applications, answer API questions, generate themes and palettes, and execute consensus-based plans.",
+ "hash": "e76307667624fcc63f501e02a9c991b6",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -12,8 +12,8 @@
"groupKey": "Charts",
"section": "Charts",
"groupLabel": "",
- "summary": "Create area, bar, line, pie, polar, radial, scatter, stock, treemap, sparkline, stacked, combo, and step charts with data binding, styling, interaction, and APIs",
- "hash": "f5884031a310933714342205e9eaf7ee",
+ "summary": "Covers area, bar, column, line, pie, polar, radial, scatter, stock, treemap, and sparkline charts, with data binding, series, axes, legends, and styling",
+ "hash": "61200e7315a4e782e364df4caef7018d",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -21,8 +21,8 @@
"groupKey": "Charts > Chart Features",
"section": "Charts",
"groupLabel": "Chart Features",
- "summary": "Configure axes, annotations, animations, navigation, overlays, tooltips, trendlines, selection, highlighting, legends, filtering, and performance.",
- "hash": "50d06c6a42ecafdc6f8efe9a1b2325eb",
+ "summary": "Configure chart axes, annotations, animations, highlighting, markers, navigation, overlays, tooltips, trendlines, filtering, selection, legends, and synchronization.",
+ "hash": "30ed25449b22f4b2f081a89275757874",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -30,8 +30,8 @@
"groupKey": "Dashboards",
"section": "Dashboards",
"groupLabel": "",
- "summary": "Dashboard tiles automatically select visualizations from data sources, with toolbar tools to change visualization types and configure data and display settings.",
- "hash": "db4226a2f7b1a044c6b021ddea6b0364",
+ "summary": "Analyze data sources in tiles, select and control visualization types, inspect data, and configure dashboard displays with the toolbar.",
+ "hash": "8ba8e75c17d65e764f66115855b2e3e5",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -39,8 +39,8 @@
"groupKey": "Data Entry & Display",
"section": "Data Entry & Display",
"groupLabel": "",
- "summary": "Covers badges, buttons, inputs, selection controls, dropdowns, color and date-time editing, file uploads, progress indicators, icons, ratings, chips, Text Area, and styling.",
- "hash": "1214040bfbaed664be72ad3bc0c193a9",
+ "summary": "Covers status indicators, buttons, selection controls, inputs, pickers, progress indicators, icons, ratings, text highlighting, QR codes, and virtualized lists",
+ "hash": "99c0ad3ea00af4850da1f9b973f6b7ab",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -48,8 +48,8 @@
"groupKey": "Data Entry & Display > Combo Box",
"section": "Data Entry & Display",
"groupLabel": "Combo Box",
- "summary": "Covers ComboBox setup, data binding, filtering, grouping, selection, validation, keyboard navigation, disabled states, styling, templates, and content slots.",
- "hash": "661eb86e82e97a493401dcb4c927f8ce",
+ "summary": "Covers ComboBox data binding, selection APIs, validation, keyboard navigation, filtering, grouping, templates, slots, styling, and single-selection behavior.",
+ "hash": "56007a51b16714f396a0436456ff406e",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -57,8 +57,8 @@
"groupKey": "Frameworks > Excel Library",
"section": "Frameworks",
"groupLabel": "Excel Library",
- "summary": "Load and save Excel workbooks, configure worksheets, manipulate cells and tables, and support charts, sparklines, filtering, sorting, and protection.",
- "hash": "079e3ba5be9fe3706f21bd12822556e7",
+ "summary": "Load, create, and save Excel workbooks; access and format cells, tables, and worksheets; add charts and sparklines; configure protection, filtering, and sorting",
+ "hash": "b214519048632e5b8bc02221c7f00bc4",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -66,8 +66,8 @@
"groupKey": "Gauges",
"section": "Gauges",
"groupLabel": "",
- "summary": "Configure bullet graphs, linear gauges, and radial gauges with measures, scales, needles, ranges, labels, tick marks, backing, highlights, and animation.",
- "hash": "cf3304e266884ee2d2f997fe925c64e9",
+ "summary": "Configure bullet, linear, and radial gauges to compare values with targets and ranges, customizing scales, labels, tick marks, backings, and needles.",
+ "hash": "ff07168337c28deea3cfac28c575e86a",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -75,8 +75,8 @@
"groupKey": "General",
"section": "General",
"groupLabel": "",
- "summary": "Install and configure components via CLI or npm, localize dates and numbers, manage licensing and npm feeds, compare editions, and review release changes.",
- "hash": "6eb3a8465fae9c45a8b9bd0bb5d5ef3c",
+ "summary": "Covers app scaffolding, package installation, polyfills, component registration, charts and maps setup, localization, licensing, tiers, CI, and release history.",
+ "hash": "c2d969e5b84ea2a1910957583040d52d",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -84,8 +84,8 @@
"groupKey": "General > How to",
"section": "General",
"groupLabel": "How to",
- "summary": "Follow an end-to-end workflow for scaffolding, extending, documenting, and theming an app through AI chat, with CLI MCP and Theming MCP working together.",
- "hash": "26552f71a235dd677afbe29054b7e448",
+ "summary": "Set up CLI and theming MCPs to scaffold, extend, and theme a Web Components app, ask documentation questions, and iterate on themes through chat.",
+ "hash": "dd4724136c6e18eeefee52f1c2f0be74",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -93,8 +93,8 @@
"groupKey": "General > Ignite UI CLI",
"section": "General",
"groupLabel": "Ignite UI CLI",
- "summary": "Install and use the CLI to scaffold projects, select templates and themes, add component views, run applications, and configure AI assistants through MCP.",
- "hash": "fbcd06c425c2430282aad43ac9cac904",
+ "summary": "Install and use the CLI to scaffold Web Components projects, select templates and themes, add component views, run applications, and configure AI tooling.",
+ "hash": "ed6001294439cebde87b5eb4b07a264e",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -102,8 +102,8 @@
"groupKey": "Grids & Lists",
"section": "Grids & Lists",
"groupLabel": "",
- "summary": "Display templated lists and hierarchical trees with headers, slots, actions, selection, keyboard navigation, load on demand, virtualization, and styling.",
- "hash": "3fe064142806e729470555cf8b08ea85",
+ "summary": "Display text and contact items in lists, customize slots and CSS parts, and build hierarchical trees with expansion, selection, and load on demand.",
+ "hash": "82522e0b819bd5a110b6a74ff967716d",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -111,8 +111,8 @@
"groupKey": "Grids & Lists > Grid",
"section": "Grids & Lists",
"groupLabel": "Grid",
- "summary": "Configure grid data, columns, editing, filtering, sorting, grouping, selection, paging, virtualization, clipboard, export, state persistence, sizing, and theming",
- "hash": "7312dd667ad44cbaca4da99e548ffdec",
+ "summary": "Configure and bind Grid data, columns, templates, editing, filtering, sorting, grouping, selection, paging, virtualization, exporting, pinning, sizing, and state",
+ "hash": "dce6ca5b48b3cc3fcec64b27f6980866",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -120,8 +120,8 @@
"groupKey": "Grids & Lists > Grid Lite",
"section": "Grids & Lists",
"groupLabel": "Grid Lite",
- "summary": "Configure data binding, columns, cells, headers, filtering, sorting, themes, and runtime updates with custom templates, events, remote operations, and styling",
- "hash": "1f753e3b5de7686de2bcc685f21738a4",
+ "summary": "Covers setup, data binding, column configuration, cell and header templates, filtering, sorting, theming, API methods, events, custom comparers, and data pipeline hooks.",
+ "hash": "45b123602d70e74c0716321ed33654ff",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -129,8 +129,8 @@
"groupKey": "Grids & Lists > Hierarchical Grid",
"section": "Grids & Lists",
"groupLabel": "Hierarchical Grid",
- "summary": "Configure hierarchical data binding, load-on-demand, editing, selection, filtering, sorting, exporting, styling, sizing, virtualization, and state persistence.",
- "hash": "8d2e90a7751b224573653dd745d192f0",
+ "summary": "Configure hierarchical data, on-demand child loading, columns, editing, filtering, sorting, selection, pinning, exporting, summaries, virtualization, and styling",
+ "hash": "a06aab186b9f603c76f99bcd6d926291",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -138,8 +138,8 @@
"groupKey": "Grids & Lists > Pivot Grid",
"section": "Grids & Lists",
"groupLabel": "Pivot Grid",
- "summary": "Configure pivot grids for multidimensional analysis with rows, columns, filters, values, hierarchies, custom aggregations, state persistence, and remote operations.",
- "hash": "97caed2647be0dec83f36265b98b4d63",
+ "summary": "Configure pivot grids for multidimensional cross-tabular data, define dimensions and hierarchies, persist state, and display remotely grouped and aggregated data",
+ "hash": "5b73c6a05fe3b5fd081c22d293b2da2e",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -147,8 +147,8 @@
"groupKey": "Grids & Lists > Spreadsheet",
"section": "Grids & Lists",
"groupLabel": "Spreadsheet",
- "summary": "Configure spreadsheets, load and save Excel workbooks, edit and format cells, use formulas, validation, hyperlinks, charts, clipboard, and commands.",
- "hash": "df2e062c7166ac319be2d1acf00a55be",
+ "summary": "Configure spreadsheets, load and save workbooks, manage active cells and worksheets, add charts and hyperlinks, use clipboard actions, formatting, validation, and commands.",
+ "hash": "d2b98dda3360584da26c06dbf7ba83f8",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -156,8 +156,8 @@
"groupKey": "Grids & Lists > Tree Grid",
"section": "Grids & Lists",
"groupLabel": "Tree Grid",
- "summary": "Build hierarchical and flat Tree Grids with editing, filtering, sorting, selection, paging, virtualization, exporting, state persistence, and load-on-demand",
- "hash": "dd715f303e6bbdb624c91b29fe07faa4",
+ "summary": "Configure hierarchical data, editing, filtering, sorting, selection, paging, virtualization, drag-and-drop, pinning, export, summaries, and state persistence.",
+ "hash": "1e2a05d194e22cb23d631c45bd8bdc92",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -165,8 +165,8 @@
"groupKey": "Interactions",
"section": "Interactions",
"groupLabel": "",
- "summary": "Build chat experiences, touch and click ripples, tooltips, sliders, chart zooming, and query-builder filtering with expressions, events, accessibility, and styling.",
- "hash": "885e11a79583d7c1ea208523ba2b74ca",
+ "summary": "Build chat with attachments and quick replies, configure ripples, tooltips, sliders, zoom and range navigation, and query builders with expression trees.",
+ "hash": "c9a2de26bc3da3a8b1e449d26c7e1116",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -174,8 +174,8 @@
"groupKey": "Interactivity",
"section": "Interactivity",
"groupLabel": "",
- "summary": "Covers accessibility compliance through Section 508, WCAG, and WAI-ARIA support, with coverage matrices for grids and UI components.",
- "hash": "60dabe59ac2d6555ba2e06100c27623c",
+ "summary": "Covers accessibility standards, component behaviors, configuration guidance, conformance reports, and procedures for reporting accessibility issues.",
+ "hash": "8af44f6b1cafe46c6f39020f65e1e20c",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -183,8 +183,8 @@
"groupKey": "Layouts",
"section": "Layouts",
"groupLabel": "",
- "summary": "Build layouts with expandable panels, cards, tabs, steppers, carousels, split panes, dividers, avatars, and resizable, reorderable tiles.",
- "hash": "90d056d698e4fc65bb4ba6b35bb794c3",
+ "summary": "Create layouts with expandable panels, cards, tabs, steppers, split panes, carousels, breadcrumbs, dividers, avatars, and tile managers.",
+ "hash": "ea6f9d99e6ff6a4edb653f2bb7e70b22",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -192,8 +192,8 @@
"groupKey": "Layouts > Dock Manager",
"section": "Layouts",
"groupLabel": "Dock Manager",
- "summary": "Configure content, split, tab group, document, and floating panes with runtime docking, persistence, customization, localization, and Electron window dragging",
- "hash": "68a2e9be1884303f50aa8e7d6002a45c",
+ "summary": "Define and update layouts, configure pane types and embedded content, and manage docking, floating, dragging, resizing, focus, visibility, and keyboard navigation.",
+ "hash": "ac1297df1633c2567823633e3ca1f01a",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -201,8 +201,8 @@
"groupKey": "Maps",
"section": "Maps",
"groupLabel": "",
- "summary": "Configure maps with symbol, bubble, density, contour, area, polygon, and polyline series, including coordinate binding, triangulation, scales, shapefiles, and navigation",
- "hash": "cf8a7c969c5b9d65eb923fac75babbfb",
+ "summary": "Map geographic points, surfaces, contours, density, bubbles, symbols, polygons, and polylines using data binding, color scales, triangulation, and shapefiles",
+ "hash": "dc678eb65b0b8a7a7faa54b4097ca955",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -210,8 +210,8 @@
"groupKey": "Maps > Geographic Map Features",
"section": "Maps",
"groupLabel": "Geographic Map Features",
- "summary": "Display and bind geographic data from CSV, JSON, models, and shape files; overlay map series, imagery, navigation, shape styling, and world-data utilities.",
- "hash": "45b576c449a12fc3351dfd34a609b816",
+ "summary": "Display geographic data with map series, imagery backgrounds, CSV, JSON, model, and shapefile binding, navigation, shape styling, heat maps, and geographic utilities.",
+ "hash": "ff9bffc381e9d0aa9fd62a93d62d1540",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -219,8 +219,8 @@
"groupKey": "Menus",
"section": "Menus",
"groupLabel": "",
- "summary": "Toolbars cover built-in/custom actions, icons, orientation, color editing; navbars cover navigation, while drawers cover items, mini mode, positioning, styling.",
- "hash": "7aee27018ba3bfd01b239015d00da53f",
+ "summary": "Covers Toolbar chart links, actions, custom icons, orientation and color editing; navbar titles/icons/styles; Navigation Drawer integration, position/visibility",
+ "hash": "52ba8b7db5bc480f3910475a95241770",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -228,8 +228,8 @@
"groupKey": "Notifications",
"section": "Notifications",
"groupLabel": "",
- "summary": "Display banners, snackbars, toast notifications, and modal dialogs with custom content, actions, events, visibility controls, forms, and styling.",
- "hash": "4087b3a0196f983f3dfce3ffc14c334b",
+ "summary": "Display and customize banners, snackbars, toasts, and modal dialogs with messages, actions, timing, visibility, closing behavior, events, registration, and CSS parts.",
+ "hash": "3d7e8c105ab215b85b7e8a9aae881895",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -237,8 +237,8 @@
"groupKey": "Scheduling",
"section": "Scheduling",
"groupLabel": "",
- "summary": "Covers calendar, date picker, and date range picker setup, selection, formatting, localization, validation, ranges, keyboard navigation, events, and styling.",
- "hash": "98309a8283b0c7608d7c7176e566c549",
+ "summary": "Covers Calendar, Date Picker, and date range picker selection modes, input modes, views, date restrictions, localization, validation, slots, and styling.",
+ "hash": "5480f089bcdb7f8bd9c4b61b039c32cb",
"model": "gpt-5.6-luna",
"promptVersion": 1
},
@@ -246,8 +246,8 @@
"groupKey": "Styling & Themes",
"section": "Styling & Themes",
"groupLabel": "",
- "summary": "Load and switch Bootstrap, Material, Fluent, and Indigo themes; customize palettes, typography, elevation, roundness, size, spacing, CSS parts, and Tailwind utilities",
- "hash": "4a7c77749dbab952d29ae356be467b20",
+ "summary": "Load and switch themes at runtime; customize palettes, typography, elevation, CSS variables; style components with utility-first styles and accessible dark themes",
+ "hash": "ddf8a1725b5655bd3efb9baf2968a719",
"model": "gpt-5.6-luna",
"promptVersion": 1
}
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/db/igniteui-docs.db b/packages/igniteui-mcp/igniteui-doc-mcp/db/igniteui-docs.db
index 53ef147c0..4546920f6 100644
Binary files a/packages/igniteui-mcp/igniteui-doc-mcp/db/igniteui-docs.db and b/packages/igniteui-mcp/igniteui-doc-mcp/db/igniteui-docs.db differ
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/accordion.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/accordion.md
index 4042e3b11..f835bb1bc 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/accordion.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/accordion.md
@@ -1,354 +1,348 @@
---
-title: Angular Accordion Component – Fully-featured collapsible panels - Infragistics - MIT license
-_description: Angular Accordion is used to build vertical expandable panels in accordion menu. Check how to do it with Ignite UI for Angular accordion component.
-_keywords: angular accordion, angular accordion component, angular accordion example, ignite ui for angular, angular UI components, infragistics
-_license: MIT
+title: "Angular Accordion Component | Layouts | Infragistics"
+description: "Angular Accordion is a layout component for organizing expandable and collapsible content panels in a vertical container."
+keywords: "Angular Accordion, accordion component, expandable panels, Ignite UI for Angular, Infragistics"
+license: MIT
+last_updated: "2026-07-30"
+mentionedTypes: ["Accordion", "ExpansionPanel"]
+namespace: Infragistics.Controls
+relatedComponents: ["ExpansionPanel"]
+llms:
+ description: "The Ignite UI for Angular Accordion helps developers group related content into expandable and collapsible panels inside a vertical layout."
_tocName: Accordion
---
+# Accordion Component
-# Angular Accordion Component Overview
+The Ignite UI for Angular Accordion is a layout component for organizing expandable content panels in a single vertical container.
-## What is Angular Accordion?
-
-The Angular Accordion is a GUI component for building vertical expandable panels with clickable headers and associated content sections, displayed in a single container. The accordion is commonly used to reduce the need of scrolling across multiple sections of content on a single page. It offers keyboard navigation and API to control the underlying panels' expansion state.
-
-Users are enabled to interact and navigate among a list of items, such as thumbnails or labels. Each one of those items can be toggled (expanded or collapsed) in order to reveal the containing information. Depending on the configuration, there can be a single or multiple expanded items at a time.
-
-## Angular Accordion Example
-
-The following is a basic Angular Accordion example of a FAQ section. It operates as an accordion, with individually working sections. You can toggle each text block with a single click, while expanding multiple panels at the same time. This way you can read information more easily, without having to go back and forth between an automatically expanding and collapsing panel, which conceals the previously opened section every time.
-
-In it, you can see how to define an `igx-accrodion` and its [expansion panels](mcp:get_api_reference?platform=angular&component=IgxExpansionPanelComponent). The sample also demonstrates the two types of expansion behavior. The switch button sets the [singleBranchExpand](mcp:get_api_reference?platform=angular&component=IgxAccordionComponent&member=singleBranchExpand) property to toggle between single and multiple branches to be expanded at a time.
+## Live Demo
```typescript
-import { Component } from '@angular/core';
+import { Component, ChangeDetectionStrategy } from '@angular/core';
import { IgxSwitchComponent } from 'igniteui-angular/switch';
import { IgxAccordionComponent } from 'igniteui-angular/accordion';
-import { IgxExpansionPanelBodyComponent, IgxExpansionPanelComponent, IgxExpansionPanelHeaderComponent, IgxExpansionPanelTitleDirective } from 'igniteui-angular/expansion-panel';
+import { IgxExpansionPanelBodyComponent, IgxExpansionPanelComponent, IgxExpansionPanelDescriptionDirective, IgxExpansionPanelHeaderComponent, IgxExpansionPanelTitleDirective } from 'igniteui-angular/expansion-panel';
import { FormsModule } from '@angular/forms';
@Component({
- selector: 'app-accordion-sample-1',
- styleUrls: ['./accordion-sample-1.component.scss'],
- templateUrl: './accordion-sample-1.component.html',
- imports: [IgxSwitchComponent, FormsModule, IgxAccordionComponent, IgxExpansionPanelComponent, IgxExpansionPanelHeaderComponent, IgxExpansionPanelTitleDirective, IgxExpansionPanelBodyComponent]
+ selector: 'app-accordion-overview',
+ styleUrls: ['./accordion-overview.component.scss'],
+ templateUrl: './accordion-overview.component.html',
+ changeDetection: ChangeDetectionStrategy.Eager,
+ imports: [IgxSwitchComponent, FormsModule, IgxAccordionComponent, IgxExpansionPanelComponent, IgxExpansionPanelHeaderComponent, IgxExpansionPanelTitleDirective, IgxExpansionPanelDescriptionDirective, IgxExpansionPanelBodyComponent]
})
-export class AccordionSample1Component {
+export class AccordionOverviewComponent {
public singleBranchExpand = false;
}
```
```html
-Single Branch Expand
-
-
-
-
-
- What has changed about subscription and pricing model?
-
-
-
- We have moved to a subscription-based pricing model for all our developer tools. This makes it easier
- for you to manage your license subscriptions and allows us to provide a better level of service for you.
-
- We updated our pricing and packages to provide you with flexible options and the best value. This
- includes Ignite UI (formerly Ignite UI for
- JavaScript) which includes all of our JavaScript framework
- components for web development, including: Angular, ASP.NET (Core and MVC), Blazor, JQuery, React and
- Web Components), as well as Infragistics Professional, Infragistics Ultimate, our Ultimate UI products.
-
- We also offer multi-year subscriptions options with a built-in discount, so you can see the value up
- front. With these updates we are confident that we are providing the best platforms and the best price.
-
-
-
-
- Who will the updated changes impact?
-
-
-
- The license updates will impact all new and current customers using Ignite UI, Infragistics Professional
- and Infragistics Ultimate. Specifically, we have also made updates to our product and packaging for
- Ignite UI for JavaScript, Ignite UI for Angular, Ignite UI for React and Ignite UI for Web components.
- For more information, please refer to this blog:
-
- Announcement:
- Changes to Ignite UI Product & Packaging
-
- The pricing has been updated for all products and packages. So, all new or additional licenses will be
- sold based on our new pricing and packages. All existing license agreements will be honored and renewed
- based upon the current agreement.
-
-
-
-
-
- What is the difference between your old model and your current subscription
- model
- for Ignite UI?
-
-
- For Ignite UI customers, we are moving away from NPM for licensed packages. The current NPM packages
- will be replaced with packages that include a “Trial Version” watermark. Licensed packages for Ignite UI
- will be available from our cloud hosted ProGet server.
-
- For more information, please refer to this article:
-
- Moving
- from Trial to Licensed Ignite UI NPM Packages
-
-
-
-
-
- What happens if I don't renew my subscription?
-
-
- Any unlicensed or trial versions of Ignite UI for Angular, React and Web Components will now include
- this watermark.
-
-
-
-
- If I don't renew my subscription will
- I still have access to previous versions of Infragistics products?
-
-
-
- Any version of Infragistics software which you have downloaded can continue to be used perpetually.
- Access to download any new or previous versions through our customer portal and package feeds will
- require maintaining an active subscription by continuing to renew it.
-
-
-
-
+
Manage payment methods, billing contacts, and invoice delivery options.
+
+
+
+
+
```
```scss
-$ep-sample-border: 1px solid rgba(174, 174, 174, 0.25);
-
-.sample-wrapper {
+.accordion-sample {
+ width: 100%;
+ height: 100%;
overflow-y: auto;
- max-height: 380px;
- margin: 8px;
}
-igx-switch {
- padding: 16px;
+.accordion-content {
+ width: min(720px, 100%);
+ margin: 0 auto;
+ padding: 24px;
+ box-sizing: border-box;
}
-igx-expansion-panel {
- border: $ep-sample-border;
+.accordion-toolbar {
+ display: flex;
+ justify-content: flex-end;
+ margin-bottom: 12px;
}
-```
-
-
-## Getting Started with Ignite UI for Angular Accordion
+igx-accordion {
+ display: block;
+ border: 1px solid var(--ig-gray-300);
+ border-radius: 4px;
+}
+```
-To get started with the Ignite UI for Angular Accordion component, first you need to install Ignite UI for Angular. In an existing Angular application, type the following command:
+## Anatomy
-```cmd
-ng add igniteui-angular
-```
+The accordion structure consists of an accordion container with one or more expansion panel children.
-For a complete introduction to the Ignite UI for Angular, read the [_getting started_](general/getting-started.md) topic.
+**Angular Accordion anatomy anatomy:** The accordion anatomy labels the accordion host and child expansion panel structure.
-The next step is to import the `IgxAccordionModule` in your **app.module.ts** file.
+1. Header: displays the section title and description and can be clicked to reveal or hide the panel's content
+2. Icon: indicates if the panel is open or closed. Could be placed on the left or on the right side of the header
+3. Panel: the section of content linked to an accordion header
-```typescript
-// app.module.ts
+
-@NgModule({
- ...
- imports: [..., IgxAccordionModule],
- ...
-})
-export class AppModule {}
+```text
+igx-accordion // host - manages a set of expansion panels
+└─ igx-expansion-panel // child panel
+ ├─ igx-expansion-panel-header // panel header container
+ │ ├─ igx-expansion-panel-title // panel header title
+ │ ├─ igx-expansion-panel-description // optional header description
+ │ └─ igx-expansion-panel-icon // optional custom expand/collapse icon
+ └─ igx-expansion-panel-body // expandable panel content
```
-Alternatively, as of `16.0.0` you can import the `IgxAccordionComponent` as a standalone dependency, or use the [`IGX_ACCORDION_DIRECTIVES`](https://github.com/IgniteUI/igniteui-angular/blob/master/projects/igniteui-angular/accordion/src/accordion/public_api.ts) token to import the component and all of its supporting components and directives.
+## Getting Started
-```typescript
-// home.component.ts
+Use the accordion with the Ignite UI for Angular version installed in your Angular application. Complete the shared [Getting Started](../general/getting-started.md) topic before importing the standalone accordion directives.
-...
+Import the standalone accordion directives before you use the component.
+
+```ts
+import { Component } from '@angular/core';
import { IGX_ACCORDION_DIRECTIVES } from 'igniteui-angular/accordion';
-// import { IGX_ACCORDION_DIRECTIVES } from '@infragistics/igniteui-angular'; for licensed package
@Component({
- selector: 'app-home',
- template: `
-
-
-
- Title Panel 1
-
-
- Content Panel 1
-
-
-
- `,
- styleUrls: ['home.component.scss'],
- standalone: true,
- imports: [IGX_ACCORDION_DIRECTIVES]
- /* or imports: [IgxAccordionComponent] */
+ selector: 'app-accordion',
+ imports: [IGX_ACCORDION_DIRECTIVES],
+ templateUrl: './accordion.component.html',
})
-export class HomeComponent {}
+export class AccordionComponent {}
```
-Now that you have the Ignite UI for Angular Accordion module or directives imported, you can start with a basic configuration of the `igx-accordion` and its panels.
-
-## Using the Angular Accordion Component
+## Usage
-Each section in the [IgxAccordionComponent](mcp:get_api_reference?platform=angular&component=IgxAccordionComponent) is defined using an [expansion panel](mcp:get_api_reference?platform=angular&component=IgxExpansionPanelComponent).
-Panels provide [disabled](mcp:get_api_reference?platform=angular&component=IgxExpansionPanelHeaderComponent&member=disabled), [collapsed](mcp:get_api_reference?platform=angular&component=IgxExpansionPanelComponent&member=collapsed) and [animationSettings](mcp:get_api_reference?platform=angular&component=IgxExpansionPanelComponent&member=animationSettings) properties, which give you the ability to configure the states of the panel as per your requirement.
+Build the accordion by placing one or more [`IgxExpansionPanel`](mcp:get_api_reference?platform=angular&component=IgxExpansionPanelComponent) components inside an [`IgxAccordion`](mcp:get_api_reference?platform=angular&component=IgxAccordionComponent) container.
-### Declaring an accordion
+### Single Expansion
-The accordion wraps all [`igx-expansion-panel`s](mcp:get_api_reference?platform=angular&component=IgxExpansionPanelComponent) declared inside it.
+Set [`singleBranchExpand`](mcp:get_api_reference?platform=angular&component=IgxAccordionComponent&member=singleBranchExpand) to switch between one-open-panel behavior and multiple-open-panel behavior.
```html
-
-
-
- Title Panel 1
-
-
- Content Panel 1
-
-
-
-
- Title Panel 2
-
-
- Content Panel 2
-
-
+
+
+
+ Title Panel 1
+
+
+
Content Panel 1
+
+
+
+
+ Title Panel 2
+
+
+
Content Panel 2
+
+
```
-Using the [panels](mcp:get_api_reference?platform=angular&component=IgxAccordionComponent&member=panels) accessor you can get a reference to the collection containing all [expansion panels](mcp:get_api_reference?platform=angular&component=IgxExpansionPanelComponent) children of the `igx-accordion`.
+### Programmatic Expansion
-```typescript
-@ViewChild('accordion', { static: true })
-public accordion!: IgxAccordionComponent;
-
-this.accordion.panels;
-```
+Use [`collapseAll()`](mcp:get_api_reference?platform=angular&component=IgxAccordionComponent&member=collapseAll) and [`expandAll()`](mcp:get_api_reference?platform=angular&component=IgxAccordionComponent&member=expandAll) to collapse or expand the accordion panels programmatically.
-As demonstrated above, the [singleBranchExpand](mcp:get_api_reference?platform=angular&component=IgxAccordionComponent&member=singleBranchExpand) property gives you the ability to set whether single or multiple panels can be expanded at a time.
+**Note:**
+Calling [`expandAll()`](mcp:get_api_reference?platform=angular&component=IgxAccordionComponent&member=expandAll) expands only the last enabled panel when [`singleBranchExpand`](mcp:get_api_reference?platform=angular&component=IgxAccordionComponent&member=singleBranchExpand) is `true`.
-### Angular Accordion Animations
-Angular Accordion supports animations for both expanding and collapsing actions of the panels. Animation behavior can be customized. Normally, animations can be set for each expansion panel individually. However, it could also be applied to all panels at once on [IgxAccordionComponent](mcp:get_api_reference?platform=angular&component=IgxAccordionComponent) level. This gives users the ability to disable animations for all sections at once via the animations property of the [IgxAccordionComponent](mcp:get_api_reference?platform=angular&component=IgxAccordionComponent).
+```html
+
+
-With regards to animation, you have two options. First, you could set the `animationSettings` property on the accordion component:
+
+
+
+ Title Panel 1
+
+
+
-As you can see, we are using [`slideInLeft`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/animations#mixin-slide-in-left) and [`slideOutRight`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/animations#mixin-slide-out-right) animations from our [**inbuilt suite of animations**](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/animations) to make the component content appear from the left side and disappear to the right when collapsing the content. We further customize the animations by overriding some of the animations' parameters.
+
+
+
+ Billing
+ Invoices and payment settings
+
+
+
Review invoices, update payment methods, and manage billing contacts.
Choose the lowest rating you want to include in the results.
+
+ @for (ratingOption of ratingOptions; track ratingOption) {
+
+ {{ ratingOption }} stars or more
+
+ @for (star of [].constructor(ratingOption); track $index) {
+ star
+ }
+
+
+ }
+
+
+
+
+
+
+ Arrival Time{{ time }}
+ Set the latest arrival time
+
+
+
Pick the latest acceptable arrival time for your trip.
+
+
+
+
+
+
+
+
```
```scss
-$ep-sample-border: 1px solid rgba(174, 174, 174, 0.25);
-
-.sample-wrapper {
+.accordion-sample {
+ width: 100%;
+ height: 100%;
overflow-y: auto;
- max-height: 530px;
- margin: 8px;
}
-igx-slider {
- margin: 24px;
+.accordion-content {
+ width: min(760px, 100%);
+ margin: 0 auto;
+ padding: 24px;
+ box-sizing: border-box;
+}
+
+igx-accordion {
+ display: block;
+ border: 1px solid var(--ig-gray-300);
+ border-radius: 4px;
+}
+
+.panel-description {
+ margin: 0 0 16px;
+ color: var(--ig-gray-700);
}
.categories-container {
- display: flex;
- flex-flow: column nowrap;
+ display: grid;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ gap: 8px 24px;
+ max-width: 520px;
}
-igx-checkbox,
-igx-radio {
+.category-option,
+.rating-option {
margin: 4px 0;
}
-igx-expansion-panel {
- border: $ep-sample-border;
+.range-summary {
+ display: flex;
+ justify-content: space-between;
+ max-width: 560px;
+ margin-bottom: 4px;
+ font-weight: 600;
+}
+
+.cost-slider {
+ max-width: 560px;
+ margin: 8px 0 0;
+}
+
+.rating-options {
+ display: grid;
+ gap: 8px;
+ max-width: 360px;
}
-```
-
+.rating-control {
+ flex-direction: row;
+}
+
+.time-input {
+ max-width: 260px;
+}
+
+.size-small {
+ --ig-size: var(--ig-size-small);
+}
+```
-### Nested Angular Accordions Scenario
+### Nest Accordions
-In the following Angular accordion example, we are going to create a complex FAQ section in order to illustrate how you can go about this common application scenario. In the sample nested [IgxAccordionComponent](mcp:get_api_reference?platform=angular&component=IgxAccordionComponent) is achieved by adding an [accordion](mcp:get_api_reference?platform=angular&component=IgxAccordionComponent) inside the body of an [expansion panel](mcp:get_api_reference?platform=angular&component=IgxExpansionPanelComponent).
+Nest an accordion inside an expansion panel when you need a second level of grouped disclosure.
```html
-
-
-
- Title Panel 1
-
-
-
-
-
- Title Nested Panel 1
-
-
- Content Nested Panel 1
-
-
- ...
-
-
-
- ...
+
+
+
+ Account Settings
+
+
+
+
+
+ Notifications
+
+
+
Configure email and product notification preferences.
+
+
+
+
+
```
-You can see the result below.
-
```typescript
-import { Component } from '@angular/core';
-import { IgxSwitchComponent } from 'igniteui-angular/switch';
-import { IgxAccordionComponent } from 'igniteui-angular/accordion';
-import { IgxExpansionPanelBodyComponent, IgxExpansionPanelComponent, IgxExpansionPanelHeaderComponent, IgxExpansionPanelTitleDirective } from 'igniteui-angular/expansion-panel';
+import { ChangeDetectionStrategy, Component } from '@angular/core';
import { FormsModule } from '@angular/forms';
+import { IgxAccordionComponent } from 'igniteui-angular/accordion';
+import { IgxExpansionPanelBodyComponent, IgxExpansionPanelComponent, IgxExpansionPanelDescriptionDirective, IgxExpansionPanelHeaderComponent, IgxExpansionPanelTitleDirective } from 'igniteui-angular/expansion-panel';
+import { IgxSwitchComponent } from 'igniteui-angular/switch';
@Component({
- selector: 'app-accordion-sample-2',
- styleUrls: ['./accordion-sample-2.component.scss'],
- templateUrl: './accordion-sample-2.component.html',
- imports: [IgxSwitchComponent, FormsModule, IgxAccordionComponent, IgxExpansionPanelComponent, IgxExpansionPanelHeaderComponent, IgxExpansionPanelTitleDirective, IgxExpansionPanelBodyComponent]
+ selector: 'app-accordion-nested-scenario',
+ styleUrls: ['./accordion-nested-scenario.component.scss'],
+ templateUrl: './accordion-nested-scenario.component.html',
+ changeDetection: ChangeDetectionStrategy.Eager,
+ imports: [FormsModule, IgxSwitchComponent, IgxAccordionComponent, IgxExpansionPanelComponent, IgxExpansionPanelHeaderComponent, IgxExpansionPanelTitleDirective, IgxExpansionPanelDescriptionDirective, IgxExpansionPanelBodyComponent]
})
-export class AccordionSample2Component {
+export class AccordionNestedScenarioComponent {
public singleBranchExpand = false;
}
```
```html
-Single Branch Expand
-
+
+
+
+ Single Expand
+
-
-
-
-
- What has changed about subscription and pricing model?
-
-
-
- We have moved to a subscription-based pricing model for all our developer tools. This makes it easier
- for you to manage your license subscriptions and allows us to provide a better level of service for you.
-
- We updated our pricing and packages to provide you with flexible options and the best value. This
- includes Ignite UI (formerly Ignite UI for
- JavaScript) which includes all of our JavaScript framework
- components for web development, including: Angular, ASP.NET (Core and MVC), Blazor, JQuery, React and
- Web Components), as well as Infragistics Professional, Infragistics Ultimate, our Ultimate UI products.
-
- We also offer multi-year subscriptions options with a built-in discount, so you can see the value up
- front. With these updates we are confident that we are providing the best platforms and the best price.
-
-
-
-
-
- Who will the updated changes impact?
-
-
-
- The license updates will impact all new and current customers using Ignite UI, Infragistics Professional
- and Infragistics Ultimate. Specifically, we have also made updates to our product and packaging for
- Ignite UI for JavaScript, Ignite UI for Angular, Ignite UI for React and Ignite UI for Web components.
- For more information, please refer to this blog:
-
- Announcement:
- Changes to Ignite UI Product & Packaging
-
- The pricing has been updated for all products and packages. So, all new or additional licenses will be
- sold based on our new pricing and packages. All existing license agreements will be honored and renewed
- based upon the current agreement.
-
-
-
-
-
- What is the difference between your old model and your current subscription model for Ignite UI?
-
-
-
- For Ignite UI customers, we are moving away from NPM for licensed packages. The current NPM packages
- will be replaced with packages that include a “Trial Version” watermark. Licensed packages for Ignite UI
- will be available from our cloud hosted ProGet server.
-
- For more information, please refer to this article:
-
- Moving
- from Trial to Licensed Ignite UI NPM Packages
-
-
-
-
-
- Common questions about renewal.
-
-
-
-
-
-
-
- What happens if I don't renew my subscription?
-
-
-
- Any unlicensed or trial versions of Ignite UI for Angular, React and Web Components will now
- include
- this watermark.
-
-
-
-
-
- If I don't renew my subscription will I still have access to previous versions of
- Infragistics products?
-
-
-
- Any version of Infragistics software which you have downloaded can continue to be used
- perpetually.
- Access to download any new or previous versions through our customer portal and package
- feeds will
- require maintaining an active subscription by continuing to renew it.
-
-
-
-
-
- Will I be automatically charged for my renewal/ Can I be automatically charged for
- renewal?
-
-
-
- Any new subscriptions purchased online, via our eCommerce system, will renew automatically.
- Subscription
- renewal can be canceled, at any time, before the next automatic renewal date. Subscriptions
- purchased
- directly from Infragistics or Infragistics' partners are subject to the renewal terms that
- were agreed
- upon as part of that purchase.
-
-
-
-
-
-
-
-
- I split my work across two computers. Can I install on both using my single-user license?
-
-
-
- The Infragistics Ultimate license is tied to the user, and not the computer. That means you're welcome
- to install and use Ignite UI, Infragistics Professional, and Infragistics Ultimate on any computer you
- use. However, if we notice a large number of activations using the same license, we may contact you to
- verify this behavior.
-
-
-
-
-
- I used up my trial for an earlier version of Infragistics Ultimate. Can I start a new trial when a
- major
- version is released?
-
-
-
- Yes! If you have tried a previous version in the past, and used up your 30-day trial, you can try the
- next major version for another 30 days! You can do this in the following two ways:
-
-
-
If you have days remaining in your 30-day trial period for the current version (e.g., the
- Version 15.1 Volume Release), use the Check for Update option inside the Platform Installer or
- your account. You will be able to start a fresh trial for the next major version (e.g., 20.1
- Volume Release)
-
If you have used up the 30-day trial for the previous major version (e.g., the 19.2 Volume
- Release), simply download and install Infragistics Ultimate from our website (This will also allow you
- to start a new trial.)
Manage subscription details, billing contacts, and invoice delivery.
+
+
+
+
+
```
```scss
-$ep-sample-border: 1px solid rgba(174, 174, 174, 0.25);
-
-.sample-wrapper {
+.accordion-sample {
+ width: 100%;
+ height: 100%;
overflow-y: auto;
- max-height: 470px;
- margin: 8px;
}
-igx-switch {
- padding: 16px;
+.accordion-content {
+ width: min(760px, 100%);
+ margin: 0 auto;
+ padding: 24px;
+ box-sizing: border-box;
}
-.nested-accordion {
- margin: 10px 16px;
+.accordion-toolbar {
+ display: flex;
+ justify-content: flex-end;
+ margin-bottom: 12px;
}
-igx-expansion-panel {
- border: $ep-sample-border;
+igx-accordion {
+ display: block;
+ border: 1px solid var(--ig-gray-300);
+ border-radius: 4px;
}
```
-
+### Do/Don't
+
+**When to use:** Use the accordion when you need to organize secondary content, FAQ entries, settings groups, or other related vertical sections that users expand on demand. Keep panel titles short and descriptive, and enable single-expansion behavior when users should focus on one section at a time.
-## Keyboard Navigation
+**When not to use:** Use the [Expansion Panel](../expansion-panel.md) when you need a single standalone expandable section instead of a coordinated container that manages multiple panels together. Do not use an accordion to hide essential primary content or to group unrelated sections.
-Keyboard navigation in the Ignite UI for Angular Accordion provides a rich variety of keyboard interactions to the end-user. This functionality is enabled by default and allows end-users to easily navigate through the panels.
-The [IgxAccordionComponent](mcp:get_api_reference?platform=angular&component=IgxAccordionComponent) navigation is compliant with W3C accessibility standards and convenient to use.
+
+
+
+
+
Do
+
Don't
+
+
+
+
+
+
+
+
+
+
-**Key Combinations**
+## Properties
-- Tab - moves the focus to the first(if the focus is before accordion)/next panel
-- Shift + Tab - moves the focus to the last(if the focus is after accordion)/previous panel
-- Arrow Down - moves the focus to the panel below
-- Arrow Up - moves the focus to the panel above
-- Alt + Arrow Down - expands the focused panel in the accordion
-- Alt + Arrow Up - collapses the focused panel in the accordion
-- Shift + Alt + Arrow Down - expands all enabled panels(if singleBranchExpand is set to true expands the last enabled panel)
-- Shift + Alt + Arrow Up - collapses all enabled panels
-- Home - navigates to the FIRST enabled panel in the accordion
-- End - navigates to the LAST enabled panel in the accordion
+The accordion exposes container-level controls; panel-specific state is configured on each [`IgxExpansionPanel`](mcp:get_api_reference?platform=angular&component=IgxExpansionPanelComponent).
+
+| Name | Type | Default | Description |
+| -- | -- | -- | -- |
+| [`singleBranchExpand`](mcp:get_api_reference?platform=angular&component=IgxAccordionComponent&member=singleBranchExpand) | `boolean` | `false` | Controls whether one or multiple panels can stay expanded at the same time. |
+| [`panels`](mcp:get_api_reference?platform=angular&component=IgxAccordionComponent&member=panels) | `QueryList` | n/a | Returns the collection of child expansion panels in the accordion. |
+
+## Methods
+
+Use the accordion methods when you need to change panel state from your code.
+
+| Name | Description |
+| -- | -- |
+| [`expandAll`](mcp:get_api_reference?platform=angular&component=IgxAccordionComponent&member=expandAll) | Expands the available panels. |
+| [`collapseAll`](mcp:get_api_reference?platform=angular&component=IgxAccordionComponent&member=collapseAll) | Collapses the available panels. |
## Styling
-The [`accordion`](mcp:get_api_reference?platform=angular&component=IgxAccordionComponent) serves only as a container for the underlying [`panels`](mcp:get_api_reference?platform=angular&component=IgxExpansionPanelComponent). Styles can be applied directly through the panel's theme, as described in the [`styling section of the IgxExpansionPanel topic`](expansion-panel.md#styling).
+Style the Angular accordion with CSS parts and Ignite UI theme variables.
-By design, there is a margin set to the expanded panels, in case that they are positioned within an `igx-accordion`. In order to modify it there is a property exposed inside the igx-expansion-panel theme.
-In order to take advantage of the functions exposed by the theming engine, we have to import the `index` file in our style file:
+```typescript
+import { ChangeDetectionStrategy, Component } from '@angular/core';
+import { IgxAccordionComponent } from 'igniteui-angular/accordion';
+import { IgxExpansionPanelBodyComponent, IgxExpansionPanelComponent, IgxExpansionPanelDescriptionDirective, IgxExpansionPanelHeaderComponent, IgxExpansionPanelTitleDirective } from 'igniteui-angular/expansion-panel';
+@Component({
+ selector: 'app-accordion-styling',
+ styleUrls: ['./accordion-styling.component.scss'],
+ templateUrl: './accordion-styling.component.html',
+ changeDetection: ChangeDetectionStrategy.Eager,
+ imports: [IgxAccordionComponent, IgxExpansionPanelComponent, IgxExpansionPanelHeaderComponent, IgxExpansionPanelTitleDirective, IgxExpansionPanelDescriptionDirective, IgxExpansionPanelBodyComponent]
+})
+export class AccordionStylingComponent {}
+```
+```html
+
+
+
+
+
+ Getting Started
+ Setup and onboarding
+
+
+
Find installation steps, project setup guidance, and resources for building your first application.
Configure password rules, multi-factor authentication, and recovery options for your team.
+
+
+
+
+
+```
```scss
@use "igniteui-angular/theming" as *;
-// IMPORTANT: Prior to Ignite UI for Angular version 13 use:
-// @import '~igniteui-angular/lib/core/styles/themes/index';
+.accordion-sample {
+ width: 100%;
+ height: 100%;
+ overflow-y: auto;
+}
+
+.accordion-content {
+ width: min(720px, 100%);
+ margin: 0 auto;
+ padding: 24px;
+ box-sizing: border-box;
+}
+
+igx-accordion {
+ display: block;
+ border: 1px solid var(--ig-gray-300);
+ border-radius: 4px;
+}
+
+$custom-panel-theme: expansion-panel-theme(
+ $header-background: var(--ig-gray-100),
+ $header-focus-background: var(--ig-primary-50),
+ $body-background: var(--ig-gray-50),
+ $body-color: var(--ig-gray-700),
+ $header-title-color: var(--ig-gray-900),
+ $header-description-color: var(--ig-gray-900),
+ $header-icon-color: var(--ig-primary-500),
+ $border-radius: 4px
+);
+
+:host {
+ @include tokens($custom-panel-theme);
+}
+
+::ng-deep {
+ .igx-expansion-panel--expanded .igx-expansion-panel__header-inner {
+ background-color: var(--ig-primary-50);
+ }
+
+ .igx-expansion-panel--expanded .igx-expansion-panel__header-title,
+ .igx-expansion-panel--expanded .igx-expansion-panel__header-description {
+ color: var(--ig-primary-700);
+ }
+
+ .igx-expansion-panel__header-title {
+ font-weight: 600;
+ }
+}
```
-Following the simplest approach, we create a new theme that extends the [`expansion-panel-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-expansion-panel-theme) and accepts a `$header-background`, `$body-color` and `$expanded-margin` parameters. The theme automatically assigns foreground colors, either black or white, based on which provides better contrast with the specified backgrounds.
+### Sass Theming
+
+Use the `expansion-panel-theme` function to create a custom expansion panel theme, then include the generated tokens in the component stylesheet.
```scss
+@use "igniteui-angular/theming" as *;
+
$custom-panel-theme: expansion-panel-theme(
$header-background: #011627,
$body-background: #f0ece7,
$expanded-margin: 10px
);
-```
-The last step is to include the component's theme.
-
-```scss
:host {
- @include tokens($custom-panel-theme);
+ @include tokens($custom-panel-theme);
}
```
-### Demo
+### Styling Variables
+
+| Variable | What it changes |
+| -- | -- |
+| `$header-background` | The panel header background color. |
+| `$header-focus-background` | The panel header background color when focused. |
+| `$header-title-color` | The panel header title text color. |
+| `$header-description-color` | The panel header description text color. |
+| `$header-icon-color` | The panel header icon color. |
+| `$body-background` | The panel body background color. |
+| `$body-color` | The panel body text color. |
+| `$expanded-margin` | The margin applied to expanded panels when they are placed inside an accordion. |
+| `$border-radius` | The expansion panel border radius. |
+
+### Styling with Tailwind
+
+Use Tailwind utility classes with CSS part selectors when you want to keep the styling close to the component markup.
```typescript
-import { Component } from '@angular/core';
+import { ChangeDetectionStrategy, Component } from '@angular/core';
import { IgxAccordionComponent } from 'igniteui-angular/accordion';
-import { IgxExpansionPanelBodyComponent, IgxExpansionPanelComponent, IgxExpansionPanelHeaderComponent, IgxExpansionPanelTitleDirective } from 'igniteui-angular/expansion-panel';
-import { FormsModule } from '@angular/forms';
+import { IgxExpansionPanelBodyComponent, IgxExpansionPanelComponent, IgxExpansionPanelDescriptionDirective, IgxExpansionPanelHeaderComponent, IgxExpansionPanelTitleDirective } from 'igniteui-angular/expansion-panel';
@Component({
- selector: 'app-accordion-style',
- styleUrls: ['./accordion-style.component.scss'],
- templateUrl: './accordion-style.component.html',
- imports: [FormsModule, IgxAccordionComponent, IgxExpansionPanelComponent, IgxExpansionPanelHeaderComponent, IgxExpansionPanelTitleDirective, IgxExpansionPanelBodyComponent]
+ selector: 'app-accordion-tailwind-styling',
+ styleUrls: ['./accordion-tailwind-styling.component.scss'],
+ templateUrl: './accordion-tailwind-styling.component.html',
+ changeDetection: ChangeDetectionStrategy.Eager,
+ imports: [IgxAccordionComponent, IgxExpansionPanelComponent, IgxExpansionPanelHeaderComponent, IgxExpansionPanelTitleDirective, IgxExpansionPanelDescriptionDirective, IgxExpansionPanelBodyComponent]
})
-export class AccordionStyleComponent {
- public singleBranchExpand = false;
-}
+export class AccordionTailwindStylingComponent {}
```
```html
-
-
-
-
-
- What has changed about subscription and pricing model?
-
-
-
- We have moved to a subscription-based pricing model for all our developer tools. This makes it easier
- for you to manage your license subscriptions and allows us to provide a better level of service for you.
-
- We updated our pricing and packages to provide you with flexible options and the best value. This
- includes Ignite UI (formerly Ignite UI for
- JavaScript) which includes all of our JavaScript framework
- components for web development, including: Angular, ASP.NET (Core and MVC), Blazor, JQuery, React and
- Web Components), as well as Infragistics Professional, Infragistics Ultimate, our Ultimate UI products.
-
- We also offer multi-year subscriptions options with a built-in discount, so you can see the value up
- front. With these updates we are confident that we are providing the best platforms and the best price.
-
-
-
-
-
- Who will the updated changes impact?
-
-
-
- The license updates will impact all new and current customers using Ignite UI, Infragistics Professional
- and Infragistics Ultimate. Specifically, we have also made updates to our product and packaging for
- Ignite UI for JavaScript, Ignite UI for Angular, Ignite UI for React and Ignite UI for Web components.
- For more information, please refer to this blog:
-
- Announcement:
- Changes to Ignite UI Product & Packaging
-
- The pricing has been updated for all products and packages. So, all new or additional licenses will be
- sold based on our new pricing and packages. All existing license agreements will be honored and renewed
- based upon the current agreement.
-
-
-
-
-
- What is the difference between your old model and your current subscription model for Ignite UI?
-
-
-
- For Ignite UI customers, we are moving away from NPM for licensed packages. The current NPM packages
- will be replaced with packages that include a “Trial Version” watermark. Licensed packages for Ignite UI
- will be available from our cloud hosted ProGet server.
-
- For more information, please refer to this article:
-
- Moving
- from Trial to Licensed Ignite UI NPM Packages
-
-
-
-
+
+
+
+
+
+ Getting Started
+ Setup and onboarding
+
+
+
Find installation steps, project setup guidance, and resources for building your first application.
Configure password rules, multi-factor authentication, and recovery options for your team.
+
+
+
+
+
```
```scss
-@use "layout.scss";
-@use "igniteui-angular/theming" as *;
+.accordion-tailwind-sample {
+ width: 100%;
+ height: 100%;
+ overflow-y: auto;
+}
-$custom-panel-theme: expansion-panel-theme(
- $header-background: #011627,
- $body-background: #f0ece7,
- $expanded-margin: 10px
-);
+::ng-deep {
+ .igx-expansion-panel--expanded .igx-expansion-panel__header-inner {
+ background-color: var(--ig-primary-50);
+ }
-:host {
- @include tokens($custom-panel-theme);
+ .igx-expansion-panel--expanded .igx-expansion-panel__header-title,
+ .igx-expansion-panel--expanded .igx-expansion-panel__header-description {
+ color: var(--ig-primary-700);
+ }
+
+ .igx-expansion-panel__header-title {
+ font-weight: 600;
+ }
}
```
-## API Reference
+## Accessibility
+
+The accordion supports keyboard interaction for moving focus between panels and changing their expanded state.
+
+### Keyboard Interaction
+
+Use the keyboard shortcuts below to move through the accordion and open or close panels.
+
+| Key | Action |
+| -- | -- |
+| Down Arrow | Moves focus to the panel below. |
+| Up Arrow | Moves focus to the panel above. |
+| Alt + Down Arrow | Opens the focused panel. |
+| Alt + Up Arrow | Closes the focused panel. |
+| Shift + Alt + Down Arrow | Opens all enabled panels. If [`singleBranchExpand`](mcp:get_api_reference?platform=angular&component=IgxAccordionComponent&member=singleBranchExpand) is `true`, opens the last enabled panel. |
+| Shift + Alt + Up Arrow | Closes all enabled panels. |
+| Home | Moves focus to the first enabled panel. |
+| End | Moves focus to the last enabled panel. |
+
+### Screen Readers / ARIA
+
+The accordion's accessibility semantics are provided through its child expansion panels and their headers.
+
+- Each panel header exposes `role="button"`, `aria-expanded`, and `aria-controls`.
+- Each panel body exposes `role="region"` and a label through `aria-labelledby` or `aria-label`.
+- Use clear title text for each panel so assistive technologies can announce a meaningful label.
+- Keep interactive content inside panel bodies in a logical tab order.
+
+### Accessibility Compliance
+
+Infragistics documents Ignite UI for Angular accessibility support for Section 508 and WCAG 2.1 guideline areas in the [Accessibility Compliance](../interactivity/accessibility-compliance.md) topic. The accordion's compliance evidence comes from the child [`IgxExpansionPanel`](mcp:get_api_reference?platform=angular&component=IgxExpansionPanelComponent) components that provide the interactive headers and regions.
+
+| Criterion | How the component complies |
+| -- | -- |
+| [2.1.1 Keyboard](https://www.w3.org/WAI/WCAG21/Understanding/keyboard) | The accordion supports keyboard commands for moving focus and opening or closing panels. |
+| [2.4.3 Focus Order](https://www.w3.org/WAI/WCAG21/Understanding/focus-order) | Focus moves through enabled panels in sequence, with shortcuts for jumping to the first and last panel. |
+
+Your responsibilities:
-- [IgxAccordion API](mcp:get_api_reference?platform=angular&component=IgxAccordionComponent)
-- [IgxExpansionPanel API](mcp:get_api_reference?platform=angular&component=IgxExpansionPanelComponent)
-- [IgxExpansionPanelHeader API](mcp:get_api_reference?platform=angular&component=IgxExpansionPanelHeaderComponent)
-- [IgxExpansionPanelBody API](mcp:get_api_reference?platform=angular&component=IgxExpansionPanelBodyComponent)
-- [IgxExpansionPanel Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#mixin-igx-expansion-panel)
+- Provide panel titles that describe the content behind each disclosure area.
+- Preserve a logical focus order in the surrounding page layout.
+- Validate any custom styling against your application's contrast and focus-indicator requirements.
+## API References
+
+[`IgxAccordion`](mcp:get_api_reference?platform=angular&component=IgxAccordionComponent)
+[`IgxExpansionPanel`](mcp:get_api_reference?platform=angular&component=IgxExpansionPanelComponent)
+
+## Dependencies
+
+The accordion depends on [`IgxExpansionPanel`](mcp:get_api_reference?platform=angular&component=IgxExpansionPanelComponent) for its visible sections.
## Additional Resources
-Our community is active and always welcoming new ideas.
+Use these resources to continue with Ignite UI for Angular Accordion support, source, and related layout guidance.
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
+
+## Related Components
+
+- [Expansion Panel](../expansion-panel.md) - The collapsible section the accordion is built from. See it for configuring individual panels.
+
+## FAQ
+
+ **Q: Should multiple accordion panels be open at the same time?**
+
+ Allow multiple panels to stay open when users need to compare or cross-reference their content. Use single-expansion behavior when the workflow is clearer with one active section at a time.
+
+ **Q: When should I avoid using an accordion?**
+
+ Avoid using an accordion for essential, long, or comparison-heavy content that users need to read at once. Use clear headings, a separate page, or another layout when hiding the content would make it harder to find or compare.
+
+ **Q: How should I write accordion headers?**
+
+ Use short, descriptive headers that clearly identify the content revealed by each panel. Users should be able to scan the headers and decide which section to open.
+
+ **Q: Can an accordion header contain other buttons or links?**
+
+ Avoid placing other interactive controls inside an accordion header. Keep secondary actions outside the header so the panel trigger remains clear and does not contain nested interactive elements.
+
+
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/action-strip.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/action-strip.md
index 51224e302..e3b0aa0df 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/action-strip.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/action-strip.md
@@ -1,16 +1,18 @@
---
title: Angular Action Strip Component – Ignite UI for Angular | Infragistics | MIT license
-_description: The Action Strip represents a template area for one or more actions. The Action Strip requires to be inside a relative container, as it is going to overlay it.
-_keywords: Angular Action Strip component, Angular Action Strip directive, Angular Action Strip control, Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Angular UI Components
-_license: MIT
+description: The Action Strip represents a template area for one or more actions. The Action Strip requires to be inside a relative container, as it is going to overlay it.
+keywords: Angular Action Strip component, Angular Action Strip directive, Angular Action Strip control, Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Angular UI Components
+license: MIT
+llms:
+ description: "The Ignite UI for Angular Action Strip component provides an overlay area containing one or more actions allowing additional UI and functionality to be shown on top of a specific target container upon user interaction e.g. hover."
_tocName: Action Strip
---
-
# Angular Action Strip Directive Overview
-
+
+
The Ignite UI for Angular Action Strip component provides an overlay area containing one or more actions allowing additional UI and functionality to be shown on top of a specific target container upon user interaction e.g. hover. The container should be positioned relatively as the Action Strip attempts to overlay it and is itself positioned absolutely. Despite overlapped by an Action Strip, the main interactions and user access to the target container remain available.
-
+
## Angular Action Strip Example
@@ -137,7 +139,7 @@ $custom-strip: action-strip-theme(
}
```
-
+
## Getting Started with Ignite UI for Angular Action Strip
@@ -147,7 +149,7 @@ To get started with the Ignite UI for Angular Action Strip component, first you
ng add igniteui-angular
```
-For a complete introduction to the Ignite UI for Angular, read the [_getting started_](general/getting-started.md) topic.
+For a complete introduction to the Ignite UI for Angular, read the [_getting started_](/general/getting-started) topic.
The next step is to import the `IgxActionStripModule` in your **app.module.ts** file.
@@ -196,8 +198,9 @@ import { IgxIconComponent } from 'igniteui-angular/icon';
export class HomeComponent {}
```
-> [!NOTE]
-> This component uses Material Icons. Add the following link to your `index.html`: ``
+
+**Note:**
+This component uses Material Icons. Add the following link to your `index.html`: ``
Now that you have the Ignite UI for Angular Action Strip module or directives imported, you can start with a basic configuration of the `igx-action-strip` component.
@@ -219,7 +222,7 @@ By default, the Action Strip will not be visible, but this can be configured via
### Menu look and feel
-For scenarios where more than three action items will be shown, it is best to use [`IgxActionStripMenuItem`](mcp:get_api_reference?platform=angular&component=IgxActionStripMenuItemDirective) directive. Any item within the Action Strip marked with the `*igxActionStripMenuItem` structural directive will be shown in a dropdown, revealed upon toggling the more button i.e. the three dots representing the last action.
+For scenarios where more than three action items will be shown, it is best to use [`IgxActionStripMenuItemDirective`](mcp:get_api_reference?platform=angular&component=IgxActionStripMenuItemDirective) directive. Any item within the Action Strip marked with the `*igxActionStripMenuItem` structural directive will be shown in a dropdown, revealed upon toggling the more button i.e. the three dots representing the last action.
```html
@@ -366,16 +369,16 @@ The same Action Strip instance can be used in multiple places in the document as
The Action Strip can change its parent container, which is possible by changing the [`context`](mcp:get_api_reference?platform=angular&component=IgxActionStripComponent&member=context).
The best way to do so is via the [`show`](mcp:get_api_reference?platform=angular&component=IgxActionStripComponent&member=show) API method and passing the `context` as an argument. The `context` should be an instance of a component and should have an accessible `element` property of the `ElementRef` type.
-> [!NOTE]
-> The `show` API method uses [Angular Renderer2](https://angular.io/api/core/Renderer2) to append the Action Strip to that `element`.
+**Note:**
+The `show` API method uses [Angular Renderer2](https://angular.io/api/core/Renderer2) to append the Action Strip to that `element`.
## Usage in Grids
The Action Strip provides additional functionality and UI for the IgxGrid.
This can be utilized via grid action components and we are providing two default ones:
-- [`IgxGridEditingActionsComponent`](mcp:get_api_reference?platform=angular&component=IgxGridEditingActionsComponent) - includes functionality and UI related to grid editing. It allows you to quickly toggle edit mode for cells or rows, depending on the value of the `rowEditable` option of the grid and whether deleting rows is allowed.
-- [`IgxGridPinningActionsComponent`](mcp:get_api_reference?platform=angular&component=IgxGridPinningActionsComponent) - includes functionality and UI related to grid row pinning. It allows you to quickly pin rows and navigate between pinned rows and their disabled counterparts.
+- [`IgxGridEditingActions`](mcp:get_api_reference?platform=angular&component=IgxGridEditingActionsComponent) - includes functionality and UI related to grid editing. It allows you to quickly toggle edit mode for cells or rows, depending on the value of the `rowEditable` option of the grid and whether deleting rows is allowed.
+- [`IgxGridPinningActions`](mcp:get_api_reference?platform=angular&component=IgxGridPinningActionsComponent) - includes functionality and UI related to grid row pinning. It allows you to quickly pin rows and navigate between pinned rows and their disabled counterparts.
```html
@@ -388,10 +391,11 @@ This can be utilized via grid action components and we are providing two default
```
-> [!NOTE]
-> These components inherit [`IgxGridActionsBaseDirective`](mcp:get_api_reference?platform=angular&component=IgxGridActionsBaseDirective) and when creating a custom grid action component, it should also inherit `IgxGridActionsBaseDirective`.
-> [!NOTE]
-> When `IgxActionStripComponent` is a child component of the grid, hovering a row will automatically show the UI.
+**Note:**
+These components inherit [`IgxGridActionsBaseDirective`](mcp:get_api_reference?platform=angular&component=IgxGridActionsBaseDirective) and when creating a custom grid action component, it should also inherit `IgxGridActionsBaseDirective`.
+
+**Note:**
+When `IgxActionStripComponent` is a child component of the grid, hovering a row will automatically show the UI.
```typescript
import { Component, ViewChild } from '@angular/core';
@@ -474,8 +478,8 @@ export class GridActionStripSampleComponent {
}
```
-> [!NOTE]
-> More information about how to use ActionStrip in the grid component could be found in the [Grid Row Actions documentation](/components/grid/row-actions.html).
+**Note:**
+More information about how to use ActionStrip in the grid component could be found in the [Grid Row Actions documentation](./grid/row-actions.md).
## Styling
@@ -586,31 +590,31 @@ $custom-strip: action-strip-theme(
For more detailed information regarding the Action Strip API, refer to the following links:
-- [`IgxActionStripComponent API`](mcp:get_api_reference?platform=angular&component=IgxActionStripComponent)
+- [`IgxActionStrip`](mcp:get_api_reference?platform=angular&component=IgxActionStripComponent)
The following built-in CSS styles helped us achieve this Action Strip layout:
-- [`IgxActionStripComponent Styles`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-action-strip-theme)
+- `IgxActionStripComponent Styles`
Additional components and/or directives that can be used within the Action Strip:
- [`IgxGridActionsBaseDirective`](mcp:get_api_reference?platform=angular&component=IgxGridActionsBaseDirective)
-- [`IgxGridPinningActionsComponent`](mcp:get_api_reference?platform=angular&component=IgxGridPinningActionsComponent)
-- [`IgxGridEditingActionsComponent`](mcp:get_api_reference?platform=angular&component=IgxGridEditingActionsComponent)
-- [`IgxDividerDirective`](mcp:get_api_reference?platform=angular&component=IgxDividerDirective)
+- [`IgxGridPinningActions`](mcp:get_api_reference?platform=angular&component=IgxGridPinningActionsComponent)
+- [`IgxGridEditingActions`](mcp:get_api_reference?platform=angular&component=IgxGridEditingActionsComponent)
+- [`IgxDivider`](mcp:get_api_reference?platform=angular&component=IgxDividerDirective)
-
+
## Theming Dependencies
-- [IgxButton Theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-button-theme)
-- [IgxRipple Theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-ripple-theme)
-- [IgxDropDown Theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-drop-down-theme)
-- [IgxIcon Theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-icon-theme)
+- `IgxButton Theme`
+- `IgxRipple Theme`
+- `IgxDropDown Theme`
+- `IgxIcon Theme`
## Additional Resources
-
+
Our community is active and always welcoming to new ideas.
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/ai-ai-assisted-development-overview.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/ai-ai-assisted-development-overview.md
index f9975d390..e02238ad6 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/ai-ai-assisted-development-overview.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/ai-ai-assisted-development-overview.md
@@ -1,18 +1,15 @@
---
title: AI-Assisted Development with Ignite UI - Ignite UI for Angular
-_description: Configure Agent Skills, the Ignite UI MCP server, and the Theming MCP server in your Angular, React, Blazor, or Web Components project with a single command - npx igniteui-cli@latest ai-config. Grounds GitHub Copilot, Cursor, Claude Desktop, Claude Code, and JetBrains AI Assistant in correct Ignite UI APIs.
-_keywords: Angular, Ignite UI for Angular, Infragistics, MCP, Model Context Protocol, Ignite UI MCP server, Ignite UI Theming MCP, Agent Skills, AI, agent, Copilot, Cursor, Claude Code, ai-config
-_language: en
-_license: MIT
-_canonicalLink: "{environment:dvUrl}/components/ai-assisted-development-overview"
-last_updated: "2026-05-03"
-namespace: Infragistics.Controls
+description: Configure Agent Skills, the Ignite UI MCP server, and the Theming MCP server in your Angular, React, Blazor, or Web Components project with a single command - npx igniteui-cli@latest ai-config. Grounds GitHub Copilot, Cursor, Claude Desktop, Claude Code, and JetBrains AI Assistant in correct Ignite UI APIs.
+keywords: Angular, Ignite UI for Angular, Infragistics, MCP, Model Context Protocol, Ignite UI MCP server, Ignite UI Theming MCP, Agent Skills, AI, agent, Copilot, Cursor, Claude Code, ai-config
+license: MIT
+canonicalLink: "/components/ai-assisted-development-overview"
mentionedTypes: []
+last_updated: "2026-05-03"
+llms:
+ description: "Ignite UI for Angular provides a complete AI toolchain - Agent Skills, the Ignite UI CLI MCP server, the Ignite UI Theming MCP server and the MAKER MCP server - that grounds AI coding assistants in correct component APIs, import paths, and design tokens."
_tocName: Agent Workflow
---
-
-
-
# AI-Assisted Development with Ignite UI
Ignite UI for Angular provides a complete AI toolchain - Agent Skills, the Ignite UI CLI MCP server, the Ignite UI Theming MCP server and the MAKER MCP server - that grounds AI coding assistants in correct component APIs, import paths, and design tokens. Agent Skills are developer-owned instruction packages that define how AI agents use Ignite UI in a specific project. The CLI MCP server (`igniteui-cli`) exposes Ignite UI CLI scaffolding, component management, and documentation tools to the active AI agent session via the Model Context Protocol. The Theming MCP server (`igniteui-theming`) exposes the Ignite UI Theming Engine as queryable agent context. The MAKER MCP (`@igniteui/maker-mcp`) is a multi-agent AI orchestration MCP server from Infragistics that decomposes complex tasks into validated, executable step plans using a consensus-based voting algorithm across multiple AI agents. Skills, CLI MCP and Theming MCP - all three are configured by a single command: `npx igniteui-cli ai-config`
@@ -37,8 +34,8 @@ Run this command from the root of your existing Angular, React, Blazor, or Web C
npx igniteui-cli ai-config
```
-> [!IMPORTANT]
-> Without a version pin, `npx` may pull an older CLI version that does not recognize the `ai-config` subcommand and will instead launch an interactive project-creation prompt, scaffolding a new project inside your existing one. Make sure that you have installed CLI version 16.x.
+**Note:**
+Without a version pin, `npx` may pull an older CLI version that does not recognize the `ai-config` subcommand and will instead launch an interactive project-creation prompt, scaffolding a new project inside your existing one. Make sure that you have installed CLI version 16.x.
If `ai-config` cannot detect the framework from your project files, it prompts you to select one - so the command works even from a project where no Ignite UI package is installed yet.
@@ -48,17 +45,17 @@ After the command finishes, start the MCP servers in your AI client. The servers
If Ignite UI is **not** installed in the project:
-> [!NOTE]
-> Ignite UI MCP servers configured for your selected clients
-> No AI skill files found. Make sure packages are installed (`npm install`) and your Ignite UI packages are up-to-date.
+**Note:**
+Ignite UI MCP servers configured for your selected clients
+No AI skill files found. Make sure packages are installed (`npm install`) and your Ignite UI packages are up-to-date.
The MCP servers are ready to use. Skills will be added automatically the next time you run `ai-config` after installing Ignite UI.
If Ignite UI **is** installed in the project:
-> [!NOTE]
-> Ignite UI MCP servers configured for your selected clients
-> Agent Skills copied to your selected agents' skills directories
+**Note:**
+Ignite UI MCP servers configured for your selected clients
+Agent Skills copied to your selected agents' skills directories
Both the MCP servers and Skills are configured.
@@ -182,11 +179,13 @@ If you have the Ignite UI CLI installed globally, use the shorter form:
ig ai-config
```
-> [!NOTE]
-> The `npx igniteui-cli` and `ig` forms do not register the `@angular/cli` MCP server. Use the Angular Schematics command above if you want all three servers configured in a single step.
+**Note:**
-> [!NOTE]
-> The command requires Ignite UI packages to be installed in your project (`npm install`). If no skill files are found, make sure your packages are up-to-date.
+The `npx igniteui-cli` and `ig` forms do not register the `@angular/cli` MCP server. Use the Angular Schematics command above if you want all three servers configured in a single step.
+
+**Note:**
+
+The command requires Ignite UI packages to be installed in your project (`npm install`). If no skill files are found, make sure your packages are up-to-date.
### Step 1 - Load Agent Skills
@@ -268,8 +267,6 @@ For configuration details and theming workflows, see [Theming MCP](theming-mcp.m
- [Ignite UI CLI MCP](./cli-mcp.md)
- [Ignite UI Theming MCP](./theming-mcp.md)
-
-
Our community is active and always welcoming to new ideas.
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/ai-cli-mcp.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/ai-cli-mcp.md
index ec9e8e2b7..07c979ea6 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/ai-cli-mcp.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/ai-cli-mcp.md
@@ -1,23 +1,20 @@
---
title: Ignite UI CLI MCP | Infragistics
-_description: Use the Ignite UI CLI MCP server to scaffold Ignite UI for Angular projects, add components, and answer API questions through your AI assistant.
-_keywords: Angular, Ignite UI for Angular, Infragistics, Ignite UI CLI MCP, Ignite UI Theming MCP, MCP, Model Context Protocol, AI, agent, GitHub Copilot, Cursor, Claude, JetBrains
-_language: en
-_license: MIT
-_canonicalLink: "{environment:dvUrl}/components/ai/cli-mcp"
-namespace: Infragistics.Controls
+description: Use the Ignite UI CLI MCP server to scaffold Ignite UI for Angular projects, add components, and answer API questions through your AI assistant.
+keywords: Angular, Ignite UI for Angular, Infragistics, Ignite UI CLI MCP, Ignite UI Theming MCP, MCP, Model Context Protocol, AI, agent, GitHub Copilot, Cursor, Claude, JetBrains
+license: MIT
+canonicalLink: "/components/ai/cli-mcp"
mentionedTypes: []
last_updated: "2026-04-24"
+llms:
+ description: "The Ignite UI CLI MCP is a Model Context Protocol (MCP) server that enables AI assistants to scaffold projects, modify existing apps, create and update components, and answer documentation questions for Ignite UI for Angular applications."
_tocName: CLI MCP
---
-
-
-
# Ignite UI CLI MCP
The Ignite UI CLI MCP is a Model Context Protocol (MCP) server that enables AI assistants to scaffold projects, modify existing apps, create and update components, and answer documentation questions for Ignite UI for Angular applications. Connect the Ignite UI CLI MCP to your editor, GitHub repository, or desktop AI client and describe what you want - the assistant uses the CLI tools for you.
-
+
## Overview
@@ -63,8 +60,9 @@ The canonical launch command is:
npx -y igniteui-cli mcp
```
-> [!NOTE]
-> The `-y` flag tells `npx` to auto-confirm the package download prompt so the server can start without manual intervention.
+**Note:**
+
+The `-y` flag tells `npx` to auto-confirm the package download prompt so the server can start without manual intervention.
### Choose a setup path
@@ -156,8 +154,9 @@ If you created the project with Ignite UI CLI first, review the generated `.vsco
Once saved, open the GitHub Copilot chat panel, switch to **Agent** mode, and the Ignite UI CLI MCP tools will be available.
-> [!NOTE]
-> MCP support in VS Code requires GitHub Copilot and VS Code 1.99 or later.
+**Note:**
+
+MCP support in VS Code requires GitHub Copilot and VS Code 1.99 or later.
### Cursor
@@ -180,8 +179,9 @@ Cursor supports project-scoped MCP configuration. Create or edit `.cursor/mcp.js
The servers will be picked up automatically when you open a new Cursor chat session.
-> [!NOTE]
-> You can also configure MCP servers globally via **Settings → MCP** in Cursor.
+**Note:**
+
+You can also configure MCP servers globally via **Settings → MCP** in Cursor.
### Claude Desktop
@@ -264,8 +264,9 @@ JetBrains AI Assistant supports MCP servers through the IDE settings:
5. Click **OK** and restart the AI Assistant.
-> [!NOTE]
-> MCP support requires the AI Assistant plugin to be installed and enabled in your JetBrains IDE.
+**Note:**
+
+MCP support requires the AI Assistant plugin to be installed and enabled in your JetBrains IDE.
### Other MCP Clients
@@ -336,8 +337,9 @@ At a high level, the CLI MCP tools help with:
- updating project structure and configuration
- answering documentation and API questions
-> [!NOTE]
-> Framework detection uses component prefixes: `for Angular`, `for React`, `for Web Components`, `for Blazor`. The assistant picks up the right framework automatically from your open files or prompt context.
+**Note:**
+
+Framework detection uses component prefixes: `for Angular`, `for React`, `for Web Components`, `for Blazor`. The assistant picks up the right framework automatically from your open files or prompt context.
The theming server adds styling, theme, palette, and token workflows to the same client session.
@@ -412,8 +414,6 @@ Validate that the JSON uses the `mcpServers` structure and that each local serve
- [Ignite UI for Angular Skills](./skills.md)
- [Ignite UI Theming MCP](./theming-mcp.md)
-
-
Our community is active and always welcoming to new ideas.
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/ai-maker-framework.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/ai-maker-framework.md
index 2fd288888..7db598f75 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/ai-maker-framework.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/ai-maker-framework.md
@@ -1,19 +1,14 @@
---
title: MAKER Framework | Ignite UI AI Orchestration
-_description: The MAKER Framework is a multi-agent AI orchestration MCP server from Infragistics that decomposes complex tasks into validated step plans using consensus-based voting across OpenAI, Anthropic, and Google AI providers.
-_keywords: Angular, Ignite UI for Angular, Infragistics, MAKER, multi-agent, AI orchestration, MCP, Model Context Protocol, consensus voting, plan and execute, task decomposition
-_language: en
-_license: MIT
-_canonicalLink: "{environment:dvUrl}/components/ai/maker-framework"
-namespace: Infragistics.Controls
+description: The MAKER Framework is a multi-agent AI orchestration MCP server from Infragistics that decomposes complex tasks into validated step plans using consensus-based voting across OpenAI, Anthropic, and Google AI providers.
+keywords: Angular, Ignite UI for Angular, Infragistics, MAKER, multi-agent, AI orchestration, MCP, Model Context Protocol, consensus voting, plan and execute, task decomposition
+license: MIT
+canonicalLink: "/components/ai/maker-framework"
mentionedTypes: []
+llms:
+ description: "The MAKER Framework (@igniteui/maker-mcp) is a multi-agent AI orchestration MCP server from Infragistics that decomposes complex tasks into validated, executable step plans using a consensus-based voting algorithm across multiple AI agents."
_tocName: Maker Framework
---
-
-
-
-
-
# MAKER Framework
The MAKER Framework (`@igniteui/maker-mcp`) is a multi-agent AI orchestration MCP server from Infragistics that decomposes complex tasks into validated, executable step plans using a consensus-based voting algorithm across multiple AI agents. MAKER stands for Maximal Agentic decomposition, first-to-ahead-by-K Error correction, and Red-flagging. The framework is based on the research paper _Solving a million-step LLM task with zero errors_ by Cognizant AI Lab. It runs as an MCP server via `npx` from the `@igniteui` GitHub Packages registry and connects to any MCP-compatible AI client through STDIO transport. Once connected, the AI assistant can invoke three tools - `plan`, `execute`, and `plan_and_execute` - to run long-horizon tasks with automatic error detection and correction.
@@ -222,7 +217,7 @@ The native binary is distributed for four platforms. The correct binary is selec
ARM Linux is not currently packaged. To request additional platform support, open an issue at [github.com/IgniteUI/MAKER](https://github.com/IgniteUI/MAKER).
-The binary cache location can be overridden with the `MAKER_MCP_CACHE` environment variable. The default cache paths are `%LOCALAPPDATA%\maker-mcp\{version}\{rid}\` on Windows and `~/.cache/maker-mcp/{version}/{rid}/` on macOS and Linux.
+The binary cache location can be overridden with the `MAKER_MCP_CACHE` environment variable. The default cache paths are `%LOCALAPPDATA%\maker-mcp{version}{rid}\` on Windows and `~/.cache/maker-mcp/{version}/{rid}/` on macOS and Linux.
## Additional Resources
@@ -231,8 +226,6 @@ The binary cache location can be overridden with the `MAKER_MCP_CACHE` environme
- [Ignite UI CLI MCP](./cli-mcp.md)
- [Ignite UI Theming MCP](./theming-mcp.md)
-
-
Our community is active and always welcoming to new ideas.
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/ai-skills.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/ai-skills.md
index 421dbc653..00b894c81 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/ai-skills.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/ai-skills.md
@@ -1,21 +1,18 @@
---
title: Agent Skills | AI Skills | AI-Assisted Development | Ignite UI for Angular | Infragistics
-_description: Learn how to use Agent Skills to supercharge AI-assisted development with Ignite UI for Angular components, grids, data operations, and theming.
-_keywords: Ignite UI for Angular, agent skills, ai assisted development, github copilot, cursor, windsurf, claude, gemini cli, junie
-_license: MIT
-mentionedTypes: []
+description: Learn how to use Agent Skills to supercharge AI-assisted development with Ignite UI for Angular components, grids, data operations, and theming.
+keywords: Ignite UI for Angular, agent skills, ai assisted development, github copilot, cursor, windsurf, claude, gemini cli, junie
last_updated: "2026-04-24"
+llms:
+ description: "Ignite UI for Angular ships with Agent Skills - structured knowledge files that teach AI coding assistants (GitHub Copilot, Cursor, Windsurf, Claude, Gemini CLI, JetBrains Junie, etc.) how to work with Ignite UI for Angular."
_tocName: Ignite UI for Angular Skills
---
-
-
-
# Ignite UI for Angular Agent Skills
Ignite UI for Angular ships with **[Agent Skills](https://agentskills.io/)** - structured knowledge files that teach AI coding assistants (GitHub Copilot, Cursor, Windsurf, Claude, Gemini CLI, JetBrains Junie, etc.) how to work with Ignite UI for Angular. These skill files provide context-aware guidance on components, grids, data operations, and theming, enabling your AI assistant to generate accurate, idiomatic code that follows best practices.
-> [!NOTE]
-> The AI tooling landscape is evolving rapidly. Skill discovery locations and distribution options may change as tools and IDEs are updated. Always consult the official documentation for your specific tool or agent for the latest information.
+**Note:**
+The AI tooling landscape is evolving rapidly. Skill discovery locations and distribution options may change as tools and IDEs are updated. Always consult the official documentation for your specific tool or agent for the latest information.
## Available Skills
@@ -28,8 +25,8 @@ The skill files live in the [`skills/`](https://github.com/IgniteUI/igniteui-ang
| Theming & Styling | [`skills/igniteui-angular-theming/SKILL.md`](https://github.com/IgniteUI/igniteui-angular/blob/master/skills/igniteui-angular-theming/SKILL.md) | Palettes, typography, elevations, component themes, MCP server |
| Generate From Image Design | [`skills/igniteui-angular-generate-from-image-design/SKILL.md`](https://github.com/IgniteUI/igniteui-angular/blob/master/skills/igniteui-angular-generate-from-image-design/SKILL.md) | Build Angular apps from screenshots, mockups, and wireframes using Ignite UI components |
-> [!NOTE]
-> Starting with Ignite UI for Angular **21.1.0**, these skills are automatically discovered when placed in your agent's skills path (e.g., `.claude/skills`, `.agents/skills`, `.cursor/rules/`). This release ships with an optional migration to add these skills to your project automatically.
+**Note:**
+Starting with Ignite UI for Angular **21.1.0**, these skills are automatically discovered when placed in your agent's skills path (e.g., `.claude/skills`, `.agents/skills`, `.cursor/rules/`). This release ships with an optional migration to add these skills to your project automatically.
## Skill Locations
@@ -145,8 +142,8 @@ ng generate @igniteui/angular-schematics:ai-config --assistants cursor --agents
This also registers the `@angular/cli` MCP server alongside the Ignite UI servers.
-> [!NOTE]
-> If you installed Ignite UI for Angular manually and want to copy skills without running `ai-config`, the skill files are also available under `node_modules`. To copy them into your project (e.g. into `.agents/skills/`), run:
+**Note:**
+If you installed Ignite UI for Angular manually and want to copy skills without running `ai-config`, the skill files are also available under `node_modules`. To copy them into your project (e.g. into `.agents/skills/`), run:
**macOS / Linux / Windows (PowerShell)**
@@ -247,11 +244,11 @@ Once complete, the skills are ready to use - no manual file copying required.
The **Theming skill** includes setup instructions for the `igniteui-theming` MCP server, which gives AI assistants access to live theming tools such as palette generation and component theme scaffolding. See the [Theming skill file](https://github.com/IgniteUI/igniteui-angular/blob/master/skills/igniteui-angular-theming/SKILL.md) for configuration steps for VS Code, Cursor, Claude Desktop, and JetBrains IDEs.
-For more information on the Theming MCP, refer to the [Ignite UI Theming MCP](./theming-mcp.md) documentation.
+For more information on the Theming MCP, refer to the [Ignite UI Theming MCP](/ai/theming-mcp) documentation.
## Additional Resources
-
+
- Getting Started with Ignite UI for Angular
- Angular Schematics & Ignite UI CLI
@@ -259,7 +256,7 @@ For more information on the Theming MCP, refer to the [Ignite UI Theming MCP](./
- [Ignite UI CLI MCP](./cli-mcp.md)
- [Ignite UI Theming MCP](./theming-mcp.md)
-
+
Our community is active and always welcoming to new ideas.
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/ai-theming-mcp.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/ai-theming-mcp.md
index 5ecac0cbe..390a6ee17 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/ai-theming-mcp.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/ai-theming-mcp.md
@@ -1,19 +1,16 @@
---
title: Angular Theming MCP | Infragistics
-_description: Use the Ignite UI Theming MCP server to generate Ignite UI for Angular palettes, themes, typography, and design token overrides through your AI assistant.
-_keywords: Ignite UI for Angular controls, Angular widgets, web widgets, UI widgets, Components Suite, Artificial Intelligence, AI, MCP, Model Context Protocol, Theming, Custom Themes, Palettes, Typography, Elevations
-_license: MIT
-mentionedTypes: []
+description: Use the Ignite UI Theming MCP server to generate Ignite UI for Angular palettes, themes, typography, and design token overrides through your AI assistant.
+keywords: Ignite UI for Angular controls, Angular widgets, web widgets, UI widgets, Components Suite, Artificial Intelligence, AI, MCP, Model Context Protocol, Theming, Custom Themes, Palettes, Typography, Elevations
+llms:
+ description: "The Ignite UI Theming MCP is a Model Context Protocol (MCP) server that enables AI assistants to generate production-ready theming code for Ignite UI applications."
_tocName: Theming MCP
---
-
-
-
# Ignite UI Theming MCP
The Ignite UI Theming MCP is a Model Context Protocol (MCP) server that enables AI assistants to generate production-ready theming code for Ignite UI applications. MCP is an open standard that lets AI assistants call specialized tools provided by external servers. Connect the Ignite UI Theming MCP to your editor or desktop AI client and describe the theme, palette, or component overrides you want generated.
-
+
## Overview
@@ -59,8 +56,8 @@ The canonical launch command is:
npx -y igniteui-theming igniteui-theming-mcp
```
-> [!NOTE]
-> The `-y` flag tells `npx` to auto-confirm the package download prompt so the server can start without manual intervention.
+**Note:**
+The `-y` flag tells `npx` to auto-confirm the package download prompt so the server can start without manual intervention.
### How version resolution works
@@ -87,8 +84,8 @@ GitHub Copilot in VS Code supports MCP servers through a workspace-level configu
Once saved, open the GitHub Copilot chat panel, switch to **Agent** mode, and the Ignite UI Theming tools will be available.
-> [!NOTE]
-> MCP support in VS Code requires GitHub Copilot and VS Code 1.99 or later.
+**Note:**
+MCP support in VS Code requires GitHub Copilot and VS Code 1.99 or later.
### Cursor
@@ -107,8 +104,8 @@ Cursor supports project-scoped MCP configuration. Create or edit `.cursor/mcp.js
The server will be picked up automatically when you open a new Cursor chat session.
-> [!NOTE]
-> You can also configure MCP servers globally via **Settings → MCP** in Cursor.
+**Note:**
+You can also configure MCP servers globally via **Settings → MCP** in Cursor.
### Claude Desktop
@@ -178,8 +175,8 @@ JetBrains AI Assistant supports MCP servers through the IDE settings:
5. Click **OK** and restart the AI Assistant.
-> [!NOTE]
-> MCP support requires the AI Assistant plugin to be installed and enabled in your JetBrains IDE.
+**Note:**
+MCP support requires the AI Assistant plugin to be installed and enabled in your JetBrains IDE.
### Other MCP Clients
@@ -230,8 +227,8 @@ globs: ["**/*.scss", "**/styles/**"]
- For dark mode, only the palette changes. Component overrides stay the same.
```
-> [!NOTE]
-> Both files are committed to source control, so every team member gets the same AI behavior without manual setup. Adapt the brand colors, design system, and file paths to match your project.
+**Note:**
+Both files are committed to source control, so every team member gets the same AI behavior without manual setup. Adapt the brand colors, design system, and file paths to match your project.
## Available Tools
@@ -243,6 +240,9 @@ To see the current full list of tools and their parameters at any time, ask your
Here is a brief overview of each tool:
+**Note:**
+When it generates a palette, the server checks the contrast ratio between your surface and gray colors against WCAG thresholds and warns you when the pairing falls short. See [Accessibility](../themes/accessibility.md) for the contrast behavior built into the theming engine itself.
+
| Tool | Description |
|------|-------------|
| `detect_platform` | Identifies the project framework and selects the correct import paths and selectors. For Angular, React, and Web Components projects, reads `package.json`. For Blazor projects, which do not have a `package.json`, returns `generic` - tell the AI explicitly: _"Use the Blazor platform."_ |
@@ -259,11 +259,11 @@ Here is a brief overview of each tool:
| `get_color` | Returns a CSS variable reference for a palette color, e.g. `var(--ig-primary-500)`. Supports optional contrast and opacity parameters. |
| `read_resource` | Reads built-in reference resources organized into four categories: platform configs (6), palette/typography/elevation presets (5), color guidance (7), and layout/spacing docs (8). |
-> [!NOTE]
-> For compound components (e.g., `combo`, `select`, `grid`), `get_component_design_tokens` returns a list of related child themes instead of a flat token list. For example, querying `grid` may return child themes such as `grid`, `grid-toolbar`, `grid-filtering`, and `paginator`. The AI will generate a separate `create_component_theme` call for each child theme using the appropriate scoped selector.
+**Note:**
+For compound components (e.g., `combo`, `select`, `grid`), `get_component_design_tokens` returns a list of related child themes instead of a flat token list. For example, querying `grid` may return child themes such as `grid`, `grid-toolbar`, `grid-filtering`, and `paginator`. The AI will generate a separate `create_component_theme` call for each child theme using the appropriate scoped selector.
-> [!NOTE]
-> If your project uses the licensed `@infragistics/igniteui-angular` package, tell the AI so it can set the `licensed` parameter on palette, theme, and component tools. This adjusts the generated import paths accordingly.
+**Note:**
+If your project uses the licensed `@infragistics/igniteui-angular` package, tell the AI so it can set the `licensed` parameter on palette, theme, and component tools. This adjusts the generated import paths accordingly.
## Common Workflows
@@ -350,17 +350,7 @@ Also confirm that `core()` is called before any other theming mixin in your `sty
- [Ignite UI CLI MCP](./cli-mcp.md)
- [MAKER Framework](./maker-framework.md)
-
-
-
+
Our community is active and always welcoming to new ideas.
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/angular-reactive-form-validation.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/angular-reactive-form-validation.md
index cb003fbea..de67fd9ab 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/angular-reactive-form-validation.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/angular-reactive-form-validation.md
@@ -1,10 +1,11 @@
---
title: Angular reactive form validation – Ignite UI for Angular
-_description: Angular form validation is a process of verifying if inputs entered by a user into a web-form are correct. Check how to do it with Ignite UI for Angular reactive forms.
-_keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Angular Combo components, Angular Reactive Forms, Angular Forms
+description: Angular form validation is a process of verifying if inputs entered by a user into a web-form are correct. Check how to do it with Ignite UI for Angular reactive forms.
+keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Angular Combo components, Angular Reactive Forms, Angular Forms
+llms:
+ description: "Reactive forms in Angular provide a direct access to the underlying form object model, offering an immutable and explicit approach to handling form inputs."
_tocName: Angular Reactive Forms
---
-
# Angular reactive form validation
## What are reactive forms in Angular?
@@ -31,7 +32,6 @@ Reactive forms are built around observable streams which track every unique chan
The data flow in Angular reactive forms is well-structured because the form logic is led by the component class. This enables you to add validator functions directly to the FormControl instance in the component class. Whenever a change occurs, Angular calls these functions.
-
## What is angular form validation?
Angular form validation is an integral technical process that verifies if any input provided by a user into a web-form is correct and complete. You can manage validation in a template-driven approach or with Angular reactive forms. Based on what is entered, the form will either allow users to proceed or will display a specific error message to help the user know where they went wrong with their data input.
@@ -366,7 +366,7 @@ igx-card, article {
}
```
-
+
## Angular form group validation
@@ -420,15 +420,15 @@ export class MyComponent implements OnInit {
## Additional Resources
-
+
Related topics:
-- [Combo](combo.md)
-- [Select](select.md)
-- [Input Group](input-group.md)
-- [Date Picker](date-picker.md)
-- [Time Picker](time-picker.md)
+- [Combo](/combo)
+- [Select](/select)
+- [Input Group](/input-group)
+- [Date Picker](/date-picker)
+- [Time Picker](/time-picker)
Our community is active and always welcoming to new ideas.
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/autocomplete.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/autocomplete.md
index 420a27d57..643f30530 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/autocomplete.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/autocomplete.md
@@ -1,19 +1,20 @@
---
title: Angular Autocomplete Component – Ignite UI for Angular - MIT license
-_description: The Angular Autocomplete directive offers a way to enhance a text input by showing a panel of suggested options provided by the developer. Try it now.
-_keywords: Angular Autocomplete component, Angular Autocomplete directive, Angular Autocomplete control, Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Angular UI Components, Native Angular Components Library
-_license: MIT
+description: The Angular Autocomplete directive offers a way to enhance a text input by showing a panel of suggested options provided by the developer. Try it now.
+keywords: Angular Autocomplete component, Angular Autocomplete directive, Angular Autocomplete control, Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Angular UI Components, Native Angular Components Library
+license: MIT
+llms:
+ description: "Angular Autocomplete is a search box directive that enables users to easily find, filter and select an item from a list of suggestions while they type."
_tocName: Autocomplete
---
-
# Angular Autocomplete Directive Overview
Angular Autocomplete is a search box directive that enables users to easily find, filter and select an item from a list of suggestions while they type. Feature-rich, it supports seamless data binding, filtering, grouping, UI customization options, and other built-in functionalities so developers can create intuitive autocomplete search experience.
-
+
The [`igxAutocomplete`](mcp:get_api_reference?platform=angular&component=IgxAutocompleteDirective) directive provides a way to enhance a text input by showing an [`igxDropDown`](mcp:get_api_reference?platform=angular&component=IgxDropDownComponent) with suggested options, provided by the developer. The suggestions will show once you start typing in the text input or use the `Arrow Up`/`Arrow Down` keys.
-
+
## Angular Autocomplete Example
@@ -75,7 +76,7 @@ export class AutocompletePipeStartsWith implements PipeTransform {
}
```
-
+
## Getting Started with Ignite UI for Angular Autocomplete
@@ -85,9 +86,9 @@ To get started with the Ignite UI for Angular for [Angular Components](https://w
ng add igniteui-angular
```
-For a complete introduction to the Ignite UI for Angular, read the [_getting started_](general/getting-started.md) topic.
+For a complete introduction to the Ignite UI for Angular, read the [_getting started_](/general/getting-started) topic.
-The next step is to import the **IgxAutocompleteModule** and **IgxDropDownModule** in our **app.module**. If [`igxAutocomplete`](mcp:get_api_reference?platform=angular&component=IgxAutocompleteDirective) is applied on an [igxInput](mcp:get_api_reference?platform=angular&component=IgxInputDirective), the **igxInputGroupModule** is also required:
+The next step is to import the **IgxAutocompleteModule** and **IgxDropDownModule** in our **app.module**. If [`igxAutocomplete`](mcp:get_api_reference?platform=angular&component=IgxAutocompleteDirective) is applied on an [`igxInput`](mcp:get_api_reference?platform=angular&component=IgxInputDirective), the **igxInputGroupModule** is also required:
```typescript
// app.module.ts
@@ -185,8 +186,8 @@ export class AutocompletePipeStartsWith implements PipeTransform {
}
```
->[!NOTE]
->The [`igxAutocomplete`](mcp:get_api_reference?platform=angular&component=IgxAutocompleteDirective) uses the [`igxDropDown`](mcp:get_api_reference?platform=angular&component=IgxDropDownComponent) as a provider for the available options, which means that all capabilities of the dropdown component can be used in the autocomplete.
+**Note:**
+The [`igxAutocomplete`](mcp:get_api_reference?platform=angular&component=IgxAutocompleteDirective) uses the [`igxDropDown`](mcp:get_api_reference?platform=angular&component=IgxDropDownComponent) as a provider for the available options, which means that all capabilities of the dropdown component can be used in the autocomplete.
### Disable Angular Autocomplete
@@ -263,12 +264,11 @@ export class AutocompleteComponent {
}
```
->[!NOTE]
->The default positioning strategy is `AutoPositionStrategy` and the dropdown is opened according to the available space.
+**Note:**
+The default positioning strategy is `AutoPositionStrategy` and the dropdown is opened according to the available space.
If everything went right, you should see this in your browser:
-
```typescript
import { Component, Pipe, PipeTransform } from '@angular/core';
import { ConnectedPositioningStrategy, VerticalAlignment } from 'igniteui-angular/core';
@@ -365,12 +365,11 @@ export class AutocompletePipeStartsWith2 implements PipeTransform {
}
```
-
-
+
## Keyboard Navigation
-
+
- ⬆ / ⬇ or typing in the input will open the dropdown, if it's closed.
- ⬇ - will move to the next dropdown item.
@@ -378,8 +377,8 @@ export class AutocompletePipeStartsWith2 implements PipeTransform {
- ENTER will confirm the already selected item and will close the dropdown.
- ESC will close the dropdown.
->[!NOTE]
->When the Angular autocomplete opens, then the first item on the list is automatically selected. The same is valid when the list is filtered.
+**Note:**
+When the Angular autocomplete opens, then the first item on the list is automatically selected. The same is valid when the list is filtered.
You can also see how our [WYSIWYG App Builder™](https://www.infragistics.com/products/appbuilder) streamlines the entire design-to-code story by 80% using real Angular components.
@@ -401,36 +400,34 @@ The `drop-down` component, used as provider for suggestions, will expose the fol
- role="option" - applied on the `igx-drop-down-item` component container
- aria-disabled="true"/"false" applied on `igx-drop-down-item`, `igx-drop-down-item-group` component containers when they are disabled.
-
## Styling
Every component has its own theme.
-To get the `igxAutocomplete` styled, you have to style its containing components. In our case, these are the [input-group-theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-input-group-theme) and the [drop-down-theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-drop-down-theme).
+To get the `igxAutocomplete` styled, you have to style its containing components. In our case, these are the `input-group-theme` and the `drop-down-theme`.
-Take a look at the [`igxInputGroup`](input-group.md#styling) and the [`igxDropdown`](drop-down.md#styling) styling sections to get a better understanding of how to style those two components.
+Take a look at the [`igxInputGroup`](/input-group#styling) and the [`igxDropdown`](/drop-down#styling) styling sections to get a better understanding of how to style those two components.
## API Reference
-
-
-- [IgxAutocompleteDirective](mcp:get_api_reference?platform=angular&component=IgxAutocompleteDirective)
-- [IgxDropDownComponent](mcp:get_api_reference?platform=angular&component=IgxDropDownComponent)
-- [IgxInputGroupComponent](mcp:get_api_reference?platform=angular&component=IgxInputGroupComponent)
+
+- [`IgxAutocompleteDirective`](mcp:get_api_reference?platform=angular&component=IgxAutocompleteDirective)
+- [`IgxDropDown`](mcp:get_api_reference?platform=angular&component=IgxDropDownComponent)
+- [`IgxInputGroup`](mcp:get_api_reference?platform=angular&component=IgxInputGroupComponent)
## Theming Dependencies
-- [IgxDropDown Theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-drop-down-theme)
-- [IgxInputGroup Theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-input-group-theme)
+- `IgxDropDown Theme`
+- `IgxInputGroup Theme`
## Additional Resources
-
+
-- [IgxDropDown](drop-down.md)
-- [IgxInputGroup](input-group.md)
-- [Template Driven Forms Integration](input-group.md)
+- [IgxDropDown](/drop-down)
+- [IgxInputGroup](/input-group)
+- [Template Driven Forms Integration](/input-group)
Our community is active and always welcoming to new ideas.
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/avatar.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/avatar.md
index 39a48e926..bba00d86d 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/avatar.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/avatar.md
@@ -1,223 +1,623 @@
---
-title: Angular Avatar Component – Ignite UI for Angular | Infragistics | MIT license
-_description: Ignite UI for Angular Avatar control enables users to add images, material icons or initials within any application for instances such as a profile button.
-_keywords: Angular Avatar component, Angular Avatar control, Ignite UI for Angular, Angular UI components
-_license: MIT
+title: "Angular Avatar Component | Layouts | Infragistics"
+description: "Use the Angular Avatar component to represent users, entities, or objects with images, initials, icons, or custom content."
+keywords: "Angular Avatar, avatar component, profile image, initials, Ignite UI for Angular, Infragistics"
+last_updated: "2026-07-29"
+license: MIT
+mentionedTypes: ["Avatar", "Badge", "Icon"]
+relatedComponents: ["Badge"]
+llms:
+ description: "The Ignite UI for Angular Avatar topic shows how to render user, entity, or object identity with images, initials, icons, custom content, shape, size, styling, and accessibility guidance."
_tocName: Avatar
---
+# Avatar Component
-# Angular Avatar Component Overview
+The Ignite UI for Angular Avatar represents a user, entity, or object with an image, initials, or custom content.
-
Angular Avatar component helps adding initials, images, or material icons to your application.
-
+Use the avatar to provide a compact visual identity in lists, cards, profile menus, and activity feeds.
-## Angular Avatar Example
+## Live Demo
-
-
+```typescript
+import { Component } from '@angular/core';
+import { IgxAvatarComponent } from 'igniteui-angular/avatar';
+import { IgxBadgeComponent } from 'igniteui-angular/badge';
-
+@Component({
+ selector: 'app-avatar-overview',
+ styleUrls: ['./avatar-overview.component.scss'],
+ templateUrl: './avatar-overview.component.html',
+ imports: [IgxAvatarComponent, IgxBadgeComponent]
+})
+export class AvatarOverviewComponent {}
+```
+```html
+
+
+
-## Getting Started with Ignite UI for Angular Avatar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+```scss
+@use "igniteui-theming/sass/typography" as *;
-To get started with the Ignite UI for Angular Avatar component, first you need to install Ignite UI for Angular. In an existing Angular application, type the following command:
+:host {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ justify-content: center;
+ gap: rem(100px);
+ height: 100vh;
+ padding: rem(32px);
+}
-```cmd
-ng add igniteui-angular
-```
+.profile-status {
+ anchor-name: --profile-status;
+}
-For a complete introduction to the Ignite UI for Angular, read the [_getting started_](general/getting-started.md) topic.
+.status-badge {
+ position: absolute;
+ position-anchor: --profile-status;
+ inset-block-start: anchor(85%);
+ inset-inline-start: anchor(85%);
+ translate: -50% -50%;
+}
-The next step is to import the `IgxAvatarModule` in your **app.module.ts** file.
+.avatar-stack {
+ display: flex;
-```typescript
-// app.module.ts
+ igx-avatar {
+ box-shadow: 0 0 0 calc(var(--size) * 0.07) var(--ig-surface-500);
-...
-import { IgxAvatarModule } from 'igniteui-angular/avatar';
-// import { IgxAvatarModule } from '@infragistics/igniteui-angular'; for licensed package
+ + igx-avatar {
+ // Proportional to the avatar's own rendered size (--size, set by
+ // the theme) rather than a fixed length, since themes disagree
+ // widely on how big a "large" avatar actually is.
+ margin-inline-start: calc(var(--size) * -0.27);
+ }
-@NgModule({
- ...
- imports: [..., IgxAvatarModule],
- ...
-})
-export class AppModule {}
+ &:last-child {
+ --ig-avatar-background: #e8eef6;
+ --ig-avatar-color: #6f8097;
+ }
+ }
+}
```
-Alternatively, as of `16.0.0` you can import the `IgxAvatarComponent` as a standalone dependency.
+## Anatomy
-```typescript
-// home.component.ts
+The avatar is a single host element that applies image semantics and renders one of the supported content patterns.
-...
-import { IgxAvatarComponent } from 'igniteui-angular/avatar';
-// import { IgxAvatarComponent } from '@infragistics/igniteui-angular'; for licensed package
+**Angular Avatar anatomy anatomy:** The avatar anatomy labels the image, icon, and initials containers.
-@Component({
- selector: 'app-home',
- template: '',
- styleUrls: ['home.component.scss'],
- standalone: true,
- imports: [IgxAvatarComponent]
-})
-export class HomeComponent {}
-```
+
-## Using the Angular Avatar Component
+1. Image container: Displays image content type.
+2. Icon container: Displays icon content type.
+3. Initials container: Displays text content type.
-The Ignite UI for Angular Avatar component comes in three shapes (square, rounded, and circle) and three size options (small, medium, and large). It can be used for displaying initials, images or icons.
+```text
+igx-avatar[role="img"] // host - exposes the avatar
+└─ one of, by priority:
+ ├─ div.igx-avatar__image // `src` set - image painted as a background
+ ├─ igx-icon // `icon` set
+ ├─ span // `initials` set - first two characters
+ └─ ng-content // custom projected content
+```
-### Avatar Shape
+## Getting Started
-We can change the avatar shape through the `shape` attribute setting its value to `square`, `rounded` or `circle`. By default, the shape of the avatar is `square`.
+Import the Angular avatar component before you render ``. If you have not set up Ignite UI for Angular yet, complete the shared [Getting Started](../general/getting-started.md) topic first.
-```html
-
+```ts
+import { IgxAvatarComponent } from 'igniteui-angular/avatar';
```
-### Avatar displaying initials
+## Usage
-To get a simple avatar with [`initials`](mcp:get_api_reference?platform=angular&component=IgxAvatarComponent&member=initials) (i.e. JS for 'Jack Sock'), add the following code inside the component template:
+Render an avatar with an image source, initials, or custom content in the default slot.
-```html
-
-```
+### Variants
-Let's enhance our avatar by making it circular and bigger in size.
+Set only the content source you intend to show. The Angular avatar renders `src` first, then `icon`, then `initials`, and falls back to projected custom content when none of those inputs are set.
```html
-
+
+
+
+
+
```
-We can also change the background through the `background` property or set a color on the initials through the `color` property.
+```typescript
+import { Component, inject } from '@angular/core';
+import { IgxAvatarComponent } from 'igniteui-angular/avatar';
+import { IgxBadgeComponent } from 'igniteui-angular/badge';
+import { IgxIconComponent, IgxIconService } from 'igniteui-angular/icon';
+
+@Component({
+ selector: 'app-avatar-variants',
+ styleUrls: ['./avatar-variants.component.scss'],
+ templateUrl: './avatar-variants.component.html',
+ imports: [IgxAvatarComponent, IgxBadgeComponent, IgxIconComponent]
+})
+export class AvatarVariantsComponent {
+ private iconService = inject(IgxIconService);
+ constructor() {
+ this.iconService.addSvgIconFromText(
+ 'mail',
+ '',
+ 'material'
+ );
+ this.iconService.addSvgIconFromText(
+ 'check',
+ '',
+ 'material'
+ );
+ }
+}
+```
+```html
+
+
+
+
+
+Image
+
+
+
+
+
+
+ 2
+
+Icon
+
+
+
+
+
+
+
+Initials
+```
```scss
-// avatar.component.scss
+@use "sass:list";
+@use "igniteui-theming/sass/typography" as *;
-igx-avatar {
- background: #e41c77;
- color: #000000;
+$avatars: circle, square, rounded;
+
+:host {
+ display: grid;
+ grid-auto-flow: column;
+ grid-template-rows: auto auto;
+ place-content: center;
+ place-items: center;
+ column-gap: rem(48px);
+ row-gap: rem(8px);
+ height: 100vh;
+ padding: rem(32px);
}
-```
+// :where() keeps the sample's own rules at zero
+:where(igx-avatar) {
+ grid-row: 1;
+}
-> [!WARNING]
-> The `roundShape` property of the `igx-avatar` component have been deprecated. The `shape` attribute should be used instead.
+:where(span) {
+ grid-row: 2;
+ text-align: center;
+ color: var(--ig-gray-600);
+ font-family: "Aktiv Grotesk", sans-serif;
+ font-size: rem(13px);
+ font-weight: 400;
+ line-height: rem(20px);
+ letter-spacing: rem(0.3px);
+
+ @include type-style("body-1") {
+ margin: 0;
+ };
+}
-If all went well, you should see something like the following in the browser:
+:where(igx-badge) {
+ --ig-size: var(--ig-size-small);
-
-
-
+ position: absolute;
+ inset-block-start: anchor(85.5%);
+ inset-inline-start: anchor(85.5%);
+ translate: -50% -50%;
+}
-### Avatar displaying image
+// The avatars and badges are flat siblings, so every badge needs its own anchor name to pin to.
+@each $avatar in $avatars {
+ $i: list.index($avatars, $avatar);
-To get an avatar that displays an image, all you have to do is set the image source via the `src` property.
+ igx-avatar:nth-of-type(#{$i}) {
+ anchor-name: --#{$avatar};
+ }
-```html
-
-
+ igx-badge:nth-of-type(#{$i}) {
+ position-anchor: --#{$avatar};
+ }
+}
```
-If all went well, you should see something like the following in the browser:
+### Shape
-
-
-
+Set [`Shape`](mcp:get_api_reference?platform=angular&component=IgxAvatarComponent&member=shape) to `square`, `rounded`, or `circle`.
-### Avatar displaying icon
+```html
+
+```
-Analogically, the avatar can display an icon via the [`icon`](mcp:get_api_reference?platform=angular&component=IgxAvatarComponent&member=icon) property. Currently all icons from the material icon set are supported.
+```typescript
+import { Component, inject } from '@angular/core';
+import { IgxAvatarComponent } from 'igniteui-angular/avatar';
+import { IgxBadgeComponent } from 'igniteui-angular/badge';
+import { IgxIconComponent, IgxIconService } from 'igniteui-angular/icon';
+@Component({
+ selector: 'app-avatar-shape',
+ styleUrls: ['./avatar-shape.component.scss'],
+ templateUrl: './avatar-shape.component.html',
+ imports: [IgxAvatarComponent, IgxBadgeComponent, IgxIconComponent]
+})
+export class AvatarShapeComponent {
+ private iconService = inject(IgxIconService);
+
+ constructor() {
+ this.iconService.addSvgIconFromText(
+ 'mail',
+ '',
+ 'material'
+ );
+ this.iconService.addSvgIconFromText(
+ 'check',
+ '',
+ 'material'
+ );
+ }
+}
+```
```html
-
+
+
+
+
+Circle
+
+
+
+
+
+
+ 2
+
+Square
+
+
+
+
+
+
+
+Rounded
```
+```scss
+@use "sass:list";
+@use "igniteui-theming/sass/typography" as *;
+
+$avatars: circle, square, rounded;
-> [!NOTE]
-> This component uses Material Icons. Add the following link to your `index.html`: ``
+:host {
+ display: grid;
+ grid-auto-flow: column;
+ grid-template-rows: auto auto;
+ place-content: center;
+ place-items: center;
+ column-gap: rem(40px);
+ row-gap: rem(8px);
+ height: 100vh;
+ padding: rem(32px);
+}
-You should see something like this:
+igx-avatar {
+ grid-row: 1;
+}
-
+ position: absolute;
+ inset-block-start: anchor(85.5%);
+ inset-inline-start: anchor(85.5%);
+ translate: -50% -50%;
+}
-To get started with styling the avatar, we need to import the `index` file, where all the theme functions and component mixins live:
+// The avatars and badges are flat siblings, so every badge needs its own anchor name to pin to.
+@each $avatar in $avatars {
+ $i: list.index($avatars, $avatar);
-```scss
-@use "igniteui-angular/theming" as *;
+ igx-avatar:nth-of-type(#{$i}) {
+ anchor-name: --#{$avatar};
+ }
-// IMPORTANT: Prior to Ignite UI for Angular version 13 use:
-// @import '~igniteui-angular/lib/core/styles/themes/index';
+ igx-badge:nth-of-type(#{$i}) {
+ position-anchor: --#{$avatar};
+ }
+}
```
-Following the simplest approach, we create a new theme that extends the [`avatar-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-avatar-theme) providing values for the `$background` and `$border-radius` parameters. The `$color` (or `$icon-color`) is automatically set to either black or white, depending on which offers better contrast with the specified background. Note that the `$border-radius` property only takes effect when the avatar's `shape` is set to `rounded`.
+### Size
-Given the following markup:
+Set `--ig-size` to one of the shared size tokens when you need a preset avatar size.
```html
-
-
-
+
```
-We create the following avatar theme:
+```typescript
+import { Component } from '@angular/core';
+import { IgxAvatarComponent } from 'igniteui-angular/avatar';
+import { IgxBadgeComponent } from 'igniteui-angular/badge';
-```scss
-$custom-avatar-theme: avatar-theme(
- $background: #72da67,
- $border-radius: 16px
-);
+@Component({
+ selector: 'app-avatar-size',
+ styleUrls: ['./avatar-size.component.scss'],
+ templateUrl: './avatar-size.component.html',
+ imports: [IgxAvatarComponent, IgxBadgeComponent]
+})
+export class AvatarSizeComponent {
+}
+```
+```html
+
+
+
+
+
+Large
+
+
+
+
+
+
+Medium
+
+
+
+
+
+
+Small
```
+```scss
+@use "sass:list";
+@use "igniteui-theming/sass/typography" as *;
-The last step is to pass the custom avatar theme:
+:host {
+ display: grid;
+ grid-auto-flow: column;
+ grid-template-rows: auto auto;
+ place-content: center;
+ place-items: center;
+ column-gap: rem(48px);
+ row-gap: rem(8px);
+ height: 100vh;
+ padding: rem(32px);
+}
-```scss
-.initials {
- @include tokens($custom-avatar-theme);
+igx-avatar {
+ grid-row: 1;
+}
+
+span {
+ grid-row: 2;
+ text-align: center;
+ color: var(--ig-gray-600);
+ font-family: "Aktiv Grotesk", sans-serif;
+ font-size: rem(13px);
+ font-weight: 400;
+ line-height: rem(20px);
+ letter-spacing: rem(0.3px);
+
+ @include type-style("body-1") {
+ margin: 0;
+ };
+}
+
+igx-badge {
+ position: absolute;
+ inset-block-start: anchor(85.5%);
+ inset-inline-start: anchor(85.5%);
+ translate: -50% -50%;
+}
+
+$avatars: large, medium, small;
+
+// The avatars and badges are flat siblings, so every badge needs its own anchor name to pin to.
+@each $avatar in $avatars {
+ $i: list.index($avatars, $avatar);
+
+ igx-avatar:nth-of-type(#{$i}) {
+ anchor-name: --#{$avatar};
+ }
+
+ igx-badge:nth-of-type(#{$i}) {
+ --ig-size: var(--ig-size-#{$avatar});
+ position-anchor: --#{$avatar};
+ }
}
```
-If all went well, you should see something like the following in the browser:
+### Do/Don't
+
+**When to use:** Use the avatar when a UI needs a small representation of a person, organization, object, or account, such as a profile image, initials, or an icon. Keep a consistent avatar strategy within the same UI region so repeated identities are easy to scan.
+
+**When not to use:** Use the [Badge](../inputs/badge.md) component when you need to show a count, status, or notification indicator instead of representing an entity. Badges can also decorate avatars when both identity and status need to appear together.
+
+
+
+
+
+
Do
+
Don't
+
+
+
+
+
+
+
+
+
+
+
+## Properties
+The avatar exposes a small set of inputs for its content and shape.
+
+| Name | Type | Default | Description |
+| -- | -- | -- | -- |
+| [`icon`](mcp:get_api_reference?platform=angular&component=IgxAvatarComponent&member=icon) | `string` | n/a | Sets the icon rendered by the avatar. |
+| [`initials`](mcp:get_api_reference?platform=angular&component=IgxAvatarComponent&member=initials) | `string` | n/a | Sets text initials rendered by the avatar. |
+| [`shape`](mcp:get_api_reference?platform=angular&component=IgxAvatarComponent&member=shape) | `"square" \| "rounded" \| "circle"` | `"square"` | Sets the avatar shape. |
+| [`size`](mcp:get_api_reference?platform=angular&component=IgxAvatarComponent&member=size) | `"small" \| "medium" \| "large"` | `"small"` | Sets the avatar size. |
+| [`src`](mcp:get_api_reference?platform=angular&component=IgxAvatarComponent&member=src) | `string` | n/a | Sets the image source URL. |
+
+## Styling
```typescript
import { Component, inject } from '@angular/core';
@@ -393,98 +793,344 @@ igx-badge {
}
```
-### Styling with Tailwind
+The avatar appearance is controlled through theme variables and platform-specific styling hooks.
+
+Use the avatar CSS variables for token-level changes and Angular host classes when you need to target a specific rendered type or shape.
+
+| Variable | What it changes |
+| -- | -- |
+| `--ig-avatar-background` | Avatar background color. |
+| `--ig-avatar-color` | Text and initials color. |
+| `--ig-avatar-icon-color` | Icon color. |
+| `--ig-avatar-border-radius` | Border radius used by rounded avatars. |
+| `--ig-avatar-size` | Avatar width and height. |
+| `--ig-size` | Shared component size token used to derive preset avatar sizes. |
-You can style the `avatar` using our custom Tailwind utility classes. Make sure to [set up Tailwind](themes/misc/tailwind-classes.md) first.
+| Selector | Description |
+| -- | -- |
+| `igx-avatar` | The avatar host element. |
+| `.igx-avatar--rounded` | Applied when `shape` is `rounded`. |
+| `.igx-avatar--circle` | Applied when `shape` is `circle`. |
+| `.igx-avatar--image` | Applied when the avatar renders an image. |
+| `.igx-avatar--icon` | Applied when the avatar renders an icon. |
+| `.igx-avatar--initials` | Applied when the avatar renders initials. |
+| `.igx-avatar__image` | The image avatar element. |
-Along with the tailwind import in your global stylesheet, you can apply the desired theme utilities as follows:
+### Sass Theming
+
+Use the `avatar-theme` function when your application customizes Ignite UI themes through Sass.
```scss
-@import "tailwindcss";
-...
-@use 'igniteui-theming/tailwind/utilities/material.css';
-```
+@use "igniteui-angular/theming" as *;
-The utility file includes both `light` and `dark` theme variants.
+$custom-avatar-theme: avatar-theme(
+ $background: #72da67,
+ $border-radius: 16px,
+ $size: 3rem
+);
-- Use `light-*` classes for the light theme.
-- Use `dark-*` classes for the dark theme.
-- Append the component name after the prefix, e.g., `light-avatar`, `dark-avatar`.
+:root {
+ @include tokens($custom-avatar-theme);
+}
+```
-Once applied, these classes enable dynamic theme calculations. From there, you can override the generated CSS variables using `arbitrary properties`. After the colon, provide any valid CSS color format (HEX, CSS variable, RGB, etc.).
+### CSS Variables
-You can find the full list of properties in the [avatar-theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-avatar-theme). The syntax is as follows:
+Set component CSS variables directly when you need local styling without a Sass build step.
-```html
-
-
+```css
+igx-avatar {
+ --ig-avatar-background: var(--ig-success-500);
+ --ig-avatar-color: var(--ig-success-500-contrast);
+ --ig-avatar-border-radius: 20px;
+}
```
->[!NOTE]
->The exclamation mark(`!`) is required to ensure the utility class takes precedence. Tailwind applies styles in layers, and without marking these styles as important, they will get overridden by the component’s default theme.
+### Styling with Tailwind
-At the end your avatar should look like this:
+Use the Angular Tailwind utility syntax when your application styles Ignite UI components through Tailwind classes.
-
3D Artist. Turning polygons into worlds and immersive digital realities
+
+
+
+
+ @for (stat of profileStats; track stat.label; let isLast = $last) {
+
+ {{ stat.value }}
+ {{ stat.label }}
+
+ @if (!isLast) {
+
+ }
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Kate Thompson
+
3D Artist. Turning polygons into worlds and immersive digital realities
+
+
+
+ @for (stat of profileStats; track stat.label; let isLast = $last) {
+
+ {{ stat.value }}
+ {{ stat.label }}
+
+ @if (!isLast) {
+
+ }
+ }
+
+
+
+
+
+
+
+
+
+
+
+```
```scss
-.my-app {
- --ig-avatar-size: 200px;
+@use "igniteui-theming/sass/typography" as *;
+
+:host {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, rem(344px));
+ gap: rem(40px);
+ place-content: center;
+ height: 100vh;
}
-```
-You can also use one of the predefined sizes, assigning it to the `--ig-size` variable, if theres no size attribute applied. The available values for `--ig-size` are `--ig-size-small`, `--ig-size-medium`, and `--ig-size-large`:
+igx-card:nth-of-type(2) {
+ align-self: center;
+}
-```scss
-igx-avatar {
- --ig-size: var(--ig-size-small);
+.card-sample-custom-subtitle {
+ display: block;
+ color: var(--ig-gray-700);
+
+ @include type-style("body-2") {
+ margin-block-start: rem(8px);
+ };
+}
+
+.stats-title {
+ color: var(--ig-gray-900);
+
+ @include type-style("subtitle-1") {
+ font-weight: 600;
+ };
+}
+
+.stats-subtitle {
+ color: var(--ig-gray-500);
+
+ @include type-style("body-2");
}
```
-Learn more about it in the [Size](display-density.md) article.
+## Accessibility
-
+The avatar is a non-interactive identity visual with accessible image semantics.
-## API References
+### Keyboard Interaction
-
+The avatar does not receive focus and has no keyboard interaction.
-- [IgxAvatarComponent](mcp:get_api_reference?platform=angular&component=IgxAvatarComponent)
+| Key | Action |
+| -- | -- |
+| n/a | The avatar is not keyboard interactive. |
+### Screen Readers / ARIA
-## Theming Dependencies
+The avatar initializes with image semantics and a default accessible label of `avatar`.
-- [IgxAvatar Theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-avatar-theme)
-- [IgxIcon Theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-icon-theme)
+- Use surrounding text to identify the represented person, entity, or object when an image avatar conveys identity.
+- Treat decorative avatars as redundant when adjacent text already identifies the same entity.
-## Additional Resources
+### Accessibility Compliance
+
+Infragistics documents Ignite UI for Angular accessibility support for Section 508 and WCAG 2.1 guideline areas in the [Accessibility Compliance](../interactivity/accessibility-compliance.md) topic.
+
+| Criterion | How the component complies |
+| -- | -- |
+| [1.1.1 Non-text Content](https://www.w3.org/WAI/WCAG21/Understanding/non-text-content) | The avatar has an accessible label and can be paired with surrounding text that identifies the represented entity. |
+| [4.1.2 Name, Role, Value](https://www.w3.org/WAI/WCAG21/Understanding/name-role-value) | The component initializes with `role="img"` and a default accessible label. |
+
+Your responsibilities:
+
+- Keep sufficient contrast between the avatar background and text or icon color when overriding styles.
+- Avoid duplicating the same identity announcement when adjacent text already names the person or entity.
+
+- Make sure nearby text identifies the represented entity when the avatar image conveys identity.
+
+## Troubleshooting
+
+Use this section to check boundaries and common decisions before treating Avatar as an interactive or status component.
+
+### Known Limitations
+
+The avatar is a visual identity primitive and does not add interaction, status, or notification behavior by itself.
+
+- Use an interactive container, such as a button or list item, when the represented entity must be clickable.
+- Use a badge with the avatar when you need to show status, counts, or notification indicators.
+
+## API References
+
+Use these API references for the complete avatar API surface.
+
+[`IgxAvatar`](mcp:get_api_reference?platform=angular&component=IgxAvatarComponent)
-
+## Dependencies
-Our community is active and always welcoming to new ideas.
+The Sass styling workflow uses the `IgxAvatar Theme` and `IgxIcon Theme` APIs.
+
+## Additional Resources
+
+Use these resources for support and related Ignite UI documentation.
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
+
+## Related Components
+
+Use these related components when identity needs to be combined with status, actions, or richer layout.
+
+- [Badge](../inputs/badge.md) - Use Badge to show counts, status, or notification indicators. Badge can decorate Avatar when the UI needs both identity and status.
+
+## FAQ
+
+ **Q: When should I use Avatar instead of Badge?**
+
+ Use Avatar when the UI needs to represent a person, account, organization, or object. Use Badge when the UI needs to show a count, status, or notification indicator.
+
+
+ **Q: Does Avatar add keyboard interaction?**
+
+ No. Avatar is non-interactive and does not receive focus by itself. Put it inside an interactive component when the represented entity needs an action.
+
+
+ **Q: How should I label image avatars for screen readers?**
+
+ Provide meaningful alternative text when the avatar image identifies a specific entity. Avoid repeating the same identity when adjacent text already names that entity.
+
+
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/badge.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/badge.md
index c955110ef..00f6fec15 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/badge.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/badge.md
@@ -1,107 +1,178 @@
---
-title: Angular Badge Component – Ignite UI for Angular | Infragistics | MIT license
-_description: Display an active count or icon in a predefined style to decorate other components anywhere in an application with Ignite UI for Angular Badge control.
-_keywords: Angular Badge component, Angular Badge control, Ignite UI for Angular, Angular UI Components
-_license: MIT
+title: "Badge"
+description: "The Ignite UI for Angular Badge displays a short status, category, count, or notification indicator alongside avatars, navigation menus, and other components."
+keywords: "Angular Badge, Ignite UI for Angular, badge indicator"
+license: MIT
+mentionedTypes: ["Badge"]
+last_updated: "2026-07-24"
+llms:
+ description: "The Ignite UI for Angular Badge component displays a short status, category, count, or notification indicator alongside avatars, navigation menus, and other components."
_tocName: Badge
---
+# Badge Component
-# Angular Badge Component Overview
+The Angular Badge component is provided by the platform-specific Ignite UI for Angular package and is used in conjunction with avatars, navigation menus, or other components in an application when a visual notification is needed. Badges are usually designed with predefined styles to communicate information, success, warnings, or errors.
-
Angular Badge is a component used in conjunction with avatars, navigation menus, or other components in an application when a visual notification is needed. Badges are usually designed as icons with a predefined style to communicate information, success, warnings, or errors.
+## Live Demo
-## Angular Badge Example
+The Angular Badge demo shows how the component can communicate a compact status or notification next to another interface element.
-
-
+```typescript
+import { Component } from '@angular/core';
+import { IgxAvatarComponent } from 'igniteui-angular/avatar';
+import { IgxBadgeComponent } from 'igniteui-angular/badge';
+import { IgxChipComponent } from 'igniteui-angular/chips';
+import { IgxIconComponent } from 'igniteui-angular/icon';
+
+@Component({
+ selector: 'app-badge-overview',
+ templateUrl: './badge-overview.component.html',
+ styleUrls: ['./badge-overview.component.scss'],
+ imports: [IgxAvatarComponent, IgxBadgeComponent, IgxChipComponent, IgxIconComponent]
+})
+export class BadgeOverviewComponent { }
+```
+```html
+
+
+
+
+mail
+
+
+Events
+
+
+notifications
+
+```
+```scss
+@use "sass:list";
+@use "igniteui-theming/sass/typography" as *;
+
+:host {
+ display: grid;
+ grid-auto-flow: column;
+ place-content: center;
+ place-items: center;
+ column-gap: rem(60px);
+ min-height: 7rem;
+}
+
+igx-icon {
+ color: var(--ig-gray-700);
+ font-size: rem(24px);
+}
+
+igx-chip {
+ --ig-size: var(--ig-size-large);
+}
-
+igx-badge {
+ --ig-size: var(--ig-size-small);
-## Getting Started with Ignite UI for Angular Badge
+ position: absolute;
+ inset-block-start: anchor(10%);
+ inset-inline-start: anchor(85.5%);
+ translate: -50% -50%;
+}
-To get started with the Ignite UI for Angular Badge component, first you need to install Ignite UI for Angular. In an existing Angular application, type the following command:
+igx-badge:nth-of-type(1) {
+ inset-block-start: anchor(85.5%);
+}
-```cmd
-ng add igniteui-angular
+$anchors: avatar, mail, events, notifications;
+
+@each $anchor in $anchors {
+ $i: list.index($anchors, $anchor);
+
+ .#{$anchor}-anchor {
+ anchor-name: --#{$anchor};
+ }
+
+ igx-badge:nth-of-type(#{$i}) {
+ position-anchor: --#{$anchor};
+ }
+}
```
-For a complete introduction to the Ignite UI for Angular, read the [_getting started_](general/getting-started.md) topic.
+## Anatomy
-The next step is to import the `IgxBadgeModule` in your **app.module.ts** file.
+The Angular Badge presents a compact label or dot indicator that decorates another interface element.
-```typescript
-// app.module.ts
+**Badge anatomy:** The Badge component is a compact label or dot indicator that decorates another interface element.
-...
-import { IgxBadgeModule } from 'igniteui-angular/badge';
-// import { IgxBadgeModule } from '@infragistics/igniteui-angular'; for licensed package
+
+
+1. Dot indicator: A small badge dot used to show a status or a new update.
+2. Icon: Represents the type of status or action.
+3. Container: The badge shape that holds and styles the icon or label.
+4. Label: Text or a number displayed inside the badge.
+
+The component renders its content inside the `base` CSS part. Use the component's default slot for text or other inline content; when `dot` is enabled, the badge renders as an indicator without content.
+
+```text
+
+└── ::part(base)
+ └── default slot content
+
```
-Alternatively, as of `16.0.0` you can import the `IgxBadgeComponent` as a standalone dependency.
+## Getting Started
-```typescript
-// home.component.ts
+To use the Angular Badge, follow the [Ignite UI for Angular Getting Started](../general/getting-started.md) topic for the basic project setup, then register the component for your target platform.
-...
-import { IgxBadgeComponent } from 'igniteui-angular/badge';
-// import { IgxBadgeComponent } from '@infragistics/igniteui-angular'; for licensed package
+For Angular using the **igniteui-angular** package, install the package:
-@Component({
- selector: 'app-home',
- template: '',
- styleUrls: ['home.component.scss'],
- standalone: true,
- imports: [IgxBadgeComponent]
-})
-export class HomeComponent {}
+```cmd
+npm install igniteui-angular
+```
+
+Then import `IgxBadgeComponent` in the component `imports` collection.
+
+```ts
+import { IgxBadgeComponent } from 'igniteui-angular/badge';
```
-> [!NOTE]
-> This component uses Material Icons. Add the following link to your `index.html`: ``
+The simplest way to start using the [`IgxBadge`](mcp:get_api_reference?platform=angular&component=IgxBadgeComponent) is as follows:
+
+```html
+
+```
-Now that you have the Ignite UI for Angular Badge module or component imported, you can start with a basic configuration of the `igx-badge` component.
+## Usage
-## Using the Angular Badge Component
+Use the Angular Badge to display a short status, category, count, or notification indicator alongside another component.
-Let's see how the demo sample is done. It's a simple success badge on an avatar. To build that, we need to import the `IgxAvatarModule`, along with the `IgxBadgeModule`:
+Let's see how the demo sample is done. It's a simple success badge on an avatar. To build that, import the `IgxAvatarModule` together with the `IgxBadgeModule`:
```typescript
-// app.module.ts
-...
import { IgxBadgeModule } from 'igniteui-angular/badge';
import { IgxAvatarModule } from 'igniteui-angular/avatar';
-// import { IgxBadgeModule, IgxAvatarModule } from '@infragistics/igniteui-angular'; for licensed package
-
-@NgModule({
- ...
- imports: [..., IgxBadgeModule, IgxAvatarModule],
- ...
-})
-
-export class AppModule {}
```
-_Alternatively, as of `16.0.0` you can import the `IgxBadgeComponent` and `IgxAvatarComponent` as standalone dependencies._
-
-Next, we will add those components to our template:
+Add both modules to the component `imports` collection, or import the standalone components. Then add the components to your template:
```html
-
-
+
+
```
-Using the wrapper, we will position the badge absolutely, covering a little bit of the avatar:
+Use a relatively positioned wrapper to place the Badge over the avatar:
```scss
.wrapper {
@@ -116,79 +187,130 @@ igx-badge {
}
```
-### Badge Shape
+### Type
-We can change the badge shape through the `shape` attribute setting its value to `square`. By default, the shape of the badge is `rounded`.
+The Badge can carry different types of content such as a number or an icon.
+
+Use the `[value]` input to display text or a numeric count inside the Badge:
```html
-
+
```
-If everything's done right, you should see the demo sample shown above in your browser.
-
-### Badge Size
-
-The size of the badge can be controlled using the `--size` variable. It will make sure that the badge sizes proportionally in both directions. Keep in mind, however, that badges containing text values use the `caption` typography style for its font-size and line-height. For that reason, when setting the `--size` of a badge containing text to values below 16px, you will also need to modify its typography.
-
-Example:
-
-```scss
-igx-badge {
- --size: 12px;
+Use the `[icon]` input to display an icon inside the Badge:
- font-size: calc(var(--size) / 2);
- line-height: normal;
-}
+```html
+
```
-### Badge Value and Icon
-
-Use the `[value]` input to display text or a numeric count inside the badge:
+When both `[icon]` and `[value]` are set, the Badge displays both simultaneously:
```html
-
+
```
-Use the `[icon]` input to display an icon inside the badge:
+You can also project content directly. When projecting both an icon and text, wrap the text to keep the correct padding:
```html
-
+
+ bluetooth
+ Bluetooth
+
```
-When both `[icon]` and `[value]` are set, the badge displays both simultaneously:
+```typescript
+import { Component } from '@angular/core';
+import { IgxAvatarComponent } from 'igniteui-angular/avatar';
+import { IgxBadgeComponent } from 'igniteui-angular/badge';
+@Component({
+ selector: 'app-badge-type',
+ templateUrl: './badge-type.component.html',
+ styleUrls: ['./badge-type.component.scss'],
+ imports: [IgxAvatarComponent, IgxBadgeComponent]
+})
+export class BadgeTypeComponent { }
+```
```html
-
-
+
+
+Dot
+
+
+
+Icon
+
+
+
+Text
```
+```scss
+@use "sass:list";
+@use "igniteui-theming/sass/typography" as *;
-Or you can project content directly:
+$types: dot, icon, text;
-```html
- {{ model.value }}
+:host {
+ display: grid;
+ grid-auto-flow: column;
+ grid-template-rows: auto auto;
+ place-content: center;
+ place-items: center;
+ column-gap: rem(60px);
+ row-gap: rem(16px);
+ min-height: 8.5rem;
+ padding: rem(32px);
+}
-
-
- bluetooth
- Bluetooth
-
-```
+igx-avatar {
+ --ig-avatar-size: #{rem(40px)};
+
+ grid-row: 1;
+}
+
+span {
+ grid-row: 2;
+ text-align: center;
+ color: var(--ig-gray-600);
+ font-family: "Aktiv Grotesk", sans-serif;
+ font-size: rem(13px);
+ font-weight: 400;
+ line-height: rem(20px);
+ letter-spacing: rem(0.3px);
+
+ @include type-style("caption") {
+ margin: 0;
+ }
+}
+
+igx-badge {
+ --ig-size: var(--ig-size-small);
-### Badge Icon
+ position: absolute;
+ inset-block-start: anchor(85.5%);
+ inset-inline-start: anchor(85.5%);
+ translate: -50% -50%;
+}
-In addition to material icons, the `igx-badge` component also supports usage of [Material Icons Extended](../components/material-icons-extended.md) and any other custom icon set. To add an icon from the material icons extended set inside your badge component, first you have to register it:
+@each $type in $types {
+ $i: list.index($types, $type);
-```ts
-export class BadgeIconComponent implements OnInit {
- constructor (protected _iconService: IgxIconService) {}
+ igx-avatar:nth-of-type(#{$i}) {
+ anchor-name: --#{$type};
+ }
- public ngOnInit() {
- this._iconService.addSvgIconFromText(heartMonitor.name, heartMonitor.value, 'imx-icons');
+ igx-badge:nth-of-type(#{$i}) {
+ position-anchor: --#{$type};
}
}
```
-Then, just specify the icon name and family as follows:
+#### Icon
+In addition to Material Icons, the Angular Badge supports Material Icons Extended and other custom icon sets. Register the custom icon with `IgxIconService`, then specify its name and icon set:
+
+```ts
+this._iconService.addSvgIconFromText(heartMonitor.name, heartMonitor.value, 'imx-icons');
+```
```html
@@ -258,7 +380,12 @@ span {
grid-row: 2;
text-align: center;
- color: var(--ig-gray-700);
+ color: var(--ig-gray-600);
+ font-family: "Aktiv Grotesk", sans-serif;
+ font-size: rem(13px);
+ font-weight: 400;
+ line-height: rem(20px);
+ letter-spacing: rem(0.3px);
}
igx-badge:last-of-type {
@@ -272,262 +399,917 @@ igx-badge:last-of-type {
}
```
-### Dot Badge
+#### Dot
-The `igx-badge` component can also render as a minimal dot indicator for notifications by enabling its `dot` property. Dot badges do not support content, but they can be outlined and can use any of the available dot types (e.g., primary, success, info, etc.).
+The Ignite UI for Angular Badge can also render as a minimal dot indicator for notifications by setting its [`dot`](mcp:get_api_reference?platform=angular&component=IgxBadgeComponent&member=dot) attribute. Dot badges do not support content, but they can be outlined and can use any of the available dot types (for example, `primary`, `success`, or `info`).
-
-
+Set the [`dot`](mcp:get_api_reference?platform=angular&component=IgxBadgeComponent&member=dot) attribute to render a minimal notification indicator without content:
-### Badge in List
+```html
+
+```
-Let's extend the previous sample and create a list with contacts, similar to those in chat clients. In addition to the contact name, we want to display an avatar and the current state of the contact (online, offline or away). To achieve this, we're using the [`igx-badge`](mcp:get_api_reference?platform=angular&component=IgxBadgeComponent) and [`igx-avatar`](mcp:get_api_reference?platform=angular&component=IgxAvatarComponent) components. For a container, [`igx-list`](mcp:get_api_reference?platform=angular&component=IgxListComponent) is used.
+```typescript
+import { Component } from '@angular/core';
+import { IgxAvatarComponent } from 'igniteui-angular/avatar';
+import { IgxBadgeComponent } from 'igniteui-angular/badge';
+import { IgxIconComponent, IgxIconService} from 'igniteui-angular/icon';
+import { facebookMessenger } from '@igniteui/material-icons-extended';
-To continue, include all needed modules and import them in the **app.module.ts** file.
+@Component({
+ selector: 'app-badge-dot',
+ styleUrls: ['./badge-dot.component.scss'],
+ templateUrl: './badge-dot.component.html',
+ imports: [IgxAvatarComponent, IgxBadgeComponent, IgxIconComponent]
+})
+export class BadgeDotComponent {
+ constructor(private iconService: IgxIconService) {
+ this.iconService.addSvgIconFromText('facebookMessenger', facebookMessenger.value);
+ }
-```typescript
-// app.module.ts
+ public notifications = [
+ { title: 'Contract renewal', time: '09:12', unread: true },
+ { title: 'Weekly digest', time: 'Yesterday', unread: false }
+ ];
-...
-import { IgxListModule } from 'igniteui-angular/list';
-import { IgxAvatarModule } from 'igniteui-angular/avatar';
-import { IgxBadgeModule } from 'igniteui-angular/badge';
-// import { IgxListModule, IgxAvatarModule, IgxBadgeModule } from '@infragistics/igniteui-angular'; for licensed package
+ public tabs = [
+ { label: 'Home', icon: 'home', active: true, hasUpdates: false },
+ { label: 'Chat', icon: 'facebookMessenger', active: false, hasUpdates: true },
+ { label: 'Profile', icon: 'person', active: false, hasUpdates: false }
+ ];
+}
+```
+```html
+
+
+
+
+
+ @for (item of notifications; track item.title) {
+
```
+```scss
+@use "sass:list";
+@use "igniteui-theming/sass/typography" as *;
+
+:host {
+ --sample-accent: var(--ig-primary-800);
->[!NOTE]
->The [`igx-badge`](mcp:get_api_reference?platform=angular&component=IgxBadgeComponent) has [`icon`](mcp:get_api_reference?platform=angular&component=IgxBadgeComponent&member=icon), [`value`](mcp:get_api_reference?platform=angular&component=IgxBadgeComponent&member=value), and [`type`](mcp:get_api_reference?platform=angular&component=IgxBadgeComponent&member=type) inputs to configure the badge look. You can set the icon by providing its name from the official [material icons set](https://material.io/icons/). The badge type can be set to either [`default`](mcp:get_api_reference?platform=angular&component=Type&member=default), [`info`](mcp:get_api_reference?platform=angular&component=Type&member=info), [`success`](mcp:get_api_reference?platform=angular&component=Type&member=success), [`warning`](mcp:get_api_reference?platform=angular&component=Type&member=warning), or [`error`](mcp:get_api_reference?platform=angular&component=Type&member=error). Depending on the type, a specific background color is applied.
+ display: grid;
+ grid-auto-flow: column;
+ place-content: center;
+ place-items: center;
+ column-gap: rem(40px);
+ min-height: 8.5rem;
+}
-In our sample, [`icon`](mcp:get_api_reference?platform=angular&component=IgxBadgeComponent&member=icon) and [`type`](mcp:get_api_reference?platform=angular&component=IgxBadgeComponent&member=type) are bound to model properties named _icon_ and _type_.
+igx-badge {
+ --ig-size: var(--ig-size-small);
-Next, we're adding the contacts in our template:
+ position: absolute;
+ inset-block-start: anchor(14.5%);
+ inset-inline-start: anchor(85.5%);
+ translate: -50% -50%;
+}
-```html
-
-
-
-
- Team Members (4)
-
-
-
-
-
-
-
-
- {{ member.name }}
-
-
-
-
-```
-
-We're going to create our members in the typescript file like this:
+igx-avatar.icon-anchor {
+ --ig-avatar-background: var(--ig-gray-300);
+}
-```typescript
-// contacts.component.ts
-
-...
- public members: Member[] = [
- new Member('Terrance Orta', 'online'),
- new Member('Donna Price', 'online'),
- new Member('Lisa Landers', 'away'),
- new Member('Dorothy H. Spencer', 'offline'),
- ];
+$anchors: icon, avatar;
-```
+@each $anchor in $anchors {
+ $i: list.index($anchors, $anchor);
-```typescript
+ .#{$anchor}-anchor {
+ anchor-name: --#{$anchor};
+ }
-...
-class Member {
- public name: string;
- public status: string;
- public type: string;
- public icon: string;
-
- constructor(name: string, status: string) {
- this.name = name;
- this.status = status;
- switch (status) {
- case 'online':
- this.type = 'success';
- this.icon = 'check';
- break;
- case 'away':
- this.type = 'warning';
- this.icon = 'schedule';
- break;
- case 'offline':
- this.type = 'error';
- this.icon = 'remove';
- break;
- }
+ :host > igx-badge:nth-of-type(#{$i}) {
+ position-anchor: --#{$anchor};
}
}
-```
-Position the badge in its parent container:
+.notifications-card,
+.nav-card {
+ background: var(--ig-surface-500);
+ border-radius: rem(4px);
+ box-shadow: 0 rem(1px) rem(3px) hsl(from var(--ig-gray-900) h s l / 0.12);
+}
-```css
-/* contacts.component.css */
+.notifications-card {
+ min-width: rem(270px);
+ padding-block: rem(8px);
+}
+
+.notification-row {
+ @include type-style("body-2") {
+ margin: 0;
+ }
-.wrapper {
display: flex;
- flex-direction: row;
+ align-items: center;
+ gap: rem(8px);
+ padding: rem(8px) rem(12px);
+ color: var(--ig-gray-900);
+}
+
+.row-indicator {
+ display: inline-flex;
+ justify-content: center;
+ width: rem(12px);
+}
+
+.row-title {
+ flex: 1;
}
-.contact-name {
+.unread {
+ color: var(--ig-gray-900);
font-weight: 600;
}
-.contact-container {
- margin-left: 20px;
+.row-chevron {
+ color: var(--ig-gray-600);
+ font-size: rem(18px);
}
-.badge-style {
- position: absolute;
- bottom: 2.5px;
- left: 40px;
+.nav-card {
+ display: flex;
+ align-items: center;
+ gap: rem(8px);
+ padding: rem(8px) rem(12px);
}
-```
+.nav-item {
+ @include type-style("caption") {
+ margin: 0;
+ }
+
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: rem(4px);
+ min-width: rem(56px);
+ color: var(--ig-gray-700);
+
+ &.active {
+ color: var(--sample-accent);
+ }
+}
-If the sample is configured properly, a list of members should be displayed and every member has an avatar and a badge, showing its current state.
+.nav-icon {
+ position: relative;
+ display: inline-flex;
-
-
+ igx-badge {
+ position: absolute;
+ inset-block: rem(-2px) auto;
+ inset-inline: auto rem(-6px);
+ }
+}
+```
-## Styling
+### Size
-### Badge Theme Property Map
-
-Changing the `$background-color` property automatically updates the following dependent properties:
-
-
-
-
-
Primary Property
-
Dependent Property
-
Description
-
-
-
-
-
$background-color
-
$icon-color
-
The color used for icons in the badge.
-
-
-
-
$text-color
-
The color used for text in the badge.
-
-
-
-
-To get started with styling the badges, we need to import the `index` file, where all the theme functions and component mixins live:
+Control the Badge size with the `--size` CSS variable. For text badges smaller than `16px`, also adjust the font size and line height:
```scss
-@use "igniteui-angular/theming" as *;
+igx-badge {
+ --size: 12px;
-// IMPORTANT: Prior to Ignite UI for Angular version 13 use:
-// @import '~igniteui-angular/lib/core/styles/themes/index';
+ font-size: calc(var(--size) / 2);
+ line-height: normal;
+}
```
-Following the simplest approach, we create a new theme that extends the [`badge-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-badge-theme) and accepts some parameters that style the badge's items. When you set the `$background-color`, the `$icon-color` and `$text-color` are automatically assigned based on which offers better contrast—black or white. Note that the `$border-radius` property only takes effect when the badge's `shape` is set to `square`.
+```typescript
+import { Component } from '@angular/core';
+import { IgxBadgeComponent } from 'igniteui-angular/badge';
-```scss
-$custom-badge-theme: badge-theme(
- $background-color: #57a5cd,
- $border-radius: 4px
-);
+@Component({
+ selector: 'app-badge-size',
+ templateUrl: './badge-size.component.html',
+ styleUrls: ['./badge-size.component.scss'],
+ imports: [IgxBadgeComponent]
+})
+export class BadgeSizeComponent { }
```
+```html
+Small
+
+
+
-To include the new theme we use the `tokens` mixin:
+Medium
+
+
+
+Large
+
+
+
+```
```scss
+@use "sass:list";
+@use "igniteui-theming/sass/typography" as *;
+
:host {
- @include tokens($custom-badge-theme);
+ display: grid;
+ grid-template-columns: rem(80px) rem(32px) rem(40px) rem(40px);
+ place-content: center;
+ place-items: center;
+ column-gap: rem(8px);
+ row-gap: rem(40px);
+ padding: rem(32px);
}
-```
-
-### Demo
-
-
+span {
+ justify-self: end;
+ color: var(--ig-gray-600);
+ font-family: "Aktiv Grotesk", sans-serif;
+ font-size: rem(13px);
+ font-weight: 400;
+ line-height: rem(20px);
+ letter-spacing: rem(0.3px);
-### Styling with Tailwind
+ @include type-style("body-2") {
+ margin: 0;
+ }
+}
-You can style the `badge` using our custom Tailwind utility classes. Make sure to [set up Tailwind](themes/misc/tailwind-classes.md) first.
+$sizes: small, medium, large;
-Along with the tailwind import in your global stylesheet, you can apply the desired theme utilities as follows:
+@each $size in $sizes {
+ $i: list.index($sizes, $size);
-```scss
-@import "tailwindcss";
-...
-@use 'igniteui-theming/tailwind/utilities/material.css';
+ igx-badge:nth-of-type(n + #{($i - 1) * 3 + 1}):nth-of-type(-n + #{$i * 3}) {
+ --ig-size: var(--ig-size-#{$size});
+ }
+}
```
-The utility file includes both `light` and `dark` theme variants.
-
-- Use `light-*` classes for the light theme.
-- Use `dark-*` classes for the dark theme.
-- Append the component name after the prefix, e.g., `light-badge`, `dark-badge`.
+### Shape
-Once applied, these classes enable dynamic theme calculations. From there, you can override the generated CSS variables using `arbitrary properties`. After the colon, provide any valid CSS color format (HEX, CSS variable, RGB, etc.).
-
-You can find the full list of properties in the [badge-theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-badge-theme). The syntax is as follows:
+The Badge shape can be set to `rounded` (the default) or `square` with the [`shape`](mcp:get_api_reference?platform=angular&component=IgxBadgeComponent&member=shape) attribute.
```html
-
-
+
```
->[!NOTE]
->The exclamation mark(`!`) is required to ensure the utility class takes precedence. Tailwind applies styles in layers, and without marking these styles as important, they will get overridden by the component’s default theme.
-
-At the end your badges should look like this:
-
-
-
-
-
-## API References
+```typescript
+import { Component } from '@angular/core';
+import { IgxBadgeComponent } from 'igniteui-angular/badge';
-
+@Component({
+ selector: 'app-badge-shape',
+ templateUrl: './badge-shape.component.html',
+ styleUrls: ['./badge-shape.component.scss'],
+ imports: [IgxBadgeComponent]
+})
+export class BadgeShapeComponent { }
+```
+```html
+Rounded
+
+
+
+
+Square
+
+
+
+```
+```scss
+@use "sass:list";
+@use "igniteui-theming/sass/typography" as *;
-- [IgxAvatarComponent](mcp:get_api_reference?platform=angular&component=IgxAvatarComponent)
-- [IgxBadgeComponent](mcp:get_api_reference?platform=angular&component=IgxBadgeComponent)
-- [IgxBadgeComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-badge-theme)
-- [IgxListComponent](mcp:get_api_reference?platform=angular&component=IgxListComponent)
-- [IgxListItemComponent](mcp:get_api_reference?platform=angular&component=IgxListItemComponent)
-- [IgxBadgeType](https://www.infragistics.com/products/ignite-ui-angular/docs/typescript/latest/index.html#IgxBadgeType)
+:host {
+ display: grid;
+ grid-template-columns: rem(80px) rem(40px) rem(40px) rem(40px);
+ place-content: center;
+ place-items: center;
+ column-gap: rem(8px);
+ row-gap: rem(40px);
+ min-height: 8.5rem;
+}
-## Theming Dependencies
+span {
+ justify-self: end;
+ color: var(--ig-gray-600);
+ font-family: "Aktiv Grotesk", sans-serif;
+ font-size: rem(13px);
+ font-weight: 400;
+ line-height: rem(20px);
+ letter-spacing: rem(0.3px);
-- [IgxIcon Theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-icon-theme)
+ @include type-style("body-2") {
+ margin: 0;
+ }
+}
-## Additional Resources
+$sizes: small, medium, large;
+
+@each $size in $sizes {
+ $i: list.index($sizes, $size);
+
+ igx-badge:nth-of-type(3n + #{$i}) {
+ --ig-size: var(--ig-size-#{$size});
+ }
+}
+```
+
+When the Badge has a `square` shape, it can be further customized by setting a custom border radius using the `--border-radius` CSS variable.
+
+### Variants
+
+The Angular Badge supports the Primary, Info, Success, Warn, and Error types. Set the [`type`](mcp:get_api_reference?platform=angular&component=IgxBadgeComponent&member=type) attribute to select a type.
+
+```html
+
+```
+
+```typescript
+import { Component } from '@angular/core';
+import { IgxAvatarComponent } from 'igniteui-angular/avatar';
+import { IgxBadgeComponent } from 'igniteui-angular/badge';
+
+@Component({
+ selector: 'app-badge-variants',
+ styleUrls: ['./badge-variants.component.scss'],
+ templateUrl: './badge-variants.component.html',
+ imports: [IgxAvatarComponent, IgxBadgeComponent]
+})
+export class BadgeVariantsComponent { }
+```
+```html
+
+
+Primary
+
+
+
+Info
+
+
+
+Success
+
+
+
+Warn
+
+
+
+Error
+```
+```scss
+@use "sass:list";
+@use "igniteui-theming/sass/typography" as *;
+
+$variants: primary, info, success, warning, error;
+
+:host {
+ display: grid;
+ grid-auto-flow: column;
+ grid-template-rows: auto auto;
+ place-content: center;
+ place-items: center;
+ column-gap: rem(40px);
+ row-gap: rem(12px);
+ min-height: 8.5rem;
+ padding: rem(32px);
+}
+
+igx-avatar {
+ grid-row: 1;
+}
+
+span {
+ grid-row: 2;
+ text-align: center;
+ color: var(--ig-gray-600);
+ font-family: "Aktiv Grotesk", sans-serif;
+ font-size: rem(13px);
+ font-weight: 400;
+ line-height: rem(20px);
+ letter-spacing: rem(0.3px);
+
+ @include type-style("body-2") {
+ margin: 0;
+ }
+}
+
+igx-badge {
+ --ig-size: var(--ig-size-small);
+
+ position: absolute;
+ inset-block-start: anchor(85.5%);
+ inset-inline-start: anchor(85.5%);
+ translate: -50% -50%;
+}
+
+@each $variant in $variants {
+ $i: list.index($variants, $variant);
+
+ igx-avatar:nth-of-type(#{$i}) {
+ anchor-name: --#{$variant};
+ }
+
+ igx-badge:nth-of-type(#{$i}) {
+ position-anchor: --#{$variant};
+ }
+}
+```
+
+### Outlined
+
+The badge can also have a subtle border around it when the [`outlined`](mcp:get_api_reference?platform=angular&component=IgxBadgeComponent&member=outlined) attribute is set.
+
+```html
+
+```
+
+```typescript
+import { Component } from '@angular/core';
+import { IgxAvatarComponent } from 'igniteui-angular/avatar';
+import { IgxBadgeComponent } from 'igniteui-angular/badge';
+import { IGX_STEPPER_DIRECTIVES } from 'igniteui-angular/stepper';
+
+@Component({
+ selector: 'app-badge-outlined',
+ styleUrls: ['./badge-outlined.component.scss'],
+ templateUrl: './badge-outlined.component.html',
+ imports: [IgxAvatarComponent, IgxBadgeComponent, IGX_STEPPER_DIRECTIVES]
+})
+
+export class BadgeOutlinedComponent {
+ public steps = [
+ { index: 1, label: 'Orders', completed: true, active: false, flagged: false },
+ { index: 2, label: 'Payment', completed: false, active: true, flagged: true },
+ { index: 3, label: 'Shipping', completed: false, active: false, flagged: false }
+ ];
+}
+```
+```html
+
+
+
+
+
+
+
+ @for (step of steps; track step.label) {
+
+
+ {{ step.index }}
+ {{ step.label }}
+
+ }
+
+
+```
+```scss
+@use "sass:list";
+@use "igniteui-theming/sass" as *;
+
+:host {
+ display: grid;
+ grid-auto-flow: column;
+ place-content: center;
+ place-items: center;
+ column-gap: rem(60px);
+ min-height: 100vh;
+ padding-inline: rem(16px);
+
+ ::ng-deep {
+ // NOTE! This is just for the sake of the sample, don't do this in your app.
+ // The stepper body is where the content for each step goes, and it should be visible.
+ // This sample doesn't have any content, so we hide it to avoid the empty space.
+ .igx-stepper__body {
+ display: none;
+ }
+ }
+}
+
+.icon-anchor {
+ --ig-avatar-background: #{color($color: gray, $variant: 900, $opacity: 0.08)};
+}
+
+igx-badge {
+ --ig-size: var(--ig-size-small);
+
+ position: absolute;
+ inset-block-start: anchor(14.5%);
+ inset-inline-start: anchor(85.5%);
+ translate: -50% -50%;
+
+ &:nth-of-type(2) {
+ inset-block-start: anchor(85.5%);
+ }
+}
+
+$anchors: icon, initials, flagged;
+
+@each $anchor in $anchors {
+ $i: list.index($anchors, $anchor);
+
+ .#{$anchor}-anchor {
+ anchor-name: --#{$anchor};
+ }
+
+ :host > igx-badge:nth-of-type(#{$i}) {
+ position-anchor: --#{$anchor};
+ }
+}
+
+igx-stepper {
+ --ig-stepper-step-separator-style: dashed;
+ --ig-stepper-step-separator-color: var(--ig-gray-400);
+
+ inline-size: rem(320px);
+}
+
+span[igxStepIndicator] {
+ display: grid;
+ place-items: center;
+ inline-size: 100%;
+ block-size: 100%;
+}
+```
+
+### Do/Don't
+
+**When to use:** Use a Badge to communicate a short status, category, count, or notification state alongside another component. Use `dot` when the indicator does not need visible text.
+
+**When not to use:** Do not use a Badge as the primary control for an action, as a replacement for a form validation message, or when the status cannot be understood from the badge content, surrounding context, or accessible labeling.
+
+
+
+
+
+
Do
+
Don't
+
+
+
+
+
+
+
+
+
+
+
+## Properties
+
+The Angular Badge exposes platform-specific properties for controlling its content, appearance, and indicator behavior.
+
+The Angular Badge exposes the following properties. Use the API reference for the complete type definitions.
+
+| name | type | default | description |
+| --- | --- | --- | --- |
+| [`dot`](mcp:get_api_reference?platform=angular&component=IgxBadgeComponent&member=dot) | boolean | `false` | Renders the Badge as a dot indicator without content. |
+| [`outlined`](mcp:get_api_reference?platform=angular&component=IgxBadgeComponent&member=outlined) | boolean | `false` | Displays an outline around the Badge. |
+| [`shape`](mcp:get_api_reference?platform=angular&component=IgxBadgeComponent&member=shape) | BadgeShape | `rounded` | Sets the Badge shape. |
+| [`type`](mcp:get_api_reference?platform=angular&component=IgxBadgeComponent&member=type) | BadgeType | `default` | Sets the Angular Badge stylistic type. |
+| [`cssClass`](mcp:get_api_reference?platform=angular&component=IgxBadgeComponent&member=cssClass) | string | — | Applies a custom CSS class. |
+
+## Styling
+
+The Angular Badge uses the [`IgxBadge`](mcp:get_api_reference?platform=angular&component=IgxBadgeComponent) component's `base` CSS part and documented styling variables to customize its appearance.
+
+### Sass Theming
+
+Use the Ignite UI for Angular theme system to style the Badge consistently with the rest of your application.
+
+### CSS Variables
+
+| variable | what it changes |
+| --- | --- |
+| `--background-color` | The badge background color. |
+| `--border-color` | The badge border color. |
+| `--border-radius` | The badge corner radius. |
+| `--elevation` | The badge shadow. |
+| `--icon-color` | The badge icon color. |
+| `--text-color` | The badge text color. |
+| `--size` | The badge size. |
+| `--dot-size` | The size of the dot-type badge. |
+
+### Style Parts
+
+| part | what it styles |
+| --- | --- |
+| `base` | The Badge root element. |
+
+```css
+igc-badge::part(base) {
+ --background-color: var(--ig-error-A100);
+ --border-radius: 2px;
+}
+```
+
+```typescript
+import { Component } from '@angular/core';
+import { IgxAvatarComponent } from 'igniteui-angular/avatar';
+import { IgxBadgeComponent } from 'igniteui-angular/badge';
+
+
+@Component({
+ selector: 'app-badge-styling',
+ styleUrls: ['./badge-styling.component.scss'],
+ templateUrl: './badge-styling.component.html',
+ imports: [IgxAvatarComponent, IgxBadgeComponent]
+})
+export class BadgeStylingComponent { }
+```
+```html
+
+
+
+
+
+
+
+
+
+
+
+```
+```scss
+@use "sass:list";
+@use "sass:map";
+@use "igniteui-theming/sass/typography" as *;
+
+:host {
+ display: grid;
+ grid-auto-flow: column;
+ place-content: center;
+ place-items: center;
+ column-gap: rem(60px);
+ min-height: 7rem;
+}
+
+igx-badge {
+ --ig-size: var(--ig-size-small);
+
+ position: absolute;
+ inset-block-start: anchor(85.5%);
+ inset-inline-start: anchor(85.5%);
+ translate: -50% -50%;
+}
+
+.avatar-green {
+ --ig-avatar-background: var(--ig-success-200);
+ --ig-avatar-icon-color: var(--ig-success-700);
+}
+
+.avatar-pink {
+ --ig-avatar-background: #da64ff;
+ --ig-avatar-icon-color: var(--ig-gray-50);
+}
+
+$badges: (
+ teal: var(--ig-success-700),
+ amber: #c97c00,
+ magenta: #9c27b0,
+ lime: var(--ig-success-700),
+);
+
+@each $name, $color in $badges {
+ $i: list.index(map.keys($badges), $name);
+
+ igx-avatar:nth-of-type(#{$i}) {
+ anchor-name: --#{$name};
+ }
+
+ .badge-#{$name} {
+ --ig-badge-background-color: #{$color};
+
+ position-anchor: --#{$name};
+ }
+}
+```
+
+### Styling with Tailwind
+
+You can style the Badge using custom Tailwind utility classes. Make sure to [set up Tailwind](/themes/tailwind) first.
+
+Along with the Tailwind import in your global stylesheet, include the utility file:
+
+```scss
+@import "tailwindcss";
+@use 'igniteui-theming/tailwind/utilities/material.css';
+```
+
+Use `light-badge` and `dark-badge` for the light and dark theme variants. You can override the generated CSS variables with arbitrary properties:
+
+```html
+
+
+```
+
+The exclamation mark (`!`) ensures that the utility class takes precedence over the component's default theme.
+
+```typescript
+import { Component } from '@angular/core';
+import { IgxAvatarComponent } from 'igniteui-angular/avatar';
+import { IgxBadgeComponent } from 'igniteui-angular/badge';
+
+
+@Component({
+ selector: 'app-badge-tailwind-styling',
+ styleUrls: ['./badge-tailwind-styling.component.scss'],
+ templateUrl: './badge-tailwind-styling.component.html',
+ imports: [IgxAvatarComponent, IgxBadgeComponent]
+})
+export class BadgeTailwindStylingComponent { }
+```
+```html
+
+
+
+
+
+
+
+
+
+
+
+```
+```scss
+@use "sass:list";
+@use "igniteui-theming/sass/typography" as *;
+
+$anchors: close, volume, remove, check;
+
+:host {
+ display: grid;
+ grid-auto-flow: column;
+ place-content: center;
+ place-items: center;
+ column-gap: rem(48px);
+ min-height: 7rem;
+}
+
+igx-badge {
+ --ig-size: var(--ig-size-small);
+
+ position: absolute;
+ inset-block-start: anchor(85.5%);
+ inset-inline-start: anchor(85.5%);
+ translate: -50% -50%;
+}
+
+@each $anchor in $anchors {
+ $i: list.index($anchors, $anchor);
+
+ igx-avatar:nth-of-type(#{$i}) {
+ anchor-name: --#{$anchor};
+ }
+
+ igx-badge:nth-of-type(#{$i}) {
+ position-anchor: --#{$anchor};
+ }
+}
+```
+
+## Accessibility
+
+The Angular Badge is a non-interactive status visual that communicates a short count, state, or notification.
-
+### Keyboard Interaction
-Our community is active and always welcoming to new ideas.
+The Badge does not receive focus, handle keyboard input, or expose component interaction events.
+
+| Key | Action |
+| -- | -- |
+| n/a | The Badge is not keyboard interactive. |
+
+### Screen Readers / ARIA
+
+The Badge host uses `role="status"` to expose its content as status information.
+
+- The component initializes with `role="status"` and `aria-label="badge"`.
+- Angular derives `aria-roledescription` from the Badge type and its icon or value. Set the `label` input when `badge` is not a meaningful accessible name.
+- Add a meaningful `label` for a Badge without text or a `dot` Badge when its status is not otherwise available to assistive technology.
+
+### Accessibility Compliance
+
+Infragistics documents Ignite UI for Angular accessibility support for Section 508 and WCAG 2.1 guideline areas in the [Accessibility Compliance](../interactivity/accessibility-compliance.md) topic.
+
+| Criterion | How the component complies |
+| -- | -- |
+| [4.1.2 Name, Role, Value](https://www.w3.org/WAI/WCAG21/Understanding/name-role-value.html) | The Badge exposes the semantic `status` role. The xplat implementation also exposes a role description based on the current variant; Angular exposes an accessible label and a role description based on its type and content. |
+
+Your responsibilities:
+
+- Provide an accessible name that explains the status when the Badge has no meaningful text, especially for `dot` Badges.
+- Do not use Badge color as the only indication of status; pair it with text, an icon, or another accessible cue.
+- Keep sufficient contrast between the Badge foreground and background when overriding theme styles.
+
+## Troubleshooting
+
+Use this section to check boundaries and common decisions before treating Badge as an interactive control or the only indication of status.
+
+### Why does my custom background color not change the Badge?
+
+The selected `variant` takes precedence over the `--background-color` CSS variable. To use a custom background color, avoid setting a variant that applies its own background color.
+
+### Why is my dot Badge not displaying content?
+
+The `dot` property renders the Badge as a minimal indicator and does not support content. Use a regular Badge when you need to display text or other inline content.
+
+### Known Limitations
+
+The Angular Badge has the following platform-independent limitations.
+
+- A dot Badge is an indicator only and cannot display text or an icon.
+- Badge styling and variant/type names differ between Angular and the other supported frameworks. Use the platform-specific examples and API links on this page rather than copying an attribute between frameworks.
+- The Badge is a visual status indicator and does not provide keyboard interaction of its own.
+
+## API References
+
+The Angular Badge API reference lists the complete verified API surface for the target platform.
+[`IgxBadge`](mcp:get_api_reference?platform=angular&component=IgxBadgeComponent)
+
+## Dependencies
+
+The Angular Badge requires a theme stylesheet to apply its visual styling. See the framework-specific setup in **Getting Started**.
+
+## Additional Resources
+
+The following resources provide additional Angular Badge guidance and project support.
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
+
+## Related Components
+
+The Angular Badge is commonly used with related components such as Avatar when a status indicator belongs to another visual element.
+
+- [Avatar](../layouts/avatar.md) — combine an Avatar with a Badge to show a status indicator.
+
+## FAQ
+
+ **Q: Can a Badge display both an icon and text?**
+
+ Yes. Use the Badge's content area for the text and the supported icon content for the visual indicator. Keep the combination short so it remains a compact status or category label.
+
+
+ **Q: How do I display a notification dot without content?**
+
+ Set the platform-specific `dot` property or attribute. A dot Badge intentionally renders without text or other content.
+
+
+ **Q: When should I use a dot Badge instead of a text Badge?**
+
+ Use a dot Badge when the status is communicated by presence alone. Use a text Badge when users need the status, category, or count to be understandable without relying on color or position.
+
+
+ **Q: Which package should I install for Badge?**
+
+ Use `igniteui-angular` for Angular, `igniteui-react` for React, `igniteui-webcomponents` for Web Components, and `IgniteUI.Blazor` for Blazor. Keep related Ignite UI packages on the same release version.
+
+
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/banner.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/banner.md
index 4152e99b3..f1eee95f6 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/banner.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/banner.md
@@ -1,14 +1,17 @@
---
title: Angular Banner Component – Ignite UI for Angular | Infragistics | MIT license
-_description: Easily integrate a short, non-intrusive message (along with optional actions) using Ignite UI for Angular Banner component.
-_keywords: Angular Banner component, Angular Banner control, Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Angular UI Components
-_license: MIT
+description: Easily integrate a short, non-intrusive message (along with optional actions) using Ignite UI for Angular Banner component.
+keywords: Angular Banner component, Angular Banner control, Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Angular UI Components
+license: MIT
+llms:
+ description: "Angular Banner Component provides a way to easily display a prominent message to your application's users in a way that is less transient than a snackbar and less obtrusive than a dialog."
_tocName: Banner
---
-
# Angular Banner Component Overview
-
Angular Banner Component provides a way to easily display a prominent message to your application's users in a way that is less transient than a snackbar and less obtrusive than a dialog. The Banner can also be configured to display custom action buttons and an icon.
+
+Angular Banner Component provides a way to easily display a prominent message to your application's users in a way that is less transient than a snackbar and less obtrusive than a dialog. The Banner can also be configured to display custom action buttons and an icon.
+
## Angular Banner Example
@@ -59,7 +62,7 @@ export class BannerSample1Component implements OnInit {
```
-
+
## Getting Started with Ignite UI for Angular Banner
@@ -69,7 +72,7 @@ To get started with the Ignite UI for Angular Banner component, first you need t
ng add igniteui-angular
```
-For a complete introduction to the Ignite UI for Angular, read the [_getting started_](general/getting-started.md) topic.
+For a complete introduction to the Ignite UI for Angular, read the [_getting started_](./general/getting-started.md) topic.
The next step is to import the `IgxBannerModule` in your **app.module.ts** file.
@@ -112,6 +115,10 @@ import { IGX_BANNER_DIRECTIVES } from 'igniteui-angular/banner';
export class HomeComponent {}
```
+
+**Note:**
+This component uses Material Icons. Add the following link to your `index.html`: ``
+
Now that you have the Ignite UI for Angular Banner module or directives imported, you can start with a basic configuration of the `igx-banner` component.
## Using the Angular Banner Component
@@ -121,7 +128,7 @@ Now that you have the Ignite UI for Angular Banner module or directives imported
In order to display the banner component, use its [`open()`](mcp:get_api_reference?platform=angular&component=IgxBannerComponent&member=open) method and call it on a button click. The banner appears relative to where the element was inserted in the page template, moving all other content. It typically shows some non-intrusive content that requires minimal user interaction to be dismissed.
```html
-
+{/*banner.component.html*/}
refresh
...
@@ -131,22 +138,19 @@ In order to display the banner component, use its [`open()`](mcp:get_api_referen
```
-> [!NOTE]
-> This component uses Material Icons. Add the following link to your `index.html`: ``
-
-> [!NOTE]
-> The `IgxBannerModule` includes a default banner button `Dismiss`, which closes the banner.
+**Note:**
+The `IgxBannerModule` includes a default banner button `Dismiss`, which closes the banner.
## Examples
-The [`IgxBannerComponent`](mcp:get_api_reference?platform=angular&component=IgxBannerComponent) allows templating of its content while still sticking as closely as possible to the material design banner guidelines.
+The [`IgxBanner`](mcp:get_api_reference?platform=angular&component=IgxBannerComponent) allows templating of its content while still sticking as closely as possible to the material design banner guidelines.
### Changing the banner message
Configuring the message displayed in the banner is easy - just change the content you are passing to the `igx-banner` tag. The text will show up in the specified banner area and the banner will use its default template when displaying it. Below, we will change the content of our sample banner to be a bit more descriptive:
```html
-
+{/*banner.component.html*/}
You have lost connection to the internet. This app is offline.
@@ -154,15 +158,15 @@ Configuring the message displayed in the banner is easy - just change the conten
### Adding an icon
-An [`igx-icon`](icon.md) can be displayed in the banner by passing it to the banner's content. The icon will always be positioned at the beginning of the banner message.
+An [`igx-icon`](./icon.md) can be displayed in the banner by passing it to the banner's content. The icon will always be positioned at the beginning of the banner message.
-> [!NOTE]
-> If several `igx-icon` elements are inserted as direct descendants of the banner, the banner will try to position all of them at the beginning. It is strongly advised to pass only one `igx-icon` directly to the banner.
+**Note:**
+If several `igx-icon` elements are inserted as direct descendants of the banner, the banner will try to position all of them at the beginning. It is strongly advised to pass only one `igx-icon` directly to the banner.
To pass an `igx-icon` to you banner, simply insert it in the banner's content:
```html
-
+{/*banner.component.html*/}
signal_wifi_off
You have lost connection to the internet. This app is offline.
@@ -172,7 +176,7 @@ To pass an `igx-icon` to you banner, simply insert it in the banner's content:
If you want to use an `igx-icon` in your banner message, wrap it in a `span` tag:
```html
-
+{/*banner.component.html*/}
You have lost connection to the internet. This app is offline.
@@ -186,7 +190,7 @@ If you want to use an `igx-icon` in your banner message, wrap it in a `span` tag
The `IgxBannerModule` exposes a directive for templating the banner buttons - [`IgxBannerActionsDirective`](mcp:get_api_reference?platform=angular&component=IgxBannerActionsDirective). This directive allows you to override the default banner button (`Dismiss`) and add user-defined custom actions.
```html
-
+{/*banner.component.html*/}
signal_wifi_off
You have lost connection to the internet. This app is offline.
@@ -196,7 +200,6 @@ The `IgxBannerModule` exposes a directive for templating the banner buttons - [`
```
-
```typescript
import { Component, OnInit, ViewChild } from '@angular/core';
import { IgxBannerActionsDirective, IgxBannerComponent } from 'igniteui-angular/banner';
@@ -251,15 +254,14 @@ export class BannerSample2Component implements OnInit {
```
-
### Applying custom animations
-The banner component comes with the [`animationSettings`](mcp:get_api_reference?platform=angular&component=IgxBannerComponent&member=animationSettings) property that allows applying custom opening and closing animations. Developers can choose between self-defined animations, and those from our [`Animation suite`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/animations). The default ones, used by the banner, are `growVerIn` for entering and `growVerOut` for exiting.
+The banner component comes with the [`animationSettings`](mcp:get_api_reference?platform=angular&component=IgxBannerComponent&member=animationSettings) property that allows applying custom opening and closing animations. Developers can choose between self-defined animations, and those from our `Animation suite`. The default ones, used by the banner, are `growVerIn` for entering and `growVerOut` for exiting.
Let's change the animations that our banner uses, so that it slides in and out:
```html
-
+{/*banner.component.html*/}
...
@@ -281,7 +283,6 @@ export class MyBannerComponent {
}
```
-
```typescript
import { Component, OnInit, ViewChild } from '@angular/core';
import { IgxBannerActionsDirective, IgxBannerComponent } from 'igniteui-angular/banner';
@@ -340,15 +341,14 @@ export class BannerSample3Component implements OnInit {
```
-
### Binding to events
-The banner component emits events when changing its state - [`opening`](mcp:get_api_reference?platform=angular&component=IgxBannerComponent&member=opening) and [`opened`](mcp:get_api_reference?platform=angular&component=IgxBannerComponent&member=opened) are called when the banner is shown (before and after, resp.), while [`closing`](mcp:get_api_reference?platform=angular&component=IgxBannerComponent&member=closing) and [`closed`](mcp:get_api_reference?platform=angular&component=IgxBannerComponent&member=closed) are emitted when the banner is closed. The _ing_ events (`opening`, `closing`) are cancelable - they use the `ICancelEventArgs` interface and the emitted object has a `cancel` property. If the `cancel` property is set to true, the corresponding end action and event will not be triggered - e.g. if we cancel `opening`, the banner's `open` method will not finish and the banner will not be shown.
+The banner component emits events when changing its state - [`opening`](mcp:get_api_reference?platform=angular&component=IgxBannerComponent&member=opening) and [`opened`](mcp:get_api_reference?platform=angular&component=IgxBannerComponent&member=opened) are called when the banner is shown (before and after, resp.), while [`closing`](mcp:get_api_reference?platform=angular&component=IgxBannerComponent&member=closing) and [`closed`](mcp:get_api_reference?platform=angular&component=IgxBannerComponent&member=closed) are emitted when the banner is closed. The _ing_ events ([`opening`](mcp:get_api_reference?platform=angular&component=IgxBannerComponent&member=opening), [`closing`](mcp:get_api_reference?platform=angular&component=IgxBannerComponent&member=closing)) are cancelable - they use the `ICancelEventArgs` interface and the emitted object has a `cancel` property. If the `cancel` property is set to true, the corresponding end action and event will not be triggered - e.g. if we cancel [`opening`](mcp:get_api_reference?platform=angular&component=IgxBannerComponent&member=opening), the banner's [`open()`](mcp:get_api_reference?platform=angular&component=IgxBannerComponent&member=open) method will not finish and the banner will not be shown.
To cancel an event, bind it to the emitted object and set its `cancel` property to `true`.
```html
-
+{/*banner.component.html*/}
...
@@ -365,15 +365,15 @@ export class MyBannerComponent {
}
```
-> [!NOTE]
-> If the changes above are applied, the banner will never open, as the opening event is always cancelled.
+**Note:**
+If the changes above are applied, the banner will never open, as the opening event is always cancelled.
## Advanced Example
Let's create a banner with two custom buttons - one for dismissing the notification and one for turning on the connection. We can pass custom action handlers using the `igx-banner-actions` selector:
```html
-
+{/*banner.component.html*/}
signal_wifi_off
You have lost connection to the internet. This app is offline.
@@ -384,15 +384,15 @@ Let's create a banner with two custom buttons - one for dismissing the notificat
```
-> [!NOTE]
-> According to Google's [`Material Design`](https://material.io/design/components/banners.html#anatomy) guidelines, a banner should have a maximum of 2 buttons present. The `IgxBannerComponent` does not explicitly limit the number of elements under the `igx-banner-actions` tag, but it is strongly recommended to use up to 2 if you want to adhere to the material design guidelines.
+**Note:**
+According to Google's [`Material Design`](https://material.io/design/components/banners.html#anatomy) guidelines, a banner should have a maximum of 2 buttons present. The `IgxBannerComponent` does not explicitly limit the number of elements under the `igx-banner-actions` tag, but it is strongly recommended to use up to 2 if you want to adhere to the material design guidelines.
The dismiss option (`'Continue Offline'`) doesn't need any further logic, so it can just call the `close()` method. The confirm action (`'Turn On Wifi'`), however, requires some additional logic, so we have to define it in the component. Then, we will create `onNetworkStateChange` Observable and subscribe to it. The last step is to call the `refreshBanner()` method on each change, which will toggle the banner depending on the `wifiState`.
The banner will also have a WiFi icon in the navbar. As the subscription fires on any change of the `wifiState`, the icon will not only toggle the banner, but change according to the state of the connection:
```html
-
+{/*banner.component.html*/}
{{ wifiState ? 'signal_wifi_4_bar' : 'signal_wifi_off' }}
@@ -400,8 +400,7 @@ The banner will also have a WiFi icon in the navbar. As the subscription fires o
```
-Finally, we will add a `toast`, displaying a message about the WiFi state. The results of the templated banner can be seen in the demo below:
-
+Finally, we will add a [`IgxToast`](mcp:get_api_reference?platform=angular&component=IgxToastComponent), displaying a message about the WiFi state. The results of the templated banner can be seen in the demo below:
```typescript
import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';
@@ -495,7 +494,6 @@ export class BannerAdvancedSampleComponent implements OnInit, OnDestroy {
```
-
## Styling
First, in order to use the functions exposed by the theme engine, we need to import the index file in our style file:
@@ -507,7 +505,7 @@ First, in order to use the functions exposed by the theme engine, we need to imp
// @import '~igniteui-angular/lib/core/styles/themes/index';
```
-Following the simplest approach, we create a new theme that extends the [`banner-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-banner-theme) and specifying just the `$banner-background`. Based on this value, the `$banner-message-color` and `$banner-illustration-color` are automatically set to black or white, depending on which provides better contrast with the background.
+Following the simplest approach, we create a new theme that extends the `banner-theme` and specifying just the `$banner-background`. Based on this value, the `$banner-message-color` and `$banner-illustration-color` are automatically set to black or white, depending on which provides better contrast with the background.
```scss
$custom-banner-theme: banner-theme(
@@ -515,8 +513,8 @@ $custom-banner-theme: banner-theme(
);
```
->[!NOTE]
->Instead of hardcoding the color values like we just did, we can achieve greater flexibility in terms of colors by using the [`palette`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/palettes#function-palette) and [`color`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/palettes#function-color) functions. Please refer to [`Palettes`](/themes/sass/palettes.md) topic for detailed guidance on how to use them.
+**Note:**
+Instead of hardcoding the color values like we just did, we can achieve greater flexibility in terms of colors by using the `palette` and `color` functions. Please refer to [`Palettes`](./themes/sass/palettes.md) topic for detailed guidance on how to use them.
The last step is to pass the custom banner theme:
@@ -633,35 +631,33 @@ igx-banner {
}
```
-
-
+
## API Reference
-
+
-- [IgxBannerComponent](mcp:get_api_reference?platform=angular&component=IgxBannerComponent)
-- [IgxBannerActionsDirective](mcp:get_api_reference?platform=angular&component=IgxBannerActionsDirective)
-- [IgxBannerComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-banner-theme)
+- [`IgxBanner`](mcp:get_api_reference?platform=angular&component=IgxBannerComponent)
+- [`IgxBannerActionsDirective`](mcp:get_api_reference?platform=angular&component=IgxBannerActionsDirective)
+- `IgxBannerComponent Styles`
Additional components and/or directives with relative APIs that were used:
-- [IgxCardComponent](mcp:get_api_reference?platform=angular&component=IgxCardComponent)
-- [IgxIconComponent](mcp:get_api_reference?platform=angular&component=IgxIconComponent)
-- [IgxNavbarComponent](mcp:get_api_reference?platform=angular&component=IgxNavbarComponent)
-- [IgxToastComponent](mcp:get_api_reference?platform=angular&component=IgxToastComponent)
+- [`IgxCard`](mcp:get_api_reference?platform=angular&component=IgxCardComponent)
+- [`IgxIcon`](mcp:get_api_reference?platform=angular&component=IgxIconComponent)
+- [`IgxNavbar`](mcp:get_api_reference?platform=angular&component=IgxNavbarComponent)
+- [`IgxToast`](mcp:get_api_reference?platform=angular&component=IgxToastComponent)
## Theming Dependencies
-- [IgxIcon Theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-icon-theme)
-- [IgxButton Theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-button-theme)
-- [IgxRipple Theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-ripple-theme)
-- [IgxExpansionPanel Theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-expansion-panel-theme)
-
+- `IgxIcon Theme`
+- `IgxButton Theme`
+- `IgxRipple Theme`
+- `IgxExpansionPanel Theme`
## Additional Resources
-
+
Our community is active and always welcoming to new ideas.
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/breadcrumbs.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/breadcrumbs.md
new file mode 100644
index 000000000..a9506ea06
--- /dev/null
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/breadcrumbs.md
@@ -0,0 +1,1133 @@
+---
+title: "Breadcrumbs"
+description: "The Ignite UI for Angular Breadcrumbs component renders an ordered trail of navigation items separated by a configurable icon, communicating a user's location within a site's hierarchy and providing a way back to higher-level pages."
+keywords: "Angular Breadcrumbs, Ignite UI for Angular, breadcrumb, navigation trail, current page, aria-current, separator, prefix, suffix"
+license: MIT
+mentionedTypes: ["Breadcrumbs", "Breadcrumb"]
+relatedComponents: ["Navbar", "NavigationDrawer"]
+last_updated: "2026-09-08"
+llms:
+ description: "The Ignite UI for Angular Breadcrumbs component renders an ordered trail of navigation items separated by a configurable icon, communicating a user's location within a site's hierarchy and providing a way back to higher-level pages."
+_tocName: Breadcrumbs
+---
+# Breadcrumbs Component
+
+The Ignite UI for Angular Breadcrumbs component renders an ordered trail of navigation items separated by a configurable icon, communicating a user's location within a site's hierarchy and providing a way back to higher-level pages.
+
+## Live Demo
+
+The Angular Breadcrumbs demo shows a three-item trail with the current page marked at the end.
+
+```typescript
+import { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
+import { defineComponents, IgcBreadcrumbComponent, IgcBreadcrumbsComponent, IgcIconComponent, registerIconFromText } from 'igniteui-webcomponents';
+
+defineComponents(IgcBreadcrumbsComponent, IgcBreadcrumbComponent, IgcIconComponent);
+
+const homeIcon =
+ '';
+const notificationsIcon =
+ '';
+
+if (typeof window !== 'undefined') {
+ registerIconFromText('home', homeIcon);
+ registerIconFromText('notifications', notificationsIcon);
+}
+
+@Component({
+ selector: 'app-breadcrumbs-overview',
+ styleUrls: ['./breadcrumbs-overview.component.scss'],
+ templateUrl: './breadcrumbs-overview.component.html',
+ schemas: [CUSTOM_ELEMENTS_SCHEMA]
+})
+
+export class BreadcrumbsOverviewComponent { }
+```
+```html
+
+```
+```scss
+:host {
+ display: flex;
+ justify-content: center;
+ height: 100%;
+ align-items: center;
+ overflow: auto;
+ font-family: var(--ig-font-family);
+}
+
+igc-breadcrumbs {
+ --ig-size: var(--ig-size-medium);
+}
+
+@layer base {
+ a {
+ color: revert-layer;
+ }
+}
+```
+
+## Anatomy
+
+The Angular Breadcrumbs component is a pair of elements - a container that manages shared state and renders as an ARIA list, and one or more item children that render arbitrary slotted content followed by a separator.
+
+**Breadcrumbs anatomy:** The Breadcrumbs component is composed of a container that renders an ARIA list and one or more items that render slotted content followed by a separator.
+
+
+
+1. Breadcrumbs Item: represents a single level within the breadcrumb trail
+2. Breadcrumbs Item Icon (optional): could be displayed on the right or on the left side of the label
+3. Separator: a visual element that divides individual items and indicates directionality within the hierarchy
+4. Current Item: represents the active level within the breadcrumb trail,typically non-clickable
+
+```text
+
+
+ ├── ::part(label)
+ │ ├── slot="prefix" // optional prefix content
+ │ ├── default slot // main content, typically
+ │ └── slot="suffix" // optional suffix content
+ └── ::part(separator) // hidden on the last item
+ └── slot="separator" // per-item override
+
+
+
+
+
+
+```
+
+## Getting Started
+
+To use the Angular Breadcrumbs, follow the [Ignite UI for Angular Getting Started](../general/getting-started.md) topic for the basic project setup, then register the components.
+
+The Breadcrumbs component requires `igniteui-webcomponents` 7.4.0 or later.
+
+Ignite UI for Angular renders the Breadcrumbs as a web component, so install `igniteui-webcomponents` in your Angular project:
+
+```cmd
+npm install igniteui-webcomponents
+```
+
+Import [`IgcBreadcrumbsComponent`](https://www.infragistics.com/api/webcomponents/igniteui-webcomponents/latest/classes/IgcBreadcrumbsComponent), [`IgcBreadcrumbComponent`](https://www.infragistics.com/api/webcomponents/igniteui-webcomponents/latest/classes/IgcBreadcrumbComponent), and a theme, then register both components:
+
+```ts
+import { defineComponents, IgcBreadcrumbsComponent, IgcBreadcrumbComponent } from 'igniteui-webcomponents';
+import 'igniteui-webcomponents/themes/light/bootstrap.css';
+
+defineComponents(IgcBreadcrumbsComponent, IgcBreadcrumbComponent);
+```
+
+Add `CUSTOM_ELEMENTS_SCHEMA` to the Angular component that renders `igc-breadcrumbs`:
+
+```ts
+import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
+
+@Component({
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
+})
+```
+
+Compose a trail by placing one breadcrumb item per level inside the Breadcrumbs container. Each item accepts arbitrary content in its default slot, most commonly an anchor that handles the navigation:
+
+```html
+
+ Home
+ Products
+ Laptop
+
+```
+
+## Usage
+
+### Current Page
+
+Mark the item that represents the currently viewed page with the [`current`](https://www.infragistics.com/api/webcomponents/igniteui-webcomponents/latest/classes/IgcBreadcrumbComponent#current) property. The item reflects it as an attribute and sets `aria-current="page"`, so screen readers announce the current page.
+
+```html
+
+ Home
+ Dashboard
+
+```
+
+### Shared Separator
+
+Use the [`separator`](https://www.infragistics.com/api/webcomponents/igniteui-webcomponents/latest/classes/IgcBreadcrumbsComponent#separator) property on the container to set a shared separator icon for every item in the trail. The value is an icon name from the registered icon collection, and the container propagates it to each item.
+
+```html
+
+ Home
+ Products
+ Laptops
+ Gaming Laptop
+
+```
+
+```typescript
+import { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
+import { defineComponents, IgcBreadcrumbComponent, IgcBreadcrumbsComponent, registerIconFromText } from 'igniteui-webcomponents';
+
+defineComponents(IgcBreadcrumbsComponent, IgcBreadcrumbComponent);
+
+const slashIcon =
+ '';
+
+if (typeof window !== 'undefined') {
+ registerIconFromText('slash', slashIcon);
+}
+
+@Component({
+ selector: 'app-breadcrumbs-custom-separator',
+ styleUrls: ['./breadcrumbs-custom-separator.component.scss'],
+ templateUrl: './breadcrumbs-custom-separator.component.html',
+ schemas: [CUSTOM_ELEMENTS_SCHEMA]
+})
+
+export class BreadcrumbsCustomSeparatorComponent { }
+```
+```html
+
+```
+```scss
+:host {
+ display: flex;
+ justify-content: center;
+ height: 100%;
+ align-items: center;
+ overflow: auto;
+}
+
+igc-breadcrumbs {
+ --ig-size: var(--ig-size-medium);
+}
+
+@layer base {
+ a {
+ color: revert-layer;
+ }
+}
+```
+
+The trailing separator is automatically hidden on the last item in the trail, so you never need to omit it manually.
+
+### Per-Item Separator Override
+
+The separator can also be overridden for a single item by slotting content into that item's `separator` slot. This is useful for mixing text separators (such as `/` or `›`) with icons, or for using an entirely different separator at each boundary.
+
+```html
+
+
+ Home
+ /
+
+ Settings
+
+```
+
+### Prefix and Suffix Content
+
+Each breadcrumb item exposes `prefix` and `suffix` slots for supplementary content such as icons, badges, or status indicators around the main content.
+
+```html
+
+
+
+ Home
+
+
+ Mail
+
+
+ Messages
+
+
+ Inbox
+ 3
+
+
+```
+
+```typescript
+import { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
+import { defineComponents, IgcBreadcrumbComponent, IgcBreadcrumbsComponent, IgcIconComponent, IgcBadgeComponent, registerIconFromText } from 'igniteui-webcomponents';
+
+defineComponents(IgcBreadcrumbsComponent, IgcBreadcrumbComponent, IgcIconComponent, IgcBadgeComponent);
+
+const homeIcon =
+ '';
+
+if (typeof window !== 'undefined') {
+ registerIconFromText('home', homeIcon);
+}
+
+@Component({
+ selector: 'app-breadcrumbs-prefix-suffix',
+ styleUrls: ['./breadcrumbs-prefix-suffix.component.scss'],
+ templateUrl: './breadcrumbs-prefix-suffix.component.html',
+ schemas: [CUSTOM_ELEMENTS_SCHEMA]
+})
+
+export class BreadcrumbsPrefixSuffixComponent { }
+```
+```html
+
+```
+```scss
+:host {
+ display: flex;
+ justify-content: center;
+ height: 100%;
+ align-items: center;
+ overflow: auto;
+}
+
+igc-breadcrumbs {
+ --ig-size: var(--ig-size-medium);
+}
+
+@layer base {
+ a {
+ color: revert-layer;
+ }
+
+ * {
+ padding: revert-layer;
+ }
+}
+```
+
+### Wrapping and Long Trails
+
+The container renders its items on a single wrapping row using flex layout. When a trail is longer than the available width, the items wrap to the next line automatically - no additional configuration is required.
+
+```typescript
+import { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
+import { defineComponents, IgcBreadcrumbComponent, IgcBreadcrumbsComponent } from 'igniteui-webcomponents';
+
+defineComponents(IgcBreadcrumbsComponent, IgcBreadcrumbComponent);
+
+@Component({
+ selector: 'app-breadcrumbs-wrapping',
+ styleUrls: ['./breadcrumbs-wrapping.component.scss'],
+ templateUrl: './breadcrumbs-wrapping.component.html',
+ schemas: [CUSTOM_ELEMENTS_SCHEMA]
+})
+export class BreadcrumbsWrappingComponent { }
+```
+```html
+
+```
+```scss
+:host {
+ display: flex;
+ justify-content: center;
+ height: 100%;
+ overflow: auto;
+ align-items: center;
+}
+
+igc-breadcrumbs {
+ --ig-size: var(--ig-size-medium);
+
+ max-width: 16rem;
+}
+
+@layer base {
+ a {
+ color: revert-layer;
+ }
+}
+```
+
+In Right-to-Left layouts, the separator icon is mirrored automatically without additional configuration, so a right-pointing chevron becomes left-pointing without changing the icon name.
+
+### Size
+
+Control the Breadcrumbs size by setting the `--ig-size` variable to one of three options: `--ig-size-small`, `--ig-size-medium`, or `--ig-size-large`. This can be used to adjust the text and icon sizes within the breadcrumbs, along with their paddings.
+
+```typescript
+import { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
+import { defineComponents, IgcBreadcrumbComponent, IgcBreadcrumbsComponent, IgcIconComponent, registerIconFromText } from 'igniteui-webcomponents';
+
+defineComponents(IgcBreadcrumbsComponent, IgcBreadcrumbComponent, IgcIconComponent);
+
+const homeIcon =
+ '';
+const notificationsIcon =
+ '';
+
+if (typeof window !== 'undefined') {
+ registerIconFromText('home', homeIcon);
+ registerIconFromText('notifications', notificationsIcon);
+}
+
+@Component({
+ selector: 'app-breadcrumbs-sizes',
+ styleUrls: ['./breadcrumbs-sizes.component.scss'],
+ templateUrl: './breadcrumbs-sizes.component.html',
+ schemas: [CUSTOM_ELEMENTS_SCHEMA]
+})
+
+export class BreadcrumbsSizesComponent { }
+```
+```html
+
+```
+```scss
+:host {
+ display: flex;
+ justify-content: center;
+ height: 100%;
+ align-items: center;
+ overflow: auto;
+}
+
+.small {
+ --ig-size: var(--ig-size-small);
+}
+
+.medium {
+ --ig-size: var(--ig-size-medium);
+}
+
+.large {
+ --ig-size: var(--ig-size-large);
+
+ margin-block-start: -0.25rem;
+}
+
+span {
+ color: #7d8a96;
+ width: 3.75rem;
+ margin-inline-end: 2rem;
+ font-size: 0.875rem;
+ font-family: "Aktiv Grotesk", sans-serif;
+}
+
+nav {
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+}
+
+@layer base {
+ a {
+ color: revert-layer;
+ }
+}
+
+@media (width < 290px) {
+ span {
+ width: auto;
+ margin-inline-end: 1rem;
+ }
+}
+```
+
+### States
+
+Breadcrumbs support various visual states such as `hover`, `focus`, `pressed`, and `disabled` and also combinations like `focus-hover` and `focus-pressed`. These states help indicate the current interaction status of each breadcrumb item.
+
+```typescript
+import { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
+import { defineComponents, IgcBreadcrumbComponent, IgcBreadcrumbsComponent, IgcIconComponent, registerIconFromText } from 'igniteui-webcomponents';
+
+defineComponents(IgcBreadcrumbsComponent, IgcBreadcrumbComponent, IgcIconComponent);
+
+const homeIcon =
+ '';
+
+if (typeof window !== 'undefined') {
+ registerIconFromText('home', homeIcon);
+}
+
+@Component({
+ selector: 'app-breadcrumbs-states',
+ styleUrls: ['./breadcrumbs-states.component.scss'],
+ templateUrl: './breadcrumbs-states.component.html',
+ schemas: [CUSTOM_ELEMENTS_SCHEMA]
+})
+export class BreadcrumbsStatesComponent { }
+```
+```html
+
+```
+```scss
+:host {
+ display: flex;
+ justify-content: center;
+ height: 100%;
+ max-height: 15rem;
+ padding-block-start: 1rem;
+ overflow: auto;
+}
+
+igc-breadcrumbs {
+ --ig-size: var(--ig-size-medium);
+}
+
+.state-hover {
+ igc-icon {
+ color: var(--hover-icon-color);
+ }
+
+ a {
+ color: var(--hover-text-color);
+ }
+}
+
+.state-focused {
+ igc-icon {
+ color: var(--focus-icon-color);
+ }
+
+ a {
+ color: var(--focus-text-color);
+ text-decoration: underline var(--focus-underline-color);
+ }
+}
+
+.state-pressed {
+ igc-icon {
+ color: var(--pressed-icon-color);
+ }
+
+ a {
+ color: var(--pressed-text-color);
+ }
+}
+
+.state-focused-hover {
+ igc-icon {
+ color: var(--focus-hover-icon-color);
+ }
+
+ a {
+ color: var(--focus-hover-text-color);
+ text-decoration: underline var(--focus-hover-underline-color);
+ }
+}
+
+.state-focused-pressed {
+ igc-icon {
+ color: var(--focus-pressed-icon-color);
+ }
+
+ a {
+ color: var(--focus-pressed-text-color);
+ text-decoration: underline var(--focus-pressed-underline-color);
+ }
+}
+
+.state-disabled {
+ igc-icon {
+ color: var(--disabled-icon-color);
+ }
+
+ a {
+ color: var(--disabled-text-color);
+ }
+}
+
+span {
+ color: #7d8a96;
+ font-size: 0.875rem;
+ margin-block-end: 1rem;
+ font-family: "Aktiv Grotesk", sans-serif;
+}
+
+nav {
+ display: grid;
+ column-gap: 3rem;
+ row-gap: 1rem;
+}
+
+igc-breadcrumbs {
+ flex-direction: column;
+ height: fit-content;
+}
+
+igc-breadcrumbs:nth-of-type(-n+3) {
+ grid-row: 1;
+}
+
+igc-breadcrumbs:nth-of-type(n+4) {
+ grid-row: 2;
+}
+
+@media (width < 510px) {
+ :host {
+ max-height: unset;
+ }
+
+ igc-breadcrumbs:nth-of-type(-n+3),
+ igc-breadcrumbs:nth-of-type(n+4) {
+ grid-row: unset;
+ }
+
+ nav {
+ row-gap: 3rem;
+ }
+}
+```
+
+### Do/Don't
+
+Use breadcrumbs to orient users in content-rich applications with three or more levels of hierarchy by providing a clear, low-friction path to navigate back to parent pages. Do not use breadcrumbs in flat, single-level site structures where they create unnecessary visual clutter, or in sequential step-by-step processes where progress indicators are required instead.
+
+
+
+
+
+
+
+
+
+
+
+ Do
+
+
+ Don't
+
+
+
+
+ Use breadcrumbs for complex products where content is nested deeper than two levels.
+
+
+ Avoid using breadcrumbs as primary navigation and if your hierarchy contains only one level.
+
+
+
+
+
+## Properties
+
+The container exposes the shared separator, and each item exposes its state.
+
+**[`IgcBreadcrumbsComponent`](https://www.infragistics.com/api/webcomponents/igniteui-webcomponents/latest/classes/IgcBreadcrumbsComponent)**
+
+| Name | Type | Default | Description |
+| -- | -- | -- | -- |
+| [`separator`](https://www.infragistics.com/api/webcomponents/igniteui-webcomponents/latest/classes/IgcBreadcrumbsComponent#separator) | `string` | `'tree_expand'` | The icon name used as the default separator between items. Propagated to every item in the trail. |
+
+**[`IgcBreadcrumbComponent`](https://www.infragistics.com/api/webcomponents/igniteui-webcomponents/latest/classes/IgcBreadcrumbComponent)**
+
+| Name | Type | Default | Description |
+| -- | -- | -- | -- |
+| [`current`](https://www.infragistics.com/api/webcomponents/igniteui-webcomponents/latest/classes/IgcBreadcrumbComponent#current) | `boolean` | `false` | Marks the item as the current page and sets `aria-current="page"`. |
+| [`disabled`](https://www.infragistics.com/api/webcomponents/igniteui-webcomponents/latest/classes/IgcBreadcrumbComponent#disabled) | `boolean` | `false` | Disables the item, sets `aria-disabled="true"`, and removes the slotted content from the tab sequence. |
+
+## Styling
+
+```typescript
+import { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
+import { defineComponents, IgcBreadcrumbComponent, IgcBreadcrumbsComponent, IgcIconComponent, registerIconFromText } from 'igniteui-webcomponents';
+
+defineComponents(IgcBreadcrumbsComponent, IgcBreadcrumbComponent, IgcIconComponent);
+
+const musicNoteIcon =
+ '';
+const homeIcon =
+ '';
+
+if (typeof window !== 'undefined') {
+ registerIconFromText('music_note', musicNoteIcon);
+ registerIconFromText('home', homeIcon);
+}
+
+@Component({
+ selector: 'app-breadcrumbs-styling',
+ styleUrls: ['./breadcrumbs-styling.component.scss'],
+ templateUrl: './breadcrumbs-styling.component.html',
+ schemas: [CUSTOM_ELEMENTS_SCHEMA]
+})
+export class BreadcrumbsStylingComponent { }
+```
+```html
+
+```
+```scss
+igc-breadcrumbs {
+ --ig-breadcrumb-text-color: var(--ig-gray-900);
+ --ig-breadcrumb-icon-color: #8b5bb1;
+ --ig-breadcrumb-hover-text-color: var(--ig-gray-900);
+ --ig-breadcrumb-hover-icon-color: #8b5bb1;
+ --ig-breadcrumb-focus-text-color: var(--ig-gray-900);
+ --ig-breadcrumb-focus-icon-color: #8b5bb1;
+ --ig-breadcrumb-current-text-color: #8b5bb1;
+ --ig-breadcrumb-separator-color: #8b5bb1;
+ --ig-breadcrumb-focus-pressed-text-color: var(--ig-gray-900);
+ --ig-breadcrumb-focus-pressed-icon-color: #8b5bb1;
+ --ig-size: var(--ig-size-medium);
+}
+
+:host {
+ display: flex;
+ justify-content: center;
+ height: 100%;
+ overflow: auto;
+ align-items: center;
+}
+
+@layer base {
+ a {
+ color: revert-layer;
+ }
+}
+```
+
+The Angular Breadcrumbs appearance is controlled through CSS variables, CSS parts, and the theming system.
+
+### Styling Variables
+
+| Variable | What it changes |
+| -- | -- |
+| `--ig-breadcrumb-text-color` | The text color of the breadcrumb. |
+| `--ig-breadcrumb-icon-color` | The color of the breadcrumb icon. |
+| `--ig-breadcrumb-current-text-color` | The text color of the currently selected breadcrumb item. |
+| `--ig-breadcrumb-current-icon-color` | The icon color of the currently selected breadcrumb item. |
+| `--ig-breadcrumb-pressed-text-color` | The text color of the breadcrumb when pressed. |
+| `--ig-breadcrumb-pressed-icon-color` | The color of the breadcrumb icon when pressed. |
+| `--ig-breadcrumb-hover-text-color` | The text color of the breadcrumb when hovered. |
+| `--ig-breadcrumb-hover-icon-color` | The color of the breadcrumb icon when hovered. |
+| `--ig-breadcrumb-focus-text-color` | The text color of the breadcrumb when focused. |
+| `--ig-breadcrumb-focus-icon-color` | The color of the breadcrumb icon when focused. |
+| `--ig-breadcrumb-focus-underline-color` | The text underline color of the breadcrumb on focus. Only used in the Material theme. |
+| `--ig-breadcrumb-focus-border-color` | The focus border color. |
+| `--ig-breadcrumb-focus-hover-text-color` | The text color of the breadcrumb when focused and hovered. |
+| `--ig-breadcrumb-focus-hover-icon-color` | The color of the breadcrumb icon when focused and hovered. |
+| `--ig-breadcrumb-focus-hover-underline-color` | The text underline color of the breadcrumb on focus and hover. Only used in the Material theme. |
+| `--ig-breadcrumb-focus-pressed-text-color` | The text color of the breadcrumb when focused and pressed. |
+| `--ig-breadcrumb-focus-pressed-icon-color` | The color of the breadcrumb icon when focused and pressed. |
+| `--ig-breadcrumb-focus-pressed-underline-color` | The text underline color of the breadcrumb on focus and pressed. Only used in the Material theme. |
+| `--ig-breadcrumb-disabled-text-color` | The text color of the breadcrumb when disabled. |
+| `--ig-breadcrumb-disabled-icon-color` | The color of the breadcrumb icon when disabled. |
+| `--ig-breadcrumb-separator-color` | The color of the breadcrumb separator. |
+
+### Style Parts
+
+**[`IgcBreadcrumbComponent`](https://www.infragistics.com/api/webcomponents/igniteui-webcomponents/latest/classes/IgcBreadcrumbComponent)**
+
+| Part | What it styles |
+| -- | -- |
+| `label` | The container wrapping the prefix, default, and suffix slots. |
+| `separator` | The container wrapping the separator slot content. |
+
+### Sass Theming
+
+Use the `breadcrumb-theme` function for customizing the appearance of the Breadcrumbs through Sass.
+
+```scss
+@use "igniteui-theming/sass/themes" as *;
+
+$my-breadcrumb-theme: breadcrumb-theme(
+ $text-color: #1E2125,
+ $icon-color: #8B5BB1
+);
+
+:root {
+ @include tokens($my-breadcrumb-theme);
+}
+```
+
+### CSS Variables
+
+Set component CSS variables directly when you need local styling without a Sass build step.
+
+```css
+igc-breadcrumbs {
+ --ig-breadcrumb-text-color: var(--ig-primary-50);
+ --ig-breadcrumb-icon-color: var(--ig-primary-200);
+ --ig-breadcrumb-separator-color: var(--ig-gray-200);
+}
+
+igc-breadcrumb::part(label) {
+ padding-inline: 0.25rem;
+}
+```
+
+### Styling with Tailwind
+
+Combine Tailwind utility classes with the Breadcrumbs CSS variables for utility-first styling. [Set up Tailwind](../themes/tailwind.md) with the Ignite UI theme first:
+
+```css
+@import "tailwindcss/theme.css";
+@import "tailwindcss/utilities.css";
+```
+
+```html
+
+ Root
+ Current
+
+```
+
+```typescript
+import { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
+import { defineComponents, IgcBreadcrumbComponent, IgcBreadcrumbsComponent, registerIconFromText } from 'igniteui-webcomponents';
+
+defineComponents(IgcBreadcrumbsComponent, IgcBreadcrumbComponent);
+
+const slashIcon =
+ '';
+
+if (typeof window !== 'undefined') {
+ registerIconFromText('slash', slashIcon);
+}
+
+@Component({
+ selector: 'app-breadcrumbs-tailwind-styling',
+ styleUrls: ['./breadcrumbs-tailwind-styling.component.scss'],
+ templateUrl: './breadcrumbs-tailwind-styling.component.html',
+ schemas: [CUSTOM_ELEMENTS_SCHEMA]
+})
+export class BreadcrumbsTailwindStylingComponent { }
+```
+```html
+
+```
+```scss
+:host {
+ display: flex;
+ justify-content: center;
+ height: 100%;
+ align-items: center;
+ overflow: auto;
+}
+
+igc-breadcrumbs {
+ --ig-size: var(--ig-size-medium);
+}
+
+@layer base {
+ a {
+ color: revert-layer;
+ }
+}
+```
+
+The exclamation mark (`!`) gives the Tailwind utility precedence over the component's default styles.
+
+## Accessibility
+
+The Angular Breadcrumbs follows the ARIA breadcrumb navigation pattern. The container exposes the ARIA `list` role, each item exposes the `listitem` role, and the current item is announced with `aria-current="page"`.
+
+### Accessible Navigation Landmark
+
+Wrap the trail in a `
+## Live Demo
-## Angular Button Group Example
+```typescript
+import { Component } from '@angular/core';
+import { IgxButtonGroupComponent } from 'igniteui-angular/button-group';
+import { IgxButtonDirective, IgxRippleDirective } from 'igniteui-angular/directives';
-
-
+type AlbumSource = 'device' | 'cloud';
-
+@Component({
+ selector: 'app-button-group-overview',
+ styleUrls: ['./button-group-overview.component.scss'],
+ templateUrl: './button-group-overview.component.html',
+ imports: [IgxButtonGroupComponent, IgxButtonDirective, IgxRippleDirective]
+})
+export class ButtonGroupOverviewComponent {
+ public rippleColor = 'gray';
+ public source: AlbumSource = 'cloud';
+
+ public albums: Record = {
+ device: {
+ title: 'Trip around the world',
+ photos: [
+ 'https://picsum.photos/id/1015/300/220',
+ 'https://picsum.photos/id/1016/300/220',
+ 'https://picsum.photos/id/1018/300/220',
+ 'https://picsum.photos/id/1019/300/220'
+ ]
+ },
+ cloud: {
+ title: 'Trip around the world',
+ photos: [
+ 'https://picsum.photos/id/1036/300/220',
+ 'https://picsum.photos/id/1051/300/220',
+ 'https://picsum.photos/id/1062/300/220',
+ 'https://picsum.photos/id/1067/300/220'
+ ]
+ }
+ };
+
+ public get album() {
+ return this.albums[this.source];
+ }
-## Getting Started with Ignite UI for Angular Button Group
+ public selectSource(source: AlbumSource) {
+ this.source = source;
+ }
+}
+```
+```html
+
+
+
+
+
-To get started with the Ignite UI for Angular Button Group component, first you need to install Ignite UI for Angular. In an existing Angular application, type the following command:
+
+```
+```scss
+@use 'igniteui-theming' as *;
-```cmd
-ng add igniteui-angular
+:host {
+ display: grid;
+ place-items: center;
+ height: 100vh;
+}
+
+.sample-layout {
+ display: grid;
+ width: rem(280px);
+ gap: rem(8px);
+}
+
+igx-buttongroup {
+ max-width: rem(280px);
+}
+
+.album-title {
+ @include type-style('body-2');
+
+ margin-block: 0 rem(8px);
+ color: var(--ig-primary-500);
+}
+
+.album-photos {
+ display: grid;
+ grid-template-columns: repeat(2, 1fr);
+ gap: rem(4px);
+}
+
+.album-photos img {
+ width: 100%;
+ object-fit: cover;
+ display: block;
+}
```
-For a complete introduction to the Ignite UI for Angular, read the [_getting started_](general/getting-started.md) topic.
+## Anatomy
-The next step is to import the `IgxButtonGroupModule` in your **app.module.ts** file.
+The Angular Button Group organizes related Toggle Buttons into a single group with a shared container and individual button items.
-```typescript
-// app.module.ts
+**Button Group anatomy:** The Button Group component organizes related Toggle Buttons within a shared container, allowing users to make single or multiple selections.
-...
-import { IgxButtonGroupModule } from 'igniteui-angular/button-group';
-// import { IgxButtonGroupModule } from '@infragistics/igniteui-angular'; for licensed package
+
+
+1. Container: Wraps the button's contents.
+2. Icon: Adds context to the button. Could be left, right, left and right or only icon.
+3. Label: The textual content that describes the button’s action to the user.
+
+The Angular Button Group contains Toggle Buttons, and each button can contain an icon and a label.
+
+```text
+Button Group
+└── Toggle Button
+ ├── Icon
+ └── Label
```
-Alternatively, as of `16.0.0` you can import the `IgxButtonGroupComponent` as a standalone dependency, or use the [`IGX_BUTTON_GROUP_DIRECTIVES`](https://github.com/IgniteUI/igniteui-angular/blob/master/projects/igniteui-angular/button-group/src/button-group/public_api.ts) token to import the component and all of its supporting components and directives.
+## Getting Started
-```typescript
-// home.component.ts
+To use the Angular Button Group, follow the [Ignite UI for Angular Getting Started](/general/getting-started) topic for the basic project setup, then register the component for your target platform.
-...
-import { IGX_BUTTON_GROUP_DIRECTIVES } from 'igniteui-angular/button-group';
-import { IgxIconComponent } from 'igniteui-angular/icon';
-// import { IGX_BUTTON_GROUP_DIRECTIVES, IgxIconComponent } from '@infragistics/igniteui-angular'; for licensed package
+For Angular using the **igniteui-angular** package, install the package:
-@Component({
- selector: 'app-home',
- template: `
-
-
-
-
-
-
- `,
- styleUrls: ['home.component.scss'],
- standalone: true,
- imports: [IGX_BUTTON_GROUP_DIRECTIVES, IgxIconComponent]
- /* or imports: [IgxButtonGroupComponent, IgxButtonDirective, IgxIconComponent] */
-})
-export class HomeComponent {}
+```cmd
+ng add igniteui-angular
```
-> [!NOTE]
-> This component uses Material Icons. Add the following link to your `index.html`: ``
+Then import `IGX_BUTTON_GROUP_DIRECTIVES` and the required standalone components in the component `imports` collection.
-Now that you have the Ignite UI for Angular Button Group module or directives imported, you can start with a basic configuration of the `igx-buttongroup` and its buttons.
+```ts
+import { IGX_BUTTON_GROUP_DIRECTIVES } from 'igniteui-angular/button-group';
+import { IgxIconComponent } from 'igniteui-angular/icon';
+```
-## Using for Angular Button Group Component
+The simplest way to start using the [`IgxButtonGroup`](mcp:get_api_reference?platform=angular&component=IgxButtonGroupComponent) is as follows:
+
+```html
+
+```
-### Add Button Group
+## Usage
-Use the [`igx-buttongroup`](mcp:get_api_reference?platform=angular&component=IgxButtonGroupComponent) selector to wrap your buttons and display them into a button group. If you want a button to be selected by default, use the `selected` property:
+Use the [`IgxButtonGroup`](mcp:get_api_reference?platform=angular&component=IgxButtonGroupComponent) to wrap buttons using the [`IgxButton`](mcp:get_api_reference?platform=angular&component=IgxButtonDirective) directive. Set the `selected` input on a button to select it by default:
```html
-
-
-
-
-
+
+
+
```
-## Examples
-
### Alignment
-Use the [`alignment`](mcp:get_api_reference?platform=angular&component=IgxButtonGroupComponent&member=alignment) input property to set the orientation of the buttons in the button group.
+The Button Group supports horizontal and vertical layouts. Use the [`Alignment`](mcp:get_api_reference?platform=angular&component=IgxButtonGroupComponent&member=alignment) property to set the orientation of the buttons in the group.
-```typescript
-//sample.component.ts
+For Angular, set the `alignment` input with the `ButtonGroupAlignment` enum:
+
+```ts
import { ButtonGroupAlignment } from 'igniteui-angular/button-group';
-// import { ButtonGroupAlignment } from '@infragistics/igniteui-angular'; for licensed package
-...
public alignment = ButtonGroupAlignment.vertical;
-...
```
```html
-
-
-
-
-
+
+
+
+
```
-
-
+```typescript
+import { Component } from '@angular/core';
+import { ButtonGroupAlignment, IgxButtonGroupComponent } from 'igniteui-angular/button-group';
+import { IgxButtonDirective, IgxRippleDirective } from 'igniteui-angular/directives';
+
+@Component({
+ selector: 'app-button-group-alignment',
+ styleUrls: ['./button-group-alignment.component.scss'],
+ templateUrl: './button-group-alignment.component.html',
+ imports: [IgxButtonGroupComponent, IgxButtonDirective, IgxRippleDirective]
+})
+export class ButtonGroupAlignmentComponent {
+ public rippleColor = 'gray';
+ public cities = ['Sofia', 'London', 'New York'];
+
+ public alignments: { label: string; value: ButtonGroupAlignment }[] = [
+ { label: 'Horizontal', value: ButtonGroupAlignment.horizontal },
+ { label: 'Vertical', value: ButtonGroupAlignment.vertical }
+ ];
+}
+```
+```html
+
+ @for (alignment of alignments; track alignment.value) {
+
+```
+```scss
+@use 'igniteui-theming' as *;
+
+:host {
+ display: grid;
+ place-items: center;
+ height: 100vh;
+}
+
+.sample-layout {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-wrap: wrap;
+ gap: rem(60px);
+}
+
+igx-buttongroup {
+ max-width: 400px;
+ min-width: 280px;
+}
+```
+
+### Custom Toggle Buttons
+
+For Angular, use the `values` input to provide an array of customized buttons. Each item can define properties such as `label`, `icon`, `selected`, `disabled`, and `togglable`.
+
+Define the button values in the component class:
+
+```ts
+interface IButton {
+ label?: string;
+ icon?: string;
+ disabled?: boolean;
+ togglable?: boolean;
+ selected?: boolean;
+ color?: string;
+}
+
+public bordersButtons: IButton[] = [
+ { icon: 'border_top', selected: true },
+ { icon: 'border_right' },
+ { icon: 'border_bottom' },
+ { icon: 'border_left' }
+];
+```
+
+```html
+
+```
+
+See the Angular Button Group sample for the complete `values` model and configuration.
+
+```typescript
+import { Component, OnInit } from '@angular/core';
+import { IgxButtonGroupComponent, IButtonGroupButton } from 'igniteui-angular/button-group';
interface IButton {
ripple?: string;
@@ -197,14 +858,14 @@ interface IButton {
icon?: string;
}
-class ToggleButton {
- private ripple: string;
- private label: string;
- private disabled: boolean;
- private togglable: boolean;
- private selected: boolean;
- private color: string;
- private icon: string;
+class CustomToggle implements IButtonGroupButton {
+ label: string;
+ icon?: string;
+ ripple?: string;
+ selected?: boolean;
+ disabled?: boolean;
+ togglable?: boolean;
+ color?: string;
constructor(obj?: IButton) {
this.ripple = obj.ripple || 'gray';
@@ -216,291 +877,497 @@ class ToggleButton {
this.icon = obj.icon;
}
}
-...
-public bordersButtons: ToggleButton[];
-
-public ngOnInit() {
- this.bordersButtons = [
- new ToggleButton({
- icon: 'border_top',
- selected: true
- }),
- new ToggleButton({
- icon: 'border_right',
- selected: false
- }),
- new ToggleButton({
- icon: 'border_bottom',
- selected: false
- }),
- new ToggleButton({
- icon: 'border_left',
- selected: false
- })
- ];
+
+@Component({
+ selector: 'app-button-group-custom-toggle',
+ styleUrls: ['./button-group-custom-toggle.component.scss'],
+ templateUrl: './button-group-custom-toggle.component.html',
+ imports: [IgxButtonGroupComponent]
+})
+export class ButtonGroupCustomToggleComponent implements OnInit {
+ public bordersButtons: CustomToggle[];
+
+ public ngOnInit() {
+ this.bordersButtons = [
+ new CustomToggle({ icon: 'border_top', selected: true }),
+ new CustomToggle({ icon: 'border_right', selected: false }),
+ new CustomToggle({ icon: 'border_bottom', selected: false }),
+ new CustomToggle({ icon: 'border_left', selected: false })
+ ];
+ }
+}
+```
+```html
+
+```
+```scss
+@use 'igniteui-theming' as *;
+
+:host {
+ display: grid;
+ place-items: center;
+ height: 100vh;
+}
+
+igx-buttongroup {
+ inline-size: rem(180px);
+}
+```
+
+### Size
+The `--ig-size` CSS custom property can be used to control the size of the button group.
+
+```scss
+igx-buttongroup {
+ --ig-size: var(--ig-size-small);
}
-...
```
```html
-
-
+
+```
+
+```typescript
+import { Component } from '@angular/core';
+import { IgxButtonGroupComponent } from 'igniteui-angular/button-group';
+import { IgxButtonDirective, IgxRippleDirective } from 'igniteui-angular/directives';
+
+@Component({
+ selector: 'app-button-group-size',
+ styleUrls: ['./button-group-size.component.scss'],
+ templateUrl: './button-group-size.component.html',
+ imports: [IgxButtonGroupComponent, IgxButtonDirective, IgxRippleDirective]
+})
+export class ButtonGroupSizeComponent {
+ public rippleColor = 'gray';
+ public cities = ['Sofia', 'London', 'New York'];
+ public sizes = ['small', 'medium', 'large'];
+
+ public getLabel(size: string) {
+ return size.charAt(0).toUpperCase() + size.slice(1);
+ }
+
+ public getSizeStyle(size: string) {
+ return `var(--ig-size-${size})`;
+ }
+}
+```
+```html
+
+ @for (size of sizes; track size) {
+ {{ getLabel(size) }}
+
+ @for (city of cities; track city) {
+
+ }
+
+ }
+
+```
+```scss
+@use 'igniteui-theming' as *;
+
+:host {
+ container-type: inline-size;
+ display: grid;
+ grid-template-columns: minmax(0, 1fr);
+ place-items: center;
+ height: 100vh;
+}
+
+.button-group-size {
+ display: grid;
+ grid-template-columns: auto minmax(rem(240px), 1fr);
+ align-items: center;
+ gap: rem(24px) rem(32px);
+ inline-size: 100%;
+ max-inline-size: rem(480px);
+ margin-inline: auto;
+}
+
+.sample-label {
+ color: var(--ig-gray-600);
+ font-family: "Aktiv Grotesk", sans-serif;
+ font-size: rem(13px);
+ font-weight: 400;
+ line-height: rem(20px);
+ letter-spacing: rem(0.3px);
+ text-align: end;
+}
+
+igx-buttongroup {
+ &:nth-of-type(1n) {
+ --ig-size: var(--ig-size-small);
+
+ ::ng-deep button.igx-button-group__item {
+ min-height: rem(32px);
+ }
+ }
+
+ &:nth-of-type(2n) {
+ --ig-size: var(--ig-size-medium);
+
+ ::ng-deep button.igx-button-group__item {
+ min-height: rem(40px);
+ }
+ }
+
+ &:nth-of-type(3n) {
+ --ig-size: var(--ig-size-large);
+
+ ::ng-deep button.igx-button-group__item {
+ min-height: rem(48px);
+ }
+ }
+}
+
+@container (width < 22rem) {
+ .button-group-size {
+ grid-template-columns: minmax(0, 1fr);
+ gap: rem(4px);
+ }
+
+ .sample-label {
+ text-align: start;
+
+ &:not(:first-of-type) {
+ margin-block-start: rem(16px);
+ }
+ }
+}
```
-
-
+### Do/Don't
+
+**When to use:** Use a Button Group to organize related toggle actions where users may select one or more options.
+
+**When not to use:** Do not use a Button Group for unrelated actions or for a single toggle action; use a standalone `IgxToggleButton` instead.
+
+
+
+
+
+
Do
+
Don't
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Properties
+
+The Angular Button Group exposes the following properties.
+
+| Name | Type | Default | Description |
+| --- | --- | --- | --- |
+| [`alignment`](mcp:get_api_reference?platform=angular&component=IgxButtonGroupComponent&member=alignment) | `ButtonGroupAlignment` | `horizontal` | Sets the orientation of the buttons in the group. |
+| [`values`](mcp:get_api_reference?platform=angular&component=IgxButtonGroupComponent&member=values) | `IButton[]` | `[]` | Defines the button items displayed in the group. |
## Styling
-### Button Group Theme Property Map
-
-When you set a value for the `$item-background` property, all related dependent properties listed in the table below are automatically updated to maintain visual consistency. The table shows which properties are affected when you customize the primary property.
-
-
-
-
-
Primary Property
-
Dependent Property
-
Description
-
-
-
-
-
-
-
- $item-background
-
-
$item-hover-background
-
The hover background color for items.
-
-
-
-
$item-selected-background
-
The selected item background color.
-
-
-
-
$item-focused-background
-
The focused item background color.
-
-
-
-
$disabled-background-color
-
The disabled item background color.
-
-
-
-
$item-border-color
-
The border color for items.
-
-
-
-
$item-text-color
-
The text color for items.
-
-
-
-
$idle-shadow-color
-
The idle shadow color for items.
-
-
-
-
-
-
-
- $item-hover-background
-
-
$item-selected-hover-background
-
The selected item hover background color.
-
-
-
-
$item-focused-hover-background
-
The focused hover background color.
-
-
-
-
$item-hover-text-color
-
The text color for hovered items.
-
-
-
-
$item-hover-icon-color
-
The icon color for hovered items.
-
-
-
-
-
-
-
- $item-selected-background
-
-
$item-selected-focus-background
-
The selected item focus background color.
-
-
-
-
$disabled-selected-background
-
The disabled selected background color.
-
-
-
-
$item-selected-text-color
-
The text color for selected items.
-
-
-
-
$item-selected-icon-color
-
The icon color for selected items.
-
-
-
-
$item-selected-hover-text-color
-
The text color for selected hover items.
-
-
-
-
$item-selected-hover-icon-color
-
The icon color for selected hover items.
-
-
-
-
-
-
-
- $item-border-color
-
-
$item-hover-border-color
-
The border color for hovered items.
-
-
-
-
$item-focused-border-color
-
The border color for focused items.
-
-
-
-
$item-selected-border-color
-
The border color for selected items.
-
-
-
-
$item-selected-hover-border-color
-
The border color for selected hover items.
-
-
-
-
$item-disabled-border
-
The border color for disabled items.
-
-
-
-
$disabled-selected-border-color
-
The border color for disabled selected items.
-
-
-
-
-To get started with styling the button group, we need to import the `index` file, where all the theme functions and component mixins live:
+The Angular Button Group theme exposes Sass parameters for the group items and their interaction states. Changing a primary theme property updates its related state properties to keep the component visually consistent.
+
+### Sass Theming
+
+Use the Angular theme system to customize the Button Group consistently with the rest of your application.
+
+Import the Angular theming functions before creating a custom Button Group theme:
```scss
@use "igniteui-angular/theming" as *;
-
-// IMPORTANT: Prior to Ignite UI for Angular version 13 use:
-// @import '~igniteui-angular/lib/core/styles/themes/index';
```
-Following the simplest approach, we create a new theme that extends the [`button-group-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-button-group-theme) and specifying just the `$item-background`. Based on this value, the theme will automatically compute appropriate state colors, contrast foregrounds, and borders for the button group. Of course, you're still free to override any of the theme parameters with custom values if needed.
+Create a theme with `button-group-theme` and include it in the component scope:
```scss
$custom-button-group: button-group-theme(
- $item-background: #57a5cd,
+ $item-background: #57a5cd,
);
+
+:host {
+ @include tokens($custom-button-group);
+}
```
-As seen, the `button-group-theme` exposes some useful parameters for basic styling of its items. If you want to drill deeper and change some button specific parameters, you can create a new theme that extends the `button-theme` and scope it under the respective button group class.
+### CSS Variables
+
+Use the Angular theme tokens to customize the Button Group item colors and interaction states. The primary Sass parameters listed below update their related state tokens.
+
+| Primary property | Dependent property | Description |
+| --- | --- | --- |
+| `$item-background` | `$item-hover-background` | Hover background for items. |
+| | `$item-selected-background` | Selected item background. |
+| | `$item-focused-background` | Focused item background. |
+| | `$disabled-background-color` | Disabled item background. |
+| | `$item-border-color` | Default item border color. |
+| | `$item-text-color` | Default item text color. |
+| | `$idle-shadow-color` | Idle item shadow color. |
+| `$item-hover-background` | `$item-selected-hover-background` | Selected item hover background. |
+| | `$item-focused-hover-background` | Focused hover background. |
+| | `$item-hover-text-color` | Hovered item text color. |
+| | `$item-hover-icon-color` | Hovered item icon color. |
+| `$item-selected-background` | `$item-selected-focus-background` | Selected item focus background. |
+| | `$disabled-selected-background` | Disabled selected background. |
+| | `$item-selected-text-color` | Selected item text color. |
+| | `$item-selected-icon-color` | Selected item icon color. |
+| | `$item-selected-hover-text-color` | Selected hovered item text color. |
+| | `$item-selected-hover-icon-color` | Selected hovered item icon color. |
+| `$item-border-color` | `$item-hover-border-color` | Hovered item border color. |
+| | `$item-focused-border-color` | Focused item border color. |
+| | `$item-selected-border-color` | Selected item border color. |
+| | `$item-selected-hover-border-color` | Selected hovered item border color. |
+| | `$item-disabled-border` | Disabled item border color. |
+| | `$disabled-selected-border-color` | Disabled selected border color. |
+
+### Style Parts
+
+Use the following CSS parts to target the Button Group and its contained Toggle Buttons:
+
+| Part | Component | What it styles |
+| --- | --- | --- |
+| `group` | [`IgxButtonGroup`](mcp:get_api_reference?platform=angular&component=IgxButtonGroupComponent) | The Button Group container. |
+| `toggle` | `IgxToggleButton` | An individual Toggle Button. |
+
+### Custom Styling
+
+The following example changes the group background and padding, and changes the text color of the contained Toggle Buttons:
+
+| Selector | Declaration | Effect |
+| --- | --- | --- |
+| `igx-button-group::part(group)` | `background-color`, `padding` | Changes the Button Group container background and spacing. |
+| `igx-toggle-button::part(toggle)` | `color` | Changes the text color of an individual Toggle Button. |
+
+```css
+igx-button-group::part(group) {
+ background-color: var(--ig-primary-500);
+ padding: 8px;
+}
+
+igx-toggle-button::part(toggle) {
+ color: var(--ig-secondary-300);
+}
+```
-The last step is to include the component's theme.
+```typescript
+import { Component } from '@angular/core';
+import { IgxButtonGroupComponent } from 'igniteui-angular/button-group';
+import { IgxButtonDirective, IgxRippleDirective } from 'igniteui-angular/directives';
+@Component({
+ selector: 'app-button-group-styling',
+ styleUrls: ['./button-group-styling.component.scss'],
+ templateUrl: './button-group-styling.component.html',
+ imports: [IgxButtonGroupComponent, IgxButtonDirective, IgxRippleDirective]
+})
+export class ButtonGroupStylingComponent {
+ public rippleColor = 'gray';
+ public layouts = ['Left', 'Center', 'Right'];
+}
+```
+```html
+
+ @for (layout of layouts; track layout) {
+
+ }
+
+```
```scss
+@use "igniteui-angular/theming" as *;
+
:host {
- @include tokens($custom-button-group);
+ display: grid;
+ place-items: center;
+ height: 100vh;
}
-```
-### Demo
+igx-buttongroup {
+ display: inline-block;
+ width: 100%;
+ max-width: rem(400px);
+}
-
-
+$custom-button-group: button-group-theme(
+ $border-radius: 4px,
+ $item-text-color: #4a5a66,
+ $item-background: #cfe8fb,
+ $item-border-color: #4da3e8,
+ $item-hover-text-color: #4a5a66,
+ $item-hover-background: #b3daf8,
+ $item-hover-border-color: #4da3e8,
+ $item-selected-text-color: #2f4d6a,
+ $item-selected-background: #6db3ea,
+ $item-selected-border-color: #4da3e8,
+ $item-selected-hover-text-color: #2f4d6a,
+ $item-selected-hover-background: #6db3ea
+);
-### Styling with Tailwind
+:host {
+ @include tokens($custom-button-group);
+}
+```
-You can style the `button-group` using our custom Tailwind utility classes. Make sure to [set up Tailwind](themes/misc/tailwind-classes.md) first.
+### Styling with Tailwind
-Along with the tailwind import in your global stylesheet, you can apply the desired theme utilities as follows:
+You can style the Angular Button Group with the Ignite UI Tailwind utility classes. First, [set up Tailwind](/themes/misc/tailwind-classes), then import the utility file in the global stylesheet:
```scss
@import "tailwindcss";
-...
@use 'igniteui-theming/tailwind/utilities/material.css';
```
-The utility file includes both `light` and `dark` theme variants.
+Use `light-button-group` or `dark-button-group` for the corresponding theme and override generated CSS variables with arbitrary properties:
-- Use `light-*` classes for the light theme.
-- Use `dark-*` classes for the dark theme.
-- Append the component name after the prefix, e.g., `light-button-group`, `dark-button-group`.
+```html
+
+
+```
-Once applied, these classes enable dynamic theme calculations. From there, you can override the generated CSS variables using `arbitrary properties`. After the colon, provide any valid CSS color format (HEX, CSS variable, RGB, etc.).
+The exclamation mark (`!`) makes the utility class important so it takes precedence over the component theme.
-You can find the full list of properties in the [button-group-theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-button-group-theme). The syntax is as follows:
+```typescript
+import { Component } from '@angular/core';
+import { IgxButtonGroupComponent } from 'igniteui-angular/button-group';
+import { IgxButtonDirective, IgxRippleDirective } from 'igniteui-angular/directives';
+@Component({
+ selector: 'app-button-group-tailwind-styling',
+ styleUrls: ['./button-group-tailwind-styling.component.scss'],
+ templateUrl: './button-group-tailwind-styling.component.html',
+ imports: [IgxButtonGroupComponent, IgxButtonDirective, IgxRippleDirective]
+})
+export class ButtonGroupTailwindStylingComponent {
+ public rippleColor = 'gray';
+ public views = ['Day', 'Week', 'Month'];
+}
+```
```html
-
-...
-
+
+ @for (view of views; track view) {
+
+ }
+
```
+```scss
+@use 'igniteui-theming' as *;
->[!NOTE]
->The exclamation mark(`!`) is required to ensure the utility class takes precedence. Tailwind applies styles in layers, and without marking these styles as important, they will get overridden by the component’s default theme.
+:host {
+ display: grid;
+ place-items: center;
+ height: 100vh;
+}
-At the end your button group should look like this:
+igx-buttongroup {
+ display: inline-block;
+ width: 100%;
+ max-width: rem(400px);
+}
+```
-
-
-
+## Accessibility
+
+The Angular Button Group organizes related Toggle Buttons while exposing each button's selected and disabled state.
+
+### Keyboard Interaction
+
+The Button Group delegates keyboard interaction to its contained Toggle Buttons. Each Toggle Button renders a native button, so standard button keyboard behavior activates the focused item and updates its selection according to the configured selection mode.
+
+| Key | Action |
+| --- | --- |
+| Tab / Shift+Tab | Moves focus to the next or previous enabled Toggle Button in the group. |
+| Enter / Space | Activates the focused Toggle Button and selects or deselects it according to the configured selection mode. |
+
+When the Button Group is disabled, it disables its contained Toggle Buttons so they are not keyboard interactive.
+
+### Screen Readers / ARIA
+
+The Button Group exposes a group relationship and each Toggle Button exposes its state through native button semantics.
+
+- The group container uses `role="group"`.
+- Angular updates each contained button's `aria-pressed` value when its selection changes and disables child buttons when the group is disabled.
+- The group emits `selected` and `deselected` when a user changes selection. Each event provides the selected Toggle Button and its index.
+- Provide visible text, an `igxLabel`, or another accessible name for every icon-only button.
+
+### Accessibility Compliance
+
+Infragistics documents Ignite UI for Angular accessibility support for Section 508 and WCAG 2.1 guideline areas in the [Accessibility Compliance](../interactivity/accessibility-compliance.md) topic.
+
+| Criterion | How the component complies |
+| -- | -- |
+| [2.1.1 Keyboard](https://www.w3.org/WAI/WCAG21/Understanding/keyboard) | Each Toggle Button uses a native button, so the group selection behavior is available through standard button keyboard activation. |
+| [4.1.2 Name, Role, Value](https://www.w3.org/WAI/WCAG21/Understanding/name-role-value) | The group exposes `role="group"`. Toggle Buttons expose native button semantics and update `aria-pressed` when selection changes; xplat Toggle Buttons also expose `aria-disabled`. |
+
+Your responsibilities:
+
+- Give each Toggle Button a clear visible label or accessible name, especially when it contains only an icon.
+- Keep the group selection mode aligned with the control purpose, so users can understand whether one or multiple options may be selected.
+- Preserve the logical button order and sufficient color contrast when customizing the group or its selected state.
+
+## Troubleshooting
+
+Use this section to check boundaries and common decisions before treating Button Group as a single toggle, form field, or action group.
+
+### Why does selectedItems not select a button?
+
+Ensure every Toggle Button has a unique `value` attribute. The `selectedItems` property depends on those values.
+
+### Known Limitations
+
+The Angular Button Group coordinates Toggle Buttons but does not replace their individual labels or accessible names.
+
+- Selection behavior depends on the configured `selection` mode.
+- The `selectedItems` property depends on unique `value` attributes on the contained Toggle Buttons.
+- The Button Group does not provide labels or icons for its buttons; define the content of each Toggle Button separately.
## API References
-
+The Angular Button Group API reference provides the complete API surface for the component and its related button functionality.
-- [IgxButtonGroupComponent](mcp:get_api_reference?platform=angular&component=IgxButtonGroupComponent)
-- [IgxButtonGroup Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-button-group-theme)
-- [IgxButtonDirective](mcp:get_api_reference?platform=angular&component=IgxButtonDirective)
-- [IgxButton Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-button-theme)
+[`IgxButtonGroup`](mcp:get_api_reference?platform=angular&component=IgxButtonGroupComponent)
+[`IgxButton`](mcp:get_api_reference?platform=angular&component=IgxButtonDirective)
+[`IgxRipple`](mcp:get_api_reference?platform=angular&component=IgxRippleDirective)
+[`IgxIcon`](mcp:get_api_reference?platform=angular&component=IgxIconComponent)
-## Theming Dependencies
+## Dependencies
-- [IgxIcon Theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-icon-theme)
-- [IgxButton Theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-button-theme)
-- [IgxRipple Theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-ripple-theme)
+The Angular Button Group requires the Angular package and its theme stylesheet. The examples also use the [`IgxButton`](mcp:get_api_reference?platform=angular&component=IgxButtonDirective), [`IgxIcon`](mcp:get_api_reference?platform=angular&component=IgxIconComponent), and [`IgxRipple`](mcp:get_api_reference?platform=angular&component=IgxRippleDirective) components.
## Additional Resources
-
-
-Our community is active and always welcoming to new ideas.
+Use the following Angular resources for API details and project support:
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
+
+## Related Components
+
+- [Button](./button.md) - Use Button when you need an individual action instead of a selectable group.
+
+## FAQ
+
+**Q: How do I set the selected buttons in a Button Group?**
+
+Give every button item a unique value, then use the platform-specific selected-items setting to identify the items that should start selected. Unique values allow the group to track selection consistently across all supported platforms.
+
+**Q: Can I use icons and labels in a Button Group?**
+
+Yes. Each button item can contain an icon, a label, or both. Keep the content pattern consistent across the group and provide a visible label or accessible name when an icon alone does not explain the option.
+
+**Q: Can I display a Button Group vertically?**
+
+Yes. Set the platform-specific alignment property to the vertical option. Use horizontal alignment when the related choices should be presented in a single row.
+
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/button.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/button.md
index 49225801a..3240014ad 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/button.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/button.md
@@ -1,1985 +1,1091 @@
---
-title: Angular Button Component – Ignite UI for Angular - MIT license
-_description: Enhance standard buttons with built-in text, images and more features using Ignite UI for Angular Button component. Try it now.
-_keywords: Angular Button component, Angular Button control, Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Angular UI Components,
-_license: MIT
+title: "Button Component"
+description: Get started with the Angular Button Component. Select button variants, configure sizes, define styling, and gain flexibility through the Angular Button OnClick event.
+keywords: "Angular, UI controls, web widgets, UI widgets, Angular Button Components, Infragistics"
+mentionedTypes: ["Button", "ButtonBase"]
+license: MIT
+last_updated: 2026-08-13
+relatedComponents: ["IconButton"]
+llms:
+ description: "The Angular Button Component lets you enable clickable elements that trigger actions in your Angular app."
_tocName: Button
---
+# Button Component
-# Angular Button Overview
+The Angular Button component lets you enable clickable elements that trigger actions in your Angular app. You get full control over button variants, styling, and sizes. The Button component also lets you handle clicks, toggle the button, and disable it when needed.
-Angular Button directive is used for creating and adding actionable buttons to a web page/application. There are different Angular Button types that are easy to customize and include several built-in features. By default, Angular Material uses native `
...
```
-The following code demonstrates the usage of the [`HierarchicalTransactionService`](mcp:get_api_reference?platform=angular&component=IgxHierarchicalTransactionService) API - undo, redo, commit.
+
+The following code demonstrates the usage of the [`IgxHierarchicalTransactionService`](mcp:get_api_reference?platform=angular&component=IgxHierarchicalTransactionService) API - undo, redo, commit.
+
```typescript
export class TreeGridBatchEditingSampleComponent {
@ViewChild('treeGrid', { read: IgxTreeGridComponent }) public treeGrid: IgxTreeGridComponent;
@@ -288,23 +304,33 @@ export class TreeGridBatchEditingSampleComponent {
}
}
```
-> [!NOTE]
-> The transactions API won't handle end of edit and you'd need to do it by yourself. Otherwise, `Tree Grid` would stay in edit mode. One way to do that is by calling [`endEdit`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=endEdit) in the respective method.
+
+**Note:**
+The transactions API won't handle end of edit and you'd need to do it by yourself. Otherwise, `Tree Grid` would stay in edit mode. One way to do that is by calling [`endEdit`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=endEdit) in the respective method.
+
Deleting a parent node in `Tree Grid` has some peculiarities. If you are using a hierarchical data, the children will be deleted when deleting their parent. If you are using a flat data, you may set the desired behavior using the [`cascadeOnDelete`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=cascadeOnDelete) property of `Tree Grid`. This property indicates whether the child records should be deleted when their parent gets deleted (by default, it is set to `true`).
-> [!NOTE]
-> Disabling [`rowEditable`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowEditable) property will modify `Tree Grid` to create transactions on cell change and will not expose row editing overlay in the UI.
+
+**Note:**
+Disabling [`rowEditable`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowEditable) property will modify `Tree Grid` to create transactions on cell change and will not expose row editing overlay in the UI.
+
## API References
-- [HierarchicalTransactionService](mcp:get_api_reference?platform=angular&component=IgxHierarchicalTransactionService)
-- [rowEditable](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowEditable)
-- [IgxTreeGridComponent](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
-- [IgxGridComponent](mcp:get_api_reference?platform=angular&component=IgxGridComponent)
+
+- [`IgxHierarchicalTransactionService`](mcp:get_api_reference?platform=angular&component=IgxHierarchicalTransactionService)
+- [`rowEditable`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowEditable)
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+- [`IgxGrid`](mcp:get_api_reference?platform=angular&component=IgxGridComponent)
+
## Additional Resources
-- [Build CRUD operations with igxGrid](../general/how-to/how-to-perform-crud.md)
-- [Tree Grid Overview](tree-grid.md)
-- [Tree Grid Editing](editing.md)
-- [Tree Grid Row Editing](row-editing.md)
-- [Tree Grid Row Adding](row-adding.md)
-
+
+- [Build CRUD operations with igxGrid](/general/how-to/how-to-perform-crud)
+- [Tree Grid Overview](/treegrid/tree-grid)
+
+- [Tree Grid Editing](/treegrid/editing)
+
+- [Tree Grid Row Editing](/treegrid/row-editing)
+- [Tree Grid Row Adding](/treegrid/row-adding)
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-cell-editing.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-cell-editing.md
index db1b10a0d..851b29544 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-cell-editing.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-cell-editing.md
@@ -1,15 +1,20 @@
---
title: Cell Editing in Angular TreeGrid - Ignite UI for Angular
-_description: The Grid is using in-cell editing. It has a default cell editing template, but it also lets you define your own custom templates for update-data action. Try it now!
-_keywords: data manipulation, ignite ui for angular, infragistics
-_license: commercial
+description: The Grid is using in-cell editing. It has a default cell editing template, but it also lets you define your own custom templates for update-data action. Try it now!
+keywords: data manipulation, ignite ui for angular, infragistics
+license: commercial
_canonicalLink: grid/cell-editing
+llms:
+ description: "Ignite UI for Angular Tree Grid component provides powerful data manipulation capabilities and powerful API for Angular CRUD operations."
_tocName: Cell Editing
_premium: true
---
# Angular Tree Grid Cell Editing
-Ignite UI for Angular Tree Grid component provides a great data manipulation capabilities and powerful API for Angular CRUD operations. By default the Tree Grid is using **in cell** editing and different editors will be shown based on the column data type, thanks to the **default cell editing template**. In addition, you can define your own custom templates for update-data actions and to override the default behavior for committing and discarding any changes.
+
+Ignite UI for Angular Tree Grid component provides powerful data manipulation capabilities and powerful API for Angular CRUD operations. By default the Tree Grid is using **in cell** editing and different editors will be shown based on the column data type, thanks to the **default cell editing template**. In addition, you can define your own custom templates for update-data actions and to override the default behavior for committing and discarding any changes.
+
## Angular Tree Grid cell editing and edit templates Example
+
```typescript
import { Component, OnInit, ViewChild } from '@angular/core';
import { IgxDialogComponent } from 'igniteui-angular/dialog';
@@ -187,35 +192,49 @@ export class TreeGridEditingSampleComponent implements OnInit {
margin-bottom: 10px;
}
```
-
-> [!NOTE]
->By using `igxCellEditor` with any type of editor component, the keyboard navigation flow will be disrupted. The same applies to direct editing of the custom cell that enters edit mode. This is because the `focus` will remain on the `cell element`, not on the editor component that we've added - [`igxSelect`](../select.md), [`igxCombo`](../combo.md), etc. This is why we should take leverage of the `igxFocus` directive, which will move the focus directly in the in-cell component and will preserve `a fluent editing flow` of the cell/row.
+
+**Note:**
+By using `igxCellEditor` with any type of editor component, the keyboard navigation flow will be disrupted. The same applies to direct editing of the custom cell that enters edit mode. This is because the `focus` will remain on the `cell element`, not on the editor component that we've added - [`igxSelect`](/select), [`igxCombo`](/combo), etc. This is why we should take leverage of the `igxFocus` directive, which will move the focus directly in the in-cell component and will preserve `a fluent editing flow` of the cell/row.
+
## Cell Editing
+
### Editing through UI
+
You can enter edit mode for specific cell, when an editable cell is focused in one of the following ways:
+
- on double click;
- on single click - Single click will enter edit mode only if the previously selected cell was in edit mode and currently selected cell is editable. If the previously selected cell was not in edit mode, single click will select the cell without entering edit mode;
- on key press `Enter`;
- on key press `F2`;
+
You can exit edit mode **without committing** the changes in one of the following ways:
+
- on key press `Escape`;
- when you perform _sorting_, _filtering_, _searching_ and _hiding_ operations;
+
You can exit edit mode and **commit** the changes in one of the following ways:
+
- on key press `Enter`;
- on key press `F2`;
- on key press `Tab`;
- on single click to another cell - when you click on another cell in the Tree Grid, your changes will be submitted.
- operations like paging, resize, pin or move will exit edit mode and changes will be submitted.
-> [!NOTE]
-> The cell remains in edit mode when you scroll vertically or horizontally or click outside the Tree Grid. This is valid for both cell editing and row editing.
+
+**Note:**
+The cell remains in edit mode when you scroll vertically or horizontally or click outside the Tree Grid. This is valid for both cell editing and row editing.
+
### Editing through API
+
You can also modify the cell value through the IgxTreeGrid API but only if primary key is defined:
+
```typescript
public updateCell() {
this.treeGrid.updateCell(newValue, rowID, 'Age');
}
```
+
Another way to update cell is directly through [`update`](mcp:get_api_reference?platform=angular&component=IgxGridCell&member=update) method of [`IgxGridCell`](mcp:get_api_reference?platform=angular&component=IgxGridCell):
+
```typescript
public updateCell() {
const cell = this.treeGrid.getCellByColumn(rowIndex, 'Age');
@@ -224,9 +243,13 @@ public updateCell() {
cell.update(9999);
}
```
+
### Cell Editing Templates
-You can see and learn more for default cell editing templates in the [general editing topic](editing.md#editing-templates).
-If you want to provide a custom template which will be applied when a cell is in edit mode, you can make use of the [`igxCellEditor` directive](mcp:get_api_reference?platform=angular&component=IgxCellTemplateDirective). To do this, you need to pass an `ng-template` marked with the `igxCellEditor` directive and properly bind your custom control to the [`cell.editValue`](mcp:get_api_reference?platform=angular&component=IgxGridCell&member=editValue):
+
+You can see and learn more for default cell editing templates in the [general editing topic](/treegrid/editing#editing-templates).
+
+If you want to provide a custom template which will be applied when a cell is in edit mode, you can make use of the [`` igxCellEditor` directive ``](mcp:get_api_reference?platform=angular&component=IgxCellTemplateDirective). To do this, you need to pass an `ng-template` marked with the `igxCellEditor` directive and properly bind your custom control to the [`cell.editValue`](mcp:get_api_reference?platform=angular&component=IgxGridCell&member=editValue):
+
```html
@@ -238,7 +261,9 @@ If you want to provide a custom template which will be applied when a cell is in
```
-This code is used in the sample below which implements an [`IgxSelectComponent`](../select.md) in the cells of the `Race`, `Class` and `Alignment` columns.
+
+This code is used in the sample below which implements an [`IgxSelectComponent`](/select) in the cells of the `Race`, `Class` and `Alignment` columns.
+
```typescript
import { Character } from './characters';
import { Component, OnInit, ViewChild } from '@angular/core';
@@ -334,21 +359,30 @@ export class GridSelectComponent implements OnInit {
padding: 16px;
}
```
-
-> [!NOTE]
-> Any changes made to the cell's [`editValue`](mcp:get_api_reference?platform=angular&component=IgxGridCell&member=editValue) in edit mode, will trigger the appropriate [editing event](editing.md#event-arguments-and-sequence) on exit and apply to the [transaction state](batch-editing.md) (if transactions are enabled).
-> [!NOTE]
-> The cell template [`igxCell`](../grid/grid.md#cell-template) controls how a column's cells are shown when outside of edit mode.
-> The cell editing template directive `igxCellEditor`, handles how a column's cells in edit mode are displayed and controls the edited cell's edit value.
-> [!NOTE]
->By using `igxCellEditor` with any type of editor component, the keyboard navigation flow will be disrupted. The same applies to direct editing of the custom cell that enters edit mode. This is because the `focus` will remain on the `cell element`, not on the editor component that we've added - [`igxSelect`](../select.md), [`igxCombo`](../combo.md), etc. This is why we should take leverage of the `igxFocus` directive, which will move the focus directly in the in-cell component and will preserve `a fluent editing flow` of the cell/row.
-For more information on how to configure columns and their templates, you can see the documentation for [Grid Columns configuration](../grid/grid.md#angular-grid-column-configuration).
+
+**Note:**
+Any changes made to the cell's [`editValue`](mcp:get_api_reference?platform=angular&component=IgxGridCell&member=editValue) in edit mode, will trigger the appropriate [editing event](/treegrid/editing#event-arguments-and-sequence) on exit and apply to the [transaction state](/treegrid/batch-editing) (if transactions are enabled).
+
+**Note:**
+The cell template [`igxCell`](/grid/grid#cell-template) controls how a column's cells are shown when outside of edit mode.
+The cell editing template directive `igxCellEditor`, handles how a column's cells in edit mode are displayed and controls the edited cell's edit value.
+
+**Note:**
+By using `igxCellEditor` with any type of editor component, the keyboard navigation flow will be disrupted. The same applies to direct editing of the custom cell that enters edit mode. This is because the `focus` will remain on the `cell element`, not on the editor component that we've added - [`igxSelect`](/select), [`igxCombo`](/combo), etc. This is why we should take leverage of the `igxFocus` directive, which will move the focus directly in the in-cell component and will preserve `a fluent editing flow` of the cell/row.
+
+For more information on how to configure columns and their templates, you can see the documentation for [Grid Columns configuration](/grid/grid#angular-grid-column-configuration).
+
## CRUD operations
-> [!NOTE]
-> Please keep in mind that when you perform some **CRUD operation** all of the applied pipes like **filtering**, **sorting** and **grouping** will be re-applied and your view will be automatically updated.
-The [`IgxTreeGridComponent`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) provides a straightforward API for basic CRUD operations.
+
+**Note:**
+Please keep in mind that when you perform some **CRUD operation** all of the applied pipes like **filtering**, **sorting** and **grouping** will be re-applied and your view will be automatically updated.
+
+The [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) provides a straightforward API for basic CRUD operations.
+
### Adding a new record
+
The Tree Grid component exposes the [`addRow`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=addRow) method which will add the provided data to the data source itself.
+
```typescript
public addNewChildRow() {
// Adding a new record
@@ -358,21 +392,30 @@ public addNewChildRow() {
this.treeGrid.addRow(record, 1);
}
```
+
### Updating data in the Tree Grid
+
Updating data in the Tree Grid is achieved through [`updateRow`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=updateRow) and [`updateCell`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=updateCell) methods but **only if primary key for the grid is defined**. You can also directly update a cell and/or a row value through their respective `update` methods.
+
```typescript
// Updating the whole row
this.treeGrid.updateRow(newData, this.selectedCell.cellID.rowID);
+
// Just a particular cell through the Tree Grid API
this.treeGrid.updateCell(newData, this.selectedCell.cellID.rowID, this.selectedCell.column.field);
+
// Directly using the cell `update` method
this.selectedCell.update(newData);
+
// Directly using the row `update` method
const row = this.treeGrid.getRowByKey(rowID);
row.update(newData);
```
+
### Deleting data from the Tree Grid
+
Please keep in mind that [`deleteRow()`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=deleteRow) method will remove the specified row only if primary key is defined.
+
```typescript
// Delete row through Tree Grid API
this.treeGrid.deleteRow(this.selectedCell.cellID.rowID);
@@ -380,22 +423,29 @@ this.treeGrid.deleteRow(this.selectedCell.cellID.rowID);
const row = this.treeGrid.getRowByIndex(rowIndex);
row.delete();
```
+
These can be wired to user interactions, not necessarily related to the **igx-tree-grid**; for example, a button click:
+
```html
Delete Row
```
-
+
### Cell validation on edit event
+
Using the grid's editing events we can alter how the user interacts with the grid.
In this example, we'll validate a cell based on the data entered in it by binding to the [`cellEdit`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=cellEdit) event. If the new value of the cell does not meet our predefined criteria, we'll prevent it from reaching the data source by cancelling the event (`event.cancel = true`). We'll also display a custom error message using [`IgxToast`](../toast.md).
+
The first thing we need to is bind to the grid's event:
+
```html
...
```
+
The `cellEdit` emits whenever **any** cell's value is about to be committed. In our `handleCellEdit` definition, we need to make sure that we check for our specific column before taking any action:
+
```typescript
export class MyTreeGridEventsComponent {
public handleCellEdit(event: IGridEditEventArgs): void {
@@ -416,8 +466,11 @@ export class MyTreeGridEventsComponent {
}
}
```
+
Here, we are validating two columns. If the user tries to set an invalid value for an employee's **Age** (below 18) or their **Hire Date** (a future date), the editing will be cancelled (the value will not be submitted) and a toast with an error message will be displayed.
+
The result of the above validation being applied to our `igx-tree-grid` can be seen in the below demo:
+
```typescript
import { Component, OnInit, ViewChild } from '@angular/core';
import { IGridEditEventArgs, IgxColumnComponent } from 'igniteui-angular/grids/core';
@@ -480,46 +533,71 @@ export class TreeGridEditingEventsComponent implements OnInit {
}
}
```
+
## Styling
-The IgxTreeGrid allows for its cells to be styled through the [`Ignite UI for Angular Theme Library`](../themes/sass/component-themes.md). The grid's [`grid-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme) exposes a wide range of properties, which allow users to style many different aspects of the grid.
+
+The IgxTreeGrid allows for its cells to be styled through the [`Ignite UI for Angular Theme Library`](/themes/sass/component-themes). The grid's `grid-theme` exposes a wide range of properties, which allow users to style many different aspects of the grid.
+
In the below steps, we are going to go over how you can style the grid's cell in edit mode and how you can scope those styles.
-In order to use the [`Ignite UI Theming Library`](../themes/sass/component-themes.md), we must first import the theme `index` file in our global styles:
+
+In order to use the [`Ignite UI Theming Library`](/themes/sass/component-themes), we must first import the theme `index` file in our global styles:
+
### Importing style library
+
```scss
@use "igniteui-angular/theming" as *;
+
// IMPORTANT: Prior to Ignite UI for Angular version 13 use:
// @import '~igniteui-angular/lib/core/styles/themes/index';
```
+
Now we can make use of all of the functions exposed by the Ignite UI for Angular theme engine.
+
### Defining a palette
-After we've properly imported the index file, we create a custom palette that we can use. Let's define three colors that we like and use them to build a palette with [`palette`](../themes/palettes.md):
+
+After we've properly imported the index file, we create a custom palette that we can use. Let's define three colors that we like and use them to build a palette with [`palette`](/themes/palettes):
+
```scss
$white: #fff;
$blue: #4567bb;
$gray: #efefef;
+
$color-palette: palette(
$primary: $white,
$secondary: $blue,
$surface: $gray
);
```
+
### Defining themes
-We can now define the theme using our palette. The cells are styled by the [`grid-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme), so we can use that to generate a theme for our IgxTreeGrid:
+
+We can now define the theme using our palette. The cells are styled by the `grid-theme`, so we can use that to generate a theme for our IgxTreeGrid:
+
```scss
-$custom-grid-theme: grid-theme(
+$grid-theme: grid-theme(
$cell-editing-background: $blue,
+ $cell-editing-foreground: $white,
+ $cell-active-border-color: $blue,
$cell-edited-value-color: $white,
- $cell-active-border-color: $white,
- $edit-mode-color: color($color-palette, "secondary", 200)
+ $edit-mode-color: color($color: "secondary", $variant: 200)
);
```
+
### Applying the theme
-The easiest way to apply our theme is with a `sass` `@include` statement in the global styles file:
+
+The last step is to **include** the custom palette and grid themes.
+
```scss
-@include grid($custom-grid-theme);
+igx-tree-grid {
+ @include palette($color-palette);
+ @include tokens($grid-theme);
+}
```
+
### Demo
-In addition to the steps above, we can also style the controls that are used for the cells' editing templates: [`input-group`](../input-group.md#styling), [`datepicker`](../date-picker.md#styling) & [`checkbox`](../checkbox.md#styling)
+
+In addition to the steps above, we can also style the controls that are used for the cells' editing templates: [`input-group`](/input-group#styling), [`datepicker`](/date-picker#styling) & [`checkbox`](/checkbox#styling)
+
```typescript
import { Component, OnInit, ViewChild } from '@angular/core';
import { IgxTreeGridComponent } from 'igniteui-angular/grids/tree-grid';
@@ -615,30 +693,35 @@ igx-tree-grid {
@include tokens($input-theme);
}
```
->[!NOTE]
->The sample will not be affected by the selected global theme from `Change Theme`.
-
+
+**Note:**
+The sample will not be affected by the selected global theme from `Change Theme`.
+
## API References
-- [IgxGridCell](mcp:get_api_reference?platform=angular&component=IgxGridCell)
-- [IgxTreeGridComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme)
-_ [IgxTreeGridRow](mcp:get_api_reference?platform=angular&component=IgxTreeGridRow)
-- [IgxInputDirective](mcp:get_api_reference?platform=angular&component=IgxInputDirective)
-- [IgxDatePickerComponent](mcp:get_api_reference?platform=angular&component=IgxDatePickerComponent)
-- [IgxDatePickerComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-date-picker-theme)
-- [IgxCheckboxComponent](mcp:get_api_reference?platform=angular&component=IgxCheckboxComponent)
-- [IgxCheckboxComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-checkbox-theme)
-- [IgxOverlay](mcp:get_api_reference?platform=angular&component=OverlaySettings)
-- [IgxOverlay Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-overlay-theme)
+- [`IgxGridCell`](mcp:get_api_reference?platform=angular&component=IgxGridCell)
+- `IgxTreeGridComponent Styles`
+
+_ [`IgxTreeGridRow`](mcp:get_api_reference?platform=angular&component=IgxTreeGridRow)
+
+- [`IgxInputDirective`](mcp:get_api_reference?platform=angular&component=IgxInputDirective)
+- [`IgxDatePicker`](mcp:get_api_reference?platform=angular&component=IgxDatePickerComponent)
+- `IgxDatePickerComponent Styles`
+- [`IgxCheckbox`](mcp:get_api_reference?platform=angular&component=IgxCheckboxComponent)
+- `IgxCheckboxComponent Styles`
+- [`IgxOverlaySettings`](mcp:get_api_reference?platform=angular&component=OverlaySettings)
+- `IgxOverlay Styles`
## Additional Resources
-
-- [Build CRUD operations with igxGrid](../general/how-to/how-to-perform-crud.md)
-- [Tree Grid overview](tree-grid.md)
-- [Virtualization and Performance](virtualization.md)
-- [Paging](paging.md)
-- [Filtering](filtering.md)
-- [Sorting](sorting.md)
-- [Summaries](summaries.md)
-- [Column Pinning](column-pinning.md)
-- [Column Resizing](column-resizing.md)
-- [Selection](selection.md)
-* [Searching](search.md)
+
+- [Build CRUD operations with igxGrid](/general/how-to/how-to-perform-crud)
+- [Tree Grid overview](/treegrid/tree-grid)
+- [Virtualization and Performance](/treegrid/virtualization)
+- [Paging](/treegrid/paging)
+- [Filtering](/treegrid/filtering)
+- [Sorting](/treegrid/sorting)
+- [Summaries](/treegrid/summaries)
+- [Column Pinning](/treegrid/column-pinning)
+- [Column Resizing](/treegrid/column-resizing)
+- [Selection](/treegrid/selection)
+
+- [Searching](/treegrid/search)
+
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-cell-merging.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-cell-merging.md
index 6caf6934f..1c43bdb10 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-cell-merging.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-cell-merging.md
@@ -1,14 +1,19 @@
---
title: Angular Grid Cell Merging - Ignite UI for Angular
-_description: Position and size columns in a more powerful way, using the multi-row layout functionality in the Ignite UI for Angular Data Grid. Check out examples and demos!
-_keywords: angular cell merging, cell merging, ignite ui for angular
-_license: commercial
+description: Merge adjacent cells with equal values in the Angular Data Grid using the Ignite UI Cell Merging feature. Learn configuration, merging modes, and see live examples!
+keywords: angular cell merging, cell merging, ignite ui for angular
+license: commercial
+llms:
+ description: "The Ignite UI for Angular Tree Grid provides a Cell Merging feature that combines two or more adjacent cells with the same value into a single, larger cell."
_tocName: Cell Merging
_premium: true
---
# Angular Cell Merging
+
The Ignite UI for Angular Tree Grid provides a Cell Merging feature that combines two or more adjacent cells with the same value into a single, larger cell. Merging is applied vertically within a column and helps improve readability by reducing duplicate values. The feature can be configured to merge cells either by default matching data values or by applying a custom condition.
+
## Angular Cell Merging Example
+
```typescript
import { ChangeDetectorRef, Component, inject, ViewChild } from '@angular/core';
import { IgxTreeGridComponent } from 'igniteui-angular/grids/tree-grid';
@@ -106,32 +111,47 @@ export class TreeGridCellMergeComponent {
flex-direction: column;
}
```
+
## Enabling and Using Cell Merging
+
Cell merging in the grid is controlled at two levels:
+
- Grid-level merge mode – determines when merging is applied.
- Column-level merge toggle – determines which columns can merge cells.
+
### Grid Merge Mode
+
The grid exposes a `cellMergeMode` property that accepts values from the `GridCellMergeMode` enum:
+
- `always` - Merges any adjacent cells that meet the merging condition, regardless of sort state.
- `onSort` - Merges adjacent cells only when the column is sorted **(default value)**.
+
```html
...
```
+
```ts
protected cellMergeMode: GridCellMergeMode = 'always';
```
+
### Column Merge Toggle
+
At the column level, merging can be enabled or disabled with the `merge` property.
+
```html
```
+
In the above example:
+
- The **OrderID** column will merge adjacent duplicate values.
- The **ShipperName** column will render normally without merging.
+
### Combined Example
+
```html
@@ -139,14 +159,21 @@ In the above example:
```
+
```ts
protected cellMergeMode: GridCellMergeMode = 'onSort';
```
+
Here, the grid is set to merge only when columns are sorted, and both Category and Product columns are configured for merging.
+
## Custom Merge Conditions
+
In addition to the built-in `always` and `onSort` modes, the grid allows you to define a custom condition for merging cells through the `mergeStrategy` property. This strategy controls both how cells are compared and how merged ranges are calculated.
+
### Merge Strategy Interface
+
A custom merge strategy must implement the `IGridMergeStrategy` interface:
+
```ts
export interface IGridMergeStrategy {
merge: (
@@ -161,28 +188,16 @@ export interface IGridMergeStrategy {
comparer: (prevRecord: any, record: any, field: string) => boolean;
}
```
+
- `merge` - defines how merged cells are produced.
- `comparer` - defines the condition to decide if two adjacent records should be merged.
-@@if(igxName === 'IgxGrid' || igxName === 'IgxHierarchicalGrid'){
-### Extending the Default Strategy
-If you only want to customize part of the behavior (for example, the comparer logic), you can extend the built-in `DefaultMergeStrategy` and override the relevant methods.
-```ts
-export class MyCustomStrategy extends DefaultMergeStrategy {
- /* Merge only cells within their respective projects */
- public override comparer(prevRecord: any, record: any, field: string): boolean {
- const a = prevRecord[field];
- const b = record[field];
- const projA = prevRecord['ProjectName'];
- const projB = record['ProjectName'];
- return a === b && projA === projB;
- }
-}
-```
-}
+
The `IgxTreeGrid` provides two built-in strategies that implement the `IGridMergeStrategy` interface: `DefaultTreeGridMergeStrategy` and `ByLevelTreeGridMergeStrategy`. `DefaultTreeGridMergeStrategy` merges all cells with the same value, regardless of their hierarchical level. In contrast, `ByLevelTreeGridMergeStrategy` only merges cells if they have the same value and are located at the same level, making level a required condition for merging.
-
+
### Extending the Default Strategy
+
If you only want to customize part of the behavior (for example, the comparer logic), you can extend one of the built-in strategies, either `DefaultTreeGridMergeStrategy` or `ByLevelTreeGridMergeStrategy`, and override the relevant methods.
+
```ts
export class MyCustomStrategy extends DefaultTreeGridMergeStrategy {
/* Merge only cells within their respective projects */
@@ -195,17 +210,22 @@ export class MyCustomStrategy extends DefaultTreeGridMergeStrategy {
}
}
```
+
### Applying a Custom Strategy
+
Once defined, assign the strategy to the grid through the `mergeStrategy` property:
+
```html
```
+
```ts
protected customStrategy = new MyCustomStrategy();
```
+
### Demo
```typescript
import { Component, ViewChild } from '@angular/core';
@@ -307,23 +327,30 @@ export class CustomTreeGridMergeStrategy extends DefaultMergeStrategy {
flex-direction: column;
}
```
+
## Feature Integration
+
Due to the specific behavior of merged cells it has to be noted how exactly it ties together with some of the other features of the grid:
+
- **Excel export**: merged cells remain merged when exported to Excel.
- **Column pinning**: cells remain merged when a column is pinned and are displayed in the pinned area.
- **Row pinning**: cells merge only withing their containing area, i.e. cells of pinned rows merge only with cells of other pinned rows, while cells of unpinned rows merge only with cells of unpinned rows.
- **Navigation/Activation**: when a cell is active, all merged cells in the same row become single cells, i.e. their merge sequence is broken. This also includes activation via keyboard navigation.
->[!NOTE]
-> If a merged cell is clicked, the closest cell from the merge sequence will become active.
+
+**Note:**
+If a merged cell is clicked, the closest cell from the merge sequence will become active.
+
- **Updating/Editing**: since activation breaks the merge sequence, only a single cell will be in edit mode.
- **Row selection**: if selected rows intersect merged cells, all related merged cells should be marked as part of the selection.
+
## API References
-- [IgxTreeGridComponent API](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
-- [IgxTreeGridComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme)
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+- `IgxTreeGridComponent Styles`
## Additional Resources
-
-- [Tree Grid overview](tree-grid.md)
-
+
+- [Tree Grid overview](/treegrid/tree-grid)
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-cell-selection.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-cell-selection.md
index f3058fa9b..abb0e83a2 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-cell-selection.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-cell-selection.md
@@ -1,18 +1,23 @@
---
title: Angular Tree Grid Cell Selection - Ignite UI for Angular
-_description: Check how easy it is to use cell data selection using variety of events, rich API or mouse interactions. The Grid supports 3 modes for cell selection. Try it now!
-_keywords: data select, igniteui for angular, infragistics
-_license: commercial
+description: Check how easy it is to use cell data selection using variety of events, rich API or mouse interactions. The Grid supports 3 modes for cell selection. Try it now!
+keywords: data select, igniteui for angular, infragistics
+license: commercial
_canonicalLink: grid/cell-selection
+llms:
+ description: "The selection feature enables rich data select capabilities in the Material UI based Tree Grid."
_tocName: Cell selection
_premium: true
---
# Angular Cell Selection
+
The selection feature enables rich data select capabilities in the Material UI based Tree Grid. Variety of events and single select actions are available thanks to the powerful API and easy to use methods. The Tree Grid now supports three modes for cell selection, and you can easily switch between them by changing [`cellSelection`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=cellSelection) property. You can disable cell selection, you can _select only one cell within the grid_ or to _select multiple cells in the grid_, which is provided as default option.
But let's dive deeper in each of these options.
+
## Angular Cell Selection Example
+
The sample below demonstrates the three types of Tree Grid's **cell selection** behavior. Use the buttons below to enable each of the available selection modes. A brief description will be provided on each button interaction through a snackbar message box.
-
+
```typescript
import { Component, OnInit, ViewChild } from '@angular/core';
import { GridSelectionMode, IgxColumnComponent } from 'igniteui-angular/grids/core';
@@ -131,10 +136,13 @@ export class TreeGridCellSelectionComponent implements OnInit {
}
}
```
-
+
## Selection types
+
### Tree Grid Multiple-cell Selection
+
How to select cells:
+
- By `Mouse drag` - Rectangular data selection of cells would be performed.
- By `Ctrl key` press + `Mouse drag` - Multiple range selections would be performed. Any other existing cell selection will be persisted.
- Instant multi-cell selection by using Shift key. Select single cell and select another single cell by holding the Shift key. Cell range between the two cells will be selected. Keep in mind that if another second cell is selected while holding `Shift key` the cell selection range will be updated based on the first selected cell position (starting point).
@@ -142,7 +150,9 @@ How to select cells:
- Keyboard multi-cell selection by using the `Ctrl + Arrow keys` and `Ctrl + Home/End` while holding `Shift key`. Multi-cell selection range will be created based on the focused cell.
- Clicking with the `Left Mouse key` while holding `Ctrl key` will add single cell ranges into the selected cells collection.
- Continuous multiple cell selection is available, by clicking with the mouse and dragging.
+
#### Demo
+
```typescript
import { Component, ViewEncapsulation } from '@angular/core';
import { IgxColumnComponent } from 'igniteui-angular/grids/core';
@@ -241,69 +251,68 @@ export class TreeGridMultiCellSelectionComponent {
padding-left: 10px;
}
```
-
+
### Tree Grid Single Selection
+
When you set the `[cellSelection]="'single'"`, this allows you to have only one selected cell in the grid at a time. Also the mode `mouse drag` will not work and instead of selecting a cell, this will make default text selection.
->[!NOTE]
-> When single cell is selected [`selected`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=selected) event is emitted, no matter if the `selection mode` is `single` or `multiple`. In multi-cell selection mode when you select a range of cells [`rangeSelected`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=rangeSelected) event is emitted.
+
+**Note:**
+When single cell is selected [`selected`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=selected) event is emitted, no matter if the `selection mode` is `single` or `multiple`. In multi-cell selection mode when you select a range of cells [`rangeSelected`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=rangeSelected) event is emitted.
+
### Tree Grid None selection
+
If you want to disable cell selection you can just set `[cellSelection]="'none'"` property. In this mode when you click over the cell or try to navigate with keyboard, the cell is **not selected**, only the `activation style` is applied and it is going to be lost when you scroll or click over other element on the page. The only way for you to define selection is by using the API methods that are described below.
+
## Keyboard navigation interactions
+
### While Shift key is pressed
+
- Shift + Arrow Up to add above cell to the current selection.
- Shift + Arrow Down to add below cell to the current selection.
- Shift + Arrow Left to add left cell to the current selection.
- Shift + Arrow Right to add right cell to the current selection.
+
### While Ctrl + Shift keys are pressed
+
- Ctrl + Shift + Arrow Up to select all cells above the focused cell in the column.
- Ctrl + Shift + Arrow Down to select all cells below the focused cell in the column.
- Ctrl + Shift + Arrow Left to select all cells till the start of the row.
- Ctrl + Shift + Arrow Right to select all cells till the end of the row.
- Ctrl + Shift + Home to select all cells from the focused cell till the first-most cell in the grid
- Ctrl + Shift + End to select all cells from the focused cell till the last-most cell in the grid
-> [!NOTE]
-> Continuous scroll is possible only within Grid's body.
+
+**Note:**
+Continuous scroll is possible only within Grid's body.
+
## Api usage
+
Below are the methods that you can use in order to select ranges, clear selection or get selected cells data.
+
### Select range
-@@if (igxName === 'IgxGrid') {
-[`selectRange(range)`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=selectRange) - Select a range of cells with the API. `rowStart` and `rowEnd` should use row indexes and `columnStart` and `columnEnd` could use column index or column data field value.
-}
-@@if (igxName === 'IgxTreeGrid') {
+
[`selectRange(range)`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=selectRange) - Select a range of cells with the API. `rowStart` and `rowEnd` should use row indexes and `columnStart` and `columnEnd` could use column index or column data field value.
-}
-@@if (igxName === 'IgxHierarchicalGrid') {
-[`selectRange(range)`](mcp:get_api_reference?platform=angular&component=IgxHierarchicalGridComponent&member=selectRange) - Select a range of cells with the API. `rowStart` and `rowEnd` should use row indexes and `columnStart` and `columnEnd` could use column index or column data field value.
-}
+
```typescript
const range = { rowStart: 2, rowEnd: 2, columnStart: 1, columnEnd: 1 };
this.grid1.selectRange(range);
...
+
const range = { rowStart: 0, rowEnd: 2, columnStart: 'Name', columnEnd: 'ParentID' };
this.grid1.selectRange(range);
+
```
-> [!NOTE]
-> Select range is additive operation. It will not clear your previous selection.
+
+**Note:**
+Select range is additive operation. It will not clear your previous selection.
+
### Clear cell selection
-@@if (igxName === 'IgxGrid') {
-[`clearCellSelection()`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=clearCellSelection) will clear the current cell selection.
-}
-@@if (igxName === 'IgxTreeGrid') {
+
[`clearCellSelection()`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=clearCellSelection) will clear the current cell selection.
-}
-@@if (igxName === 'IgxHierarchicalGrid') {
-[`clearCellSelection()`](mcp:get_api_reference?platform=angular&component=IgxHierarchicalGridComponent&member=clearCellSelection) will clear the current cell selection.
-}
+
### Get selected data
-@@if (igxName === 'IgxGrid') {
-[`getSelectedData()`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=getSelectedData) will return array of the selected data in format depending on the selection. Examples below:
-}
-@@if (igxName === 'IgxTreeGrid') {
+
[`getSelectedData()`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=getSelectedData) will return array of the selected data in format depending on the selection. Examples below:
-}
-@@if (igxName === 'IgxHierarchicalGrid') {
-[`getSelectedData()`](mcp:get_api_reference?platform=angular&component=IgxHierarchicalGridComponent&member=getSelectedData) will return array of the selected data in format depending on the selection. Examples below:
-}
+
1. If three different single cells are selected:
```
@@ -313,6 +322,7 @@ this.grid1.selectRange(range);
{ ParentID: 147 }
];
```
+
2. If three cells from one column are selected:
```
@@ -322,6 +332,7 @@ this.grid1.selectRange(range);
{ Address: 'Mataderos 2312'}
];
```
+
3. If three cells are selected with mouse drag from one row and three columns:
```
@@ -329,6 +340,7 @@ this.grid1.selectRange(range);
{ Address: 'Avda. de la Constitución 2222', City: 'México D.F.', ContactTitle: 'Owner' }
];
```
+
4. If three cells are selected with mouse drag from two rows and three columns:
```
@@ -337,6 +349,7 @@ this.grid1.selectRange(range);
{ ContactTitle: 'Marketing Manager', Address: 'Sierras de Granada 9993', City: 'México D.F.'}
];
```
+
5. If two different ranges are selected:
```
@@ -347,6 +360,7 @@ this.grid1.selectRange(range);
{ Address: 'Fauntleroy Circus', City: 'London'}
];
```
+
6. If two overlapping ranges are selected, the format would be:
```
@@ -357,23 +371,15 @@ this.grid1.selectRange(range);
{ ContactTitle: 'Marketing Manager', Address: 'Berliner Platz 43', City: 'München'}
];
```
-@@if (igxName === 'IgxGrid') {
-> [!NOTE]
-> [`selectedCells()`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=selectedCells) will return cells from all visible rows (rows in the grid's view port) and from all columns, including columns that are out of view. [`getSelectedData()`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=getSelectedData) will also return the selected cell data.
-> [`getSelectedRanges(): GridSelectionRange[]`](https://www.infragistics.com/products/ignite-ui-angular/docs/typescript/latest/classes/igxgridcomponent.html#getSelectedRanges) will return the current selected ranges in the grid from both keyboard and pointer interactions. The type is GridSelectionRange[].
-}
-@@if (igxName === 'IgxTreeGrid') {
-> [!NOTE]
-> [`selectedCells()`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=selectedCells) will return cells from all visible rows (rows in the grid's view port) and from all columns, including columns that are out of view. [`getSelectedData()`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=getSelectedData) will also return the selected cell data.
-> [`getSelectedRanges(): GridSelectionRange[]`](https://www.infragistics.com/products/ignite-ui-angular/docs/typescript/latest/classes/igxgridcomponent.html#getSelectedRanges) will return the current selected ranges in the grid from both keyboard and pointer interactions. The type is GridSelectionRange[].
-}
-@@if (igxName === 'IgxHierarchicalGrid') {
-> [!NOTE]
-> [`selectedCells()`](mcp:get_api_reference?platform=angular&component=IgxHierarchicalGridComponent&member=selectedCells) will return cells from all visible rows (rows in the grid's view port) and from all columns, including columns that are out of view. [`getSelectedData()`](mcp:get_api_reference?platform=angular&component=IgxHierarchicalGridComponent&member=getSelectedData) will also return the selected cell data.
-> [`getSelectedRanges(): GridSelectionRange[]`](https://www.infragistics.com/products/ignite-ui-angular/docs/typescript/latest/classes/igxgridcomponent.html#getSelectedRanges) will return the current selected ranges in the grid from both keyboard and pointer interactions. The type is GridSelectionRange[].
-}
+
+**Note:**
+[`selectedCells()`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=selectedCells) will return cells from all visible rows (rows in the grid's view port) and from all columns, including columns that are out of view. [`getSelectedData()`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=getSelectedData) will also return the selected cell data.
+[`getSelectedRanges(): GridSelectionRange[]`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=getSelectedRanges) will return the current selected ranges in the grid from both keyboard and pointer interactions. The type is GridSelectionRange[].
+
## Features integration
+
The multi-cell selection is index based (DOM elements selection).
+
- `Sorting` - When sorting is performed selection will not be cleared. It will leave currently selected cells the same while sorting ascending or descending.
- `Paging` - On paging selected cells will be cleared. Selection wont be persisted across pages.
- `Filtering` - When filtering is performed selection will not be cleared. If filtering is cleared it will return - the initially selected cells.
@@ -381,26 +387,39 @@ The multi-cell selection is index based (DOM elements selection).
- `Hiding` - It will not clear the selected cells. If column is hidden, the cells from the next visible column will be selected.
- `Pinning` - Selected cell will not be cleared. Same as hiding
- `Group by` - On column grouping selected cells will not be cleared.
+
## Styling
+
The theme engine exposes properties that allow us to style the **range of selected cells**.
+
### Import theme
-To get started with styling the selection, we need to import the `index` file, where all the theme functions and component mixins live:
+
+To get started with styling the selection, we need to import the `index` file, where all the theme functions and the `tokens()` mixin are exported:
+
```scss
@use "igniteui-angular/theming" as *;
+
// IMPORTANT: Prior to Ignite UI for Angular version 13 use:
// @import '~igniteui-angular/lib/core/styles/themes/index';
```
+
### Define colors
-Once done, we can make use of the [`contrast-color`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/palettes#function-contrast-color) and [`color`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/palettes#function-color) functions. With them, we define the colors we would like to use for our selection range:
+
+Once done, we can make use of the `contrast-color` and `color` functions. With them, we define the colors we would like to use for our selection range:
+
```scss
$text-color: contrast-color($color: 'primary', $variant: 900);
$background-color: color($color: "primary", $variant: 900);
$border-yellow: #f2c43c;
```
->[!NOTE]
->If we don't want to use the `contrast-color` and `color` functions, we can always hardcode the color values.
+
+**Note:**
+If we don't want to use the `contrast-color` and `color` functions, we can always hardcode the color values.
+
### Create custom theme
-Next we create a new theme that extends the [`grid-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme) passing our `text-color`, `background-color` and `border-yellow` variables as `$cell-selected-text-color`, `$cell-selected-background` and `$cell-active-border-color`, respectively:
+
+Next we create a new theme that extends the `grid-theme` passing our `text-color`, `background-color` and `border-yellow` variables as `$cell-selected-text-color`, `$cell-selected-background` and `$cell-active-border-color`, respectively:
+
```scss
$custom-grid-theme: grid-theme(
$cell-selected-text-color: $text-color,
@@ -408,15 +427,21 @@ $custom-grid-theme: grid-theme(
$cell-selected-background: $background-color
);
```
+
### Apply theme
+
Afterwards, all we need to do is include the mixin in our component's style (could also be in the app styles), so that our igx-tree-grid uses the newly created theme instead of the default one:
+
```scss
:host {
@include tokens($custom-grid-theme);
}
```
+
With the custom theme applied, the selected grid cells are highlighted with our selected colors:
+
### Demo
+
```typescript
import { Component } from '@angular/core';
import { IgxColumnComponent } from 'igniteui-angular/grids/core';
@@ -481,26 +506,31 @@ $custom-grid-theme: grid-theme(
@include tokens($custom-grid-theme);
}
```
->[!NOTE]
->The sample will not be affected by the selected global theme from `Change Theme`.
+
+**Note:**
+The sample will not be affected by the selected global theme from `Change Theme`.
+
## API References
-- [IgxTreeGridComponent API](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
-_ [IgxTreeGridRow API](mcp:get_api_reference?platform=angular&component=IgxTreeGridRow)
-- [IgxGridCell API](mcp:get_api_reference?platform=angular&component=IgxGridCell)
-- [IgxTreeGridComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme)
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+
+_ [`IgxTreeGridRow`](mcp:get_api_reference?platform=angular&component=IgxTreeGridRow)
+
+- [`IgxGridCell`](mcp:get_api_reference?platform=angular&component=IgxGridCell)
+- `IgxTreeGridComponent Styles`
## Additional Resources
-
-- [Tree Grid overview](tree-grid.md)
-- [Selection](selection.md)
-- [Row selection](row-selection.md)
-- [Filtering](filtering.md)
-- [Sorting](sorting.md)
-- [Summaries](summaries.md)
-- [Column Moving](column-moving.md)
-- [Column Pinning](column-pinning.md)
-- [Column Resizing](column-resizing.md)
-- [Virtualization and Performance](virtualization.md)
-
+
+- [Tree Grid overview](/treegrid/tree-grid)
+- [Selection](/treegrid/selection)
+- [Row selection](/treegrid/row-selection)
+- [Filtering](/treegrid/filtering)
+- [Sorting](/treegrid/sorting)
+- [Summaries](/treegrid/summaries)
+- [Column Moving](/treegrid/column-moving)
+- [Column Pinning](/treegrid/column-pinning)
+- [Column Resizing](/treegrid/column-resizing)
+- [Virtualization and Performance](/treegrid/virtualization)
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-clipboard-interactions.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-clipboard-interactions.md
index fc2f55728..8d79e3d63 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-clipboard-interactions.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-clipboard-interactions.md
@@ -1,15 +1,20 @@
---
title: Angular TreeGrid Clipboard Interactions - Ignite UI for Angular
-_description: The Angular TreeGrid Clipboard functionality provides fast, easy and customizable way to copy, paste and export data to Excel or other programs. Try it now!
-_keywords: copy data, igniteui for angular, infragistics
-_license: commercial
+description: The Angular TreeGrid Clipboard functionality provides fast, easy and customizable way to copy, paste and export data to Excel or other programs. Try it now!
+keywords: copy data, igniteui for angular, infragistics
+license: commercial
_canonicalLink: grid/clipboard-interactions
+llms:
+ description: "Copy to clipboard operations are now available in the Tree Grid."
_tocName: Clipboard Interactions
_premium: true
---
# Angular Tree Grid Clipboard Interactions
+
Copy to clipboard operations are now available in the Tree Grid. This functionality provides a fast, easy and customizable way to copy data of the Angular Data Grid through the current multi cell data select. System Clipboard behavior gives the user ability to copy data from the Tree Grid into Excel or other external programs.
+
## Angular Tree Grid Clipboard Interactions Example
+
```typescript
import { Component } from '@angular/core';
import { EMPLOYEE_DATA } from './data';
@@ -128,9 +133,11 @@ export class TreeGridClipboardSampleComponent {
margin-top: 7px;
}
```
-
+
## Functionality
+
Copy behavior is working with the default interaction defined by the browser and operating system. Thus for the copy and paste behaviors, these are:
+
- Windows/Unix based
- Ctrl + C / Ctrl + Ins as a keyboard shortcut
- Ctrl + V / Shift + Ins as a keyboard shortcut
@@ -139,34 +146,45 @@ Copy behavior is working with the default interaction defined by the browser and
- ⌘ Cmd + C as a keyboard shortcut
- ⌘ Cmd + V as a keyboard shortcut
- Copy action through the browser menu
+
## Limitations
+
- Both the **cut** and **copy** events are not natively supported in Internet Explorer. The exception is the
**paste** event (IE 11) which is emitted but does not expose the `clipboardData` property in the event.
-> [!NOTE]
-> In order to `copy` cells in IE 11, you can use the keyboard selection. Hold the `shift key` in order to make a multi-cell selection, press `Ctrl + C` in order to copy.
+
+**Note:**
+In order to `copy` cells in IE 11, you can use the keyboard selection. Hold the `shift key` in order to make a multi-cell selection, press `Ctrl + C` in order to copy.
+
- The copy behavior is disabled while the grid is in edit mode.
- The current version of this feature covers only the `copy` from grid behavior. Later on we plan to expose `paste` within grid behavior.
+
## API Usage
+
We expose [`clipboardOptions`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=clipboardOptions) @Input property, which handles the following options:
+
- [`enabled`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=clipboardoptions.enabled) Enables/disables copying of selected cells.
- [`copyHeaders`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=clipboardoptions.copyHeaders) Include the associated headers when copying.
- [`copyFormatters`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=clipboardoptions.copyFormatters) Apply any existing column formatters to the copied data.
- [`separator`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=clipboardoptions.separator) The string separator to use the for formatting the data in the clipboard. Default is `/t`
-> [!NOTE]
-> Excel can automatically detect text that is separated by tabs (tab-delimited `/t`) and properly paste the data into separate columns. When the paste format doesn't work, and everything you paste appears in a single column, then Excel's delimiter is set to another character, or your text is using spaces instead of tabs.
-- [`gridCopy`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=gridCopy) Emitted when a copy operation is executed. Fired only if copy behavior is enabled through the [`clipboardOptions`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=clipboard%25D0%259Eptions)
+
+**Note:**
+Excel can automatically detect text that is separated by tabs (tab-delimited `/t`) and properly paste the data into separate columns. When the paste format doesn't work, and everything you paste appears in a single column, then Excel's delimiter is set to another character, or your text is using spaces instead of tabs.
+
+- [`gridCopy`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=gridCopy) Emitted when a copy operation is executed. Fired only if copy behavior is enabled through the [`clipboardOptions`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=clipboardOptions)
+
## Additional Resources
-
-- [Tree Grid overview](tree-grid.md)
-- [Paging](paging.md)
-- [Filtering](filtering.md)
-- [Sorting](sorting.md)
-- [Summaries](summaries.md)
-- [Column Pinning](column-pinning.md)
-- [Selection](selection.md)
-- [Virtualization and Performance](virtualization.md)
-- [Multi-column headers](multi-column-headers.md)
-
+
+- [Tree Grid overview](/treegrid/tree-grid)
+- [Paging](/treegrid/paging)
+- [Filtering](/treegrid/filtering)
+- [Sorting](/treegrid/sorting)
+- [Summaries](/treegrid/summaries)
+- [Column Pinning](/treegrid/column-pinning)
+- [Selection](/treegrid/selection)
+- [Virtualization and Performance](/treegrid/virtualization)
+- [Multi-column headers](/treegrid/multi-column-headers)
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-collapsible-column-groups.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-collapsible-column-groups.md
index 1fa102f52..6331b0f39 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-collapsible-column-groups.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-collapsible-column-groups.md
@@ -1,15 +1,20 @@
---
title: Collapsible Column Groups in Angular Tree Grid - Infragistics
-_description: Take advantage of the capability to show\hide smaller and concise set of data with the use of collapsible column groups in our Angular Tree Grid. Try it now!
-_keywords: collapsible column headers, ignite ui for angular, infragistics
-_license: commercial
+description: Take advantage of the capability to show\hide smaller and concise set of data with the use of collapsible column groups in our Angular Tree Grid. Try it now!
+keywords: collapsible column headers, ignite ui for angular, infragistics
+license: commercial
_canonicalLink: grid/collapsible-column-groups
+llms:
+ description: "Multi-column headers allow you to have multiple levels of nested columns and column groups."
_tocName: Collapsible Column Groups
_premium: true
---
# Collapsible Column Groups in Angular Data Grid
+
Multi-column headers allow you to have multiple levels of nested columns and column groups. They also provide the ability to mark each column group as **collapsible**. **Collapsible multi-column headers** make it possible to collapse/expand, i.e. to show and hide the nested headers under the current one, which will give you a shortened/summarized information for example.
+
## Angular Grid Collapsible Column Groups Overview Example
+
```typescript
import { Component, OnInit, ViewChild } from '@angular/core';
import { GridSelectionMode, IgxCollapsibleIndicatorTemplateDirective, IgxColumnComponent, IgxColumnGroupComponent } from 'igniteui-angular/grids/core';
@@ -93,18 +98,29 @@ igx-tree-grid {
--ig-size: var(--ig-size-small);
}
```
-
+
## Setup
+
To get started with the IgxTreeGrid and the **Collapsible multi-column headers** , first you need to install Ignite UI for Angular by typing the following command:
+
```cmd
ng add igniteui-angular
```
-For a complete introduction to the Ignite UI for Angular, read the [_getting started_](../general/getting-started.md) topic.
-The next step is to import the `IgxTreeGridModule` in the app.module.ts file. Also, we strongly suggest that you take a brief look at [_multi-column groups_](./multi-column-headers.md) topic, to see more detailed information on how to setup the column groups in your grid.
+
+For a complete introduction to the Ignite UI for Angular, read the [_getting started_](/general/getting-started) topic.
+
+The next step is to import the `IgxTreeGridModule` in the app.module.ts file.
+
+Also, we strongly suggest that you take a brief look at [_multi-column groups_](/treegrid/multi-column-headers) topic, to see more detailed information on how to setup the column groups in your grid.
+
## Usage
+
_Collapsible Column Groups_ is a part of the multi-column headers feature which provides a way to collapse/expand a column group to a smaller set of data. When a column group is collapsed, a subset of the columns will be shown to the end-user and the other child columns of the group will hide. Each collapsed/expanded column can be bound to the grid data source, or it may be unbound, thus calculated.
+
In order to define a column group as `collapsible`, you need to set the property to `[collapsible]="true"` and also keep in mind that you need to define the property `visibleWhenCollapsed` to at least two child columns: at least one column must be visible when the group is collapsed (`[visibleWhenCollapsed]="true"`) and at least one column must be hidden when the group is expanded (`[visibleWhenCollapsed]="false"`), otherwise the **collapsible functionality will be disabled**. If `visibleWhenCollapsed` is not specified for some of the child columns, then this column will be always visible no matter whether the parent state is expanded or collapsed.
+
So let's see the markup below:
+
```html
@@ -123,20 +139,29 @@ So let's see the markup below:
```
+
And now let's sum up: every child column has three states:
+
- Can be always visible, no matter the expanded state of its parent;
- Can be visible, when its parent is collapsed;
- Can be hidden, when its parent is collapsed;
+
The initial state of the column group which is specified as collapsible is `[expanded]="true"`. But you can easily change this behavior by setting the property `[expanded]="false"`.
+
## Expand/Collapse indicator template
+
Default expand indicator for the igxGrid is the following:
-
+
+
Default collapse indicator for the igxGrid is the following:
-
+
Also, if you need to change the default expand/collapse indicator, we provide two easy ways to do so - via an input property or through a directive.
+
### Using an input property
+
You can define custom expand/collapse template and provide it to each of the collapsible column groups using **collapsibleIndicatorTemplate** input property. Check the markup below:
+
```html
{{column.expanded ? 'remove' : 'add'}}
@@ -150,12 +175,15 @@ You can define custom expand/collapse template and provide it to each of the col
```
+
### Using igxCollapsibleIndicator directive
+
Another way to achieve this behavior is to use the igxCollapsibleIndicator directive as shown in the example below:
+
```html
- {{column.expanded ? 'remove' : 'add'}}
+ {{column.expanded ? 'remove' : 'add'}}
@@ -165,26 +193,29 @@ Another way to achieve this behavior is to use the igxCollapsibleIndicator direc
```
-> [!Note]
-> Please keep in mind that initially collapse group option takes precedence over column hidden - If you declared your column to be hidden using the property
-> hidden and you have a group defined where the same column should be shown, the column will be shown.
+
+**Note:**
+Please keep in mind that initially collapse group option takes precedence over column hidden - If you declared your column to be hidden using the property
+hidden and you have a group defined where the same column should be shown, the column will be shown.
+
## API References
-
-- [IgxColumnComponent](mcp:get_api_reference?platform=angular&component=IgxColumnComponent)
-- [IgxGridComponent](mcp:get_api_reference?platform=angular&component=IgxGridComponent)
-- [IgxGridComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#mixin-grid)
+- [`IgxColumn`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent)
+- [`IgxGrid`](mcp:get_api_reference?platform=angular&component=IgxGridComponent)
+- `IgxGridComponent Styles`
## Additional Resources
-
-- [Tree Grid overview](tree-grid.md)
-- [Virtualization and Performance](virtualization.md)
-- [Paging](paging.md)
-- [Filtering](filtering.md)
-- [Sorting](sorting.md)
-- [Summaries](summaries.md)
-- [Column Moving](column-moving.md)
-- [Column Pinning](column-pinning.md)
-- [Selection](selection.md)
-
+
+- [Tree Grid overview](/treegrid/tree-grid)
+- [Paging](/treegrid/paging)
+
+- [Virtualization and Performance](/treegrid/virtualization)
+- [Filtering](/treegrid/filtering)
+- [Sorting](/treegrid/sorting)
+- [Summaries](/treegrid/summaries)
+- [Column Moving](/treegrid/column-moving)
+- [Column Pinning](/treegrid/column-pinning)
+- [Selection](/treegrid/selection)
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-column-hiding.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-column-hiding.md
index 263c00a6d..ef5197bdd 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-column-hiding.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-column-hiding.md
@@ -1,15 +1,20 @@
---
title: Column Hiding in Angular Tree Grid - Ignite UI for Angular
-_description: Learn how to use the Column Hiding feature that allows users to change the visible state of the columns directly through the UI of the Ignite Material UI table.
-_keywords: column hiding, ignite ui for angular, infragistics
-_license: commercial
+description: Learn how to use the Column Hiding feature that allows users to change the visible state of the columns directly through the UI of the Ignite Material UI table.
+keywords: column hiding, ignite ui for angular, infragistics
+license: commercial
_canonicalLink: grid/column-hiding
+llms:
+ description: "The Ignite UI for Angular Tree Grid provides a ColumnActions component with a ColumnHidingDirective which allows users to perform column hiding directly through the user interface or by using the Angular component."
_tocName: Column Hiding
_premium: true
---
# Angular Tree Grid Column Hiding
-The Ignite UI for Angular Tree Grid provides an [`IgxColumnActionsComponent`](mcp:get_api_reference?platform=angular&component=IgxColumnActionsComponent) with an [`IgxColumnHidingDirective`](mcp:get_api_reference?platform=angular&component=IgxColumnHidingDirective) which allows users to perform column hiding directly through the user interface or by using the Angular component. The Material UI Grid has a built-in column hiding UI, which can be used through the Tree Grid's toolbar to change the visible state of the columns. In addition, developers can always define the column hiding UI as a separate component and place it anywhere they want on the page.
+
+The Ignite UI for Angular Tree Grid provides an [`IgxColumnActions`](mcp:get_api_reference?platform=angular&component=IgxColumnActionsComponent) with an [`IgxColumnHidingDirective`](mcp:get_api_reference?platform=angular&component=IgxColumnHidingDirective) which allows users to perform column hiding directly through the user interface or by using the Angular component. The Material UI Grid has a built-in column hiding UI, which can be used through the Tree Grid's toolbar to change the visible state of the columns. In addition, developers can always define the column hiding UI as a separate component and place it anywhere they want on the page.
+
## Angular Tree Grid Column Hiding Example
+
```typescript
import { AfterViewInit, Component, OnInit } from '@angular/core';
import { generateEmployeeDetailedFlatData } from '../data/employees-flat-detailed';
@@ -65,11 +70,14 @@ export class TreeGridColumnHidingToolbarSampleComponent implements OnInit {
margin: 10px;
}
```
-
+
## Tree Grid Setup
+
Let's start by creating our Tree Grid and binding it to our data. We will also enable both filtering and sorting for the columns.
+
```html
+
@@ -85,12 +93,15 @@ Let's start by creating our Tree Grid and binding it to our data. We will also e
```
+
## Toolbar's Column Hiding UI
-The built-in Column Hiding UI is placed inside an [`IgxDropDownComponent`](mcp:get_api_reference?platform=angular&component=IgxDropDownComponent) in the Tree Grid's toolbar. We can show/hide the Column Hiding UI by using this exact dropdown.
-For this purpose all we have to do is set both the [`IgxGridToolbarActionsComponent`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarActionsComponent) and the [`IgxGridToolbarHidingComponent`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarHidingComponent) inside of the Tree Grid. We will also add a title to our toolbar by using the [`IgxGridToolbarTitleComponent`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarTitleComponent) and a custom style for our Tree Grid's wrapper.
-@@if (igxName === 'IgxGrid' || igxName === 'IgxTreeGrid') {
+
+The built-in Column Hiding UI is placed inside an [`IgxDropDown`](mcp:get_api_reference?platform=angular&component=IgxDropDownComponent) in the Tree Grid's toolbar. We can show/hide the Column Hiding UI by using this exact dropdown.
+For this purpose all we have to do is set both the [`IgxGridToolbarActions`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarActionsComponent) and the [`IgxGridToolbarHiding`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarHidingComponent) inside of the Tree Grid. We will also add a title to our toolbar by using the [`IgxGridToolbarTitle`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarTitleComponent) and a custom style for our Tree Grid's wrapper.
+
```html
+
@@ -103,18 +114,21 @@ For this purpose all we have to do is set both the [`IgxGridToolbarActionsCompon
```
+
```css
/* columnHiding.component.css */
+
.grid__wrapper {
margin: 10px;
}
```
-}
+
The Tree Grid provides us with some useful properties when it comes to using the toolbar's column hiding UI.
By using the `igx-grid-toolbar-hiding` [`title`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarHidingComponent&member=title) property, we will set the title that is displayed inside the dropdown button in the toolbar.
-@@if (igxName === 'IgxGrid' || igxName === 'IgxTreeGrid') {
+
```html
+
@@ -126,50 +140,47 @@ By using the `igx-grid-toolbar-hiding` [`title`](mcp:get_api_reference?platform=
```
-}
+
By using the [`columnsAreaMaxHeight`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarHidingComponent&member=columnsAreaMaxHeight) property of the IgxGridToolbarHidingComponent, we can set the maximum height of the area that contains the column actions. This way if we have a lot of actions and not all of them can fit in the container, a scrollbar will appear, which will allow us to scroll to any action we want.
+
```typescript
// columnHiding.component.ts
+
public ngAfterViewInit() {
this.hidingActionRef.columnsAreaMaxHeight = "200px";
}
```
+
In order to use the expanded set of functionalities for the column hiding UI, we can use the IgxColumnActionsComponent's [`columnsAreaMaxHeight`](mcp:get_api_reference?platform=angular&component=IgxColumnActionsComponent&member=columnsAreaMaxHeight) property. This way we can use it according to our application's requirements.
+
You can see the result of the code from above at the beginning of this article in the Angular Column Hiding Example section.
+
## Custom Column Hiding UI
-Let's say we want to manually define our [`IgxColumnActionsComponent`](mcp:get_api_reference?platform=angular&component=IgxColumnActionsComponent), add the [`IgxColumnHidingDirective`](mcp:get_api_reference?platform=angular&component=IgxColumnHidingDirective) so that it knows what its purpose would be and put it anywhere on the page. First, however, we need to import the `IgxColumnActionsComponent`.
+
+Let's say we want to manually define our [`IgxColumnActions`](mcp:get_api_reference?platform=angular&component=IgxColumnActionsComponent), add the [`IgxColumnHidingDirective`](mcp:get_api_reference?platform=angular&component=IgxColumnHidingDirective) so that it knows what its purpose would be and put it anywhere on the page. First, however, we need to import the `IgxColumnActionsModule`.
+
```typescript
// app.module.ts
+
...
-import {
+
...
- IgxColumnActionsComponent
+ IgxColumnActionsModule
} from 'igniteui-angular/grids/core';
-// import { ..., IgxColumnActionsComponent } from '@infragistics/igniteui-angular'; for licensed package
+// import { ..., IgxColumnActionsModule } from '@infragistics/igniteui-angular'; for licensed package
+
@NgModule({
...
- imports: [..., IgxColumnActionsComponent],
+ imports: [..., IgxColumnActionsModule],
})
export class AppModule {}
```
-Now let's create our [`IgxColumnActionsComponent`](mcp:get_api_reference?platform=angular&component=IgxColumnActionsComponent). In our application, we will place it next to the grid (which is not the case with the toolbar's column hiding UI, where the component is inside a dropdown by design). We will also set the [`columns`](mcp:get_api_reference?platform=angular&component=IgxColumnActionsComponent&member=columns) property of the component to the columns of our Tree Grid and include some custom styles to make our application look even better!
-@@if (igxName === 'IgxGrid') {
-```html
-
-
-
-
-
-
-
- ...
-
-
-```
-}
-@@if (igxName === 'IgxTreeGrid') {
+
+Now let's create our [`IgxColumnActions`](mcp:get_api_reference?platform=angular&component=IgxColumnActionsComponent). In our application, we will place it next to the grid (which is not the case with the toolbar's column hiding UI, where the component is inside a dropdown by design). We will also set the [`columns`](mcp:get_api_reference?platform=angular&component=IgxColumnActionsComponent&member=columns) property of the component to the columns of our Tree Grid and include some custom styles to make our application look even better!
+
```html
+
@@ -180,15 +191,16 @@ Now let's create our [`IgxColumnActionsComponent`](mcp:get_api_reference?platfor
```
-}
-@@if (igxName === 'IgxGrid' || igxName === 'IgxTreeGrid') {
+
```css
/* columnHiding.component.css */
+
.grid__wrapper {
margin: 15px;
display: flex;
flex-direction: row;
}
+
.columnHidingContainer {
min-width: 250px;
height: 560px;
@@ -203,10 +215,12 @@ Now let's create our [`IgxColumnActionsComponent`](mcp:get_api_reference?platfor
height: 460px;
}
}
+
.columnsOrderOptionsContainer {
margin-top: 20px;
margin-bottom: 20px;
}
+
.gridContainer {
width: 100%;
min-width: 200px;
@@ -215,39 +229,52 @@ Now let's create our [`IgxColumnActionsComponent`](mcp:get_api_reference?platfor
margin-left: 30px;
}
```
-}
+
### Add title and filter prompt
+
A couple more things we can do in order to enrich the user experience of our column hiding component is to set the [`title`](mcp:get_api_reference?platform=angular&component=IgxColumnActionsComponent&member=title) and the [`filterColumnsPrompt`](mcp:get_api_reference?platform=angular&component=IgxColumnActionsComponent&member=filtercolumnsprompt) properties. The [`title`](mcp:get_api_reference?platform=angular&component=IgxColumnActionsComponent&member=title) is displayed on the top and the [`filterColumnsPrompt`](mcp:get_api_reference?platform=angular&component=IgxColumnActionsComponent&member=filterColumnsPrompt) is the prompt text that is displayed in the filter input of our column hiding UI.
+
```html
+
```
+
### Add column display order options
+
We can also allow the user to choose the display order of the columns in the column hiding UI. For this purpose we will use the [`columnDisplayOrder`](mcp:get_api_reference?platform=angular&component=IgxColumnActionsComponent&member=columnDisplayOrder) property, which is an enumeration type property and has the following options:
+
- **Alphabetical** (order the columns alphabetically)
- **DisplayOrder** (order the columns according to the way they are displayed in the Tree Grid)
-Let's create a couple of nicely designed radio buttons for our options! We just have to go ahead and get the [**IgxRadio**](../radio-button.md) component.
+
+Let's create a couple of nicely designed radio buttons for our options! We just have to go ahead and get the [**IgxRadio**](/radio-button) module.
+
```typescript
// app.module.ts
+
...
-import {
+
...
- IgxRadioComponent
+ IgxRadioModule
} from 'igniteui-angular/radio';
-// import { ..., IgxRadioComponent } from '@infragistics/igniteui-angular'; for licensed package
+// import { ..., IgxRadioModule } from '@infragistics/igniteui-angular'; for licensed package
+
@NgModule({
...
- imports: [..., IgxRadioComponent],
+ imports: [..., IgxRadioModule],
})
export class AppModule {}
```
+
Now all we have to do is bind the [`checked`](mcp:get_api_reference?platform=angular&component=IgxRadioComponent&member=checked) property of both radio buttons respectively with different conditions and handle their click events.
+
```html
+
...
@@ -262,24 +289,14 @@ Now all we have to do is bind the [`checked`](mcp:get_api_reference?platform=ang
```
+
### Disable hiding of a column
+
We can easily prevent the user from being able to hide columns through the column hiding UI by simply setting their [`disableHiding`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=disableHiding) property to true.
-@@if (igxName === 'IgxGrid') {
-```html
-
-
...
@@ -289,103 +306,9 @@ We can easily prevent the user from being able to hide columns through the colum
```
-}
-If all went well, this is how our column hiding UI component should look like:
-@@if (igxName === 'IgxGrid') {
-```typescript
-import { Component, OnInit } from '@angular/core';
-import { DATA } from '../../data/customers';
-import { IgxColumnActionsComponent, IgxColumnComponent, IgxColumnHidingDirective } from 'igniteui-angular/grids/core';
-import { IgxRadioComponent } from 'igniteui-angular/radio';
-import { IgxGridComponent } from 'igniteui-angular/grids/grid';
-import { IgxPreventDocumentScrollDirective } from '../../directives/prevent-scroll.directive';
-
-@Component({
- selector: 'app-grid-column-hiding-sample',
- styleUrls: ['./grid-column-hiding-sample.component.scss'],
- templateUrl: './grid-column-hiding-sample.component.html',
- imports: [IgxColumnActionsComponent, IgxColumnHidingDirective, IgxRadioComponent, IgxGridComponent, IgxPreventDocumentScrollDirective, IgxColumnComponent]
-})
-export class GridColumnHidingSampleComponent implements OnInit {
-
- public data: any[];
-
- constructor() { }
-
- public ngOnInit() {
- this.data = DATA;
- }
-}
-```
-```html
-
-
-
-
-
-
- Alphabetical order
-
-
- Display order
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
-```scss
-.grid__wrapper {
- margin: 15px;
- display: flex;
- flex-direction: row;
-}
-
-.columnHidingContainer {
- min-width: 250px;
- height: 560px;
- display: flex;
- flex-direction: column;
- padding-left: 20px;
- padding-right: 20px;
- border: 1px gray;
- border-radius: 10px;
- box-shadow: 1px 1px 2px 2px rgba(50, 50, 50, 0.25);
- igx-column-actions {
- height: 460px;
- }
-}
-.columnsOrderOptionsContainer {
- margin-top: 20px;
- margin-bottom: 20px;
-}
+If all went well, this is how our column hiding UI component should look like:
-.gridContainer {
- width: 100%;
- min-width: 200px;
- display: flex;
- flex-direction: column;
- margin-left: 30px;
-}
-```
-
-}
-@@if (igxName === 'IgxTreeGrid') {
```typescript
import { Component, OnInit } from '@angular/core';
import { generateEmployeeDetailedFlatData } from '../data/employees-flat-detailed';
@@ -478,33 +401,43 @@ export class TreeGridColumnHidingSampleComponent implements OnInit {
margin-left: 30px;
}
```
-
-}
+
## Styling
-To get started with styling the column actions component, we need to import the index file, where all the theme functions and component mixins live:
+
+To get started with styling the column actions component, we need to import the index file, where all the theme functions and the `tokens()` mixin are exported:
+
```scss
@use "igniteui-angular/theming" as *;
+
// IMPORTANT: Prior to Ignite UI for Angular version 13 use:
// @import '~igniteui-angular/lib/core/styles/themes/index';
```
-By using the simplest approach, we create a new theme that extends the [`column-actions-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-column-actions-theme) and accepts the `$title-color` and the `$background-color` parameters.
+
+By using the simplest approach, we create a new theme that extends the `column-actions-theme` and accepts the `$title-color` and the `$background-color` parameters.
+
```scss
$custom-column-actions-theme: column-actions-theme(
$background-color: #292826,
$title-color: #ffcd0f
);
```
+
As seen, the `column-actions-theme` only controls colors for the column actions container, but does not affect the buttons, checkboxes and the input-group inside of it. Let's say we want to style the buttons as well, so we will create a new button theme:
+
```scss
$custom-button: flat-button-theme(
$foreground: #292826,
$disabled-foreground: rgba(255, 255, 255, .54)
);
```
->[!NOTE]
->Instead of hardcoding the color values like we just did, we can achieve greater flexibility in terms of colors by using the [`palette`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/palettes#function-palette) and [`color`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/palettes#function-color) functions. Please refer to [`Palettes`](../themes/sass/palettes.md) topic for detailed guidance on how to use them.
-In this example we only changed the text-color of the flat buttons and the button disabled color, but the [`button-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-button-theme) provides way more parameters to control the button style.
-The last step is to **include** the component mixins, each with its respective theme:
+
+**Note:**
+Instead of hardcoding the color values like we just did, we can achieve greater flexibility in terms of colors by using the `palette` and `color` functions. Please refer to [`Palettes`](/themes/sass/palettes) topic for detailed guidance on how to use them.
+
+In this example we only changed the text-color of the flat buttons and the button disabled color, but the `button-theme` provides way more parameters to control the button style.
+
+The last step is to apply each component theme with `tokens()`:
+
```scss
:host {
@include tokens($custom-column-actions-theme);
@@ -514,10 +447,14 @@ The last step is to **include** the component mixins, each with its respective t
}
}
```
->[!NOTE]
->We include the created **flat-button-theme** within `.igx-column-actions`, so that only the column hiding buttons would be styled. Otherwise other buttons in the grid would be affected too.
->[!NOTE]
->If the component is using an [`Emulated`](../themes/sass/component-themes.md#view-encapsulation) ViewEncapsulation, it is necessary to `penetrate` this encapsulation using `::ng-deep` for the components inside the column action component (buttons, checkboxes ...etc):
+
+**Note:**
+We include the created **flat-button-theme** within `.igx-column-actions`, so that only the column hiding buttons would be styled. Otherwise other buttons in the grid would be affected too.
+
+**Note:**
+In some component templates, Emulated View Encapsulation can still prevent the generated token declarations from reaching nested Ignite UI elements. If the theme does not take effect, use `::ng-deep` as shown below or move the theme to a global stylesheet.
+
+
```scss
:host {
@include tokens($custom-column-actions-theme);
@@ -529,7 +466,9 @@ The last step is to **include** the component mixins, each with its respective t
}
}
```
+
### Demo
+
```typescript
import { AfterViewInit, Component, OnInit } from '@angular/core';
import { generateEmployeeDetailedFlatData } from '../data/employees-flat-detailed';
@@ -625,42 +564,46 @@ $input-group-theme: input-group-theme(
}
}
```
-
+
## API References
-In this article we learned how to use the built-in column hiding UI in the Tree Grid's toolbar and we defined it as a separate component as well. We introduced a UI that allows the user to choose between different column orders and we set our own custom title and filter prompt texts. We also used an additional Ignite UI for Angular component - the [**IgxRadio**](../radio-button.md) button.
+
+In this article we learned how to use the built-in column hiding UI in the Tree Grid's toolbar and we defined it as a separate component as well. We introduced a UI that allows the user to choose between different column orders and we set our own custom title and filter prompt texts. We also used an additional Ignite UI for Angular component - the [**IgxRadio**](/radio-button) button.
+
The column hiding UI has a few more APIs to explore, which are listed below.
-- [IgxColumnActionsComponent](mcp:get_api_reference?platform=angular&component=IgxColumnActionsComponent)
-- [IgxColumnActionsComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-column-actions-theme)
+- [`IgxColumnActions`](mcp:get_api_reference?platform=angular&component=IgxColumnActionsComponent)
+- `IgxColumnActionsComponent Styles`
Additional components and/or directives with relative APIs that were used:
-[`IgxTreeGridComponent`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) properties:
-- [hiddenColumnsCount](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=hiddenColumnsCount)
-[`IgxColumnComponent`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent) properties:
-- [disableHiding](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=disablehiding)
-[`IgxGridToolbarComponent`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarComponent) properties:
-- [showProgress](mcp:get_api_reference?platform=angular&component=IgxGridToolbarComponent&member=showProgress)
-[`IgxGridToolbarComponent`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarComponent) components:
-- [IgxGridToolbarTitleComponent](mcp:get_api_reference?platform=angular&component=IgxGridToolbarTitleComponent)
-- [IgxGridToolbarActionsComponent](mcp:get_api_reference?platform=angular&component=IgxGridToolbarActionsComponent)
-[`IgxGridToolbarComponent`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarComponent) methods:
-[`IgxTreeGridComponent`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) events:
-- [columnVisibilityChanged](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=columnVisibilityChanged)
-[IgxRadioComponent](mcp:get_api_reference?platform=angular&component=IgxRadioComponent)
+[`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) properties:
+- [`hiddenColumnsCount`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=hiddenColumnsCount)
+[`IgxColumn`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent) properties:
+- [`disableHiding`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=disablehiding)
+[`IgxGridToolbar`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarComponent) properties:
+- [`showProgress`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarComponent&member=showProgress)
+[`IgxGridToolbar`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarComponent) components:
+- [`IgxGridToolbarTitle`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarTitleComponent)
+- [`IgxGridToolbarActions`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarActionsComponent)
+[`IgxGridToolbar`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarComponent) methods:
+[`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) events:
+- [`columnVisibilityChanged`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=columnVisibilityChanged)
+[`IgxRadio`](mcp:get_api_reference?platform=angular&component=IgxRadioComponent)
Styles:
-- [IgxTreeGridComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme)
-- [IgxRadioComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-radio-theme)
+- `IgxTreeGridComponent Styles`
+- `IgxRadioComponent Styles`
## Additional Resources
-
-- [Tree Grid overview](tree-grid.md)
-- [Virtualization and Performance](virtualization.md)
-- [Filtering](filtering.md)
-- [Paging](paging.md)
-- [Sorting](sorting.md)
-- [Summaries](summaries.md)
-- [Column Pinning](column-pinning.md)
-- [Column Resizing](column-resizing.md)
-- [Selection](selection.md)
-* [Searching](search.md)
-
+
+- [Tree Grid overview](/treegrid/tree-grid)
+- [Virtualization and Performance](/treegrid/virtualization)
+- [Filtering](/treegrid/filtering)
+- [Paging](/treegrid/paging)
+- [Sorting](/treegrid/sorting)
+- [Summaries](/treegrid/summaries)
+- [Column Pinning](/treegrid/column-pinning)
+- [Column Resizing](/treegrid/column-resizing)
+- [Selection](/treegrid/selection)
+
+- [Searching](/treegrid/search)
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-column-moving.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-column-moving.md
index 1e4caeb27..b8c84d5f3 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-column-moving.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-column-moving.md
@@ -1,26 +1,36 @@
---
title: Column Reordering & Moving in Angular Tree Grid - Infragistics
-_description: Set custom column order & enable columns reordering via drag/drop mouse or touch gestures, or by using the Angular Column Moving API. Try Ignite UI for Angular!
-_keywords: column order, igniteui for angular, infragistics
-_license: commercial
+description: Set custom column order & enable columns reordering via drag/drop mouse or touch gestures, or by using the Angular Column Moving API. Try Ignite UI for Angular!
+keywords: column order, igniteui for angular, infragistics
+license: commercial
_canonicalLink: grid/column-moving
+llms:
+ description: "The Tree Grid component in Ignite UI for Angular provides the Column Moving feature to allow columns reordering via standard drag/drop mouse or touch gestures, or by using the Column Moving API."
_tocName: Column Moving
_premium: true
---
# Tree Grid Column Reordering & Moving
+
The Tree Grid component in Ignite UI for Angular provides the **Column Moving** feature to allow columns reordering via standard drag/drop mouse or touch gestures, or by using the Column Moving API. Column moving works both with pinned and unpinned columns and with Multi-column Headers. Moving a column into the pinned area pins the column and vice versa, moving a column outside of the pinned area unpins the column.
-> [!NOTE]
-> Reordering between columns and column groups is allowed only when they are at the same level in the hierarchy and both are in the same group. Moving is allowed between columns/column-groups, if they are top level columns.
-> [!NOTE]
-> If a column header is templated and the Column Moving is enabled or the corresponding column is groupable, then the templated elements need to have the **draggable** attribute set to **false**! This allows to attach handlers for any event emitted by the element, otherwise the event is consumed by the `igxDrag` directive.
-> [!NOTE]
-> If the pinned area exceeds its maximum allowed width (80% of the total Tree Grid width), a visual clue notifies the end user that the drop operation is forbidden and pinning is not possible. This means you won't be allowed to drop a column in the pinned area.
+
+**Note:**
+Reordering between columns and column groups is allowed only when they are at the same level in the hierarchy and both are in the same group. Moving is allowed between columns/column-groups, if they are top level columns.
+
+**Note:**
+If a column header is templated and the Column Moving is enabled or the corresponding column is groupable, then the templated elements need to have the **draggable** attribute set to **false**! This allows to attach handlers for any event emitted by the element, otherwise the event is consumed by the `igxDrag` directive.
+
+**Note:**
+If the pinned area exceeds its maximum allowed width (80% of the total Tree Grid width), a visual clue notifies the end user that the drop operation is forbidden and pinning is not possible. This means you won't be allowed to drop a column in the pinned area.
+
+
```html
```
+
## Angular Tree Grid Column Moving Overview Example
+
```typescript
import { Component, ViewChild } from '@angular/core';
import { ColumnType } from 'igniteui-angular/core';
@@ -115,37 +125,51 @@ export class TreeGridColumnMovingSampleComponent {
align-items: center;
}
```
-
+
## Overview
-**Column moving** feature is enabled on a per-grid level, meaning that the [**igx-tree-grid**](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) could have either movable or immovable columns. This is done via the [`moving`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=moving) input of the [`igx-grid`](mcp:get_api_reference?platform=angular&component=IgxGridComponent).
+
+**Column moving** feature is enabled on a per-grid level, meaning that the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) could have either movable or immovable columns. This is done via the [`moving`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=moving) input of the [`igx-grid`](mcp:get_api_reference?platform=angular&component=IgxGridComponent).
+
```html
```
+
## API
+
In addition to the drag and drop functionality, the Column Moving feature also provides two API methods to allow moving a column/reordering columns programmatically:
-[`moveColumn`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=moveColumn) - Moves a column before or after another column (a target). The first parameter is the column to be moved, and the second parameter is the target column. Also accepts an optional third parameter `position` (representing a [`DropPosition`](mcp:get_api_reference?platform=angular&component=DropPosition) value), which determines whether to place the column before or after the target column.
+
+[`moveColumn`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=moveColumn) - Moves a column before or after another column (a target). The first parameter is the column to be moved, and the second parameter is the target column. Also accepts an optional third parameter `position` (representing a [`IgxDropPosition`](mcp:get_api_reference?platform=angular&component=DropPosition) value), which determines whether to place the column before or after the target column.
+
```typescript
// Move the ID column after the Name column
const idColumn = grid.getColumnByName("ID");
const nameColumn = grid.getColumnByName("Name");
+
grid.moveColumn(idColumn, nameColumn, DropPosition.AfterDropTarget);
```
+
[`move`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=move) - Moves a column to a specified visible index. If the passed index parameter is invalid (is negative, or exceeds the number of columns), or if the column is not allowed to move to this index (if inside another group), no operation is performed.
+
```typescript
// Move the ID column at 3rd position.
const idColumn = grid.getColumnByName("ID");
idColumn.move(3);
```
+
Note that when using the API, only the [`columnMovingEnd`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=columnMovingEnd) event will be emitted, if the operation was successful. Also note that in comparison to the drag and drop functionality, using the API does not require setting the `moving` property to true.
+
## Events
+
There are several events related to the column moving to provide a means for tapping into the columns' drag and drop operations. These are [`columnMovingStart`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=columnMovingStart), [`columnMoving`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=columnMoving) and [`columnMovingEnd`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=columnMovingEnd).
-You can subscribe to the [`columnMovingEnd`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=columnMovingEnd) event of the [`igx-tree-grid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) to implement some custom logic when a column is dropped to a new position. For example, you can cancel dropping the Category after the Change On Year(%) column.
+You can subscribe to the [`columnMovingEnd`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=columnMovingEnd) event of the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) to implement some custom logic when a column is dropped to a new position. For example, you can cancel dropping the Category after the Change On Year(%) column.
+
```html
```
+
```typescript
public onColumnMovingEnd(event) {
if (event.source.field === "Name" && event.target.field === "Title") {
@@ -153,14 +177,20 @@ public onColumnMovingEnd(event) {
}
}
```
+
## Styling
-To get started with styling the Tree Grid column moving headers, we need to import the `index` file, where all the theme functions and component mixins live:
+
+To get started with styling the Tree Grid column moving headers, we need to import the `index` file, where all the theme functions and the `tokens()` mixin are exported:
+
```scss
@use "igniteui-angular/theming" as *;
+
// IMPORTANT: Prior to Ignite UI for Angular version 13 use:
// @import '~igniteui-angular/lib/core/styles/themes/index';
```
-Following the simplest approach, we create a new theme that extends the [`grid-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme) and accepts the `$ghost-header-background`, `$ghost-header-text-color` and the `$ghost-header-icon-color` parameters.
+
+Following the simplest approach, we create a new theme that extends the `grid-theme` and accepts the `$ghost-header-background`, `$ghost-header-text-color` and the `$ghost-header-icon-color` parameters.
+
```scss
// Define dark theme for the column moving
$dark-grid-column-moving-theme: grid-theme(
@@ -169,15 +199,20 @@ $dark-grid-column-moving-theme: grid-theme(
$ghost-header-icon-color: #f4bb5c
);
```
->[!NOTE]
->Instead of hardcoding the color values like we just did, we can achieve greater flexibility in terms of colors by using the [`palette`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/palettes#function-palette) and [`color`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/palettes#function-color) functions. Please refer to [`Palettes`](../themes/sass/palettes.md) topic for detailed guidance on how to use them.
-The last step is to **include** the component mixins with its respective theme:
+
+**Note:**
+Instead of hardcoding the color values like we just did, we can achieve greater flexibility in terms of colors by using the `palette` and `color` functions. Please refer to [`Palettes`](/themes/sass/palettes) topic for detailed guidance on how to use them.
+
+The last step is to apply the component theme with `tokens()`:
+
```scss
:host {
@include tokens($dark-grid-column-moving-theme);
}
```
+
### Demo
+
```typescript
import { Component, ViewChild } from '@angular/core';
import { ColumnType } from 'igniteui-angular/core';
@@ -247,25 +282,28 @@ $dark-grid-column-moving-theme: grid-theme(
@include tokens($dark-grid-column-moving-theme);
}
```
->[!NOTE]
->The sample will not be affected by the selected global theme from `Change Theme`.
+
+**Note:**
+The sample will not be affected by the selected global theme from `Change Theme`.
+
## API References
-
-- [ColumnComponent](mcp:get_api_reference?platform=angular&component=IgxColumnComponent)
-- [IgxTreeGridComponent](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+- [`ColumnComponent`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent)
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
## Additional Resources
-
-- [Tree Grid overview](tree-grid.md)
-- [Virtualization and Performance](virtualization.md)
-- [Paging](paging.md)
-- [Filtering](filtering.md)
-- [Sorting](sorting.md)
-- [Summaries](summaries.md)
-- [Column Pinning](column-pinning.md)
-- [Column Resizing](column-resizing.md)
-- [Selection](selection.md)
-* [Searching](search.md)
-
+
+- [Tree Grid overview](/treegrid/tree-grid)
+- [Virtualization and Performance](/treegrid/virtualization)
+- [Paging](/treegrid/paging)
+- [Filtering](/treegrid/filtering)
+- [Sorting](/treegrid/sorting)
+- [Summaries](/treegrid/summaries)
+- [Column Pinning](/treegrid/column-pinning)
+- [Column Resizing](/treegrid/column-resizing)
+- [Selection](/treegrid/selection)
+
+- [Searching](/treegrid/search)
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-column-pinning.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-column-pinning.md
index f311ad862..b99826543 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-column-pinning.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-column-pinning.md
@@ -1,15 +1,20 @@
---
title: Angular Tree Grid Column Pinning - Ignite UI for Angular
-_description: Want to use the Pinning feature of the Ignite UI for Angular when you develop your next app? Easily lock column or change column order with rich API.
-_keywords: lock column, ignite ui for angular, infragistics
-_license: commercial
+description: Want to use the Pinning feature of the Ignite UI for Angular when you develop your next app? Easily lock column or change column order with rich API.
+keywords: lock column, ignite ui for angular, infragistics
+license: commercial
_canonicalLink: grid/column-pinning
+llms:
+ description: "A column or multiple columns can be pinned to the left or right side of the Angular UI Grid."
_tocName: Column Pinning
_premium: true
---
# Angular Tree Grid Column Pinning
+
A column or multiple columns can be pinned to the left or right side of the Angular UI Grid. **Column Pinning** in Ignite UI for Angular allows the end users to lock column in a particular column order, this will allow them to see it while horizontally scrolling the Tree Grid. The Material UI Grid has a built-in column pinning UI, which can be used through the Tree Grid's toolbar to change the pin state of the columns. In addition, you can define a custom UI and change the pin state of the columns via the Column Pinning API.
+
## Angular Tree Grid Column Pinning Example
+
```typescript
import { Component, ViewChild, OnInit, inject } from '@angular/core';
import { IgxTreeGridComponent } from 'igniteui-angular/grids/tree-grid';
@@ -78,8 +83,11 @@ export class TreeGridPinningToolbarSampleComponent implements OnInit {
padding: 16px;
}
```
+
## Column Pinning API
+
Column pinning is controlled through the `pinned` input of the [`igx-column`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent). Pinned columns are rendered on the left side of the Tree Grid by default and stay fixed through horizontal scrolling of the unpinned columns in the Tree Grid body.
+
```html
@@ -87,16 +95,22 @@ Column pinning is controlled through the `pinned` input of the [`igx-column`](mc
```
-You may also use the Tree Grid's [`pinColumn`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=pinColumn) or [`unpinColumn`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=unpinColumn) methods of the [`IgxTreeGridComponent`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) to pin or unpin columns by their field name:
+
+You may also use the Tree Grid's [`pinColumn`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=pinColumn) or [`unpinColumn`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=unpinColumn) methods of the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) to pin or unpin columns by their field name:
+
```typescript
this.treeGrid.pinColumn('Title');
this.treeGrid.unpinColumn('Name');
```
+
Both methods return a boolean value indicating whether their respective operation is successful or not. Usually the reason they fail is that the column is already in the desired state.
-A column is pinned to the right of the rightmost pinned column. Changing the order of the pinned columns can be done by subscribing to the [`columnPin`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=columnPin) event and changing the [`insertAtIndex`](mcp:get_api_reference?platform=angular&component=IPinColumnEventArgs&member=insertAtIndex) property of the event arguments to the desired position index.
+
+A column is pinned to the right of the rightmost pinned column. Changing the order of the pinned columns can be done by subscribing to the [`columnPin`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=columnPin) event and changing the [`IgxIPinColumnEventArgs.insertAtIndex`](mcp:get_api_reference?platform=angular&component=IPinColumnEventArgs&member=insertAtIndex) property of the event arguments to the desired position index.
+
```html
```
+
```typescript
public columnPinning(event) {
if (event.column.field === 'Name') {
@@ -104,16 +118,22 @@ public columnPinning(event) {
}
}
```
+
## Pinning Position
+
You can change the column pinning position via the [`pinning`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=pinning) configuration option. It allows you to set the columns position to either Start or End.
When set to End the columns are rendered at the end of the grid, after the unpinned columns. Unpinned columns can be scrolled horizontally, while the pinned columns remain fixed on the right.
+
```html
```
+
```typescript
public pinningConfig: IPinningConfig = { columns: ColumnPinningPosition.End };
```
+
### Demo
+
```typescript
import { Component, OnInit, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';
import { ColumnPinningPosition } from 'igniteui-angular/core';
@@ -200,8 +220,10 @@ img.country-flag {
height: 20px;
}
```
+
### Column Pinning on Both Sides
Additionally, you can specify each column pinning location separately, allowing you to pin columns to both sides of the grid for greater convenience and easier optimization of data sets. Please refer to the demo below for further reference. In order to pin a column, please either select a column by clicking on a header and use the pin buttons added to the toolbar, or simply drag a column to another pinned one.
+
```typescript
import { Component, OnInit, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';
import { ColumnPinningPosition, ColumnType } from 'igniteui-angular/core';
@@ -321,10 +343,14 @@ img.country-flag {
height: 20px;
}
```
+
## Custom Column Pinning UI
+
You can define your custom UI and change the pin state of the columns via the related API.
+
Let's say that instead of a toolbar you would like to define pin icons in the column headers that the end user can click to change the particular column's pin state.
This can be done by creating a header template for the column with a custom icon.
+
```html
@@ -350,13 +376,17 @@ This can be done by creating a header template for the column with a custom icon
```
+
On click of the custom icon the pin state of the related column can be changed using the column's API methods.
+
```typescript
public toggleColumn(col: ColumnType) {
col.pinned ? col.unpin() : col.pin();
}
```
+
### Demo
+
```typescript
import { AfterViewInit, ChangeDetectorRef, Component, ViewChild, inject } from '@angular/core';
import { ColumnType } from 'igniteui-angular/core';
@@ -467,24 +497,27 @@ export class TreeGridColumnPinningSampleComponent implements AfterViewInit {
}
}
```
+
## Pinning Limitations
+
- Setting column widths in percentage (%) explicitly makes the Tree Grid body and header content to be misaligned when there are pinned columns. For column pinning to function correctly the column widths should be in pixels (px) or auto-assigned by the Tree Grid.
-
+
## API References
-- [IgxTreeGridComponent](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
-- [IgxColumnComponent](mcp:get_api_reference?platform=angular&component=IgxColumnComponent)
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+- [`IgxColumn`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent)
## Additional Resources
-
-- [Tree Grid overview](tree-grid.md)
-- [Virtualization and Performance](virtualization.md)
-- [Paging](paging.md)
-- [Filtering](filtering.md)
-- [Sorting](sorting.md)
-- [Summaries](summaries.md)
-- [Column Moving](column-moving.md)
-- [Column Resizing](column-resizing.md)
-- [Selection](selection.md)
-
+
+- [Tree Grid overview](/treegrid/tree-grid)
+- [Virtualization and Performance](/treegrid/virtualization)
+- [Paging](/treegrid/paging)
+- [Filtering](/treegrid/filtering)
+- [Sorting](/treegrid/sorting)
+- [Summaries](/treegrid/summaries)
+- [Column Moving](/treegrid/column-moving)
+- [Column Resizing](/treegrid/column-resizing)
+- [Selection](/treegrid/selection)
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-column-resizing.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-column-resizing.md
index 5c6a2dd73..5e4b0e46a 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-column-resizing.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-column-resizing.md
@@ -1,15 +1,20 @@
---
title: Angular Tree Grid Column Resizing - Ignite UI for Angular
-_description: Start using Angular Tree Grid Column Resizing in order to change the grid column width in an instant. Angular drag resizing has never been so easy. Try for free!
-_keywords: grid column resizing, igniteui for angular, infragistics
-_license: commercial
+description: Start using Angular Tree Grid Column Resizing in order to change the grid column width in an instant. Angular drag resizing has never been so easy. Try for free!
+keywords: grid column resizing, igniteui for angular, infragistics
+license: commercial
_canonicalLink: grid/column-resizing
+llms:
+ description: "With deferred grid column resizing, the user will see a temporary resize indicator while the Angular drag resizing operation is in effect."
_tocName: Column Resizing
_premium: true
---
# Angular Tree Grid Column Resizing
+
With deferred grid column resizing, the user will see a temporary resize indicator while the Angular drag resizing operation is in effect. The new grid column width is applied once the drag operation has ended.
+
## Angular Tree Grid Column Resizing Example
+
```typescript
import { Component } from '@angular/core';
import { IgxColumnComponent } from 'igniteui-angular/grids/core';
@@ -64,18 +69,22 @@ export class TreeGridColumnResizingSampleComponent {
margin: 20px;
}
```
-
-**Column resizing** is also enabled per-column level, meaning that the [**igx-tree-grid**](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) can have a mix of resizable and non-resizable columns. This is done via the [`resizable`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=resizable) input of the [`igx-column`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent).
+
+**Column resizing** is also enabled per-column level, meaning that the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) can have a mix of resizable and non-resizable columns. This is done via the [`resizable`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=resizable) input of the [`igx-column`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent).
+
```html
```
-You can subscribe to the [`columnResized`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=columnResized) event of the [`igx-tree-grid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) to implement some custom logic when a column is resized. Both, previous and new column widths, as well as the [`IgxColumnComponent`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent) object, are exposed through the event arguments.
+
+You can subscribe to the [`columnResized`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=columnResized) event of the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) to implement some custom logic when a column is resized. Both, previous and new column widths, as well as the [`IgxColumn`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent) object, are exposed through the event arguments.
+
```html
```
+
```typescript
public onResize(event) {
this.col = event.column;
@@ -83,9 +92,13 @@ public onResize(event) {
this.nWidth = event.newWidth;
}
```
+
## Resizing columns in pixels/percentages
+
Depending on the user scenario, the column width may be defined in pixels, percentages or a mix of both. All these scenarios are supported by the Column Resizing feature. By default if a column does not have width set, it fits the available space with width set in pixels.
+
This means that the following configuration is possible:
+
```html
@@ -93,44 +106,67 @@ This means that the following configuration is possible:
```
->[!NOTE]
-> There is a slight difference in the way resizing works for columns set in pixels and percentages.
+
+**Note:**
+There is a slight difference in the way resizing works for columns set in pixels and percentages.
+
**Pixels**
+
Resizing columns with width in pixels works by directly adding or subtracting the horizontal amount of the mouse movement from the size of the column.
+
**Percentages**
+
When resizing columns with width in percentages, the horizontal amount of the mouse movement in pixels translates roughly to its percentage amount relative to the grid width. The columns remain responsive and any future grid resizing will still reflect on the columns as well.
+
## Restrict column resizing
+
You can also configure the minimum and maximum allowable column widths. This is done via the [`minWidth`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=minWidth) and [`maxWidth`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=maxWidth) inputs of the [`igx-column`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent). In this case the resize indicator drag operation is restricted to notify the user that the column cannot be resized outside the boundaries defined by [`minWidth`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=minWidth) and [`maxWidth`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=maxWidth).
+
```html
```
+
Mixing the minimum and maximum column width value types (pixels or percentages) is allowed. If the values set for minimum and maximum are set to percentages, the respective column size will be limited to those exact sizes similar to pixels.
+
This means the following configurations are possible:
+
```html
```
+
or
+
```html
```
+
## Auto-size columns on double click
+
Each column can be **auto sized** by double clicking the right side of the header - the column will be sized to the longest currently visible cell value, including the header itself. This behavior is enabled by default, no additional configuration is needed. However, the column will not be auto-sized in case [`maxWidth`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=maxWidth) is set on that column and the new width exceeds that [`maxWidth`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=maxWidth) value. In this case the column will be sized according to preset [`maxWidth`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=maxWidth) value.
-You can also auto-size a column dynamically using the exposed [`autosize()`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=autosize) method on [`IgxColumnComponent`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent).
+
+You can also auto-size a column dynamically using the exposed [`autosize()`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=autosize) method on [`IgxColumn`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent).
+
```typescript
@ViewChild('treeGrid') treeGrid: IgxTreeGridComponent;
+
let column = this.treeGrid.columnList.filter(c => c.field === 'ID')[0];
column.autosize();
```
+
## Auto-size columns on initialization
+
Each column can be set to auto-size on initialization by setting `width` to 'auto':
+
```html
-...
+
```
+
When the column is first initialized in the view it resolves its width to the size of the longest visible cell or header. Note that cells that are outside of the visible rows are not included.
This approach is more performance optimized than auto-sizing post initialization and is recommended especially in cases where you need to auto-size a large number of columns.
+
```typescript
import { Component } from '@angular/core';
import { generateEmployeeDetailedFlatData } from '../data/employees-flat-detailed';
@@ -176,29 +212,39 @@ export class TreeGridColumnAutoSizingSampleComponent {
margin: 20px;
}
```
-
+
## Styling
-To get started with the styling of the Tree Grid column resize line, we need to import the index file, where all the theme functions and component mixins live:
+
+To get started with the styling of the Tree Grid column resize line, we need to import the index file, where all the theme functions and the `tokens()` mixin are exported:
+
```scss
@use "igniteui-angular/theming" as *;
+
// IMPORTANT: Prior to Ignite UI for Angular version 13 use:
// @import '~igniteui-angular/lib/core/styles/themes/index';
```
-The simplest approach to achieve this is to create a new theme that extends the [`grid-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme) and accepts many parameters as well as the `$resize-line-color` parameter.
+
+The simplest approach to achieve this is to create a new theme that extends the `grid-theme` and accepts many parameters as well as the `$resize-line-color` parameter.
+
``` scss
$custom-grid-theme: grid-theme(
- $resize-line-color: #0288d1
+ $resize-line-color: #dc38e8
);
```
->[!NOTE]
->Instead of hardcoding the color values like we just did, we can achieve greater flexibility in terms of colors by using the [`palette`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/palettes#function-palette) and [`color`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/palettes#function-color) functions. Please refer to [`Palettes`](../themes/sass/palettes.md) topic for detailed guidance on how to use them.
-The last step is to **include** the component mixins with its respective theme:
+
+**Note:**
+Instead of hardcoding the color values like we just did, we can achieve greater flexibility in terms of colors by using the `palette` and `color` functions. Please refer to [`Palettes`](/themes/sass/palettes) topic for detailed guidance on how to use them.
+
+The last step is to apply the component theme with `tokens()`:
+
```scss
:host {
@include tokens($custom-grid-theme);
}
```
+
### Demo
+
```typescript
import { Component } from '@angular/core';
import { generateEmployeeDetailedFlatData } from '../data/employees-flat-detailed';
@@ -259,25 +305,27 @@ $custom-grid-theme: grid-theme(
@include tokens($custom-grid-theme);
}
```
->[!NOTE]
->The sample will not be affected by the selected global theme from `Change Theme`.
+
+**Note:**
+The sample will not be affected by the selected global theme from `Change Theme`.
+
## API References
-
-- [IgxColumnComponent](mcp:get_api_reference?platform=angular&component=IgxColumnComponent)
-- [IgxTreeGridComponent](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
-- [IgxTreeGridComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#mixin-grid)
+- [`IgxColumn`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent)
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+- `IgxTreeGridComponent Styles`
## Additional Resources
-
-- [Tree Grid overview](tree-grid.md)
-- [Virtualization and Performance](virtualization.md)
-- [Paging](paging.md)
-- [Filtering](filtering.md)
-- [Sorting](sorting.md)
-- [Summaries](summaries.md)
-- [Column Moving](column-moving.md)
-- [Column Pinning](column-pinning.md)
-- [Selection](selection.md)
-
+
+- [Tree Grid overview](/treegrid/tree-grid)
+- [Virtualization and Performance](/treegrid/virtualization)
+- [Paging](/treegrid/paging)
+- [Filtering](/treegrid/filtering)
+- [Sorting](/treegrid/sorting)
+- [Summaries](/treegrid/summaries)
+- [Column Moving](/treegrid/column-moving)
+- [Column Pinning](/treegrid/column-pinning)
+- [Selection](/treegrid/selection)
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-column-selection.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-column-selection.md
index 1a3b67968..b10a9010b 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-column-selection.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-column-selection.md
@@ -1,18 +1,24 @@
---
title: Angular Tree Grid Column Selection - Ignite UI for Angular
-_description: Learn how to configure column selection with Ignite UI for Angular Tree grid. This makes grid interactions much easier and faster than ever.
-_keywords: column selection, igniteui for angular, infragistics
-_license: commercial
+description: Learn how to configure column selection with Ignite UI for Angular Tree grid. This makes grid interactions much easier and faster than ever.
+keywords: column selection, igniteui for angular, infragistics
+license: commercial
_canonicalLink: grid/column-selection
+llms:
+ description: "The Column selection feature provides an easy way to select an entire column with a single click."
_tocName: Column Selection
_premium: true
---
# Angular Tree Grid Column Selection
-The Column selection feature provides an easy way to select an entire column with a single click. It emphasizes the importance of a particular column by focusing the header cell(s) and everything below. The feature comes with a rich [`API`](https://www.infragistics.com/products/ignite-ui-angular/docs/typescript/latest) that allows for manipulation of the selection state, data extraction from the selected fractions and data analysis operations and visualizations.
+
+The Column selection feature provides an easy way to select an entire column with a single click. It emphasizes the importance of a particular column by focusing the header cell(s) and everything below. The feature comes with a rich `API` that allows for manipulation of the selection state, data extraction from the selected fractions and data analysis operations and visualizations.
+
## Angular Column Selection Example
-
+
The sample below demonstrates the three types of Tree Grid's **column selection** behavior. Use the _column selection_ dropdown below to enable each of the available selection modes.
+
*_Units_, _Unit Price_ and _Delivered_ are with disabled column selection.
+
```typescript
import { AfterViewInit, ChangeDetectorRef, Component, OnInit, ViewChild, inject } from '@angular/core';
import { GridSelectionMode, IgxColumnComponent, IgxGridToolbarComponent } from 'igniteui-angular/grids/core';
@@ -107,14 +113,20 @@ export class TreeGridColumnSelectionComponent implements OnInit, AfterViewInit {
}
}
```
-
+
## Basic usage
-The column selection feature can be enabled through the [`columnSelection`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=columnSelection) input, which takes [GridSelectionMode](https://www.infragistics.com/products/ignite-ui-angular/docs/typescript/latest/index.html#gridselectionmode) values.
+
+The column selection feature can be enabled through the [`columnSelection`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=columnSelection) input, which takes [`IgxGridSelectionMode`](mcp:get_api_reference?platform=angular&component=GridSelectionMode) values.
+
## Interactions
+
The default selection mode is `none`. If set to `single` or `multiple` all of the presented columns will be [`selectable`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=selectable). With that being said, in order to select a column, we just need to click on one, which will mark it as [`selected`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=selected). If the column is not selectable, no selection style will be applied on the header, while hovering.
-> [!NOTE]
-> [`Multi-column Headers`](multi-column-headers.md) don't reflect on the [`selectable`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=selectable) input. The [`IgxColumnGroupComponent`](mcp:get_api_reference?platform=angular&component=IgxColumnGroupComponent) is [`selectable`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=selectable), if at least one of its children has the selection behavior enabled. In addition, the component is marked as [`selected`](mcp:get_api_reference?platform=angular&component=IgxColumnGroupComponent&member=selected) if all of its `selectable` descendants are [`selected`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=selected).
+
+**Note:**
+[`Multi-column Headers`](/treegrid/multi-column-headers) don't reflect on the [`selectable`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=selectable) input. The [`IgxColumnGroup`](mcp:get_api_reference?platform=angular&component=IgxColumnGroupComponent) is [`selectable`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=selectable), if at least one of its children has the selection behavior enabled. In addition, the component is marked as [`selected`](mcp:get_api_reference?platform=angular&component=IgxColumnGroupComponent&member=selected) if all of its `selectable` descendants are [`selected`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=selected).
+
*Under _Personal Details_ Column Group only column _ID_ and _Title_ are selectable.
+
```typescript
import { Component, OnInit, ViewChild } from '@angular/core';
import { IgxTreeGridComponent } from 'igniteui-angular/grids/tree-grid';
@@ -174,54 +186,84 @@ export class TreeGridColumnGroupSelectionComponent implements OnInit {
padding: 16px;
}
```
-
+
## Keyboard combinations
-> [!NOTE]
-> The keyboard combinations are available only when the grid [`columnSelection`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=columnselection) input is set to `multiple`.
+
+**Note:**
+The keyboard combinations are available only when the grid [`columnSelection`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=columnselection) input is set to `multiple`.
+
There are two scenarios for keyboard navigation of the **Column Selection** feature:
+
- Multi-column selection - holding ctrl + click on every **selectable** header cell.
- Range column selection - holding shift + click selects all **selectable** columns in between.
+
## API manipulations
+
The **API** provides some additional capabilities when it comes to the **non-visible** columns such that, every **hidden** column could be marked as [`selected`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=selected) by setting the corresponding **setter**.
-> [!NOTE]
-> The above statement also applies to the [`IgxColumnGroupComponent`](mcp:get_api_reference?platform=angular&component=IgxColumnGroupComponent), except that when the [`selected`](mcp:get_api_reference?platform=angular&component=IgxColumnGroupComponent&member=selected) property is changed it changes the state of its descendants.
+
+**Note:**
+The above statement also applies to the [`IgxColumnGroup`](mcp:get_api_reference?platform=angular&component=IgxColumnGroupComponent), except that when the [`selected`](mcp:get_api_reference?platform=angular&component=IgxColumnGroupComponent&member=selected) property is changed it changes the state of its descendants.
+
More information regarding the API manipulations could be found in the [`API References`](#api-references) section.
+
## Styling
-Before diving into the styling options, the core module and all component mixins need to be imported.
+
+Before diving into the styling options, the theming module needs to be imported.
+
```scss
@use "igniteui-angular/theming" as *;
+
// IMPORTANT: Prior to Ignite UI for Angular version 13 use:
// @import '~igniteui-angular/lib/core/styles/themes/index';
```
->[!NOTE]
->Please note that [`row selection`](row-selection.md) and [`column selection`](column-selection.md) can't be manipulated independently. They depend on the same `variables`.
+
+**Note:**
+Please note that [`row selection`](/treegrid/row-selection) and [`column selection`](/treegrid/column-selection) can't be manipulated independently. They depend on the same `variables`.
+
With that being said, let's move on and change the **selection** and **hover** styles.
Following the simplest approach, let's define our custom **theme**.
+
```scss
-$custom-grid-theme: grid-theme(
- $row-selected-background: #011627,
- $row-selected-text-color: #ecaa53,
- $row-selected-hover-background: #011627,
- $header-selected-text-color: #ecaa53,
- $header-selected-background: #011627,
- $expand-icon-color: #ecaa53,
- $expand-icon-hover-color: #b64b80
+$background: #0b0119;
+$foreground: #eeece1;
+$accent: #f6b560;
+
+$grid-theme: grid-theme(
+ $background: $background,
+ $foreground: $foreground,
+ $accent-color: $accent,
+
+ $row-selected-background: #012724,
+ $row-selected-text-color: $accent,
+ $header-selected-text-color: $accent,
+ $header-selected-background: #012427,
+
+ $row-selected-hover-background: hsl(from #012427 h s 10%),
+ $row-selected-hover-text-color: $accent,
);
```
-The [`grid-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme) accepts several parameters but those are the five responsible for changing the appearance of all selected columns:
+
+The `grid-theme` accepts several parameters but those are the five responsible for changing the appearance of all selected columns:
+
- **$row-selected-background** - sets the background of the selected fraction.
- **$row-selected-text-color** - sets the text color of the selected fraction
-- **$row-selected-hover-background** - sets the color of the hovered cell or bunch of cells.
+- **$row-selected-hover-background** - sets the color of the hovered cell or group of cells.
+- **$row-selected-hover-text-color** - sets the text color of the hovered cell or group of cells.
- **$header-selected-text-color** - sets the text color of the selected column header
- **$header-selected-background** - sets the background color of the selected column header.
+
### Using CSS Variables
-The last step is to include the custom `igx-grid` theme.
+
+The last step is to **include** the custom grid theme.
+
```scss
:host {
@include tokens($custom-grid-theme)
}
```
+
### Demo
+
```typescript
import { AfterViewInit, ChangeDetectorRef, Component, OnInit, ViewChild, inject } from '@angular/core';
import { IgxTreeGridComponent } from 'igniteui-angular/grids/tree-grid';
@@ -319,44 +361,57 @@ $grid-theme: grid-theme(
@include tokens($grid-theme);
}
```
->[!NOTE]
->The sample will not be affected by the selected global theme from `Change Theme`.
-
+
+**Note:**
+The sample will not be affected by the selected global theme from `Change Theme`.
+
## API References
-
+
The column selection UI has a few more APIs to explore, which are listed below.
-- [IgxTreeGridComponent](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
-- [IgxColumnComponent](mcp:get_api_reference?platform=angular&component=IgxColumnComponent)
-- [IgxColumnGroupComponent](mcp:get_api_reference?platform=angular&component=IgxColumnGroupComponent)
-- [IgxTreeGridComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme)
-[`IgxTreeGridComponent`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) properties:
-- [columnSelection](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=columnSelection)
-- [selectedColumns](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=selectedColumns)
-- [selectColumns](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=selectColumns)
-- [deselectColumns](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=deselectColumns)
-- [selectAllColumns](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=selectAllColumns)
-- [deselectAllColumns](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=deselectAllColumns)
-[`IgxColumnComponent`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent) properties:
-- [selectable](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=selectable)
-- [selected](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=selected)
-[`IgxColumnGrpupComponent`](mcp:get_api_reference?platform=angular&component=IgxColumnGroupComponent) properties:
-- [selectable](mcp:get_api_reference?platform=angular&component=IgxColumnGroupComponent&member=selectable)
-- [selected](mcp:get_api_reference?platform=angular&component=IgxColumnGroupComponent&member=selected)
-[`IgxTreeGridComponent`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) events:
-- [onColumnsSelectionChange](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=onColumnsSelectionChange)
+
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+- [`IgxColumn`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent)
+- [`IgxColumnGroup`](mcp:get_api_reference?platform=angular&component=IgxColumnGroupComponent)
+- `IgxTreeGridComponent Styles`
+
+[`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) properties:
+
+- [`columnSelection`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=columnSelection)
+- [`selectedColumns`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=selectedColumns)
+- [`selectColumns`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=selectColumns)
+- [`deselectColumns`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=deselectColumns)
+- [`selectAllColumns`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=selectAllColumns)
+- [`deselectAllColumns`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=deselectAllColumns)
+
+[`IgxColumn`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent) properties:
+
+- [`selectable`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=selectable)
+- [`selected`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=selected)
+
+[`IgxColumnGroup`](mcp:get_api_reference?platform=angular&component=IgxColumnGroupComponent) properties:
+
+- [`selectable`](mcp:get_api_reference?platform=angular&component=IgxColumnGroupComponent&member=selectable)
+- [`selected`](mcp:get_api_reference?platform=angular&component=IgxColumnGroupComponent&member=selected)
+
+[`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) events:
+
+- [`columnSelectionChanging`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=columnSelectionChanging)
+
## Additional Resources
-- [Tree Grid overview](tree-grid.md)
-- [Selection](selection.md)
-- [Cell selection](cell-selection.md)
-- [Paging](paging.md)
-- [Filtering](filtering.md)
-- [Sorting](sorting.md)
-- [Summaries](summaries.md)
-- [Column Moving](column-moving.md)
-- [Column Pinning](column-pinning.md)
-- [Column Resizing](column-resizing.md)
-- [Virtualization and Performance](virtualization.md)
-
+
+- [Tree Grid overview](/treegrid/tree-grid)
+- [Selection](/treegrid/selection)
+- [Cell selection](/treegrid/cell-selection)
+- [Paging](/treegrid/paging)
+- [Filtering](/treegrid/filtering)
+- [Sorting](/treegrid/sorting)
+- [Summaries](/treegrid/summaries)
+- [Column Moving](/treegrid/column-moving)
+- [Column Pinning](/treegrid/column-pinning)
+- [Column Resizing](/treegrid/column-resizing)
+- [Virtualization and Performance](/treegrid/virtualization)
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-column-types.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-column-types.md
index 6af332f1d..62e80850e 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-column-types.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-column-types.md
@@ -1,37 +1,55 @@
---
title: Column Data Types in Angular - Ignite UI for Angular
-_description: Handle cell and editing templates in Angular by choosing from several predefined column data types - number, string, date, boolean, currency and percent column.
-_keywords: column data type, ignite ui for angular, infragistics
-_license: commercial
+description: Handle cell and editing templates in Angular by choosing from several predefined column data types - number, string, date, boolean, currency and percent column.
+keywords: column data type, ignite ui for angular, infragistics
+license: commercial
+llms:
+ description: "Ignite UI for Angular Tree Grid provides a default handling of number, string, date, boolean, currency and percent column data types, based on which the appearance of the default and editing templates will be present."
_tocName: Column Data types
_premium: true
---
# Angular Tree Grid Column Types
+
Ignite UI for Angular Tree Grid provides a default handling of _number_, _string_, _date_, _boolean_, _currency_ and _percent_ column data types, based on which the appearance of the default and editing templates will be present.
+
## Default template
+
If you want to enable a data type-specific template, you should set the column [`dataType`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=dataType) input otherwise the column will be treated as a string column since that is the default value for column dataType. Let's see what are the default templates for each type.
+
### String
+
This column [`dataType`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=dataType) is not changing the appearance or format of the cell value.
+
### Number
+
If the [`dataType`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=dataType) is set to _number_, the cell value will be formatted based on application or grid's [`locale`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=locale) settings, as well as when [`pipeArgs`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=pipeArgs) property is specified. Then the number format will be changed based on them, for example it might change the:
+
- Number of digits after the decimal point
- Decimal separator with `,` or `.`
+
```ts
public options = {
digitsInfo: '1.4-4',
};
public formatOptions = this.options;
```
+
```html
```
+
### DateTime, Date and Time
+
The appearance of the date portions will be set (e.g. day, month, year) based on [`locale`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=locale) format or [`pipeArgs`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=pipeArgs) input. The pipe arguments can be used to specify a custom [date format](https://angular.io/api/common/DatePipe#pre-defined-format-options) or [timezone](https://angular.io/api/common/DatePipe#parameters):
+
- **format** - The default value for formatting the date is 'mediumDate'. Other available options are 'short', 'long', 'shortDate', 'fullDate', 'longTime', 'fullTime' and etc. This is a full list of all available [pre-defined Angular format options](https://angular.io/api/common/DatePipe#pre-defined-format-options) (legacy).
- **timezone** - The user's local system timezone is the default value. The timezone offset or standard GMT/UTC or continental US timezone abbreviation can also be passed. Different timezone examples which will display the corresponding time of the location anywhere in the world:
- > Note: Since 20.2.x, if you have the Angular localization disabled, the list of available format options can be found in our new [localization topic](../general/localization.md#formatting).
+**Note:**
+Since 20.2.x, if you have the Angular localization disabled, the list of available format options can be found in our new [localization topic](../general/localization.md#formatting).
+
+
```ts
public formatDateOptions = {
/** The date/time components that a date column will display, using predefined options or a custom format string. */
@@ -42,26 +60,31 @@ public formatDateOptions = {
};
public formatOptions = this.options;
```
+
```html
```
+
Available timezones:
-| Timezone | Value |
-| :---------------------- | :----------------- |
-| Alpha Time Zone | ‘UTC+1’ |
-| Australian Central Time | ‘UTC+9:30/ +10:30’ |
-| Arabia Standard Time | ‘UTC+3’ |
-| Central Standard Time | ‘UTC-6’ |
-| China Standard Time | ‘UTC+8’ |
-| Delta Time Zone | ‘UTC+4’ |
-| Greenwich Mean Time | ‘UTC+0’ |
-| Gulf Standard Time | ‘UTC+4’ |
-| Hawaii Standard Time | ‘UTC-10’ |
-| India Standard Time | ‘UTC+4’ |
-
+
+| Timezone | Value |
+|---------------------------| ------------------------- |
+| Alpha Time Zone |‘UTC+1’ |
+| Australian Central Time |‘UTC+9:30/ +10:30’ |
+| Arabia Standard Time |‘UTC+3’ |
+| Central Standard Time |‘UTC-6’ |
+| China Standard Time |‘UTC+8’ |
+| Delta Time Zone |‘UTC+4’ |
+| Greenwich Mean Time |‘UTC+0’ |
+| Gulf Standard Time |‘UTC+4’ |
+| Hawaii Standard Time |‘UTC-10’ |
+| India Standard Time |‘UTC+4’ |
+
The Tree Grid accepts date values of type _Date object_, _Number (milliseconds)_, _An ISO date-time string_. This section shows [how to configure a custom display format](../grid/grid.md#custom-display-format).
+
As you can see in the sample, we specify a different format options in order to showcase the available formats for the specific column type. For example, below you can find the format options for the _time_ portion of the date object:
+
```ts
// Time format with equivalent example
public timeFormats = [
@@ -71,33 +94,51 @@ public timeFormats = [
{ format: 'fullTime', eq: 'h:mm:ss a zzzz' },
];
```
+
#### Cell editing
+
When it comes to cell editing based on the column type a different editor will appear:
-- dateTime - [IgxDateTimeEditor directive](mcp:get_api_reference?platform=angular&component=IgxDateTimeEditorDirective) will be used. This editor will give you a mask directions for the input elements part of the DateTime object.
-- date - [IgxDatePicker component](mcp:get_api_reference?platform=angular&component=IgxDatePickerComponent) will be used.
-- time - [IgxTimePicker component](mcp:get_api_reference?platform=angular&component=IgxTimePickerComponent) will be used.
+
+- dateTime - [`IgxDateTimeEditorDirective`](mcp:get_api_reference?platform=angular&component=IgxDateTimeEditorDirective) will be used. This editor will give you a mask directions for the input elements part of the DateTime object.
+- date - [`IgxDatePicker`](mcp:get_api_reference?platform=angular&component=IgxDatePickerComponent) will be used.
+- time - [`IgxTimePicker`](mcp:get_api_reference?platform=angular&component=IgxTimePickerComponent) will be used.
+
#### Filtering
+
The same editors listed above will be used when it comes to Quick Filtering/Excel-style Filtering. These are the following filtering operands that each type exposes:
+
- dateTime and date - Equals, Does Not Equal, Before, After, Today, Yesterday, This Month, Last Month, Next Month, This Year, Last Year, Next Year, Empty, Not Empty, Null, Not Null;
- time - At, Not At, Before, After, At or Before, At or After, Empty, Not Empty, Null, Not Null;
+
#### Summaries
+
The available Summary operands will be **Count**, **Earliest** (date/time) and **Latest** (date/time).
+
#### Sorting
+
Time type column sorts based on the time portion of the object, ms will be disregarded.
Date type column sorts based on the date portion, disregards the time portion.
DateTime column sorts based on the full date
+
### Boolean
-The default template is using material icons for visualization of boolean values - 'clear' icon for _false_ values and 'check' icon for _true_ values. As for the editing template, it is using [igx-checkbox](mcp:get_api_reference?platform=angular&component=IgxCheckboxComponent) component.
+
+The default template is using material icons for visualization of boolean values - 'clear' icon for _false_ values and 'check' icon for _true_ values. As for the editing template, it is using [`igx-checkbox`](mcp:get_api_reference?platform=angular&component=IgxCheckboxComponent) component.
+
```html
```
+
### Currency
+
#### Default template
+
The default template will show a numeric value with currency symbol that would be either prefixed or suffixed. Both currency symbol location and number value formatting is based on the provided Application [`LOCALE_ID`](https://angular.io/api/core/LOCALE_ID) or Tree Grid [`locale`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=locale).
+
_By using LOCALE_ID_
+
```ts
-import { LOCALE_ID } from '@angular/core';
+
...
@Component({
@@ -106,12 +147,16 @@ import { LOCALE_ID } from '@angular/core';
providers: [{provide: LOCALE_ID, useValue: 'fr-FR' }]
})
```
+
_By using Grid's locale_
+
```html
```
+
By using the [`pipeArgs`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=pipeArgs) input the end-user can customize the number format by _decimal point_, _currencyCode_ and _display_.
+
```ts
public options = {
digitsInfo: '3.4-4',
@@ -120,24 +165,30 @@ public options = {
};
public formatOptions = this.options;
```
+
```html
```
-| Parameter | Description |
-| :----------- | :-------------------------------------------------- |
-| digitsInfo | Represents Decimal representation of currency value |
-| currencyCode | ISO 4217 currency code |
-| display* | Displays the value by narrow or wide symbol |
+
+| Parameter | Description |
+|---------------------------| ------------------------- |
+| digitsInfo | Represents Decimal representation of currency value |
+| currencyCode | ISO 4217 currency code |
+| display* | Displays the value by narrow or wide symbol |
+
*display - for the default en-US locale, the code USD can be represented by the narrow symbol $ or the wide symbol US$.
-Upon editing of cell's value the _currency symbol_ will be visible as suffix or prefix. More about that could be found in the official [Cell editing topic](cell-editing.md#cell-editing-templates).
->[!NOTE]
-> When using up/down arrow keys the value will increment/decrement with a step based on the digitsInfo - minFractionDigits (The minimum number of digits after the decimal point. Default is 0)
+
+Upon editing of cell's value the _currency symbol_ will be visible as suffix or prefix. More about that could be found in the official [Cell editing topic](/treegrid/cell-editing#cell-editing-templates).
+
### Percent
+
Default template is showing the percent equivalent of the underlying numeric value. The displayed cell value is a multiplied result by display factor of '100' - for example, as the default factor is 100 and the "value" passed to the cell is 0.123, then the displayed cell value will be "12.3%".
+
When it comes to cell editing, the value will be the same as the data source value - the display factor is '1'. Upon editing of the cell a preview of the percent value will be shown as a suffix element.For example, while editing '0.0547' the preview element will show '5.47%'.
+
```ts
public options = {
/**
@@ -151,26 +202,38 @@ public options = {
};
public formatPercentOptions = this.options;
```
+
```html
```
->[!NOTE]
-> When using up/down arrow keys the value will increment/decrement with a step based on the digitsInfo - minFractionDigits (The minimum number of digits after the decimal point. Default is 0)
+
+**Note:**
+When using up/down arrow keys the value will increment/decrement with a step based on the digitsInfo - minFractionDigits (The minimum number of digits after the decimal point. Default is 0)
+
### Image
+
Default template is using the value coming from the data as an image source to a default image template. The default image template will extract the name of the image file and set it as `alt` attribute of the image to meet the accessibility requirement. The displayed cell size is adjusted to the sizes of the images rendered, so keep in mind that large images will still be rendered and the grid rows will become as large as the images in the image column. Filtering, sorting and grouping will be turned off by default for image type columns. If you want to enable them, you need to provide custom strategies which perform the data operations.
+
```html
```
-When [auto-generating](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=autoGenerate) columns, the grid analyses the values in the first data record. If a value is of type string and matches the pattern of a url ending in an image extension (gif, jpg, jpeg, tiff, png, webp, bmp) then the column will automatically be marked as `dataType === GridColumnDataType.Image` and a default image template will be rendered.
+
+When [`auto-generating`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=autoGenerate) columns, the grid analyses the values in the first data record. If a value is of type string and matches the pattern of a url ending in an image extension (gif, jpg, jpeg, tiff, png, webp, bmp) then the column will automatically be marked as `dataType === GridColumnDataType.Image` and a default image template will be rendered.
+
## Default editing template
-See the editing templates part of [Tree Grid Editing topic](editing.md#editing-templates)
+
+See the editing templates part of [Tree Grid Editing topic](/treegrid/editing#editing-templates)
+
## Custom editing template and formatter
+
Custom template and column formatter definition will always take precedence over the column data type set:
+
### Custom template
+
```html
@@ -180,12 +243,15 @@ Custom template and column formatter definition will always take precedence over
```
+
### Column formatter
+
```ts
// Through column formatter property
public formatCurrency(value: number) {
return `Dollar sign ${value.toFixed(0)}`;
}
+
public init(column: IgxColumnComponent) {
switch (column.field) {
case 'UnitsInStock':
@@ -195,14 +261,15 @@ public init(column: IgxColumnComponent) {
return;
}
```
+
## API References
-- [IgxGridCell](mcp:get_api_reference?platform=angular&component=IgxGridCell)
-- Column [pipeArgs](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=pipeArgs)
-- Tree Grid [locale](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=locale)
-- Column [dataType](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=dataType)
+- [`IgxGridCell`](mcp:get_api_reference?platform=angular&component=IgxGridCell)
+- Column [`pipeArgs`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=pipeArgs)
+- Tree Grid [`locale`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=locale)
+- Column [`dataType`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=dataType)
## Additional Resources
-
-- For custom templates you can see [cell editing topic](cell-editing.md#cell-editing-templates)
-- [Tree Grid overview topic](tree-grid.md)
-- [Editing topic](editing.md)
-- [Summaries topic](summaries.md)
+
+- For custom templates you can see [cell editing topic](/treegrid/cell-editing#cell-editing-templates)
+- [Tree Grid overview topic](/treegrid/tree-grid)
+- [Editing topic](/treegrid/editing)
+- [Summaries topic](/treegrid/summaries)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-conditional-cell-styling.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-conditional-cell-styling.md
index 4aa40288f..8202b2f15 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-conditional-cell-styling.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-conditional-cell-styling.md
@@ -1,37 +1,53 @@
---
title: Conditional Cell Styling in Angular Tree Grid - Ignite UI for Angular
-_description: Let users identify different cells quickly. Define a variety of cell styles. Use the conditional cell styling in Angular Data grid to make cells stand out.
-_keywords: conditional styling, ignite ui for angular, infragistics
-_license: commercial
+description: Let users identify different cells quickly. Define a variety of cell styles. Use the conditional cell styling in Angular Data grid to make cells stand out.
+keywords: conditional styling, ignite ui for angular, infragistics
+license: commercial
_canonicalLink: grid/conditional-cell-styling
+llms:
+ description: "If you need to provide any custom styling in the IgxTreeGrid component, you can do it on either row or cell level."
_tocName: Conditional Styling
_premium: true
---
# Angular Tree Grid Conditional Styling
+
If you need to provide any custom styling in the IgxTreeGrid component, you can do it on either row or cell level.
+
## Tree Grid Conditional Row Styling
+
The IgxTreeGrid component in Ignite UI for Angular provides two ways to **conditional styling of rows** based on custom rules.
+
- By setting [`rowClasses`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowClasses) input on the IgxTreeGrid component;
- By setting [`rowStyles`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowStyles) input on the IgxTreeGrid component;
+
Further in this topic wi will cover both of them in more details.
+
### Using rowClasses
+
You can conditionally style the IgxTreeGrid rows by setting the [`rowClasses`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowClasses) input and define custom rules.
+
```html
...
```
+
The [`rowClasses`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowClasses) input accepts an object literal, containing key-value pairs, where the key is the name of the CSS class, while the value is either a callback function that returns a boolean, or boolean value.
+
```typescript
// sample.component.ts
+
public rowClasses = {
activeRow: this.activeRowCondition
};
+
public activeRowCondition = (row: RowType) => this.grid?.navigation.activeNode?.row === row.index;
```
+
```scss
// sample.component.scss
+
::ng-deep {
.activeRow {
border: 2px solid #fc81b8;
@@ -39,9 +55,12 @@ public activeRowCondition = (row: RowType) => this.grid?.navigation.activeNode?.
}
}
```
-> [!NOTE]
-> Use **`::ng-deep`** or **`ViewEncapsulation.None`** to force the custom styles down through the current component and its children.
+
+**Note:**
+Use **`::ng-deep`** or **`ViewEncapsulation.None`** to force the custom styles down through the current component and its children.
+
### Demo
+
```typescript
import { Component, OnInit, ViewChild } from '@angular/core';
import { IgxTreeGridComponent } from 'igniteui-angular/grids/tree-grid';
@@ -128,14 +147,19 @@ export class TreeGridRowClassesComponent implements OnInit {
}
```
-
+
### Using rowStyles
+
Columns now expose the `rowStyles` property which allows conditional styling of the data rows. Similar to `rowClasses` it accepts an object literal where the keys are style properties and the values are expressions for evaluation. Also, you can apply regular styling (without any conditions).
+
> The callback signature for both `rowStyles` and `rowClasses` is:
+
```ts
(row: RowType) => boolean
```
+
Let's define our styles:
+
```typescript
// component.ts
public background = (row: RowType) => row.data['Title'] === 'CEO' ? '#6c757d' :
@@ -144,6 +168,7 @@ public background = (row: RowType) => row.data['Title'] === 'CEO' ? '#6c757d' :
row.data['Title'].includes('Manager') ? '#dee2e6' :
row.data['Title'].includes('Lead') ? '#e9ecef' :
row.data['Title'].includes('Senior') ? '#f8f9fa' : null;
+
public rowStyles = {
background: this.background,
'border-left': (row: RowType) => row.data['Title'] === 'CEO' || row.data['Title'].includes('President') ?
@@ -152,6 +177,7 @@ public rowStyles = {
color: (row: RowType) => row.data['Title'] === 'CEO' ? '#fff' : null
};
```
+
```html
```
+
### Demo
+
```typescript
import { Component, OnInit, ViewChild } from '@angular/core';
import { IgxTreeGridComponent } from 'igniteui-angular/grids/tree-grid';
@@ -188,7 +216,7 @@ export class TreeGridRowStylesComponent implements OnInit {
row.data['Title'].includes('Senior') ? '#f8f9fa' : null;
// eslint-disable-next-line @typescript-eslint/member-ordering
- public rowStyles = {
+ public rowStyles: any = {
background: this.background,
'border-left': (row: RowType) => row.data['Title'] === 'CEO' || row.data['Title'].includes('President') ?
'2px solid' : null,
@@ -235,11 +263,15 @@ export class TreeGridRowStylesComponent implements OnInit {
margin: 16px;
}
```
-
+
## Tree Grid Conditional Cell Styling
+
## Overview
+
The IgxTreeGrid component in Ignite UI for Angular provides two ways to **conditional styling of cells** based on custom rules.
-- By setting the [`IgxColumnComponent`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent) input [`cellClasses`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=cellClasses) to an object literal containing key-value pairs. The key is the name of the CSS class, while the value is either a callback function that returns a boolean, or boolean value. The result is a convenient material styling of the cell.
+
+- By setting the [`IgxColumn`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent) input [`cellClasses`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=cellClasses) to an object literal containing key-value pairs. The key is the name of the CSS class, while the value is either a callback function that returns a boolean, or boolean value. The result is a convenient material styling of the cell.
+
```ts
// component.ts file
public beatsPerMinuteClasses = {
@@ -247,41 +279,54 @@ public beatsPerMinuteClasses = {
upFont: this.upFontCondition
};
...
+
private downFontCondition = (rowData: any, columnKey: any): boolean => {
return rowData[columnKey] <= 95;
}
```
+
```scss
// component.scss file
.upFont {
color: red;
}
+
.downFont {
color: green;
}
```
+
### Using cellClasses
-You can conditionally style the IgxTreeGrid cells by setting the [`IgxColumnComponent`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent) [`cellClasses`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=cellClasses) input and define custom rules.
+
+You can conditionally style the IgxTreeGrid cells by setting the [`IgxColumn`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent) [`cellClasses`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=cellClasses) input and define custom rules.
+
```html
```
+
The [`cellClasses`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=cellClasses) input accepts an object literal, containing key-value pairs, where the key is the name of the CSS class, while the value is either a callback function that returns a boolean, or boolean value.
+
```typescript
// sample.component.ts
+
private upPriceCondition = (rowData: any, columnKey: any): boolean => {
return rowData[columnKey] > 5;
}
+
private downPriceCondition = (rowData: any, columnKey: any): boolean => {
return rowData[columnKey] <= 5;
}
+
public priceClasses = {
downPrice: this.downPriceCondition,
upPrice: this.upPriceCondition
};
```
+
```scss
// sample.component.scss
+
::ng-deep {
.upPrice {
color: red;
@@ -292,9 +337,12 @@ public priceClasses = {
}
}
```
-> [!NOTE]
-> Use **`::ng-deep`** or **`ViewEncapsulation.None`** to force the custom styles down through the current component and its children.
+
+**Note:**
+Use **`::ng-deep`** or **`ViewEncapsulation.None`** to force the custom styles down through the current component and its children.
+
### Demo
+
```typescript
import { Component, OnInit } from '@angular/core';
import { ORDERS_DATA } from '../data/orders';
@@ -440,8 +488,9 @@ export class TreeGridConditionalCellStyleComponent implements OnInit {
}
}
```
-
-- By using the [`IgxColumnComponent`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent) input [`cellStyles`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=cellStyles) which accepts an object literal where the keys are style properties and the values are expressions for evaluation.
+
+- By using the [`IgxColumn`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent) input [`cellStyles`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=cellStyles) which accepts an object literal where the keys are style properties and the values are expressions for evaluation.
+
```ts
public styles = {
'background': 'linear-gradient(180deg, #dd4c4c 0%, firebrick 100%)',
@@ -449,34 +498,47 @@ public styles = {
'animation': '0.25s ease-in-out forwards alternate popin'
};
```
+
> The callback signature for both `cellStyles` and `cellClasses` is now changed to:
+
```ts
(rowData: any, columnKey: string, cellValue: any, rowIndex: number) => boolean
```
+
### Using cellStyles
+
Columns now expose the `cellStyles` property which allows conditional styling of the column cells. Similar to `cellClasses` it accepts an object literal where the keys are style properties and the values are expressions for evaluation. Also, you can apply regular styling with ease (without any conditions).
+
In the [sample above](#demo) we've created:
+
- Two different styles that will be applied based on the column index.
- You will also change the `text color` based on even/odd rows.
+
> The callback signature for both `cellStyles` is:
+
```ts
(rowData: any, columnKey: string, cellValue: any, rowIndex: number) => boolean
```
+
Let's define our styles:
+
```typescript
// component.ts
public oddColStyles = {
background: 'linear-gradient(to right, #b993d6, #8ca6db)',
- color: (rowData, coljey, cellValue, rowIndex) => rowIndex % 2 === 0 ? 'white' : 'gray',
+ color: (rowData, columnKey, cellValue, rowIndex) => rowIndex % 2 === 0 ? 'white' : 'gray',
animation: '0.75s popin'
};
+
public evenColStyles = {
background: 'linear-gradient(to right, #8ca6db, #b993d6)',
- color: (rowData, coljey, cellValue, rowIndex) => rowIndex % 2 === 0 ? 'gray' : 'white',
+ color: (rowData, columnKey, cellValue, rowIndex) => rowIndex % 2 === 0 ? 'gray' : 'white',
animation: '0.75s popin'
};
```
+
On `ngOnInit` we will add the `cellStyles` configuration for each column of the predefined `columns` collection, which is used to create the IgxTreeGrid columns dynamically.
+
```ts
// component.ts
public ngOnInit() {
@@ -491,18 +553,21 @@ public ngOnInit() {
this.applyCSS();
}
```
+
```ts
public applyCSS() {
this.columns.forEach((column, index) => {
column.cellStyles = (index % 2 === 0 ? this.evenColStyles : this.oddColStyles);
});
}
+
public updateCSS(css: string) {
this.oddColStyles = {...this.oddColStyles, ...JSON.parse(css)};
this.evenColStyles = {...this.evenColStyles, ...JSON.parse(css)};
this.applyCSS();
}
```
+
```html
//component.html
```
+
Define a `popin` animation
+
```scss
// component.scss
@keyframes popin {
@@ -538,7 +605,9 @@ Define a `popin` animation
}
}
```
+
### Demo
+
```typescript
import { Component, OnInit, ViewChild } from '@angular/core';
import { IgxColumnComponent } from 'igniteui-angular/grids/core';
@@ -678,10 +747,12 @@ export class TreeGridConditionalCellStyle2Component implements OnInit {
}
}
```
-
+
## Known issues and limitations
+
- If there are cells bind to the same condition (from different columns) and one cell is updated, the other cells won't be updated based on the new value, if the condition is met.
-A pipe check should be performed in order to apply the changes to the rest of the cells. The example below shows how to do that with a `spread operator(...)` on [`onCellEdit`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=onCellEdit) event. This will copy the original object with a new instance, and lead pure pipe to be fired.
+A pipe check should be performed in order to apply the changes to the rest of the cells. The example below shows how to do that with a `spread operator(...)` on [`cellEdit`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=cellEdit) event. This will copy the original object with a new instance, and lead pure pipe to be fired.
+
```ts
public backgroundClasses = {
myBackground: (rowData: any, columnKey: string) => {
@@ -689,41 +760,45 @@ public backgroundClasses = {
}
};
...
+
editDone(evt) {
this.backgroundClasses = {...this.backgroundClasses};
}
+
```
+
```html
-
+
```
+
## API References
-
-- [IgxColumnComponent](mcp:get_api_reference?platform=angular&component=IgxColumnComponent)
-- [IgxTreeGridComponent](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
-- [IgxTreeGridComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#mixin-grid)
+- [`IgxColumn`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent)
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+- `IgxTreeGridComponent Styles`
## Additional Resources
-
-- [Tree Grid overview](tree-grid.md)
-- [Virtualization and Performance](virtualization.md)
-- [Editing](editing.md)
-- [Paging](paging.md)
-- [Filtering](filtering.md)
-- [Sorting](sorting.md)
-- [Summaries](summaries.md)
-- [Column Moving](column-moving.md)
-- [Column Pinning](column-pinning.md)
-- [Column Resizing](column-resizing.md)
-- [Column Hiding](column-hiding.md)
-- [Selection](selection.md)
-- [Searching](search.md)
-- [Toolbar](toolbar.md)
-- [Multi-column Headers](multi-column-headers.md)
-- [Size](display-density.md)
-
+
+- [Tree Grid overview](/treegrid/tree-grid)
+- [Virtualization and Performance](/treegrid/virtualization)
+- [Editing](/treegrid/editing)
+- [Paging](/treegrid/paging)
+- [Filtering](/treegrid/filtering)
+- [Sorting](/treegrid/sorting)
+- [Summaries](/treegrid/summaries)
+- [Column Moving](/treegrid/column-moving)
+- [Column Pinning](/treegrid/column-pinning)
+- [Column Resizing](/treegrid/column-resizing)
+- [Column Hiding](/treegrid/column-hiding)
+- [Selection](/treegrid/selection)
+- [Searching](/treegrid/search)
+- [Toolbar](/treegrid/toolbar)
+- [Multi-column Headers](/treegrid/multi-column-headers)
+- [Size](/treegrid/display-density)
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-display-density.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-display-density.md
index 32571283b..089a8d21e 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-display-density.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-display-density.md
@@ -1,15 +1,20 @@
---
title: Angular Grid Size - Ignite UI for Angular
-_description: Learn how to apply size capabilities to the Tree grid component. You can use a set of compact view options in the Ignite UI for Angular.
-_keywords: material density, size igniteui for angular, infragistics
-_license: commercial
+description: Learn how to apply size capabilities to the Tree grid component. You can use a set of compact view options in the Ignite UI for Angular.
+keywords: material density, size igniteui for angular, infragistics
+license: commercial
_canonicalLink: grid/display-density
+llms:
+ description: "IgxTreeGrid design is based on Material Design Guidelines."
_tocName: Size
_premium: true
---
# Angular Tree Grid Size
+
**IgxTreeGrid** design is based on [Material Design Guidelines](https://material.io/design). We currently provide an option to choose between predefined set of size options that will bring a small, medium, or large view respectively. By selecting the right size for your Material UI table / Material UI grid you can significantly improve the user experience when interacting with large amounts of content.
+
## Angular Tree Grid Size Example
+
```typescript
import { Component, HostBinding, OnInit, ViewChild } from '@angular/core';
import { IgxButtonGroupComponent } from 'igniteui-angular/button-group';
@@ -144,29 +149,38 @@ igx-buttongroup{
width: 500px;
}
```
-
+
## Usage
-As you can see in the demo above, the [**IgxTreeGrid**](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) provides three size options: **small**, **medium** and **large**. The code snippet below shows how to set size:
+
+As you can see in the demo above, the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) provides three size options: **small**, **medium** and **large**. The code snippet below shows how to set size:
+
```html
```
-And now let's see in details how each option reflects on the Tree Grid component. When you switch between different sizes the height of each Tree Grid element and the corresponding paddings will be changed. Also if you want to apply custom column [**width**](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=width), please consider the fact that it must be bigger than the sum of left and right padding.
+
+And now let's see in details how each option reflects on the Tree Grid component. When you switch between different sizes the height of each Tree Grid element and the corresponding paddings will be changed. Also if you want to apply custom column [`**width**`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=width), please consider the fact that it must be bigger than the sum of left and right padding.
+
- **--ig-size-large** - this is the default Tree Grid size with the lowest intense and row height equal to `50px`. Left and Right paddings are `24px`; Minimal column [`width`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=width) is `80px`;
- **--ig-size-medium** - this is the middle size with `40px` row height. Left and Right paddings are `16px`; Minimal column [`width`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=width) is `64px`;
- **--ig-size-small** - this is the smallest size with `32px` row height. Left and Right paddings are `12px`; Minimal column [`width`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=width) is `56px`;
-> [!NOTE]
-> Please keep in mind that currently you **can not** override any of the sizes.
+
+**Note:**
+Please keep in mind that currently you **can not** override any of the sizes.
+
Let's now continue with our sample and see in action how each size is applied. Let's first add a button which will help us to switch between each size:
+
```html
```
+
```typescript
@ViewChild(IgxButtonGroupComponent) public buttonGroup: IgxButtonGroupComponent;
public size = 'small';
public sizes;
+
public ngOnInit() {
this.sizes = [
{
@@ -176,7 +190,7 @@ public ngOnInit() {
},
{
label: 'medium',
- selected: this.sie === 'medium',
+ selected: this.size === 'medium',
togglable: true
},
{
@@ -187,7 +201,9 @@ public ngOnInit() {
];
}
```
+
Now we can add the markup.
+
```html
@@ -234,22 +250,30 @@ Now we can add the markup.
```
+
Finally, let's provide the necessary logic in order to actually apply the size:
+
```typescript
@ViewChild('treeGrid', { read: IgxTreeGridComponent })
public treeGrid: IgxTreeGridComponent;
+
public selectSize(event: any) {
this.size = this.sizes[event.index].label;
}
+
@HostBinding('style.--ig-size')
protected get sizeStyle() {
return `var(--ig-size-${this.size})`;
}
```
-Another option that [**IgxTreeGrid**](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) provides for you, in order to be able to change the height of the rows in the Tree Grid, is the property [`rowHeight`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowheight). So let's see in action how this property affects the Tree Grid layout along with the `--ig-size` CSS variable.
+
+Another option that [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) provides for you, in order to be able to change the height of the rows in the Tree Grid, is the property [`rowHeight`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowheight). So let's see in action how this property affects the Tree Grid layout along with the `--ig-size` CSS variable.
+
Please keep in mind the following:
-- `--ig-size` CSS variable will have **NO** impact on row height **if there is [rowHeight](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowheight) specified**;
+
+- `--ig-size` CSS variable will have **NO** impact on row height **if there is [`rowHeight`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowheight) specified**;
- `--ig-size` will **affect all of the rest elements in the Tree Grid**, as it has been described above;
+
And now we can extend our sample and add [`rowHeight`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowHeight) property to the Tree Grid:
```html
@@ -258,26 +282,27 @@ And now we can extend our sample and add [`rowHeight`](mcp:get_api_reference?pla
..............
```
-
+
## API References
-
-- [IgxTreeGridComponent](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
-- [IgxTreeGridComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme)
-- [IgxColumnComponent](mcp:get_api_reference?platform=angular&component=IgxColumnComponent)
-
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+- `IgxTreeGridComponent Styles`
+- [`IgxColumn`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent)
## Additional Resources
-- [Tree Grid overview](tree-grid.md)
-- [Virtualization and Performance](virtualization.md)
-- [Editing](editing.md)
-- [Paging](paging.md)
-- [Filtering](filtering.md)
-- [Sorting](sorting.md)
-- [Summaries](summaries.md)
-- [Column Pinning](column-pinning.md)
-- [Column Resizing](column-resizing.md)
-- [Selection](selection.md)
-* [Searching](search.md)
-
+
+- [Tree Grid overview](/treegrid/tree-grid)
+- [Virtualization and Performance](/treegrid/virtualization)
+- [Editing](/treegrid/editing)
+- [Paging](/treegrid/paging)
+- [Filtering](/treegrid/filtering)
+- [Sorting](/treegrid/sorting)
+- [Summaries](/treegrid/summaries)
+- [Column Pinning](/treegrid/column-pinning)
+- [Column Resizing](/treegrid/column-resizing)
+- [Selection](/treegrid/selection)
+
+- [Searching](/treegrid/search)
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-editing.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-editing.md
index 37873e4f0..9335a258f 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-editing.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-editing.md
@@ -1,76 +1,99 @@
---
title: Angular Tree Grid Editing - Ignite UI for Angular
-_description: Get a powerful public API and an easy way to perform data manipulations like creating, updating, or deleting records. See the Angular data grid editing options!
-_keywords: data manipulation, ignite ui for angular, infragistics
-_license: commercial
+description: Get a powerful public API and an easy way to perform data manipulations like creating, updating, or deleting records. See the Angular data grid editing options!
+keywords: data manipulation, ignite ui for angular, infragistics
+license: commercial
_canonicalLink: grid/editing
+llms:
+ description: "Ignite UI for Angular Tree Grid component provides an easy way to perform data manipulation operations like creating, updating, and deleting records."
_tocName: Editing
---
-
# Angular Tree Grid Editing
-Ignite UI for Angular Tree Grid component provides an easy way to perform data manipulation operations like creating, updating, and deleting records. The data manipulation phases are: [Cell Editing](cell-editing.md), [Row Editing](row-editing.md), and [Batch Editing](batch-editing.md). The Tree Grid gives you a powerful public API which allows you to customize the way these operations are performed. Additionally, **Cell editing** exposes several default editors based on the column data type, that could be easily customized via [igxCellEditor directive](cell-editing.md#cell-editing-templates) or [igxRow directives](row-editing.md#customizing-row-editing-overlay).
+
+Ignite UI for Angular Tree Grid component provides an easy way to perform data manipulation operations like creating, updating, and deleting records. The data manipulation phases are: [Cell Editing](/treegrid/cell-editing), [Row Editing](/treegrid/row-editing), and [Batch Editing](/treegrid/batch-editing). The Tree Grid gives you a powerful public API which allows you to customize the way these operations are performed. Additionally, **Cell editing** exposes several default editors based on the column data type, that could be easily customized via [igxCellEditor directive](/treegrid/cell-editing#cell-editing-templates) or [igxRow directives](/treegrid/row-editing#customizing-row-editing-overlay).
+
## Setup
+
In order to specify which edit mode should be enabled, the Tree Grid exposes the following boolean properties - [`editable`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=editable) and [`rowEditable`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=rowEditable).
+
Property **editable** enables you to specify the following options:
+
- **false** - the editing for the corresponding column will be disabled; /default value/
- **true** - the editing for the corresponding column will be enabled;
+
>Keep in mind that if the column is not editable, you can still modify its value through the public API exposed by the Tree Grid.
+
Property **rowEditable** enables you to specify the following options:
+
- **false** - the row editing in the corresponding grid will be disabled; /default value/
- **true** - the row editing in the corresponding grid will be enabled;
+
In the Tree Grid if you set rowEditable property to true, and editable property is not explicitly defined for any column, the editing will be enabled for all the columns except the _primary key_.
+
**Batch editing** in the grid can be enabled for both **cell editing** and **row editing** modes. In order to set up batch editing it is necessary to provide to the grid a _TransactionService_.
+
- _Cell and Batch Editing_ - in this scenario every singe modification of each cell is preserved separately and undo/ redo operations are available on cell level;
- _Row and Batch Editing_ - in this scenario the modifications are preserved on row level so undo/ redo operations will not be working for each cell that is modified but for the bunch of cell from each row.
+
### Editing Templates
If you want to use a data type specific _edit templates_, you should specify the column [`dataType`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=dataType) property. So let's now see what are the default templates for each type:
-- For `string` data type, default template is using [igxInput](mcp:get_api_reference?platform=angular&component=IgxInputDirective)
-- For `number` data type, default template is using [igxInput](mcp:get_api_reference?platform=angular&component=IgxInputDirective) type="number", so if you try to update cell to a value which can not be parsed to a number your change is going to be discarded, and the value in the cell will be set to 0.
-- For `date` data type, default template is using [igxDatePicker](mcp:get_api_reference?platform=angular&component=IgxDatePickerComponent)
-- For `dateTime` data type, default template is using [IgxDateTimeEditor directive](mcp:get_api_reference?platform=angular&component=IgxDateTimeEditorDirective). This editor will give you a mask directions for the input elements part of the DateTime object.
-- For `date` data type, default template is using [IgxDatePicker component](mcp:get_api_reference?platform=angular&component=IgxDatePickerComponent).
-- For `time` - data type, default template is using [IgxTimePicker component](mcp:get_api_reference?platform=angular&component=IgxTimePickerComponent).
-- For `boolean` data type, default template is using [igxCheckbox](mcp:get_api_reference?platform=angular&component=IgxCheckboxComponent)
-- For `currency` data type, default template is using [IgxInputGroup](mcp:get_api_reference?platform=angular&component=IgxInputGroupComponent) with prefix/suffix configuration based on application or grid locale settings.
-- For `percent` data type, default template is using [IgxInputGroup](mcp:get_api_reference?platform=angular&component=IgxInputGroupComponent) with suffix element that shows a preview of the edited value in percents.
-- For custom templates you can see [Cell Editing topic](cell-editing.md#cell-editing-templates)
-All available column data types could be found in the official [Column types topic](column-types.md#default-template).
+
+- For `string` data type, default template is using [`igxInput`](mcp:get_api_reference?platform=angular&component=IgxInputDirective)
+- For `number` data type, default template is using [`igxInput`](mcp:get_api_reference?platform=angular&component=IgxInputDirective) type="number", so if you try to update cell to a value which can not be parsed to a number your change is going to be discarded, and the value in the cell will be set to 0.
+- For `date` data type, default template is using [`igxDatePicker`](mcp:get_api_reference?platform=angular&component=IgxDatePickerComponent)
+- For `dateTime` data type, default template is using [`IgxDateTimeEditorDirective`](mcp:get_api_reference?platform=angular&component=IgxDateTimeEditorDirective). This editor will give you a mask directions for the input elements part of the DateTime object.
+- For `date` data type, default template is using [`IgxDatePicker`](mcp:get_api_reference?platform=angular&component=IgxDatePickerComponent).
+- For `time` - data type, default template is using [`IgxTimePicker`](mcp:get_api_reference?platform=angular&component=IgxTimePickerComponent).
+- For `boolean` data type, default template is using [`igxCheckbox`](mcp:get_api_reference?platform=angular&component=IgxCheckboxComponent)
+- For `currency` data type, default template is using [`IgxInputGroup`](mcp:get_api_reference?platform=angular&component=IgxInputGroupComponent) with prefix/suffix configuration based on application or grid locale settings.
+- For `percent` data type, default template is using [`IgxInputGroup`](mcp:get_api_reference?platform=angular&component=IgxInputGroupComponent) with suffix element that shows a preview of the edited value in percents.
+- For custom templates you can see [Cell Editing topic](/treegrid/cell-editing#cell-editing-templates)
+
+All available column data types could be found in the official [Column types topic](/treegrid/column-types#default-template).
+
#### Default template editors of date-time columns
+
The template editors of `date`, `dateTime` and `time` column data types use a default input format as per the `IgxGrid`'s [`locale`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=locale).
-In case the [`pipeArgs`](mcp:get_api_reference?platform=angular&component=ColumnType&member=pipeArgs) object `format` property is set on the column, the input format of the editors will be inferred from it. The condition is that it can be parsed as containing numeric date-time parts only.
-If the editors input format should be explicitly set, the [`editorOptions`](mcp:get_api_reference?platform=angular&component=ColumnType&member=editorOptions) object of type [`IColumnEditorOptions`](mcp:get_api_reference?platform=angular&component=IColumnEditorOptions) can be leveraged. It accepts a `dateTimeFormat` property that is used as input format for the editors of `date`, `dateTime` and `time` column data types.
+
+In case the [`IgxColumnType.pipeArgs`](mcp:get_api_reference?platform=angular&component=ColumnType&member=pipeArgs) object `format` property is set on the column, the input format of the editors will be inferred from it. The condition is that it can be parsed as containing numeric date-time parts only.
+
+If the editors input format should be explicitly set, the [`IgxColumnType.editorOptions`](mcp:get_api_reference?platform=angular&component=ColumnType&member=editorOptions) object of type [`IgxIColumnEditorOptions`](mcp:get_api_reference?platform=angular&component=IColumnEditorOptions) can be leveraged. It accepts a `dateTimeFormat` property that is used as input format for the editors of `date`, `dateTime` and `time` column data types.
+
```typescript
const editorOptions: IColumnEditorOptions = {
dateTimeFormat: 'MM/dd/YYYY',
}
```
+
```html
```
+
### Event arguments and sequence
-The grid exposes a wide array of events that provide greater control over the editing experience. These events are fired during the [**Row Editing**](row-editing.md) and [**Cell Editing**](cell-editing.md) lifecycle - when starting, committing or canceling the editing action.
-| Event | Description | Arguments | Cancellable |
-| :------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------- | :---------- |
-| [`rowEditEnter`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowEditEnter) | If `rowEditing` is enabled, fires when a row enters edit mode | [IGridEditEventArgs](mcp:get_api_reference?platform=angular&component=IGridEditEventArgs) | `true` |
-| [`cellEditEnter`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=cellEditEnter) | Fires when a cell **enters edit mode** (after `rowEditEnter`) | [IGridEditEventArgs](mcp:get_api_reference?platform=angular&component=IGridEditEventArgs) | `true` |
-| [`cellEdit`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=cellEdit) | If value is changed, fires just **before** a cell's value is **committed** (e.g. by pressing `Enter`) | [IGridEditEventArgs](mcp:get_api_reference?platform=angular&component=IGridEditEventArgs) | `true` |
-| [`cellEditDone`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=celleditdone) | If value is changed, fires **after** a cell has been edited and cell's value is **committed** | [IGridEditDoneEventArgs](mcp:get_api_reference?platform=angular&component=IGridEditDoneEventArgs) | `false` |
-| [`cellEditExit`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=cellEditExit) | Fires when a cell **exits edit mode** | [IGridEditDoneEventArgs](mcp:get_api_reference?platform=angular&component=IGridEditEventArgs) | `false` |
-| [`rowEdit`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowEdit) | If `rowEditing` is enabled, fires just before a row in edit mode's value is **committed** (e.g. by clicking the `Done` button on the Row Editing Overlay) | [IGridEditEventArgs](mcp:get_api_reference?platform=angular&component=IGridEditEventArgs) | `true` |
-| [`rowEditDone`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowEditDone) | If `rowEditing` is enabled, fires **after** a row has been edited and new row's value has been **committed**. | [IGridEditDoneEventArgs](mcp:get_api_reference?platform=angular&component=IGridEditEventArgs) | `false` |
-| [`rowEditExit`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowEditExit) | If `rowEditing` is enabled, fires when a row **exits edit mode** | [IGridEditDoneEventArgs](mcp:get_api_reference?platform=angular&component=IGridEditEventArgs) | `false` |
+
+The grid exposes a wide array of events that provide greater control over the editing experience. These events are fired during the [**Row Editing**](/treegrid/row-editing) and [**Cell Editing**](/treegrid/cell-editing) lifecycle - when starting, committing or canceling the editing action.
+
+ | Event | Description | Arguments | Cancellable |
+|-------|-------------|-----------|-------------|
+| [`rowEditEnter`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowEditEnter) | If `rowEditing` is enabled, fires when a row enters edit mode | [`IgxIGridEditEventArgs`](mcp:get_api_reference?platform=angular&component=IGridEditEventArgs) | `true` |
+| [`cellEditEnter`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=cellEditEnter) | Fires when a cell **enters edit mode** (after `rowEditEnter`) | [`IgxIGridEditEventArgs`](mcp:get_api_reference?platform=angular&component=IGridEditEventArgs) | `true` |
+| [`cellEdit`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=cellEdit) | If value is changed, fires just **before** a cell's value is **committed** (e.g. by pressing `Enter`) | [`IgxIGridEditEventArgs`](mcp:get_api_reference?platform=angular&component=IGridEditEventArgs) | `true` |
+| [`cellEditDone`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=celleditdone) | If value is changed, fires **after** a cell has been edited and cell's value is **committed** | [`IgxIGridEditDoneEventArgs`](mcp:get_api_reference?platform=angular&component=IGridEditDoneEventArgs) | `false` |
+| [`cellEditExit`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=cellEditExit) | Fires when a cell **exits edit mode** | [`IgxIGridEditEventArgs`](mcp:get_api_reference?platform=angular&component=IGridEditEventArgs) | `false` |
+| [`rowEdit`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowEdit) | If `rowEditing` is enabled, fires just before a row in edit mode's value is **committed** (e.g. by clicking the `Done` button on the Row Editing Overlay) | [`IgxIGridEditEventArgs`](mcp:get_api_reference?platform=angular&component=IGridEditEventArgs) | `true` |
+| [`rowEditDone`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowEditDone) | If `rowEditing` is enabled, fires **after** a row has been edited and new row's value has been **committed**. | [`IgxIGridEditEventArgs`](mcp:get_api_reference?platform=angular&component=IGridEditEventArgs) | `false` |
+| [`rowEditExit`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowEditExit) | If `rowEditing` is enabled, fires when a row **exits edit mode** | [`IgxIGridEditEventArgs`](mcp:get_api_reference?platform=angular&component=IGridEditEventArgs) | `false` |
+
### Event cancellation
+
- `RowEditEnter` - Neither Row nor Cell will enter edit mode.
- `CellEditEnter` - Prevents entering cell edit. If [`rowEditable`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=rowEditable) is enabled, row edit will be triggered, although cell edit will remain forbidden.
- `CellEdit` - Allowed Cell/Row edit, hitting **Done** button or **Enter** won't commit the value or row transaction. Cell editing and Row editing won't be closed until **Cancel** button is clicked.
- `RowEdit` - Committing cell is possible, but not the whole row. The row will stay in edit mode and the row transaction will be considered open. Hitting **Done** does not commit or close the row. **Cancel** button closes the editing process and the transaction without committing the changes.
+
The following sample demonstrates the editing execution sequence in action:
+
```typescript
import { Component, ElementRef, Renderer2, ViewChild, inject } from '@angular/core';
import { generateEmployeeFlatData } from '../data/employees-flat';
@@ -247,49 +270,61 @@ export class TGridEditingLifecycleComponent {
margin-bottom: 0.4rem;
}
```
+
### Features integration
+
While a cell/row is in edit mode, a user may interact with the grid in many ways. The following table specifies how a certain interaction affects the current editing:
-| Tree Grid | Filtering | Sorting | Paging | Moving | Pinning | Hiding | GroupBy | Resizing | Escape | Enter | F2 | Tab | Cell Click | Add new row/Delete/Edit |
-| :------------- | :--------: | :------: | :-----: | :-----: | :------: | :-----: | :------: | :-------: | :-----: | :----: | :-: | :--: | :---------: | :----------------------: |
-| Keep edit mode | | | | | | | | ✔ | | | | | | |
-| Exit edit mode | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
-| Commit | | | | | | | | | | ✔ | ✔ | ✔ | ✔ | ✔ |
-| Discard | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | ✔ | | | | | |
+
+| Tree Grid | Filtering | Sorting | Paging | Moving | Pinning | Hiding | GroupBy | Resizing | Escape | Enter | F2 | Tab | Cell Click | Add new row/Delete/Edit |
+| ----------------- |:---------:|:-------:|:------:|:------:|:-------:|:------:|:-------:|:--------:|:------:|:-----:|:--:|:---:|:----------:|:-----------------------:|
+| Keep edit mode | | | | | | | | ✔ | | | | | | |
+| Exit edit mode |✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
+| Commit | | | | | | | | | | ✔ | ✔ | ✔ | ✔ | ✔ |
+| Discard | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |✔ | | ✔ | | | | | |
+
As seen from the table, all interactions, except resizing a column, will end the editing and will discard the new values. Should the new value be committed, this can be done by the developer in the corresponding feature "-ing" event.
+
Example how to commit new values, if user tries to sort the column while a cell/row is in edit mode:
+
```html
...
```
+
```typescript
public onSorting(event: ISortingEventArgs) {
this.grid.endEdit(true);
// (event.owner as IgxGridComponent).endEdit(true);
}
```
+
## API References
-- [IgxGridCell](mcp:get_api_reference?platform=angular&component=IgxGridCell)
-- [IgxTreeGridComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme)
-_ [IgxTreeGridRow](mcp:get_api_reference?platform=angular&component=IgxTreeGridRow)
-- [IgxInputDirective](mcp:get_api_reference?platform=angular&component=IgxInputDirective)
-- [IgxDatePickerComponent](mcp:get_api_reference?platform=angular&component=IgxDatePickerComponent)
-- [IgxDatePickerComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-date-picker-theme)
-- [IgxCheckboxComponent](mcp:get_api_reference?platform=angular&component=IgxCheckboxComponent)
-- [IgxCheckboxComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-checkbox-theme)
-- [IgxOverlay](mcp:get_api_reference?platform=angular&component=OverlaySettings)
-- [IgxOverlay Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-overlay-theme)
+- [`IgxGridCell`](mcp:get_api_reference?platform=angular&component=IgxGridCell)
+- `IgxTreeGridComponent Styles`
+
+_ [`IgxTreeGridRow`](mcp:get_api_reference?platform=angular&component=IgxTreeGridRow)
+
+- [`IgxInputDirective`](mcp:get_api_reference?platform=angular&component=IgxInputDirective)
+- [`IgxDatePicker`](mcp:get_api_reference?platform=angular&component=IgxDatePickerComponent)
+- `IgxDatePickerComponent Styles`
+- [`IgxCheckbox`](mcp:get_api_reference?platform=angular&component=IgxCheckboxComponent)
+- `IgxCheckboxComponent Styles`
+- [`IgxOverlaySettings`](mcp:get_api_reference?platform=angular&component=OverlaySettings)
+- `IgxOverlay Styles`
## Additional Resources
-
-- [Tree Grid overview](tree-grid.md)
+
+- [Tree Grid overview](/treegrid/tree-grid)
- [Build CRUD operations with igxGrid](../general/how-to/how-to-perform-crud.md)
-- [Column Data Types](column-types.md#default-template)
-- [Virtualization and Performance](virtualization.md)
-- [Paging](paging.md)
-- [Filtering](filtering.md)
-- [Sorting](sorting.md)
-- [Summaries](summaries.md)
-- [Column Pinning](column-pinning.md)
-- [Column Resizing](column-resizing.md)
-- [Selection](selection.md)
-* [Searching](search.md)
+- [Column Data Types](/treegrid/column-types#default-template)
+- [Virtualization and Performance](/treegrid/virtualization)
+- [Paging](/treegrid/paging)
+- [Filtering](/treegrid/filtering)
+- [Sorting](/treegrid/sorting)
+- [Summaries](/treegrid/summaries)
+- [Column Pinning](/treegrid/column-pinning)
+- [Column Resizing](/treegrid/column-resizing)
+- [Selection](/treegrid/selection)
+
+- [Searching](/treegrid/search)
+
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-excel-style-filtering.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-excel-style-filtering.md
index 483bbc947..3fb65fb33 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-excel-style-filtering.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-excel-style-filtering.md
@@ -1,15 +1,20 @@
---
title: Excel Style Filtering in Angular Tree Grid - Ignite UI for Angular
-_description: Learn how to configure Excel filtering in Angular Tree Grid. You can enable/disable various options and customize the Excel style filter menu the way you want.
-_keywords: excel like filter, igniteui for angular, infragistics
-_license: commercial
+description: Learn how to configure Excel filtering in Angular Tree Grid. You can enable/disable various options and customize the Excel style filter menu the way you want.
+keywords: excel like filter, igniteui for angular, infragistics
+license: commercial
_canonicalLink: grid/excel-style-filtering
+llms:
+ description: "The grid Excel filtering provides an Excel like filtering UI for any Angular table like the Tree Grid."
_tocName: Excel Style Filtering
_premium: true
---
# Excel Filtering in Angular Tree Grid
+
The grid Excel filtering provides an Excel like filtering UI for any Angular table like the Tree Grid.
+
## Angular Tree Grid Excel Style Filtering Example
+
```typescript
import { Component, HostBinding, OnInit, ViewChild } from '@angular/core';
import { IgxTreeGridComponent } from 'igniteui-angular/grids/tree-grid';
@@ -157,22 +162,32 @@ igx-buttongroup{
width: 500px;
}
```
-
+
## Usage
+
To turn on the grid excel filtering, two inputs should be set. The [`allowFiltering`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=allowFiltering) should be set to `true` and the [`filterMode`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=filterMode) should be set to `excelStyleFilter`.
+
```html
```
+
## Interactions
+
In order to open the filter menu for a particular column, the Angular filter icon in the header should be clicked. Additionally, you can use the `Ctrl + Shift + L` combination on a selected header. If the column can be sorted, pinned, moved, selected or hidden along with the filtering functionality, there will be buttons available for the features that are turned on.
-If no filter is applied, all the items in the list will be selected. They can be filtered from the input above the list. In order to filter the data, you can select/deselect the items in the list and either click the Apply button, or press `Enter`. The filtering applied through the list items creates filter expressions with `equals` operator and the logic operator between the expressions is [`OR`](mcp:get_api_reference?platform=angular&component=FilteringLogic&member=or).
+
+If no filter is applied, all the items in the list will be selected. They can be filtered from the input above the list. In order to filter the data, you can select/deselect the items in the list and either click the Apply button, or press `Enter`. The filtering applied through the list items creates filter expressions with `equals` operator and the logic operator between the expressions is [`IgxFilteringLogic.Or`](mcp:get_api_reference?platform=angular&component=FilteringLogic&member=Or).
+
If you type something in the search box and apply the filter, only the items that match the search criteria will be selected. If you want to add items to the currently filtered ones, however, you should select the option `Add current selection to filter`.
+
If you want to clear the filter, you can check the `Select All` option and then click the Apply button.
+
To apply a filter with different expressions, you can click the **Text filter**, which will open a sub menu with all available filter operators for the particular column. Selecting one of them will open the custom filter dialog, where you can add as many expressions as you want with different filter and logic operators. There is also a clear button, which can clear the filter.
-
+
## Configure Menu Features
+
Sorting, pinning and hiding features can be removed from the filter menu using the corresponding inputs: [`sortable`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=sortable), [`selected`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=selected), [`disablePinning`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=disablePinning), [`disableHiding`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=disableHiding).
+
```html
@@ -191,9 +206,9 @@ Sorting, pinning and hiding features can be removed from the filter menu using t
```
-
+
In the sample below 'Order Product', 'Category' and 'Units' columns have all three features enabled, 'Price' have all three disabled, 'Order Date' and 'Delivered' have only pinning and hiding.
-
+
```typescript
import { Component, OnInit, ViewChild } from '@angular/core';
import { IgxTreeGridComponent } from 'igniteui-angular/grids/tree-grid';
@@ -299,13 +314,18 @@ export class TreeGridExcelStyleFilteringSample2Component implements OnInit {
justify-content: space-between;
}
```
-
+
## Templates
+
If you want to further customize the Excel style filter menu without disabling the column features you could use custom templates. The Excel Style filter menu provides two directives for templating:
+
- `IgxExcelStyleColumnOperationsTemplateDirective` - re-templates the area with all column operations like sorting, pinning, etc.
- `IgxExcelStyleFilterOperationsTemplateDirective` - re-templates the area with all filter specific operations.
+
You could either re-template only one of those areas or both of them. You could put any custom content inside those directives or you could use any of our built-in Excel style filtering components.
-The following code demonstrates how to define a custom Excel style filter menu using the [`igx-excel-style-header`](mcp:get_api_reference?platform=angular&component=IgxExcelStyleHeaderComponent), [`igx-excel-style-sorting`](mcp:get_api_reference?platform=angular&component=IgxExcelStyleSortingComponent) and [`igx-excel-style-search`](mcp:get_api_reference?platform=angular&component=IgxExcelStyleSearchComponent) components.
+
+The following code demonstrates how to define a custom Excel style filter menu using the [`IgxExcelStyleHeader`](mcp:get_api_reference?platform=angular&component=IgxExcelStyleHeaderComponent), [`IgxExcelStyleSorting`](mcp:get_api_reference?platform=angular&component=IgxExcelStyleSortingComponent) and [`IgxExcelStyleSearch`](mcp:get_api_reference?platform=angular&component=IgxExcelStyleSearchComponent) components.
+
```html
@@ -329,7 +349,9 @@ The following code demonstrates how to define a custom Excel style filter menu u
...
```
+
You could also re-template the Excel style filtering icon in the column header using the `igxExcelStyleHeaderIcon` directive:
+
```html
@@ -337,7 +359,7 @@ You could also re-template the Excel style filtering icon in the column header u
```
-
+
```typescript
import { Component, OnInit, ViewChild } from '@angular/core';
import { IgxTreeGridComponent } from 'igniteui-angular/grids/tree-grid';
@@ -464,21 +486,29 @@ export class TreeGridExcelStyleFilteringSample3Component implements OnInit {
justify-content: space-between;
}
```
+
Here is the full list of Excel style filtering components that you could use:
-- [`igx-excel-style-header`](mcp:get_api_reference?platform=angular&component=IgxExcelStyleHeaderComponent)
-- [`igx-excel-style-sorting`](mcp:get_api_reference?platform=angular&component=IgxExcelStyleSortingComponent)
-- [`igx-excel-style-moving`](mcp:get_api_reference?platform=angular&component=IgxExcelStyleMovingComponent)
-- [`igx-excel-style-pinning`](mcp:get_api_reference?platform=angular&component=IgxExcelStylePinningComponent)
-- [`igx-excel-style-hiding`](mcp:get_api_reference?platform=angular&component=IgxExcelStyleHidingComponent)
-- [`igx-excel-style-selecting`](mcp:get_api_reference?platform=angular&component=IgxExcelStyleSelectingComponent)
-- [`igx-excel-style-clear-filters`](mcp:get_api_reference?platform=angular&component=IgxExcelStyleClearFiltersComponent)
-- [`igx-excel-style-conditional-filter`](mcp:get_api_reference?platform=angular&component=IgxExcelStyleConditionalFilterComponent)
-- [`igx-excel-style-search`](mcp:get_api_reference?platform=angular&component=IgxExcelStyleSearchComponent)
-
+
+- [`IgxExcelStyleHeader`](mcp:get_api_reference?platform=angular&component=IgxExcelStyleHeaderComponent)
+- [`IgxExcelStyleSorting`](mcp:get_api_reference?platform=angular&component=IgxExcelStyleSortingComponent)
+- [`IgxExcelStyleMoving`](mcp:get_api_reference?platform=angular&component=IgxExcelStyleMovingComponent)
+- [`IgxExcelStylePinning`](mcp:get_api_reference?platform=angular&component=IgxExcelStylePinningComponent)
+- [`IgxExcelStyleHiding`](mcp:get_api_reference?platform=angular&component=IgxExcelStyleHidingComponent)
+- [`IgxExcelStyleSelecting`](mcp:get_api_reference?platform=angular&component=IgxExcelStyleSelectingComponent)
+- [`IgxExcelStyleClearFilters`](mcp:get_api_reference?platform=angular&component=IgxExcelStyleClearFiltersComponent)
+- [`IgxExcelStyleConditionalFilter`](mcp:get_api_reference?platform=angular&component=IgxExcelStyleConditionalFilterComponent)
+- [`IgxExcelStyleSearch`](mcp:get_api_reference?platform=angular&component=IgxExcelStyleSearchComponent)
+
## Unique Column Values Strategy
-The list items inside the Excel Style Filtering dialog represent the unique values for the respective column. These values can be provided manually and loaded on demand, which is demonstrated in the [`Tree Grid Remote Data Operations`](remote-data-operations.md#unique-column-values-strategy) topic.
+
+The list items inside the Excel Style Filtering dialog represent the unique values for the respective column.
+
+These values can be provided manually and loaded on demand, which is demonstrated in the [`Tree Grid Remote Data Operations`](/treegrid/remote-data-operations#unique-column-values-strategy) topic.
+
## Formatted Values Filtering Strategy
-By default, the Tree Grid component filters the data based on the original cell values, however in some cases you may want to filter the data based on the formatted values. @@if (igxName === 'IgxGrid' || igxName === 'IgxHierarchicalGrid') { In order to do that you can use the [`FormattedValuesFilteringStrategy`](mcp:get_api_reference?platform=angular&component=FormattedValuesFilteringStrategy). } In order to do that you can use the [`TreeGridFormattedValuesFilteringStrategy`](mcp:get_api_reference?platform=angular&component=TreeGridFormattedValuesFilteringStrategy). The following sample demonstrates how to format the numeric values of a column as strings and filter the Tree Grid based on the string values:
+
+By default, the Tree Grid component filters the data based on the original cell values, however in some cases you may want to filter the data based on the formatted values. In order to do that you can use the [`IgxTreeGridFormattedValuesFilteringStrategy`](mcp:get_api_reference?platform=angular&component=TreeGridFormattedValuesFilteringStrategy). The following sample demonstrates how to format the numeric values of a column as strings and filter the Tree Grid based on the string values:
+
```typescript
import { Component, OnInit, ViewChild } from '@angular/core';
import { IgxTreeGridComponent } from 'igniteui-angular/grids/tree-grid';
@@ -549,10 +579,14 @@ export class TreeGridFormattedFilteringStrategyComponent implements OnInit {
margin: 16px;
}
```
->[!NOTE]
->The formatted values filtering strategy won't work correctly if you have more than one column bound to the same field from your data and one of the columns has a formatter.
+
+**Note:**
+The formatted values filtering strategy won't work correctly if you have more than one column bound to the same field from your data and one of the columns has a formatter.
+
## Tree Filter View
-By default, the Excel Style Filtering dialog displays the items in a list view. In order to display them in a tree view you can use the [`TreeGridFilteringStrategy`](mcp:get_api_reference?platform=angular&component=TreeGridFilteringStrategy) and specify an array of column field names. Filter items will be displayed in a tree view for the specified columns and in a list view for all other columns. The following sample demonstrates how to show filter items in a tree view for the first column:
+
+By default, the Excel Style Filtering dialog displays the items in a list view. In order to display them in a tree view you can use the [`IgxTreeGridFilteringStrategy`](mcp:get_api_reference?platform=angular&component=TreeGridFilteringStrategy) and specify an array of column field names. Filter items will be displayed in a tree view for the specified columns and in a list view for all other columns. The following sample demonstrates how to show filter items in a tree view for the first column:
+
```typescript
import { ChangeDetectionStrategy, Component, OnInit, ViewChild } from '@angular/core';
import { IgxTreeGridComponent } from 'igniteui-angular/grids/tree-grid';
@@ -643,9 +677,13 @@ export class TreeGridTreeFilterViewComponent implements OnInit {
column-gap: 16px;
}
```
+
## External Excel Style filtering
+
As you see at the demos above the default appearance of the Excel Style filtering dialog is inside the Tree Grid. So this dialog is only visible when configuring the filters. There is a way to make that dialog stay always visible - it can be used outside of the grid as a standalone component. In the demo below, the Excel style filtering is declared separately of the Tree Grid.
+
### Demo
+
```typescript
import { Component, ViewChild, OnInit } from '@angular/core';
import { ORDERS_DATA } from '../data/orders';
@@ -744,9 +782,11 @@ export class TreeGridExternalExcelStyleFilteringComponent implements OnInit {
margin-left: 1px;
}
```
-
+
### Usage
-In order to configure the Excel style filtering component, you should set its [`column`](mcp:get_api_reference?platform=angular&component=IgxGridExcelStyleFilteringComponent&member=column) property to one of the Tree Grid's columns. In the sample above, we have bound the [`column`](mcp:get_api_reference?platform=angular&component=IgxGridExcelStyleFilteringComponent&member=column) property to the value of an IgxSelectComponent that displays the Tree Grid's columns.
+
+In order to configure the Excel style filtering component, you should set its [`column`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent) property to one of the Tree Grid's columns. In the sample above, we have bound the [`column`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent) property to the value of an IgxSelectComponent that displays the Tree Grid's columns.
+
```html
@@ -754,13 +794,18 @@ In order to configure the Excel style filtering component, you should set its [`
{{ c.field }}
+
```
+
## External Outlet
+
The Tree Grid's [`z-index`](https://developer.mozilla.org/en-US/docs/Web/CSS/z-index) creates separate stacking context for each grid in the DOM. This ensures that all descendant elements of the grid will render as intended, without overlapping one another.
However, elements that go outside of the grid (e.g. Excel Style filter) will conflict with outside elements with the same `z-index` (e.g. having two grids one under another) resulting in false rendering. The solution for this issue is to set the [`outlet`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=outlet) property to an external outlet directive which allows the overlay elements to always appear on top.
+
### Demo
+
```typescript
import { Component, OnInit } from '@angular/core';
import { ORDERS_DATA } from '../data/orders';
@@ -877,105 +922,66 @@ export class TreeGridExternalOutletComponent implements OnInit {
padding-top: 10px;
}
```
+
## Styling
-To get started with styling the Excel Style Filtering dialog, we need to import the `index` file, where all the theme functions and component mixins live:
+
+To get started with styling the Excel Style Filtering dialog, we need to import the `index` file, where all the theme functions and the `tokens()` mixin are exported:
+
```scss
@use "igniteui-angular/theming" as *;
+
// IMPORTANT: Prior to Ignite UI for Angular version 13 use:
// @import '~igniteui-angular/lib/core/styles/themes/index';
```
-The Excel Style Filtering dialog takes its background color from the grid's theme, using the `filtering-row-background` parameter. Additionally, there are specific Excel Style Filtering parameters available for customizing the text color of elements within the dialog. To change the overall style of the dialog, you need to create a custom theme.
+
+There are a couple of ways to style the Excel Style Filtering dialog. It can be styled using the `grid-theme`. The Excel Style Filtering dialog inherits the `$background`, `$foreground`, and `$accent-color` values defined in the `grid-theme`. It also provides dedicated parameters for customizing the dialog’s text colors.
+
+Alternatively, you can use the dedicated `excel-filtering-theme`, which allows you to fully style only the Excel Style Filtering dialog.
+
+The simplest approach is to use the `grid-theme`:
+
```scss
+$background: #292826;
+$foreground: #eeece1;
+$accent: #ffcd0f;
+
$custom-grid: grid-theme(
- $filtering-row-background: #ffcd0f,
- $excel-filtering-header-foreground: #292826,
- $excel-filtering-subheader-foreground: #292826,
- $excel-filtering-actions-foreground: #006400,
- $excel-filtering-actions-hover-foreground: #ffcd0f,
- $excel-filtering-actions-disabled-foreground: #9e9e9e
-);
-```
-We obviously have a lot more components inside the excel like filtering dialog, such as buttons, checkboxes, a list and even a drop-down. In order to style them, we need to create a separate theme for each one:
-```scss
-$custom-button: contained-button-theme(
- $background: #ffcd0f,
- $foreground: #292826,
- $hover-background: #292826,
- $hover-foreground: #ffcd0f
-);
-$flat-custom-button: flat-button-theme(
- $foreground: #ffcd0f,
-);
-$custom-checkbox: checkbox-theme(
- $empty-color: #292826,
- $fill-color: #292826,
- $tick-color: #ffcd0f,
- $label-color: #292826
-);
-$custom-drop-down: drop-down-theme(
- $background-color: #ffcd0f,
- $item-text-color: #292826,
- $hover-item-background: #292826,
- $hover-item-text-color: #ffcd0f
-);
-$custom-input-group: input-group-theme(
- $box-background: #ffcd0f,
- $idle-text-color: #292826,
- $focused-text-color: #292826,
- $filled-text-color: #292826
-);
-$custom-list: list-theme(
- $background: #ffcd0f
+ $background: $background,
+ $foreground: $foreground,
+ $accent-color: $accent,
);
```
->[!NOTE]
->Instead of hardcoding the color values like we just did, we can achieve greater flexibility in terms of colors by using the [`palette`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/palettes#function-palette) and [`color`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/palettes#function-color) functions. Please refer to [`Palettes`](../themes/sass/palettes.md) topic for detailed guidance on how to use them.
-In this example we only changed some of the parameters for the listed components, but the [`button-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-button-theme), [`checkbox-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-checkbox-theme), [`drop-down-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-drop-down-theme), [`input-group-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-input-group-theme), [`list-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-list-theme) themes provide way more parameters to control their respective styling.
-The last step is to **include** each component’s custom theme. We will also set the color property for the input's placeholder.
+
+The background and foreground colors of the Excel Style Filtering dialog are inherited from the grid theme. Additionally, all nested components, such as buttons and checkboxes, inherit the accent color from the grid theme.
+
+After that, we are ready to include our newly created grid theme. If we want to make additional style changes specific to the Excel Style Filtering dialog, we can target it directly:
+
```scss
:host {
@include tokens($custom-grid);
- @include tokens($custom-drop-down);
-
- .igx-excel-filter,
- .igx-excel-filter__secondary {
- @include tokens($custom-button);
- @include tokens($custom-checkbox);
- @include tokens($custom-input-group);
- @include tokens($custom-list);
- .igx-input-group__input::placeholder {
- color: #ffcd0f;
- }
+ igx-grid-excel-style-filtering {
+ --ig-excel-filtering-background: #444;
}
}
```
->[!NOTE]
->We scope most of the components' mixins within `.igx-excel-filter` and `.igx-excel-filter__secondary`, so that these custom themes will affect only components nested in the excel style filtering dialog and all of its sub-dialogs. Otherwise other buttons, checkboxes, input-groups and lists would be affected too.
->[!NOTE]
->If the component is using an [`Emulated`](../themes/sass/component-themes.md#view-encapsulation) ViewEncapsulation, it is necessary to `penetrate` this encapsulation using `::ng-deep`:
+
+**Note:**
+This sample uses `::ng-deep` because both the generated theme selectors and the direct Excel Filtering selector must reach elements inside the grid's view. Moving the overrides to a global stylesheet is an alternative.
+
+
```scss
-:host {
- ::ng-deep {
+:host ::ng-deep {
@include tokens($custom-grid);
- @include tokens($custom-drop-down);
-
- .igx-excel-filter,
- .igx-excel-filter__secondary {
- @include tokens($custom-button);
- @include tokens($flat-custom-button);
- @include tokens($custom-checkbox);
- @include tokens($custom-input-group);
- @include tokens($custom-list);
-
- .igx-input-group__input::placeholder {
- color: #ffcd0f;
- }
+
+ igx-grid-excel-style-filtering {
+ --ig-excel-filtering-background: #444;
}
- }
}
```
+
### Demo
+
```typescript
import { Component, OnInit, ViewChild } from '@angular/core';
import { IgxTreeGridComponent } from 'igniteui-angular/grids/tree-grid';
@@ -1077,26 +1083,29 @@ $custom-grid: grid-theme(
}
}
```
->[!NOTE]
->The sample will not be affected by the selected global theme from `Change Theme`.
-
+
+**Note:**
+The sample will not be affected by the selected global theme from `Change Theme`.
+
## API References
-
-- [IgxColumnComponent](mcp:get_api_reference?platform=angular&component=IgxColumnComponent)
-- [IgxTreeGridComponent API](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
-- [IgxTreeGridComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme)
+- [`IgxColumn`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent)
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+- `IgxTreeGridComponent Styles`
+- `Excel Filtering Theme`
## Additional Resources
-
-- [Tree Grid overview](tree-grid.md)
-- [Virtualization and Performance](virtualization.md)
-- [Paging](paging.md)
-- [Sorting](sorting.md)
-- [Summaries](summaries.md)
-- [Column Moving](column-moving.md)
-- [Column Pinning](column-pinning.md)
-- [Column Resizing](column-resizing.md)
-- [Selection](selection.md)
-
+
+- [Tree Grid overview](/treegrid/tree-grid)
+- [Paging](/treegrid/paging)
+
+- [Virtualization and Performance](/treegrid/virtualization)
+- [Sorting](/treegrid/sorting)
+- [Summaries](/treegrid/summaries)
+- [Column Moving](/treegrid/column-moving)
+- [Column Pinning](/treegrid/column-pinning)
+- [Column Resizing](/treegrid/column-resizing)
+- [Selection](/treegrid/selection)
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-export-excel.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-export-excel.md
index 8d0d64245..3831c260b 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-export-excel.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-export-excel.md
@@ -1,27 +1,29 @@
---
title: Angular Tree Grid Export to Excel and PDF - Ignite UI for Angular
-_description: With Ignite UI Excel and PDF Exporters you can make client exports more convenient & simpler. These formats allow features like filtering, sorting, etc
-_keywords: data export, ignite ui for angular, infragistics
-_license: commercial
+description: With Ignite UI Excel and PDF Exporters you can make client exports more convenient & simpler. These formats allow features like filtering, sorting, etc
+keywords: data export, ignite ui for angular, infragistics
+license: commercial
_canonicalLink: grid/export-excel
+llms:
+ description: "Whether your audience needs a spreadsheet for deeper analysis or a polished PDF they can share right away, the Ignite UI exporters help you deliver the right file from the IgxTreeGrid in seconds."
_tocName: Export services
_premium: true
---
# Angular Tree Grid Export to Excel and PDF Service
-@@if (igxName === 'IgxGrid' || igxName === 'IgxTreeGrid') {
+
+
Whether your audience needs a spreadsheet for deeper analysis or a polished PDF they can share right away, the Ignite UI exporters help you deliver the right file from the IgxTreeGrid in seconds. Inject the [`IgxExcelExporterService`](mcp:get_api_reference?platform=angular&component=IgxExcelExporterService) or [`IgxPdfExporterService`](mcp:get_api_reference?platform=angular&component=IgxPdfExporterService), call the respective [`export`](mcp:get_api_reference?platform=angular&component=IgxExcelExporterService&member=export)/[`export`](mcp:get_api_reference?platform=angular&component=IgxPdfExporterService&member=export) method, and the component handles the rest—from honoring filters and sorting to shaping the output format.
-The Ignite UI Excel and PDF Exporter services treat the IgxTreeGrid exactly like your users see it on screen—complete with hierarchical layouts and summaries. Inject the [`IgxExcelExporterService`](mcp:get_api_reference?platform=angular&component=IgxExcelExporterService) or [`IgxPdfExporterService`](mcp:get_api_reference?platform=angular&component=IgxPdfExporterService), call the appropriate [`export`](mcp:get_api_reference?platform=angular&component=IgxExcelExporterService&member=export)/[`export`](mcp:get_api_reference?platform=angular&component=IgxPdfExporterService&member=export) method, and let the service generate the final document.
-
-}
+
The sections below walk through setup, usage patterns, and tips for tailoring each export so that your users receive data that is ready to consume, no matter which file type they prefer.
-
+
+
+
## Angular Excel Exporter Example
+
This live example demonstrates the standard Excel and PDF export workflow for the Tree Grid—bound data, two export buttons (Excel and PDF), and the resulting `.xlsx` and `.pdf` files with preserved filtering and sorting state. Share it with stakeholders who want to preview the experience before wiring it into their application.
+
```typescript
import { Component, OnInit, ViewChild } from '@angular/core';
import { IgxTreeGridComponent } from 'igniteui-angular/grids/tree-grid';
@@ -122,225 +124,82 @@ export class TreeGridExcelExportSample1Component implements OnInit {
margin-top: 5px;
}
```
-
+
## Exporting Tree Grid's Data
+
Getting the exporters into your project takes only a few lines of code. Follow these steps and you will have reusable services that can create either Excel or PDF outputs on demand:
+
1. Import the [`IgxExcelExporterService`](mcp:get_api_reference?platform=angular&component=IgxExcelExporterService) and/or [`IgxPdfExporterService`](mcp:get_api_reference?platform=angular&component=IgxPdfExporterService) in your root module.
2. Inject whichever exporter you need and call its `export` method when the user requests a file.
+
```typescript
// component.ts
import { IgxExcelExporterService, IgxPdfExporterService } from 'igniteui-angular/grids/core';
// import { IgxExcelExporterService, IgxPdfExporterService } from '@infragistics/igniteui-angular/grids/core'; for licensed package
+
...
+
private excelExportService = inject(IgxExcelExporterService);
private pdfExportService = inject(IgxPdfExporterService);
+
```
-> [!Note]
-> In v12.2.1 and later, `IgxExcelExporterService` is provided in root and does not need to be registered in the `providers` array. The PDF exporter was introduced in later versions and is available as an injectable service without any additional configuration.
+
+**Note:**
+In v12.2.1 and later, `IgxExcelExporterService` is provided in root and does not need to be registered in the `providers` array. The PDF exporter was introduced in later versions and is available as an injectable service without any additional configuration.
+
To initiate an export process you may use the handler of a button in your component's template.
+
```html
Export IgxTreeGrid to ExcelExport IgxTreeGrid to PDF
```
+
You may access either exporter service by defining it as a constructor dependency and letting Angular provide an instance. Calling the shared [`export`](mcp:get_api_reference?platform=angular&component=IgxExcelExporterService&member=export) method initiates the download while automatically respecting the component state, selected rows, and formatting rules.
+
Here is the code which will execute both export processes in the component's typescript file:
+
```typescript
// component.ts
import { IgxExcelExporterService, IgxExcelExporterOptions, IgxPdfExporterService, IgxPdfExporterOptions } from 'igniteui-angular/grids/core';
import { IgxTreeGridComponent } from 'igniteui-angular/grids/tree-grid';
+
@ViewChild('treeGrid') public treeGrid: IgxTreeGridComponent;
+
private excelExportService = inject(IgxExcelExporterService);
private pdfExportService = inject(IgxPdfExporterService);
+
public exportButtonHandler() {
this.excelExportService.export(this.treeGrid, new IgxExcelExporterOptions('ExportedDataFile'));
}
+
public exportPdfButtonHandler() {
this.pdfExportService.export(this.treeGrid, new IgxPdfExporterOptions('ExportedDataFile'));
}
```
+
Once wired up, pressing the respective buttons downloads files named `ExportedDataFile.xlsx` or `ExportedDataFile.pdf` populated with the current Tree Grid view. You can swap in customer-friendly file names, append timestamps, or surface a success toast so users know their export has completed.
+
## Export All Data
+
Large, remote datasets often load page-by-page or on demand, which means the Tree Grid might not have every record available when the user clicks **Export**. To guarantee a complete workbook, hydrate the exporter with the full data collection before starting the process. The `exportData` helper bypasses the component and works directly against plain objects, so you can reuse the same routine for scheduled exports or admin-only downloads.
+
```ts
public exportButtonHandler() {
this.excelExportService.exportData(this.localData, new IgxExcelExporterOptions('ExportedDataFile'));
}
```
-> [!TIP]
-> When offering PDF downloads for remote data, consider fetching the complete dataset first and then calling `export` so the document mirrors the user's expectations.
-@@if (igxName === 'IgxGrid') {
-## Export Grouped Data
-Grouping is a popular way to summarize customer segments, product categories, or financial periods before sharing the results. The exporter preserves the exact grouping hierarchy that is currently applied to the Tree Grid, so your recipients see the same breakdown you do in the browser. Simply group by one or more columns and trigger the export—no extra configuration is required.
-If you need flat data in the exported file, clear the grouping prior to calling `export` or handle the `rowExporting` event to reshape the output.
-Example:
-```typescript
-import { Component, OnInit, ViewChild, inject } from '@angular/core';
-import { GridColumnDataType, ISortingExpression, SortingDirection } from 'igniteui-angular/core';
-import { IgxGridComponent } from 'igniteui-angular/grids/grid';
-import { IgxColumnComponent, IgxGridToolbarActionsComponent, IgxGridToolbarComponent, IgxGridToolbarExporterComponent, IgxExcelExporterService } from 'igniteui-angular/grids/core';
-import { INVOICE_DATA } from '../data/invoiceData';
-
-
-@Component({
- selector: 'app-excel-export-sample-1',
- styleUrls: ['./excel-export-sample-1.component.scss'],
- templateUrl: './excel-export-sample-1.component.html',
- imports: [IgxGridComponent, IgxGridToolbarComponent, IgxGridToolbarActionsComponent, IgxGridToolbarExporterComponent, IgxColumnComponent]
-})
-export class ExcelExportSample1Component implements OnInit {
- private excelExportService = inject(IgxExcelExporterService);
-
- @ViewChild('igxGrid1', { static: true }) public igxGrid1: IgxGridComponent;
-
- public data = [];
- public groupExpressions: ISortingExpression[];
- public columns: { dataType: GridColumnDataType, field: string, width: string, groupable: boolean, hidden?: boolean }[] = [
- { dataType: GridColumnDataType.String, field: 'ShipCountry', width: '150', groupable: true },
- { dataType: GridColumnDataType.String, field: 'ShipCity', width: '150', groupable: true },
- { dataType: GridColumnDataType.String, field: 'ShipAddress', width: '150', groupable: true},
- { dataType: GridColumnDataType.String, field: 'PostalCode', width: '150', groupable: true },
- { dataType: GridColumnDataType.Date, field: 'OrderDate', width: '150', groupable: true },
- { dataType: GridColumnDataType.Number, field: 'Quantity', width: '150', groupable: true }
- ];
-
- public ngOnInit(): void {
- this.data = INVOICE_DATA;
- this.groupExpressions = [
- { dir: SortingDirection.Asc, fieldName: 'ShipCountry' },
- { dir: SortingDirection.Asc, fieldName: 'ShipCity' }
- ];
- }
-
- /*
- The following code demonstrates how to attach event handlers to exporter specific events
- and also how to customize the column export process.
- this.excelExportService.columnExporting.subscribe((args: IColumnExportingEventArgs) => {
- if (args.header == 'Age' && args.columnIndex == 1) {
- args.cancel = true;
- }
- });
- this.excelExportService.rowExporting.subscribe((args: IRowExportingEventArgs) => {
- });
- this.excelExportService.exportEnded.subscribe((args: IExcelExportEndedEventArgs) => {
- });
- */
-}
-```
-```html
-
-```
-```scss
-.grid__wrapper {
- padding-top: 16px;
- width: 98% !important;
- margin: 0 auto;
- padding-left: 1%;
- padding-right: 1%;
-}
+**Tip:**
+When offering PDF downloads for remote data, consider fetching the complete dataset first and then calling `export` so the document mirrors the user's expectations.
-.exportButton {
- margin-top: 5px;
-}
-```
-}
## Export Multi Column Headers Grid
-Dashboards often rely on [multi-column headers](multi-column-headers.md) to add context—think of a "Q1/Q2/Q3" band above individual month columns. The exporter mirrors this structure so spreadsheet users immediately understand the grouping logic. If your downstream workflow prefers simple column names, flip the [exporter option](mcp:get_api_reference?platform=angular&component=IgxExporterOptionsBase) [ignoreMultiColumnHeaders](mcp:get_api_reference?platform=angular&component=IgxExporterOptionsBase&member=ignoremulticolumnheaders) flag to `true` and the output will include only the leaf headers.
-> [!NOTE]
-> The exported Tree Grid will not be formatted as a table, since Excel tables do not support multiple row headers.
-@@if (igxName === 'IgxHierarchicalGrid') {
-> [!NOTE]
-> The exported expansion state of the multi-column headers in the row islands will always be in its initial state.
-}
-@@if (igxName === 'IgxGrid') {
-```typescript
-import { Component, ViewChild } from '@angular/core';
-import { IgxColumnComponent, IgxColumnGroupComponent, IgxExporterEvent, IgxGridToolbarActionsComponent, IgxGridToolbarComponent, IgxGridToolbarExporterComponent, IgxGridToolbarHidingComponent, IgxGridToolbarPinningComponent } from 'igniteui-angular/grids/core';
-import { IgxGridComponent } from 'igniteui-angular/grids/grid';
-import { IgxSwitchComponent } from 'igniteui-angular/switch';
-import { DATA } from '../../data/customers';
-import { IgxPreventDocumentScrollDirective } from '../../directives/prevent-scroll.directive';
-import { FormsModule } from '@angular/forms';
-@Component({
- selector: 'app-multi-column-headers-export',
- styleUrls: ['multi-column-headers-export.component.scss'],
- templateUrl: 'multi-column-headers-export.component.html',
- imports: [IgxGridComponent, IgxPreventDocumentScrollDirective, IgxGridToolbarComponent, IgxGridToolbarActionsComponent, IgxSwitchComponent, FormsModule, IgxGridToolbarPinningComponent, IgxGridToolbarHidingComponent, IgxGridToolbarExporterComponent, IgxColumnComponent, IgxColumnGroupComponent]
-})
-export class GridMultiColumnHeadersExportComponent {
-
- @ViewChild(IgxGridComponent, { read: IgxGridComponent, static: true })
- public grid: IgxGridComponent;
- public data = DATA;
- public exportHeaders = true;
+Dashboards often rely on [multi-column headers](/treegrid/multi-column-headers) to add context—think of a "Q1/Q2/Q3" band above individual month columns. The exporter mirrors this structure so spreadsheet users immediately understand the grouping logic. If your downstream workflow prefers simple column names, flip the [`exporter option`](mcp:get_api_reference?platform=angular&component=IGridToolbarExportEventArgs) [`ignoreMultiColumnHeaders`](mcp:get_api_reference?platform=angular&component=IgxExcelExporterOptions&member=ignoremulticolumnheaders) flag to `true` and the output will include only the leaf headers.
- public exportStarted(args: IgxExporterEvent) {
- args.options.ignoreMultiColumnHeaders = !this.exportHeaders;
- }
-}
-```
-```html
-
-
-
-
- Export multi-column headers
-
-
-
-
-
-
+**Note:**
+The exported Tree Grid will not be formatted as a table, since Excel tables do not support multiple row headers.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
-```scss
-.grid__wrapper {
- --ig-size: var(--ig-size-small);
- margin: 15px;
-}
-```
-}
-@@if (igxName === 'IgxTreeGrid') {
```typescript
import { Component } from '@angular/core';
import { GridSelectionMode, IgxColumnComponent, IgxColumnGroupComponent, IgxExporterEvent, IgxGridToolbarActionsComponent, IgxGridToolbarComponent, IgxGridToolbarExporterComponent, IgxGridToolbarHidingComponent, IgxGridToolbarPinningComponent } from 'igniteui-angular/grids/core';
@@ -409,123 +268,11 @@ export class TreeGridMultiColumnHeadersExportComponent {
margin: 15px;
}
```
-}
-@@if (igxName === 'IgxHierarchicalGrid') {
-```typescript
-import { Component, OnInit } from '@angular/core';
-import { IgxColumnComponent, IgxColumnGroupComponent, IgxExporterEvent, IgxGridToolbarActionsComponent, IgxGridToolbarComponent, IgxGridToolbarExporterComponent, IgxGridToolbarHidingComponent, IgxGridToolbarPinningComponent } from 'igniteui-angular/grids/core';
-import { IgxHierarchicalGridComponent, IgxRowIslandComponent } from 'igniteui-angular/grids/hierarchical-grid';
-import { IgxSwitchComponent } from 'igniteui-angular/switch';
-import { HIERARCHICAL_DATA } from '../../data/hierarchical-data';
-import { IgxPreventDocumentScrollDirective } from '../../directives/prevent-scroll.directive';
-import { FormsModule } from '@angular/forms';
-@Component({
- selector: 'app-hierarchical-grid-multi-column-export',
- styleUrls: ['./hierarchical-grid-multi-column-export.component.scss'],
- templateUrl: 'hierarchical-grid-multi-column-export.component.html',
- imports: [IgxHierarchicalGridComponent, IgxPreventDocumentScrollDirective, IgxGridToolbarComponent, IgxGridToolbarActionsComponent, IgxSwitchComponent, FormsModule, IgxGridToolbarPinningComponent, IgxGridToolbarHidingComponent, IgxGridToolbarExporterComponent, IgxColumnGroupComponent, IgxColumnComponent, IgxRowIslandComponent]
-})
-
-export class HGridMultiColumnHeadersExportComponent implements OnInit {
- public localdata = [];
- public exportHeaders = true;
-
- public exportStarted(args: IgxExporterEvent) {
- args.options.ignoreMultiColumnHeaders = !this.exportHeaders;
- }
+## Export Grid with Frozen Column Headers
- public ngOnInit(): void {
- this.localdata = HIERARCHICAL_DATA;
- }
-}
-```
-```html
-
-
-
-
- Export multi-column headers
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+Long sheets can become hard to read once the header row scrolls out of view. Enabling frozen headers keeps key context—like "Customer" or "Invoice Total"—visible at the top of the worksheet while your users explore the data further down. Toggle the [`exporter option`](mcp:get_api_reference?platform=angular&component=IGridToolbarExportEventArgs) [`freezeHeaders`](mcp:get_api_reference?platform=angular&component=IgxExcelExporterOptions&member=freezeHeaders) flag to `true` before calling `export` and the service will handle the rest.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
-```scss
-.grid__wrapper {
- --ig-size: var(--ig-size-small);
- margin: 16px;
-}
-```
-}
-## Export Grid with Frozen Column Headers
-Long sheets can become hard to read once the header row scrolls out of view. Enabling frozen headers keeps key context—like "Customer" or "Invoice Total"—visible at the top of the worksheet while your users explore the data further down. Toggle the [exporter option](mcp:get_api_reference?platform=angular&component=IgxExporterOptionsBase) [freezeHeaders](mcp:get_api_reference?platform=angular&component=IgxExporterOptionsBase&member=freezeHeaders) flag to `true` before calling `export` and the service will handle the rest.
```typescript
public exportButtonHandler() {
const exporterOptions = new IgxExcelExporterOptions('ExportedDataFile');
@@ -533,12 +280,18 @@ public exportButtonHandler() {
this.excelExportService.export(this.grid, exporterOptions);
}
```
+
PDF exports automatically include the column header row at the top of the document, so readers retain the same context when they open or print the file.
+
## Customizing the Exported Content
+
Most teams tailor exports before sharing them: hiding internal-use columns, renaming headers, or skipping rows that only apply to administrators. Both exporter services expose events that let you intercept every row or column and decide how it should appear in the file. Subscribe to [`columnExporting`](mcp:get_api_reference?platform=angular&component=IgxExcelExporterService&member=columnexporting) and [`rowExporting`](mcp:get_api_reference?platform=angular&component=IgxExcelExporterService&member=rowexporting) to make last-minute adjustments—set `cancel = true` to omit an item or tweak the event arguments to update values on the fly.
+
The following example will exclude a column from the export if its header is "Age" and if its index is 1:
+
```typescript
// component.ts
+
this.excelExportService.columnExporting.subscribe((args: IColumnExportingEventArgs) => {
if (args.header == 'Age' && args.columnIndex == 1) {
args.cancel = true;
@@ -546,27 +299,33 @@ this.excelExportService.columnExporting.subscribe((args: IColumnExportingEventAr
});
this.excelExportService.export(this.treeGrid, new IgxExcelExporterOptions('ExportedDataFile'));
```
+
When you are exporting data from the Tree Grid component, the services automatically respect sorting, filtering, summaries, and hidden columns so the file reflects what the user currently sees. Need the full dataset instead? Toggle the relevant flags on [`IgxExcelExporterOptions`](mcp:get_api_reference?platform=angular&component=IgxExcelExporterOptions) or [`IgxPdfExporterOptions`](mcp:get_api_reference?platform=angular&component=IgxPdfExporterOptions) to include filtered rows, hidden columns, or custom metadata.
+
## Known Limitations
+
Before shipping exports to production users, review the following platform constraints so you can set expectations and provide helpful guidance within your app.
-| Limitation | Description |
-| :----------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| Hierarchy levels | The exporter supports up to 8 levels of hierarchy. If you need deeper structures, flatten the data or export subsets to keep the file readable. |
-| Max worksheet size | The maximum worksheet size supported by Excel is 1,048,576 rows by 16,384 columns. Consider slicing extremely large exports by date range or segment to stay within these limits. |
-| Cell Styling | The Excel exporter service does not support exporting a custom style applied directly to a cell component. In such scenarios we recommend using the richer [Excel Library](../excel-library.md) for fine-grained formatting. |
-| Wide PDF layouts | Very wide grids can force PDF columns to shrink to fit the page. Apply column widths or hide low-priority fields before exporting to keep the document legible. |
+
+|Limitation|Description|
+|--- |--- |
+|Hierarchy levels|The exporter supports up to 8 levels of hierarchy. If you need deeper structures, flatten the data or export subsets to keep the file readable.|
+|Max worksheet size|The maximum worksheet size supported by Excel is 1,048,576 rows by 16,384 columns. Consider slicing extremely large exports by date range or segment to stay within these limits.|
+|Cell Styling|The Excel exporter service does not support exporting a custom style applied directly to a cell component. In such scenarios we recommend using the richer [Excel Library](/excel-library) for fine-grained formatting.|
+|Wide PDF layouts|Very wide grids can force PDF columns to shrink to fit the page. Apply column widths or hide low-priority fields before exporting to keep the document legible.|
+
## API References
The Excel and PDF Exporter services have a few more APIs to explore, which are listed below.
-- [IgxExcelExporterService API](mcp:get_api_reference?platform=angular&component=IgxExcelExporterService)
-- [IgxExcelExporterOptions API](mcp:get_api_reference?platform=angular&component=IgxExcelExporterOptions)
-- [IgxPdfExporterService API](mcp:get_api_reference?platform=angular&component=IgxPdfExporterService)
-- [IgxPdfExporterOptions API](mcp:get_api_reference?platform=angular&component=IgxPdfExporterOptions)
+- [`IgxExcelExporterService`](mcp:get_api_reference?platform=angular&component=IgxExcelExporterService)
+- [`IgxExcelExporterOptions`](mcp:get_api_reference?platform=angular&component=IgxExcelExporterOptions)
+- [`IgxPdfExporterService`](mcp:get_api_reference?platform=angular&component=IgxPdfExporterService)
+- [`IgxPdfExporterOptions`](mcp:get_api_reference?platform=angular&component=IgxPdfExporterOptions)
Additional components that were used:
-- [IgxTreeGridComponent API](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
-- [IgxTreeGridComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme)
-
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+- `IgxTreeGridComponent Styles`
+
## Additional Resources
-
+
Our community is active and always welcoming to new ideas. The links below connect you with samples, community answers, and the engineering team.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-filtering.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-filtering.md
index 3a98505f5..e4ee25aac 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-filtering.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-filtering.md
@@ -1,15 +1,21 @@
---
title: Angular Tree Grid Filter - Ignite UI for Angular
-_description: Start using angular filter to return specific data with Ignite UI for Angular. Check the advanced filtering options, including data-type Excel-style filtering.
-_keywords: angular filter, ignite ui for angular, infragistics
-_license: commercial
+description: Start using angular filter to return specific data with Ignite UI for Angular. Check the advanced filtering options, including data-type Excel-style filtering.
+keywords: angular filter, ignite ui for angular, infragistics
+license: commercial
_canonicalLink: grid/filtering
+llms:
+ description: "IgniteUI for Angular Tree Grid component provides three different filtering types - Quick filtering, Excel style filtering and Advanced filtering which enable you to display only the records that meet specified criteria."
_tocName: Filtering
---
# Angular Tree Grid Filtering
-IgniteUI for [Angular Tree Grid component](https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/grid) provides three different filtering types - Quick filtering, [Excel style filtering](excel-style-filtering.md) and [Advanced filtering](advanced-filtering.md) which enable you to display only the records that meet specified criteria. The Material UI grid component in Ignite UI provides angular filter capabilities and extensive filtering API through the Data Container to which the Tree Grid is bound.
+
+IgniteUI for [Angular Tree Grid component](https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/grid) provides three different filtering types - Quick filtering, [Excel style filtering](/treegrid/excel-style-filtering) and [Advanced filtering](/treegrid/advanced-filtering) which enable you to display only the records that meet specified criteria. The Material UI grid component in Ignite UI provides angular filter capabilities and extensive filtering API through the Data Container to which the Tree Grid is bound.
+
## Angular Tree Grid Filtering Example
-The sample below demonstrates Tree Grid's **Quick filtering** user experience. API [filter()](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=filter) method is used to apply _contains_ condition on the _ProductName column_ through external _igxInputGroup component_.
+
+The sample below demonstrates Tree Grid's **Quick filtering** user experience. API [`filter()`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=filter) method is used to apply _contains_ condition on the _ProductName column_ through external _igxInputGroup component_.
+
```typescript
import { Component, OnInit, ViewChild } from '@angular/core';
import { IgxStringFilteringOperand } from 'igniteui-angular/core';
@@ -116,67 +122,99 @@ export class TreeGridFilteringSampleComponent implements OnInit {
justify-content: space-between;
}
```
-
+
## Setup
+
In order to specify if filtering is enabled and which filtering mode should be used, the Tree Grid exposes the following boolean properties - [`allowFiltering`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=allowFiltering), [`allowAdvancedFiltering`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=allowAdvancedFiltering), [`filterMode`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=filterMode) and [`filterable`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=filterable).
-Property **[allowFiltering](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=allowfiltering)** enables you to specify the following options:
+
+Property **[`allowFiltering`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=allowfiltering)** enables you to specify the following options:
+
- **false** - the filtering for the corresponding grid will be disabled; /default value/
- **true** - the filtering for the corresponding grid will be enabled;
-Property **[allowAdvancedFiltering](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=allowAdvancedFiltering)** enables you to specify the following options:
+
+Property **[`allowAdvancedFiltering`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=allowAdvancedFiltering)** enables you to specify the following options:
+
- **false** - the advanced filtering for the corresponding grid will be disabled; /default value/
- **true** - the advanced filtering for the corresponding grid will be enabled;
-Property **[filterMode](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=filterMode)** enables you to specify the following options:
+
+Property **[`filterMode`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=filterMode)** enables you to specify the following options:
+
- **quickFilter** - a simplistic filtering UI; /default value/
- **excelStyleFilter** - an Excel-like filtering UI;
-Property **[filterable](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=filterable)** enables you to specify the following options:
+
+Property **[`filterable`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=filterable)** enables you to specify the following options:
+
- **true** - the filtering for the corresponding column will be enabled; /default value/
- **false** - the filtering for the corresponding column will be disabled;
+
```html
```
-To enable the [Advanced filtering](advanced-filtering.md) however, you need to set the [`allowAdvancedFiltering`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=allowAdvancedFiltering) input properties to `true`.
+
+To enable the [Advanced filtering](/treegrid/advanced-filtering) however, you need to set the [`allowAdvancedFiltering`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=allowAdvancedFiltering) input properties to `true`.
+
```html
```
->[!NOTE]
->You can enable both the `quickFilter`/`excelStyleFilter` and the advanced filtering user interfaces in the Tree Grid. Both filtering user interfaces will work independently of one another. The final filtered result in the Tree Grid is the intersection between the results of the two filters.
+
+**Note:**
+You can enable both the `quickFilter`/`excelStyleFilter` and the advanced filtering user interfaces in the Tree Grid. Both filtering user interfaces will work independently of one another. The final filtered result in the Tree Grid is the intersection between the results of the two filters.
+
## Interaction
+
In order to open the filter row for a particular column, the 'Filter' chip below its header should be clicked. To add conditions you should choose filter operand using the dropdown on the left of the input and enter value. For `number` and `date` columns 'Equals' is selected by default, for `string` - 'Contains' and for `boolean` - 'All'. Pressing 'Enter' confirms the condition and you are now able to add another one. There is a dropdown, between 'condition' chips, which determines the logical operator between them, 'AND' is selected by default. To remove a condition you can click the 'X' button of the chip, and to edit it you should select the chip and the input will be populated with the chip's data. While filter row is opened you can click on any filterable column's header in order to select it and to be able to add filter conditions for it.
+
While some filtering conditions have been applied to a column, and the filter row is closed, you can either remove the conditions by clicking the chip's close button, or you can open the filter row by selecting any of the chips. When there is not enough space to show all the conditions, a filter icon is shown with a badge that indicates how many more conditions there are. It can also be clicked in order to open the filter row.
+
## Usage
-There's a default filtering strategy provided out of the box, as well as all the standard filtering conditions, which the developer can replace with their own implementation. In addition, we've provided a way to easily plug in your own custom filtering conditions. The Tree Grid currently provides not only a simplistic filtering UI, but also more complex filtering options. Depending on the set [`dataType`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=dataType) of the column, the correct set of [**filtering operations**](mcp:get_api_reference?platform=angular&component=IFilteringOperation) is loaded inside the filter UI dropdown. Additionally, you can set the [`ignoreCase`](mcp:get_api_reference?platform=angular&component=IFilteringExpression) and the initial [`condition`](mcp:get_api_reference?platform=angular&component=IFilteringExpression&member=condition) properties.
+
+There's a default filtering strategy provided out of the box, as well as all the standard filtering conditions, which the developer can replace with their own implementation. In addition, we've provided a way to easily plug in your own custom filtering conditions. The Tree Grid currently provides not only a simplistic filtering UI, but also more complex filtering options. Depending on the set [`dataType`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=dataType) of the column, the correct set of [`filtering operations`](mcp:get_api_reference?platform=angular&component=IFilteringOperation) is loaded inside the filter UI dropdown. Additionally, you can set the [`IgxIFilteringExpression`](mcp:get_api_reference?platform=angular&component=IFilteringExpression) and the initial [`IgxIFilteringExpression.condition`](mcp:get_api_reference?platform=angular&component=IFilteringExpression&member=condition) properties.
+
Filtering feature is enabled for the Tree Grid component by setting the [`allowFiltering`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=allowFiltering) input to `true`. The default [`filterMode`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=filterMode) is `quickFilter` and it **cannot** be changed run time. To disable this feature for a certain column – set the [`filterable`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=filterable) input to `false`.
+
```html
-
+
```
-> [!NOTE]
-> If values of type `string` are used by a column of dataType `Date`, the Tree Grid won't parse them to `Date` objects and using filtering conditions won't be possible. If you want to use `string` objects, additional logic should be implemented on the application level, in order to parse the values to `Date` objects.
+
+**Note:**
+If values of type `string` are used by a column of dataType `Date`, the Tree Grid won't parse them to `Date` objects and using filtering conditions won't be possible. If you want to use `string` objects, additional logic should be implemented on the application level, in order to parse the values to `Date` objects.
+
You can filter any column or a combination of columns through the Tree Grid API. The Tree Grid exposes several methods for this task - [`filter`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=filter), [`filterGlobal`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=filterglobal) and [`clearFilter`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=clearFilter).
+
- [`filter`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=filter) - filter a single column or a combination of columns.
+
There are five filtering operand classes exposed:
+
- [`IgxFilteringOperand`](mcp:get_api_reference?platform=angular&component=IgxFilteringOperand): this is a base filtering operand, which can be inherited when defining custom filtering conditions.
- [`IgxBooleanFilteringOperand`](mcp:get_api_reference?platform=angular&component=IgxBooleanFilteringOperand) defines all default filtering conditions for `boolean` type.
- [`IgxNumberFilteringOperand`](mcp:get_api_reference?platform=angular&component=IgxNumberFilteringOperand) defines all default filtering conditions for `numeric` type.
- [`IgxStringFilteringOperand`](mcp:get_api_reference?platform=angular&component=IgxStringFilteringOperand) defines all default filtering conditions for `string` type.
- [`IgxDateFilteringOperand`](mcp:get_api_reference?platform=angular&component=IgxDateFilteringOperand) defines all default filtering conditions for `Date` type.
+
```typescript
// Single column filtering
+
// Filter the `Order Product` column for values which `contains` the `myproduct` substring, ignoring case
this.treeGrid.filter('Order Product', 'myproduct', IgxStringFilteringOperand.instance().condition('contains'), true);
```
+
The only required parameters are the column field key and the filtering term. Both the condition and the case sensitivity will be inferred from the column properties if not provided. In the case of multiple filtering, the method accepts an array of filtering expressions.
-> [!NOTE]
-> The filtering operation **DOES NOT** change the underlying data source of the Tree Grid.
+
+**Note:**
+The filtering operation **DOES NOT** change the underlying data source of the Tree Grid.
+
+
```typescript
// Multi column filtering
+
const gridFilteringExpressionsTree = new FilteringExpressionsTree(FilteringLogic.And);
const productFilteringExpressionsTree = new FilteringExpressionsTree(FilteringLogic.And, 'ProductName');
const productExpression = {
@@ -187,6 +225,7 @@ const productExpression = {
};
productFilteringExpressionsTree.filteringOperands.push(productExpression);
gridFilteringExpressionsTree.filteringOperands.push(productFilteringExpressionsTree);
+
const priceFilteringExpressionsTree = new FilteringExpressionsTree(FilteringLogic.And, 'Price');
const priceExpression = {
condition: IgxNumberFilteringOperand.instance().condition('greaterThan'),
@@ -196,25 +235,35 @@ const priceExpression = {
};
priceFilteringExpressionsTree.filteringOperands.push(priceExpression);
gridFilteringExpressionsTree.filteringOperands.push(priceFilteringExpressionsTree);
+
this.treeGrid.filteringExpressionsTree = gridFilteringExpressionsTree;
```
+
- [`filterGlobal`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=filterGlobal) - clears all existing filters and applies the new filtering condition to all Tree Grid's columns.
+
```typescript
// Filter all cells for a value which contains `myproduct`
this.treeGrid.filteringLogic = FilteringLogic.Or;
this.treeGrid.filterGlobal('myproduct', IgxStringFilteringOperand.instance().condition('contains'), false);
```
+
- [`clearFilter`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=clearFilter) - removes any applied filtering from the target column. If called with no arguments it will clear the filtering of all columns.
+
```typescript
// Remove the filtering state from the ProductName column
this.treeGrid.clearFilter('Order Product');
+
// Clears the filtering state from all columns
this.treeGrid.clearFilter();
```
+
## Initial filtered state
-To set the initial filtering state of the Tree Grid, set the [`IgxTreeGridComponent`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) [`filteringExpressionsTree`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=filteringExpressionsTree) property to an array of [`IFilteringExpressionsTree`](mcp:get_api_reference?platform=angular&component=IFilteringExpressionsTree) for each column to be filtered.
+
+To set the initial filtering state of the Tree Grid, set the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) [`filteringExpressionsTree`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=filteringExpressionsTree) property to an array of [`IgxIFilteringExpressionsTree`](mcp:get_api_reference?platform=angular&component=IFilteringExpressionsTree) for each column to be filtered.
+
```typescript
constructor(private cdr: ChangeDetectorRef) { }
+
public ngAfterViewInit() {
const gridFilteringExpressionsTree = new FilteringExpressionsTree(FilteringLogic.And);
const productFilteringExpressionsTree = new FilteringExpressionsTree(FilteringLogic.And, 'Order Product');
@@ -231,32 +280,43 @@ public ngAfterViewInit() {
this.cdr.detectChanges();
}
```
+
### Filtering logic
+
The [`filteringLogic`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=filteringlogic) property of the Tree Grid controls how filtering multiple columns will resolve in the Tree Grid. You can change it at any time through the Tree Grid API, or through the Tree Grid input property.
+
```typescript
-import { FilteringLogic } from 'igniteui-angular/core';
+import { FilteringLogic } from 'igniteui-angular/grids/core';
// import { FilteringLogic } from '@infragistics/igniteui-angular'; for licensed package
...
+
this.treeGrid.filteringLogic = FilteringLogic.OR;
```
-The default value of [`AND`](mcp:get_api_reference?platform=angular&component=FilteringLogic&member=and) returns only the rows that match all the currently applied filtering expressions. Following the example above, a row will be returned when both the `ProductName` cell value contains `myproduct` and the `Price` cell value is greater than 55.
-When set to [`OR`](mcp:get_api_reference?platform=angular&component=FilteringLogic&member=or), a row will be returned when either the `ProductName` cell value contains `myproduct` or the `Price` cell value is greater than 55.
-
-@@if (igxName === 'IgxGrid' || igxName === 'IgxTreeGrid') {
+
+The default value of [`IgxFilteringLogic.And`](mcp:get_api_reference?platform=angular&component=FilteringLogic&member=And) returns only the rows that match all the currently applied filtering expressions. Following the example above, a row will be returned when both the `ProductName` cell value contains `myproduct` and the `Price` cell value is greater than 55.
+
+When set to [`IgxFilteringLogic.Or`](mcp:get_api_reference?platform=angular&component=FilteringLogic&member=Or), a row will be returned when either the `ProductName` cell value contains `myproduct` or the `Price` cell value is greater than 55.
+
## Remote Filtering
-The Tree Grid supports remote filtering, which is demonstrated in the [`Tree Grid Remote Data Operations`](remote-data-operations.md) topic.
-
-}
+
+The Tree Grid supports remote filtering, which is demonstrated in the [`Tree Grid Remote Data Operations`](/treegrid/remote-data-operations) topic.
+
## Custom Filtering Operands
+
You can customize the filtering menu by adding, removing or modifying the filtering operands. By default, the filtering menu contains certain operands based on the column’s data type ([`IgxBooleanFilteringOperand`](mcp:get_api_reference?platform=angular&component=IgxBooleanFilteringOperand), [`IgxDateFilteringOperand`](mcp:get_api_reference?platform=angular&component=IgxDateFilteringOperand), [`IgxNumberFilteringOperand`](mcp:get_api_reference?platform=angular&component=IgxNumberFilteringOperand) and [`IgxStringFilteringOperand`](mcp:get_api_reference?platform=angular&component=IgxStringFilteringOperand)). You can extend these classes or their base class [`IgxFilteringOperand`](mcp:get_api_reference?platform=angular&component=IgxFilteringOperand) to change the filtering menu items’ behavior.
+
In the sample below, inspect the "Order Product" and "Delivered" columns filters menus. For the "Delivered" column filter, we have limited the number of operands to All, True and False. For the "Order Product" column filter – we have modified the Contains and Does Not Contain operands logic to perform case sensitive search and added also Empty and Not Empty operands.
+
To do that, extend the [`IgxStringFilteringOperand`](mcp:get_api_reference?platform=angular&component=IgxStringFilteringOperand) and [`IgxBooleanFilteringOperand`](mcp:get_api_reference?platform=angular&component=IgxBooleanFilteringOperand), modify the operations and their logic, and set the column [`filters`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=filters) input to the new operands.
+
```typescript
// grid-custom-filtering.component.ts
+
export class GridCustomFilteringComponent {
public caseSensitiveFilteringOperand = CaseSensitiveFilteringOperand.instance();
public booleanFilteringOperand = BooleanFilteringOperand.instance();
}
+
export class CaseSensitiveFilteringOperand extends IgxStringFilteringOperand {
private constructor() {
super();
@@ -295,6 +355,7 @@ export class CaseSensitiveFilteringOperand extends IgxStringFilteringOperand {
this.operations = customOperations.concat(emptyOperators);
}
}
+
export class BooleanFilteringOperand extends IgxBooleanFilteringOperand {
private constructor() {
super();
@@ -309,8 +370,10 @@ export class BooleanFilteringOperand extends IgxBooleanFilteringOperand {
}
}
```
+
```html
+
@@ -321,6 +384,7 @@ export class BooleanFilteringOperand extends IgxBooleanFilteringOperand {
```
+
```typescript
import { Component, OnInit } from '@angular/core';
import { IFilteringOperation, IgxBooleanFilteringOperand, IgxStringFilteringOperand } from 'igniteui-angular/core';
@@ -446,8 +510,11 @@ export class BooleanFilteringOperand extends IgxBooleanFilteringOperand {
padding-top: 16px;
}
```
+
## Re-templating filter cell
+
You can add a template marked with `igxFilterCellTemplate` in order to retemplate the filter cell. In the sample below, an input is added for the string columns and IgxDatePicker for the date column. When the user types or selects a value, a filter with contains operator for string columns and equals operator for date columns, is applied using grid's public API.
+
```typescript
import { Component, OnInit, ViewChild } from '@angular/core';
import { ColumnType, GridColumnDataType, IgxDateFilteringOperand, IgxNumberFilteringOperand, IgxPickerClearComponent, IgxPickerToggleComponent, IgxStringFilteringOperand } from 'igniteui-angular/core';
@@ -652,25 +719,37 @@ export class TreeGridFilteringTemplateSampleComponent implements OnInit {
flex-grow: 1;
}
```
+
## Matching Records Only Filtering Strategy
+
By default, after a filtering is applied, the Tree Grid component displays the records matching the criterion that have been set and their parents in a grayed-out fashion to provide additional context. However, in some cases, you may want to display only the records matching particular filtering condition without any trace for their parents. This can be achieved by using the `TreeGridMatchingRecordsOnlyFilteringStrategy`:
+
```html
+
```
+
```typescript
-import { TreeGridMatchingRecordsOnlyFilteringStrategy } from "igniteui-angular/core";
+import { TreeGridMatchingRecordsOnlyFilteringStrategy } from "igniteui-angular/grids/core";
+
...
public matchingRecordsOnlyStrategy = new TreeGridMatchingRecordsOnlyFilteringStrategy();
```
+
## Styling
-To get started with styling the filtering row, we need to import the `index` file, where all the theme functions and component mixins live:
+
+To get started with styling the filtering row, we need to import the `index` file, where all the theme functions and the `tokens()` mixin are exported:
+
```scss
@use "igniteui-angular/theming" as *;
+
// IMPORTANT: Prior to Ignite UI for Angular version 13 use:
// @import '~igniteui-angular/lib/core/styles/themes/index';
```
-Following the simplest approach, we create a new theme that extends the [`grid-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme) and accepts the `$filtering-row-text-color`, `$filtering-row-background`, `$filtering-header-text-color` and the `$filtering-header-background` parameters.
+
+Following the simplest approach, we create a new theme that extends the `grid-theme` and accepts the `$filtering-row-text-color`, `$filtering-row-background`, `$filtering-header-text-color` and the `$filtering-header-background` parameters.
+
```scss
$custom-grid: grid-theme(
$filtering-row-text-color: #292826,
@@ -679,7 +758,9 @@ $custom-grid: grid-theme(
$filtering-header-background: #ffcd0f
);
```
-As seen, the `grid-theme` only controls colors for the filtering row and the respective column header that is being filtered. We obviously have a lot more components inside the filtering row, such as an input group, chips, buttons and others. In order to style them, we need to create a separate theme for each one, so let's create a new [`input-group-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#input-group-theme) and a new [`flat-button-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#flat-button-theme):
+
+As seen, the `grid-theme` only controls colors for the filtering row and the respective column header that is being filtered. We obviously have a lot more components inside the filtering row, such as an input group, chips, buttons and others. In order to style them, we need to create a separate theme for each one, so let's create a new `input-group-theme` and a new `flat-button-theme`:
+
```scss
$dark-input-group: input-group-theme(
$box-background: #ffcd0f,
@@ -687,6 +768,7 @@ $dark-input-group: input-group-theme(
$focused-text-color: #292826,
$filled-text-color: #292826
);
+
$dark-button: flat-button-theme(
$background: #ffcd0f,
$foreground: #292826,
@@ -694,10 +776,14 @@ $dark-button: flat-button-theme(
$hover-foreground: #ffcd0f
);
```
->[!NOTE]
->Instead of hardcoding the color values like we just did, we can achieve greater flexibility in terms of colors by using the [`palette`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/palettes#function-palette) and [`color`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/palettes#function-color) functions. Please refer to [`Palettes`](../themes/sass/palettes.md) topic for detailed guidance on how to use them.
-In this example we only changed some of the parameters for the input group and the button, but the [`input-group-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-input-group-theme) and the [`flat-button-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-flat-button-theme) provide way more parameters to control their respective styling.
-The last step is to **include** the component mixins, each with its respective theme. We will also set the color property for the input's placeholder.
+
+**Note:**
+Instead of hardcoding the color values like we just did, we can achieve greater flexibility in terms of colors by using the `palette` and `color` functions. Please refer to [`Palettes`](/themes/sass/palettes) topic for detailed guidance on how to use them.
+
+In this example we only changed some of the parameters for the input group and the button, but the `input-group-theme` and the `flat-button-theme` provide way more parameters to control their respective styling.
+
+The last step is to apply each component theme with `tokens()`. We will also set the color property for the input's placeholder.
+
```scss
:host {
@include tokens($custom-grid);
@@ -712,10 +798,14 @@ The last step is to **include** the component mixins, each with its respective t
}
}
```
->[!NOTE]
->We include the created **flat-button-theme** and **input-group-theme** within `.igx-grid__filtering-row`, so that only the filtering row buttons and its input group would be styled. Otherwise other buttons and input groups in the grid would be affected too.
->[!NOTE]
->If the component is using an [`Emulated`](../themes/sass/component-themes.md#view-encapsulation) ViewEncapsulation, it is necessary to `penetrate` this encapsulation using `::ng-deep`:
+
+**Note:**
+We include the created **flat-button-theme** and **input-group-theme** within `.igx-grid__filtering-row`, so that only the filtering row buttons and its input group would be styled. Otherwise other buttons and input groups in the grid would be affected too.
+
+**Note:**
+This sample uses `::ng-deep` because the button, input, and placeholder themes are deliberately restricted to the grid's internal filtering-row selector. Moving those overrides to a global stylesheet is an alternative:
+
+
```scss
:host {
::ng-deep {
@@ -732,7 +822,9 @@ The last step is to **include** the component mixins, each with its respective t
}
}
```
+
### Demo
+
```typescript
import { Component, OnInit } from '@angular/core';
import { ORDERS_DATA } from '../data/orders';
@@ -839,40 +931,46 @@ $dark-button: flat-button-theme(
}
}
```
->[!NOTE]
->The sample will not be affected by the selected global theme from `Change Theme`.
+
+**Note:**
+The sample will not be affected by the selected global theme from `Change Theme`.
+
## Known Limitations
-> [!NOTE]
-> Some browsers such as Firefox fail to parse regional specific decimal separators by considering them grouping separators, thus resulting in them being invalid. When inputting such values for a numeric column filter value, only the valid part of the number will be applied to the filtering expression. For further information, refer to the Firefox [issue](https://bugzilla.mozilla.org/show_bug.cgi?id=1199665).
+
+**Note:**
+Some browsers such as Firefox fail to parse regional specific decimal separators by considering them grouping separators, thus resulting in them being invalid. When inputting such values for a numeric column filter value, only the valid part of the number will be applied to the filtering expression. For further information, refer to the Firefox [issue](https://bugzilla.mozilla.org/show_bug.cgi?id=1199665).
+
### Breaking Changes in 6.1.0
+
- IgxTreeGrid `filteringExpressions` property is removed. Use [`filteringExpressionsTree`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=filteringexpressionstree) instead.
- `filter_multiple` method is removed. Use [`filter`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=filter) method and [`filteringExpressionsTree`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=filteringExpressionsTree) property instead.
- The [`filter`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=filter) method has new signature. It now accepts the following parameters:
- `name` - the name of the column to be filtered.
- `value` - the value to be used for filtering.
- - `conditionOrExpressionTree` (optional) - this parameter accepts object of type [`IFilteringOperation`](mcp:get_api_reference?platform=angular&component=IFilteringOperation) or [`IFilteringExpressionsTree`](mcp:get_api_reference?platform=angular&component=IFilteringExpressionsTree). If only simple filtering is needed, a filtering operation could be passed as an argument. In case of advanced filtering, an expressions tree containing complex filtering logic could be passed as an argument.
+ - `conditionOrExpressionTree` (optional) - this parameter accepts object of type [`IgxIFilteringOperation`](mcp:get_api_reference?platform=angular&component=IFilteringOperation) or [`IgxIFilteringExpressionsTree`](mcp:get_api_reference?platform=angular&component=IFilteringExpressionsTree). If only simple filtering is needed, a filtering operation could be passed as an argument. In case of advanced filtering, an expressions tree containing complex filtering logic could be passed as an argument.
- `ignoreCase` (optional) - whether the filtering is case sensitive or not.
-- [`filteringDone`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=filteringDone) event now have only one parameter of type [`IFilteringExpressionsTree`](mcp:get_api_reference?platform=angular&component=IFilteringExpressionsTree) which contains the filtering state of the filtered column.
-- filtering operands: [`IFilteringExpression`](mcp:get_api_reference?platform=angular&component=IFilteringExpression) condition property is no longer a direct reference to a filtering condition method, instead it's a reference to an [`IFilteringOperation`](mcp:get_api_reference?platform=angular&component=IFilteringOperation).
-- [`IgxColumnComponent`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent) now exposes a [`filters`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=filters) property, which takes an [`IgxFilteringOperand`](mcp:get_api_reference?platform=angular&component=IgxFilteringOperand) class reference.
-- Custom filters can be provided to the Tree Grid columns by populating the [`operations`](mcp:get_api_reference?platform=angular&component=IgxFilteringOperand&member=operations) property of the [`IgxFilteringOperand`](mcp:get_api_reference?platform=angular&component=IgxFilteringOperand) with operations of [`IFilteringOperation`](mcp:get_api_reference?platform=angular&component=IFilteringOperation) type.
+- [`filteringDone`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=filteringDone) event now have only one parameter of type [`IgxIFilteringExpressionsTree`](mcp:get_api_reference?platform=angular&component=IFilteringExpressionsTree) which contains the filtering state of the filtered column.
+- filtering operands: [`IgxIFilteringExpression`](mcp:get_api_reference?platform=angular&component=IFilteringExpression) condition property is no longer a direct reference to a filtering condition method, instead it's a reference to an [`IgxIFilteringOperation`](mcp:get_api_reference?platform=angular&component=IFilteringOperation).
+- [`IgxColumn`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent) now exposes a [`filters`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=filters) property, which takes an [`IgxFilteringOperand`](mcp:get_api_reference?platform=angular&component=IgxFilteringOperand) class reference.
+- Custom filters can be provided to the Tree Grid columns by populating the [`operations`](mcp:get_api_reference?platform=angular&component=IgxFilteringOperand&member=operations) property of the [`IgxFilteringOperand`](mcp:get_api_reference?platform=angular&component=IgxFilteringOperand) with operations of [`IgxIFilteringOperation`](mcp:get_api_reference?platform=angular&component=IFilteringOperation) type.
+
## API References
-
-- [IgxColumnComponent](mcp:get_api_reference?platform=angular&component=IgxColumnComponent)
-- [IgxTreeGridComponent API](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
-- [IgxTreeGridComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme)
+- [`IgxColumn`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent)
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+- `IgxTreeGridComponent Styles`
## Additional Resources
-
-- [Tree Grid overview](tree-grid.md)
-- [Virtualization and Performance](virtualization.md)
-- [Paging](paging.md)
-- [Sorting](sorting.md)
-- [Summaries](summaries.md)
-- [Column Moving](column-moving.md)
-- [Column Pinning](column-pinning.md)
-- [Column Resizing](column-resizing.md)
-- [Selection](selection.md)
-
+
+- [Tree Grid overview](/treegrid/tree-grid)
+- [Virtualization and Performance](/treegrid/virtualization)
+- [Paging](/treegrid/paging)
+- [Sorting](/treegrid/sorting)
+- [Summaries](/treegrid/summaries)
+- [Column Moving](/treegrid/column-moving)
+- [Column Pinning](/treegrid/column-pinning)
+- [Column Resizing](/treegrid/column-resizing)
+- [Selection](/treegrid/selection)
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-groupby.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-groupby.md
index d78b289a7..b55015711 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-groupby.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-groupby.md
@@ -1,15 +1,16 @@
---
title: Angular Tree Grid Group By | Group by multiple fields | Infragistics
-_description: Configure angular group by that allows visualizing of data records in Angular table, visualize the grouped data in separate and convenient column group.
-_keywords: angular group by, igniteui for angular, infragistics
-_license: commercial
+description: Configure angular group by that allows visualizing of data records in Angular table, visualize the grouped data in separate and convenient column group.
+keywords: angular group by, igniteui for angular, infragistics
+license: commercial
+llms:
+ description: "If you have non-hierarchical data and you want to group by one or more columns and populate the parent rows with aggregated values, you could use the TreeGrid along with treeGridGrouping pipe and the UI component with selector igx-tree-grid-group-by-area."
_tocName: Group By
_premium: true
---
-
# Angular Tree Grid Group By
-If you have non-hierarchical data and you want to **group by** one or more columns and populate the parent rows with **aggregated values**, you could use the [`IgxTreeGridComponent`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) along with `treeGridGrouping` pipe and the UI component with selector `igx-tree-grid-group-by-area`.
+If you have non-hierarchical data and you want to **group by** one or more columns and populate the parent rows with **aggregated values**, you could use the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) along with `treeGridGrouping` pipe and the UI component with selector `igx-tree-grid-group-by-area`.
The `treeGridGrouping` pipe groups the data based on the provided parameters and the resulting hierarchy is displayed in a separate column. The pipe can also calculate aggregated values for the generated parent rows if aggregations are provided. Here is an example of how to use the pipe in the template:
@@ -18,11 +19,12 @@ The `treeGridGrouping` pipe groups the data based on the provided parameters and
[data]="data | treeGridGrouping:groupingExpressions:groupKey:childDataKey:grid:aggregations"
[childDataKey]="childDataKey"
[sortStrategy]="sorting">
+
```
The pipe arguments are the following:
-- groupingExpressions - an array of [`IGroupingExpression`](mcp:get_api_reference?platform=angular&component=IGroupingExpression) objects which contains information about the fields used to generate the hierarchy and the sorting details for each group
+- groupingExpressions - an array of [`IgxIGroupingExpression`](mcp:get_api_reference?platform=angular&component=IGroupingExpression) objects which contains information about the fields used to generate the hierarchy and the sorting details for each group
- groupKey - a string value for the name of the generated hierarchy column
- childDataKey - a string value for the field where the child collection of the generated parent rows is stored
- grid - `IgxTreeGridComponent` that is used for the grouping
@@ -41,13 +43,13 @@ The UI component with selector `igx-tree-grid-group-by-area` handles the UI inte
The component's inputs are the following:
- grid - `IgxTreeGridComponent` that is used for the grouping
-- expressions - an array of [`IGroupingExpression`](mcp:get_api_reference?platform=angular&component=IGroupingExpression) objects which contains the fields used to generate the hierarchy
+- expressions - an array of [`IgxIGroupingExpression`](mcp:get_api_reference?platform=angular&component=IGroupingExpression) objects which contains the fields used to generate the hierarchy
- hideGroupedColumns - a boolean value indicating whether to hide the columns by which grouping was performed
- dropAreaTemplate - a template for the drop area that can be used to override the default drop area template
- dropAreaMessage - a string that can be used to override the default message for the default drop area template
-> [!NOTE]
-> In order for the sorting to work correctly you should set the `sortStrategy` property of the `IgxTreeGridComponent` to an instance of `IgxGroupedTreeGridSorting`.
+**Note:**
+In order for the sorting to work correctly you should set the `sortStrategy` property of the `IgxTreeGridComponent` to an instance of `IgxGroupedTreeGridSorting`.
## Angular Tree Grid Group By Example
@@ -714,8 +716,6 @@ igx-grid {
}
```
-
-
### Implementation
In this sample we are using the `treeGridGrouping` pipe and the UI component with selector `igx-tree-grid-group-by-area` for the grouping. The data is grouped by the **"category"**, **"type"** and **"contract"** fields. The resulting hierarchy is displayed in the newly created **"categories"** column. The pipe also calculates aggregated values for the generated parent rows for the **"price"**, **"change"** and **"changeP"** columns.
@@ -731,6 +731,7 @@ In this sample we are using the `treeGridGrouping` pipe and the UI component wit
[hideGroupedColumns]="true">
+
```
Here you can see how the grouping expressions and aggregations are defined:
@@ -906,11 +907,9 @@ igx-grid {
}
```
-
-
### Implementation
-In this sample, data is loaded in portions. Initially, only the top level categories are displayed, then child data is served once a parent row is expanded. For more information on this approach, please refer to the [Tree Grid Load On Demand](load-on-demand.md) topic. The data is grouped by the **"ShipCountry"**, **"ShipCity"** and **"Discontinued"** fields and the resulting hierarchy is displayed in a separate column. The grouping is performed on a remote service - the data is modified and corresponding child and parent keys are assigned that are used to display the final data in a hierarchical view. For more information on how this service works you can take a look at the `TreeGridGroupingLoadOnDemandService` class in the `remoteService.ts` file.
+In this sample, data is loaded in portions. Initially, only the top level categories are displayed, then child data is served once a parent row is expanded. For more information on this approach, please refer to the [Tree Grid Load On Demand](/treegrid/load-on-demand) topic. The data is grouped by the **"ShipCountry"**, **"ShipCity"** and **"Discontinued"** fields and the resulting hierarchy is displayed in a separate column. The grouping is performed on a remote service - the data is modified and corresponding child and parent keys are assigned that are used to display the final data in a hierarchical view. For more information on how this service works you can take a look at the `TreeGridGroupingLoadOnDemandService` class in the `remoteService.ts` file.
Here is an example of how to use load on demand:
@@ -928,9 +927,10 @@ Here is an example of how to use load on demand:
[hideGroupedColumns]="true">
+
```
-In order to load the child rows when the user expands a row, the Tree Grid provides the callback input property [`loadChildrenOnDemand`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=loadChildrenOnDemand) - the children data is retrieved from the server and it is assigned to the requested parent row based on the grouping parameters.
+In order to load the child rows when the user expands a row, the Tree Grid provides the callback input property [`IgxTreeGrid.loadChildrenOnDemand`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=loadChildrenOnDemand) - the children data is retrieved from the server and it is assigned to the requested parent row based on the grouping parameters.
```typescript
public groupingExpressions: IGroupingExpression[] = [
@@ -973,21 +973,14 @@ private reloadData() {
| Grouping is not updated with batch editing | When using Tree Grid Group By with batch editing enabled (`batchEditing=true`), the grouping is not automatically updated when editing column values that are used for grouping. The grouping will only be updated after committing the transaction. |
## API References
-
-
-
-- [IgxTreeGridComponent](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
-- [IgxGridComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme)
-
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+- `IgxGridComponent Styles`
## Additional Resources
-
-
-- [TreeGrid overview](tree-grid.md)
-- [TreeGrid Summaries](summaries.md)
-- [Grid Summaries](../grid/summaries.md)
+- [TreeGrid overview](/treegrid/tree-grid)
+- [TreeGrid Summaries](/treegrid/summaries)
+- [Grid Summaries](/grid/summaries)
-
Our community is active and always welcoming to new ideas.
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-keyboard-navigation.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-keyboard-navigation.md
index a6257f48b..58bc9cb62 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-keyboard-navigation.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-keyboard-navigation.md
@@ -1,32 +1,43 @@
---
title: Angular Tree Grid Keyboard Navigation - Ignite UI for Angular
-_description: Learn how to use Tree Grid Keyboard Navigation with Ignite UI for Angular. With Keyboard interaction, users can quickly navigate between cells, rows, and columns.
-_keywords: keyboard navigation, ignite ui for angular, infragistics
-_license: commercial
+description: Learn how to use Tree Grid Keyboard Navigation with Ignite UI for Angular. With Keyboard interaction, users can quickly navigate between cells, rows, and columns.
+keywords: keyboard navigation, ignite ui for angular, infragistics
+license: commercial
_canonicalLink: grid/keyboard-navigation
+llms:
+ description: "Keyboard navigation in the IgxTreeGrid provides a rich variety of keyboard interactions for the user."
_tocName: Keyboard navigation
_premium: true
---
# Angular Tree Grid Keyboard Navigation
Keyboard navigation in the **IgxTreeGrid** provides a rich variety of keyboard interactions for the user. It enhances the accessibility of the **IgxTreeGrid** and allows to navigate through any type of elements inside (cell, row, column header, toolbar, footer, etc.). This functionality is enabled by default, and the developer has the option to override any of the default behaviors in an easy way.
+
The tabulations of the IgxTreeGrid has been reduced so that the navigation is compliant with W3C accessibility standards and convenient to use.
+
Currently, the IgxTreeGrid introduces the following tab stops:
+
- **GroupBy or Toolbar area** (if enabled);
- **IgxTreeGrid header**;
- **IgxTreeGrid body**;
- **Column summaries** (if enabled);
- **IgxTreeGrid paginator** (if enabled);
->[!NOTE]
-> Due to this change, navigating between the cells with tab and Shift + Tab is no longer supported in the IgxTreeGrid.
-> Pressing the Tab key now goes through the tab stops in the following order: **GroupBy** / **Toolbar** -> **Headers** -> **Body** -> **Summaries** -> **Footer / Paginator**.
->[!NOTE]
-> Exposing any **focusable** element into the **IgxTreeGrid** body via template may introduce **side effects** in the keyboard navigation, since the default
-> browser behavior is not prevented. It is the developer's responsibility to prevent or modify it appropriately.
+
+**Note:**
+Due to this change, navigating between the cells with tab and Shift + Tab is no longer supported in the IgxTreeGrid.
+Pressing the Tab key now goes through the tab stops in the following order: **GroupBy** / **Toolbar** -> **Headers** -> **Body** -> **Summaries** -> **Footer / Paginator**.
+
+**Note:**
+Exposing any **focusable** element into the **IgxTreeGrid** body via template may introduce **side effects** in the keyboard navigation, since the default
+browser behavior is not prevented. It is the developer's responsibility to prevent or modify it appropriately.
+
## Header Navigation
+
A full _keyboard navigation_ support in the **IgxTreeGrid** header is now introduced. Column headers can be easily traversed with the arrow keys. Additionally, there are a number of key combinations that trigger actions on the columns like **filtering**, **sorting**, **grouping** and etc.
When the **IgxTreeGrid** header container is focused, the following key combinations are available:
+
### Key Combinations
+
- Arrow Up navigates one cell up in the headers (no looping). Available only when Multi-row Layout (MRL) or Multi-column Headers (MCH) are defined
- Arrow Down navigates one cell down in the headers (no wrapping). Available only when Multi-row Layout (MRL) or Multi-column Headers (MCH) are defined
- Arrow Left navigates one cell left (no looping)
@@ -40,1895 +51,4 @@ When the **IgxTreeGrid** header container is focused, the following key combinat
- Ctrl + Arrow Up sorts the active column header in ASC order. If the column is already sorted in ASC, sorting state is cleared
- Ctrl + Arrow Down sorts the active column header in DSC order. If the column is already sorted in DSC, sorting state is cleared
- Space selects the column; If the column is already selected, selection is cleared
-@@if (igxName === "IgxGrid") { - Shift + Alt + Arrow Left groups the column, if the column is marked as groupable
-- Shift + Alt + Arrow Right ungroups the column, if the column is marked as groupable
-- Alt + Arrow Left or Alt + Arrow Up collapses the column group header, if the header is not already collapsed
-- Alt + Arrow Right or `Alt + Arrow Down expands the column group header, if the header is not already expanded}
-## Body navigation
-When the **IgxTreeGrid** body is focused, the following key combinations are available:
-### Key Combination
-- Arrow Up- navigates one cell up (no wrapping)
-- Arrow Down navigates one cell down (no wrapping)
-- Arrow Left navigates one cell left (no wrapping between lines)
-- Arrow Right - navigates one cell right (no wrapping between lines)
-- Ctrl + Arrow Left navigates to the leftmost cell in the row
-- Ctrl + Arrow Right navigates to the rightmost cell in the row
-- Ctrl + Arrow Up navigates to the first cell in the column
-- Ctrl + Arrow Down navigates to the last cell in the column
-- Home navigates to the leftmost cell in the row
-- End navigates to the rightmost cell in the row
-- Ctrl + Home navigates to the top leftmost data cell in the grid
-- Ctrl + End navigates to the bottom rightmost data cell in the grid
-- Page Up scrolls one page (view port) up
-- Page Down scrolls one page (view port) down
-- Enter enters edit mode
-- F2 enters edit mode
-- Esc exits edit mode
-- Tab available only if there is a cell in edit mode; moves the focus to the next editable cell in the row; after reaching the last cell in the row, moves te focus to the first editable cell in the next row. When **Row Editing** is enabled, moves the focus from the right-most editable cell to the **CANCEL** and **DONE** buttons, and from **DONE** button to the left-most editable cell in the row
-- Shift + Tab - available only if there is a cell in edit mode; moves the focus to the previous editable cell in the row; after reaching the first cell in the row, moves the focus to the last editable cell in the previous row. When **Row Editing** is enabled, moves the focus from the right-most editable cell to **CANCEL** and **DONE** buttons, and from **DONE** button to the right-most editable cell in the row
-- Space - selects the row, if Row Selection is enabled
-- Alt + Arrow Left or Alt + Arrow Up - @@if (igxName === "IgxGrid") {over Group Row - collapses the group} @@if (igxName === "IgxHierarchicalGrid") {collapses the row island} @@if (igxName === "IgxTreeGrid") {collapses the current node}
-- Alt + Arrow Right or Alt + Arrow Down - @@if (igxName === "IgxGrid") {over Group Row - expands the group} @@if (igxName === "IgxHierarchicalGrid") {expands the row island } @@if (igxName === "IgxTreeGrid") {expands the current node}
- @@if (igxName === "IgxGrid") {- Alt + Arrow Left or Alt + Arrow Up - over Master Detail Row - collapses the details view
-- Alt + Arrow Right or Alt + Arrow Down - over Master Detail Row - expands the details view}
- @@if (igxName === "IgxGrid") {- Space - over Group Row - selects all rows in the group, if rowSelection property is set to multiple}
-Practice all of the above mentioned actions in the demo sample below. Focus any navigable grid element and a list with some of the available actions for the element will be shown to guide you through.
-## Demo
-@@if (igxName === "IgxGrid") {
-```typescript
-/* eslint-disable @angular-eslint/component-class-suffix */
-/* eslint-disable @angular-eslint/component-selector */
-/* eslint-disable @typescript-eslint/naming-convention */
-/* eslint-disable no-shadow */
-import { animate, state, style, transition, trigger } from '@angular/animations';
-import { ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild, inject } from '@angular/core';
-import { CellType, IActiveNodeChangeEventArgs, IgxColumnComponent, IgxColumnGroupComponent, IgxGridDetailTemplateDirective, IgxGridToolbarComponent } from 'igniteui-angular/grids/core';
-import { IgxGridComponent } from 'igniteui-angular/grids/grid';
-import { IgxEmptyListTemplateDirective, IgxListComponent, IgxListItemComponent, IgxListLineSubTitleDirective, IgxListLineTitleDirective } from 'igniteui-angular/list';
-import { SortingDirection } from 'igniteui-angular/core';
-import { IgxPaginatorComponent } from 'igniteui-angular/paginator';
-import { IgxCheckboxComponent } from 'igniteui-angular/checkbox';
-import { Subject } from 'rxjs';
-import { takeUntil } from 'rxjs/operators';
-import { DATA } from '../../data/customers';
-import { NgClass } from '@angular/common';
-
-enum GridSection {
- THEAD = 'igx-grid__thead-wrapper',
- TBODY = 'igx-grid__tbody-content',
- FOOTER = 'igx-grid__tfoot'
-}
-
-enum ItemAction {
- Filterable,
- Sortable,
- Selectable,
- Groupable,
- Collapsible,
- Expandable,
- Editable,
- Always
-}
-
-enum ElementTags {
- GROUPBY_ROW = 'IGX-GRID-GROUPBY-ROW',
- COLUMN_GROUP = 'IGX-COLUMN-GROUP'
-}
-
-class Item {
- public title: string;
- public subTitle: string;
- public action: ItemAction;
- public active = false;
-
- private _completed: boolean;
-
- public constructor(title: string, subTitle: string, completed: boolean, itemAction?: ItemAction) {
- this.title = title;
- this.subTitle = subTitle;
- this.completed = completed;
- this.action = itemAction;
-
- if (itemAction === ItemAction.Always) {
- this.active = true;
- }
- }
-
- public set completed(value: boolean) {
- if (this.active || (!value && !this.completed)) {
- this._completed = value;
- }
- }
-
- public get completed() {
- return this._completed;
- }
-}
-
-class KeyboardHandler {
- private _collection: Item[];
- private _section: GridSection;
-
- public constructor(colleciton: Item[], section: GridSection) {
- this._collection = colleciton;
- this._section = section;
- }
-
- public set collection(collection: Item[]) {
- this._collection = collection;
- }
-
- public get collection() {
- return this._collection;
- }
-
- public set gridSection(section: GridSection) {
- this._section = section;
- }
-
- public get gridSection() {
- return this._section;
- }
-
- public enableActionItems(action: ItemAction[]) {
- this.resetCollection();
- action.forEach(element => {
- this._collection
- .filter(e => e.action === element)
- .map(e => e.active = true);
- });
- }
-
- public resetCollection() {
- this._collection.forEach(e => {
- if (e.action !== ItemAction.Always) {
- e.active = false;
- }
- });
- }
-
- public selectItem(idx: number) {
- this._collection[idx].completed = true;
- }
-
- public deselectItem(idx: number) {
- this._collection[idx].completed = false;
- }
-}
-
-const theadKeyCombinations = [
- new Item('space key', 'select column', false, ItemAction.Selectable),
- new Item('ctrl + arrow up/down', 'sorts the column asc/desc', false, ItemAction.Sortable),
- new Item('shift + alt + arrow left/right', 'group/ungroup the active column', false, ItemAction.Groupable),
- new Item('alt + arrow left/right/up/down', 'expand/collapse active multi column header',
- false, ItemAction.Collapsible),
- new Item('ctrl + shift + l', 'opens the excel style filtering', false, ItemAction.Filterable),
- new Item('alt + l', 'opens the advanced filtering', false, ItemAction.Filterable)
-];
-
-const tbodyKeyCombinations: Item[] = [
- new Item('enter', 'enter in edit mode', false, ItemAction.Editable),
- new Item('alt + arrow left/up', 'collapse master details row', false, ItemAction.Collapsible),
- new Item('alt + arrow right/down', 'expand master details row', false, ItemAction.Collapsible),
- new Item('alt + arrow right/left', 'expand/collapse the group row', false, ItemAction.Expandable),
- new Item('ctrl + Home/End', 'navigates to the upper-left/bottom-right cell', false, ItemAction.Always)
-];
-
-const summaryCombinations: Item[] = [
- new Item('ArrowLeft', 'navigates one summary cell left', false, ItemAction.Always),
- new Item('ArrowRight', 'navigates one summary cell right', false, ItemAction.Always),
- new Item('Home', 'navigates to the first summary cell', false, ItemAction.Always),
- new Item('End', 'navigates to the last summary cell', false, ItemAction.Always)
-];
-
-@Component({
- selector: 'grid-keyboardnav',
- templateUrl: './grid-keyboardnav-sample.component.html',
- styleUrls: ['grid-keyboardnav-sample.component.scss'],
- animations: [
- trigger('toggle', [
- state('selected', style({
- color: '#4eb862'
- })),
- state('deselected', style({
- color: 'black'
- })),
- transition('deselected => selected', [
- animate('.3s')
- ]),
- transition('selected => deselected', [
- animate('.3s')
- ])
- ]),
- trigger('load', [
- transition(':enter', [
- style({ opacity: 0 }),
- animate('.3s', style({ opacity: .4 }))
- ])
- ])
- ],
- imports: [IgxGridComponent, IgxPaginatorComponent, IgxGridToolbarComponent, IgxGridDetailTemplateDirective, IgxColumnGroupComponent, IgxColumnComponent, IgxListComponent, IgxListItemComponent, NgClass, IgxListLineTitleDirective, IgxListLineSubTitleDirective, IgxCheckboxComponent, IgxEmptyListTemplateDirective]
-})
-export class GridKeyboardnavGuide implements OnInit, OnDestroy {
- private cdr = inject(ChangeDetectorRef);
-
-
- @ViewChild(IgxGridComponent, { static: true })
- public grid: IgxGridComponent;
-
- @ViewChild(IgxListComponent, { static: true })
- public listref: IgxListComponent;
-
- public get keyboardCollection() {
- return this._keyboardHandler.collection;
- }
-
- public get headerList() {
- return this._keyboardHandler.gridSection === GridSection.THEAD ?
- 'HEADER COMBINATIONS' : this._keyboardHandler.gridSection === GridSection.TBODY ?
- 'BODY COMBITNATIONS' : this._keyboardHandler.gridSection === GridSection.FOOTER ?
- 'SUMMARY COMBINATIONS' : '';
- }
-
- private _destroyer = new Subject();
- private _keyboardHandler = new KeyboardHandler([], GridSection.THEAD);
-
-
- public onActiveNodeChange(evt: IActiveNodeChangeEventArgs) {
- if (this.grid.crudService.cell) {
- return;
- }
- const gridSection = evt.row < 0 ? GridSection.THEAD : evt.row === this.grid.dataView.length ?
- GridSection.FOOTER : GridSection.TBODY;
- this.changeCombinationsCollection(gridSection);
- this.toggleHeaderCombinations(evt);
- this.toggleBodyCombinations(evt);
- }
-
- public ngOnInit() {
- this.grid.data = DATA;
- for (const item of this.grid.data) {
- const names = item.CompanyName.split(' ');
- item.FirstName = names[0];
- item.LastName = names[names.length - 1];
- item.FullAddress = `${item.Address}, ${item.City}, ${item.Country}`;
- item.PersonelDetails = `${item.ContactTitle}: ${item.ContactName}`;
- item.CompanysAnnualProfit = (100000 + (Math.random() * Math.floor(1000000))).toFixed(0);
- }
-
- this.grid.groupingExpansionStateChange.pipe(takeUntil(this._destroyer))
- .subscribe(() => {
- if (this._keyboardHandler.gridSection === GridSection.TBODY) {
- this._keyboardHandler.selectItem(3);
- }
- });
-
- this.grid.columnSelectionChanging.pipe(takeUntil(this._destroyer))
- .subscribe((args) => {
- const evt = args.event;
- if (evt.type === 'keydown') {
- this._keyboardHandler.selectItem(0);
- }
- });
-
- this.grid.rowToggle.pipe(takeUntil(this._destroyer))
- .subscribe((args) => {
- const evt = args.event as KeyboardEvent;
- if (evt.type !== 'keydown') {
- return;
- }
- return evt.code === 'ArrowLeft' || evt.code === 'ArrowUp' ? this._keyboardHandler.selectItem(1) :
- this._keyboardHandler.selectItem(2);
- });
-
- this.grid.groupingExpressions = [
- { fieldName: 'ContactTitle', dir: SortingDirection.Asc }
- ];
-
- this.listref.itemClicked.pipe(takeUntil(this._destroyer))
- .subscribe((args) => {
- args.event.stopPropagation();
- });
-
- }
-
- public ngOnDestroy() {
- this._destroyer.next();
- }
-
- public gridKeydown(evt) {
- const key = evt.key.toLowerCase();
- if (key === 'tab') { return; }
- if (this._keyboardHandler.gridSection === GridSection.FOOTER) {
- switch (key) {
- case 'end':
- this._keyboardHandler.selectItem(3);
- break;
- case 'home':
- this._keyboardHandler.selectItem(2);
- break;
- case 'arrowleft':
- this._keyboardHandler.selectItem(0);
- break;
- case 'arrowright':
- this._keyboardHandler.selectItem(1);
- break;
- default:
- break;
- }
- return;
- }
-
- const activeNode = this.grid.navigation.activeNode;
- if (this._keyboardHandler.gridSection === GridSection.THEAD) {
- if (key === 'l' && evt.altKey) {
- this._keyboardHandler.selectItem(5);
- return;
- }
- const col = this.grid.visibleColumns.find
- (c => c.visibleIndex === activeNode.column && c.level === activeNode.level);
- if (key === 'l' && evt.ctrlKey && evt.shiftKey && col && !col.columnGroup && col.filterable) {
- this._keyboardHandler.selectItem(4);
- }
-
- if ((key === 'arrowleft' || key === 'arrowright') && evt.altKey && evt.shiftKey &&
- col && !col.columnGroup && col.groupable) {
- this._keyboardHandler.selectItem(2);
- }
-
- if ((key === 'arrowup' || key === 'arrowdown') && evt.ctrlKey) {
- if (col && !col.columnGroup && col.sortable) {
- this._keyboardHandler.selectItem(1);
- }
- }
- }
-
- if (this._keyboardHandler.gridSection === GridSection.TBODY) {
- if (key === 'enter') {
- const columnName = this.grid.getColumnByVisibleIndex(activeNode.column).field;
- const cell = this.grid.getCellByColumn(activeNode.row, columnName);
-
- if (cell && cell.column.editable && cell.editMode) {
- this._keyboardHandler.selectItem(0);
- }
- }
- if ((key === 'end' || key === 'home') && evt.ctrlKey) {
- this._keyboardHandler.selectItem(4);
- this.cdr.detectChanges();
- }
- }
- }
-
- public expandChange() {
- if (!this._keyboardHandler.collection.length) {
- return;
- }
-
- this._keyboardHandler.selectItem(3);
- }
-
- public onCheckChange(evt, idx) {
- evt.checked ? this._keyboardHandler.selectItem(idx) : this._keyboardHandler.deselectItem(idx);
- }
-
- public toggleHeaderCombinations(activeNode) {
- if (this._keyboardHandler.gridSection !== GridSection.THEAD) {
- return;
- }
- const currColumn = this.grid.columnList
- .find(c => c.visibleIndex === activeNode.column && c.level === activeNode.level);
-
- const actions = this.extractColumnActions(currColumn);
- this._keyboardHandler.enableActionItems(actions);
- }
-
- public toggleBodyCombinations(activeNode) {
- const rowRef = this.grid.getRowByIndex(activeNode.row);
- if (this._keyboardHandler.gridSection !== GridSection.TBODY || !rowRef) {
- return;
- }
-
- if (rowRef.isGroupByRow) {
- this._keyboardHandler.enableActionItems([ItemAction.Expandable]);
- } else {
- const cell = this.grid.getCellByColumn(activeNode.row,
- this.grid.columnList.find((col) => col.visibleIndex === activeNode.column).field);
- this.toggleCellCombinations(cell);
- }
-
- }
-
- public toggleCellCombinations(cell?: CellType) {
- const actions = this.extractCellActions(cell);
- this._keyboardHandler.enableActionItems(actions);
- }
-
- public changeCombinationsCollection(gridSection: GridSection) {
- switch (gridSection) {
- case GridSection.THEAD:
- this._keyboardHandler.collection = theadKeyCombinations;
- break;
- case GridSection.TBODY:
- this._keyboardHandler.collection = tbodyKeyCombinations;
- break;
- case GridSection.FOOTER:
- this._keyboardHandler.collection = summaryCombinations;
- break;
- default:
- this._keyboardHandler.collection = [];
- return;
- }
- this._keyboardHandler.gridSection = gridSection;
- }
-
- public extractColumnActions(col: IgxColumnComponent | IgxColumnGroupComponent) {
- const res = [];
- if (col.sortable) {
- res.push(ItemAction.Sortable);
- }
-
- if (col.filterable && !col.columnGroup) {
- res.push(ItemAction.Filterable);
- }
-
- if (col.collapsible) {
- res.push(ItemAction.Collapsible);
- }
-
- if (col.groupable) {
- res.push(ItemAction.Groupable);
- }
-
- if (col.selectable) {
- res.push(ItemAction.Selectable);
- }
-
- return res;
- }
-
- public extractCellActions(cell: CellType) {
- const res = [];
- if (cell.editable) {
- res.push(ItemAction.Editable);
- }
-
- res.push(ItemAction.Collapsible);
- return res;
- }
-}
-```
-```html
-
Use the native navigation of the browser until you reach some of the following grid sections below:
-
-
Header
-
Body
-
Summary
-
-
When reached, an action list will be shown.
-
-
-
-
-
-```
-```scss
-@use '../../../variables' as *;
-
-$my-color: color($default-palette, 'success');
-
-$custom-checkbox-theme: checkbox-theme(
- $fill-color: $my-color,
- $border-radius: 10px
-);
-
-.list-sample ::ng-deep {
- @include tokens($custom-checkbox-theme);
-}
-
-.sample {
- display: flex;
-
- .grid_wrapper {
- --ig-size: var(--ig-size-small);
- padding-left: 15px;
- padding-top: 15px;
- width: 75%;
- }
-
-
- .list-sample {
- padding-top: 15px;
- width: 20%;
-
- .disabled {
- opacity: .4;
- }
-
- .active {
- opacity: 1;
- }
-
- igx-list {
- .igx-list__item-line-title, .igx-list__item-line-subtitle {
- font-size: 13px;
- }
-
- height: 450px;
- box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.2),
- 0 1px 1px 0 rgba(0, 0, 0, 0.14),
- 0 2px 1px -1px rgba(0, 0, 0, 0.12);
- }
-
- .empty-list {
- opacity: 1;
- h6 {
- padding: 15px;
- font-size: 15px;
- }
-
- ul {
- li {
- font-size: 13px;
- }
- margin-left: 15px;
- font-weight: 400;
- }
- }
- }
-}
-```
-
-}
-## Custom keyboard navigation
-Overriding the default behavior for a certain key or keys combination is one of the benefits that the **Keyboard Navigation** feature provides. For example: press the Enter or Tab key to navigate to the next cell or the cell below. This or any other navigation scenario is easily achieved by the **Keyboard Navigation** API:
-| API | Description | Arguments |
-| :--------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------- |
-| [`gridKeydown`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=gridKeydown) | An event that is emitted when any of key press/combinations described above is performed. Can be canceled. For any other key press/combination, use the default `onkeydown` event. | [IGridKeydownEventArgs](mcp:get_api_reference?platform=angular&component=IGridKeydownEventArgs) |
-| [`activeNodeChange`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=activeNodeChange) | An event that is emitted when the active node is changed. You can use it to determine the Active focus position (header, tbody etc.), column index, row index or nested level. | [IActiveNodeChangeEventArgs](mcp:get_api_reference?platform=angular&component=IActiveNodeChangeEventArgs) |
-| [`navigateTo`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=navigateTo) | Navigates to a position in the grid, based on provided `rowindex` and `visibleColumnIndex`. It can also execute a custom logic over the target element, through a callback function that accepts param of type `{ targetType: GridKeydownTargetType, target: Object }` . Usage: _grid.navigateTo(10, 3, (args) => { args.target.nativeElement.focus(); });_ | `rowindex`: number, `visibleColumnIndex`: number, `callback`: (`{ targetType: GridKeydownTargetType, target: Object }`) => {} |
-| [`getNextCell`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=getNextCell) | returns [`ICellPosition`](mcp:get_api_reference?platform=angular&component=ICellPosition) object, which defines the next cell by `rowIndex` and `visibleColumnIndex`. A callback function can be passed as a third parameter of [`getNextCell`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=getnextcell) method. The callback function accepts `IgxColumnComponent` as a param and returns a `boolean` value indication if a given criteria is met: _const nextEditableCell = grid.getNextCell(0, 4, (col) => col.editable);_ | `currentRowIndex`: number, `currentVisibleColumnIndex`: number, `callback`: (`IgxColumnComponent`) => boolean |
-| [`getPreviousCell`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=getPreviousCell) | returns [`ICellPosition`](mcp:get_api_reference?platform=angular&component=ICellPosition) object, which defines the previous cell by `rowIndex` and `visibleColumnIndex`. A callback function can be passed as a third parameter of [`getPreviousCell`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=getPreviousCell) method. The callback function accepts `IgxColumnComponent` as a param and returns a `boolean` value indication if a given criteria is met: _const prevEditableCell = grid.getPreviousCell(0, 4, (col) => col.editable);_ | `currentRowIndex`: number, `currentVisibleColumnIndex`: number, `callback`: (`IgxColumnComponent`) => boolean |
-Let's try the API to demonstrate how to achieve common scenarios like user input validation and custom navigation. First we need to register an event handler for the [`gridKeydown`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=gridKeydown) event:
-```html
-
-
-```
-```typescript
-public customKeydown(args: IGridKeydownEventArgs) {
- const target: IgxGridCell = args.target as IgxGridCell;
- const evt: KeyboardEvent = args.event as KeyboardEvent;
- const type = args.targetType;
-
- if (type === 'dataCell' && target.inEditMode && evt.key.toLowerCase() === 'tab') {
- // 1. USER INPUT VALIDATION ON TAB
- }
- if (type === 'dataCell' && evt.key.toLowerCase() === 'enter') {
- // 2. CUSTOM NAVIGATION ON ENTER KEY PRESS
- }
-}
-```
-Based on the [IGridKeydownEventArgs](mcp:get_api_reference?platform=angular&component=IGridKeydownEventArgs) values we identified two cases, where to provide our own logic (see above). Now, using the methods from the API, let's perform the desired - if the user is pressing Tab key over a cell in edit mode, we will perform validation on the input. If the user is pressing Enter key over a cell, we will move focus to cell in the next row:
-```typescript
- // 1. USER INPUT VALIDATION ON TAB
- if (target.column.dataType === 'number' && target.editValue < 18) {
- // alert the user that the input is invalid
- return;
- }
- // 2. CUSTOM NAVIGATION ON ENTER KEY PRESS
- const nexRowIndex = target.row.expanded ? target.rowIndex + 2 : target.rowIndex + 1;
- grid.navigateTo(nexRowIndex, target.visibleColumnIndex,
- (obj) => { obj.target.nativeElement.focus(); });
-```
-> Note: Please refer to the sample code for full implementation details.
-Use the demo below to try out the custom scenarios that we just implemented:
-- Double click or press F2 key on a cell in the `Age` column, change the value to `16` and press tab key. Prompt message will be shown.
-- Select a cell and press Enter key a couple of times. Every key press will move the focus to a cell in the next row, under the same column.
-```typescript
-import { Component, OnInit, ViewChild } from '@angular/core';
-import { CellType, GridSelectionMode, IGridKeydownEventArgs, IgxColumnComponent } from 'igniteui-angular/grids/core';
-import { IgxTreeGridComponent } from 'igniteui-angular/grids/tree-grid';
-import { IgxPaginatorComponent } from 'igniteui-angular/paginator';
-import { EMPLOYEE_DATA } from './data';
-import { IgxPreventDocumentScrollDirective } from '../../directives/prevent-scroll.directive';
-
-@Component({
- selector: 'app-tree-grid-keyboard-navigation-sample',
- styleUrls: ['./tree-grid-keyboard-navigation-sample.component.scss'],
- templateUrl: './tree-grid-keyboard-navigation-sample.component.html',
- imports: [IgxTreeGridComponent, IgxPreventDocumentScrollDirective, IgxPaginatorComponent, IgxColumnComponent]
-})
-export class TreeGridKBNavigationComponent implements OnInit {
- @ViewChild('grid1', { read: IgxTreeGridComponent, static: true })
- public grid1: IgxTreeGridComponent;
- public localData: any[];
- public selectionMode: GridSelectionMode = 'multiple';
- constructor() { }
-
- public ngOnInit() {
- this.localData = EMPLOYEE_DATA;
- }
-
- public customKeydown(args: IGridKeydownEventArgs) {
- const target: CellType = args.target as CellType;
- const evt: KeyboardEvent = args.event as KeyboardEvent;
- const type = args.targetType;
-
- 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 < 18) {
- alert('The value should be bigger than 18');
- return;
- }
- const cell = evt.shiftKey ?
- this.grid1.getPreviousCell(target.row.index, target.column.visibleIndex, (col) => col.editable) :
- this.grid1.getNextCell(target.row.index, target.column.visibleIndex, (col) => col.editable);
- this.grid1.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;
- this.grid1.navigateTo(target.row.index + 1, target.column.visibleIndex,
- (obj) => { obj.target.activate(); });
- }
- }
-}
-```
-```html
-
-
-
-
-
-
-
-
-```
-```scss
-.grid__wrapper {
- --ig-size: var(--ig-size-small);
- margin: 15px;
-}
-```
-## Known Limitations
-| Limitation | Description |
-| :--------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| Navigating inside а grid with scrollable parent container. | If the grid is positioned inside a scrollable parent container and the user navigates to a grid cell that is out of view, parent container will not be scrolled. |
-## API References
-- [IgxTreeGridComponent API](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
-- [IgxTreeGridComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme)
-## Additional Resources
-
-_[Hierarchical Grid Keyboard Navigation](../hierarchicalgrid/keyboard-navigation.md)
-_ [Grid Keyboard Navigation](../grid/keyboard-navigation.md)
-- [Tree Grid overview](tree-grid.md)
-- [Virtualization and Performance](virtualization.md)
-- [Filtering](filtering.md)
-- [Sorting](sorting.md)
-- [Summaries](summaries.md)
-- [Column Moving](column-moving.md)
-- [Column Pinning](column-pinning.md)
-- [Column Resizing](column-resizing.md)
-- [Selection](selection.md)
-
-Our community is active and always welcoming to new ideas.
-- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
-- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-live-data.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-live-data.md
index db0a5169e..7aa914496 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-live-data.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-live-data.md
@@ -1,17 +1,23 @@
---
title: Live Data Updates in Angular Tree Grid - Ignite UI for Angular
-_description: Check out how the Ignite UI for Angular Tree Grid can handle thousands of updates per second, while staying responsive for user interactions.
-_keywords: angular data grid, angular grid updates, angular live data
-_license: commercial
+description: Check out how the Ignite UI for Angular Tree Grid can handle thousands of updates per second, while staying responsive for user interactions.
+keywords: angular data grid, angular grid updates, angular live data
+license: commercial
_canonicalLink: grid/live-data
+llms:
+ description: "The Tree Grid component is able to handle thousands of updates per second, while staying responsive for user interactions."
_tocName: Live Data / Real-Time
_premium: true
---
# Angular Tree Grid Live Data Updates
+
The Tree Grid component is able to handle thousands of updates per second, while staying responsive for user interactions.
+
## Angular Live-data Update Example
+
The sample below demonstrates the Tree Grid performance when all records are updated multiple times per second. Use the UI controls to choose the number of records loaded and the frequency of updates.
-Feed the same data into the [Line Chart](../charts/types/line-chart.md) to experience the powerful charting capabilities of Ignite UI for Angular. The `Chart` button will show `Category Prices per Region` data for the selected rows and the `Chart` column button will show the same for the current row.
+Feed the same data into the [Line Chart](/charts/types/line-chart) to experience the powerful charting capabilities of Ignite UI for Angular. The `Chart` button will show `Category Prices per Region` data for the selected rows and the `Chart` column button will show the same for the current row.
+
```typescript
import { ChangeDetectorRef, Component, ElementRef, OnInit, OnDestroy, ViewChild, HostBinding, inject } from '@angular/core';
import { AbsoluteScrollStrategy, ConnectedPositioningStrategy, DefaultSortingStrategy, HorizontalAlignment, IGroupingExpression, IgxOverlayOutletDirective, OverlaySettings, PositionSettings, TreeGridFilteringStrategy, VerticalAlignment } from 'igniteui-angular/core';
@@ -674,22 +680,22 @@ igx-grid {
max-width: none;
}
```
+
## API References
-
-- [IgxTreeGridComponent](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
-- [IgxGridCell](mcp:get_api_reference?platform=angular&component=IgxGridCell)
-- [IgxTreeGridRow](mcp:get_api_reference?platform=angular&component=IgxTreeGridRow)
-- [IgxGridComponent](mcp:get_api_reference?platform=angular&component=IgxGridComponent)
-- [IgxGridComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme)
-- [IgxGridCell](mcp:get_api_reference?platform=angular&component=IgxGridCell)
-- [IgxBaseTransactionService](mcp:get_api_reference?platform=angular&component=IgxBaseTransactionService)
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+- [`IgxGridCell`](mcp:get_api_reference?platform=angular&component=IgxGridCell)
+- [`IgxTreeGridRow`](mcp:get_api_reference?platform=angular&component=IgxTreeGridRow)
+- [`IgxGrid`](mcp:get_api_reference?platform=angular&component=IgxGridComponent)
+- `IgxGridComponent Styles`
+- [`IgxGridCell`](mcp:get_api_reference?platform=angular&component=IgxGridCell)
+- [`IgxBaseTransactionService`](mcp:get_api_reference?platform=angular&component=IgxBaseTransactionService)
+
## Additional Resources
-
-- [Data Grid](../grid/grid.md)
-- [Row Editing](row-editing.md)
-
+- [Data Grid](/grid/grid)
+- [Row Editing](/treegrid/row-editing)
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
-
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-load-on-demand.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-load-on-demand.md
index c80081d7b..23e8d5590 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-load-on-demand.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-load-on-demand.md
@@ -1,19 +1,19 @@
---
title: Tree Grid load on demand - Native Angular | Ignite UI for Angular
-_description: The Ignite UI for Angular Tree Grid provides the necessary tools to load child data on demand when a parent row is expanded. That way the volume of data would be greatly reduced and can be retrieved only when the user needs it.
-_keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Angular Tree Grid component, Angular Tree Table component, Angular Tree Grid control, Angular Tree Table control, Angular High Performance Tree Grid, Angular High Performance Tree Table, Tree Grid, Tree Table
-_license: commercial
+description: The Ignite UI for Angular Tree Grid provides the necessary tools to load child data on demand when a parent row is expanded. That way the volume of data would be greatly reduced and can be retrieved only when the user needs it.
+keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Angular Tree Grid component, Angular Tree Table component, Angular Tree Grid control, Angular Tree Table control, Angular High Performance Tree Grid, Angular High Performance Tree Table, Tree Grid, Tree Table
+license: commercial
+llms:
+ description: "The Ignite UI for Angular TreeGrid can be rendered in such way that it requires the minimal amount of data to get from the server so the user could see it as quickly as possible."
_tocName: Load On Demand
_premium: true
---
-
# Tree Grid Load On Demand
The Ignite UI for Angular [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) can be rendered in such way that it requires the minimal amount of data to get from the server so the user could see it as quickly as possible. Then, only after the user expands a row, the children for that particular parent row will be loaded. This mechanism, also known as Load on Demand, can be easily configured to work with any remote data.
## Angular Tree Grid Load On Demand Example
-
```typescript
import { Component, OnInit, ViewChild } from '@angular/core';
import { IgxTreeGridComponent } from 'igniteui-angular/grids/tree-grid';
@@ -64,11 +64,9 @@ export class TreeGridLoadOnDemandSampleComponent implements OnInit {
}
```
-
-
### Usage
-The Load on Demand feature is compatible with both types of Tree Grid data sources - [`primary and foreign keys`](tree-grid.md#primary-and-foreign-keys) or [`child collection`](tree-grid.md#child-collection). You only need to load the root level data in the Tree Grid and specify the necessary keys for one of the data source types. In order to load the child rows when the user expands a row, the Tree Grid provides the callback input property [`loadChildrenOnDemand`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=loadChildrenOnDemand).
+The Load on Demand feature is compatible with both types of Tree Grid data sources - [`primary and foreign keys`](/treegrid/tree-grid#primary-and-foreign-keys) or [`child collection`](/treegrid/tree-grid#child-collection). You only need to load the root level data in the Tree Grid and specify the necessary keys for one of the data source types. In order to load the child rows when the user expands a row, the Tree Grid provides the callback input property [`loadChildrenOnDemand`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=loadChildrenOnDemand).
```html
```
+
The [`loadChildrenOnDemand`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=loadChildrenOnDemand) callback provides two parameters:
- parentID - the ID of the parent row that is being expanded.
@@ -114,25 +113,18 @@ If you want to provide your own custom loading indicator, you may create an ng-t
```
-> [!NOTE]
-> This component uses Material Icons. Add the following link to your `index.html`: ``
+**Note:**
+This component uses Material Icons. Add the following link to your `index.html`: ``
## API References
-
-
-
-- [IgxTreeGridComponent](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
-- [IgxGridComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme)
-
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+- `IgxGridComponent Styles`
## Additional Resources
-
-
-- [Tree Grid overview](tree-grid.md)
-- [Tree Grid Virtualization and Performance](virtualization.md)
+- [Tree Grid overview](/treegrid/tree-grid)
+- [Tree Grid Virtualization and Performance](/treegrid/virtualization)
-
Our community is active and always welcoming to new ideas.
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
-- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
+- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
\ No newline at end of file
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-multi-column-headers.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-multi-column-headers.md
index d4e3f1ef7..d511944f4 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-multi-column-headers.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-multi-column-headers.md
@@ -1,15 +1,20 @@
---
title: Angular Multi-column Headers - Ignite UI for Angular
-_description: SStart grouping column headers by placing them under a common hierarchical header with the help of Ignite UI for Angular grid and combine them into multi headers.
-_keywords: column headers, ignite ui for angular, infragistics
-_license: commercial
+description: Start grouping column headers by placing them under a common hierarchical header with the help of Ignite UI for Angular grid and combine them into multi headers.
+keywords: column headers, ignite ui for angular, infragistics
+license: commercial
_canonicalLink: grid/multi-column-headers
+llms:
+ description: "TreeGrid supports multi-column headers which allows you to group columns by placing them under a common multi headers."
_tocName: Multi-column Headers
_premium: true
---
# Angular Tree Grid Multi-column Headers Overview
+
[`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) supports `multi-column headers` which allows you to group columns by placing them under a common multi headers. Each multi-column headers group could be a representation of combinations between other groups or columns within the Material UI grid.
+
## Angular Tree Grid Multi-column Headers Overview Example
+
```typescript
import { Component, ViewChild } from '@angular/core';
import { GridSelectionMode, IgxColumnComponent, IgxColumnGroupComponent } from 'igniteui-angular/grids/core';
@@ -102,7 +107,9 @@ export class TreeGridMultiColumnHeadersSampleComponent {
margin-right: 5px;
}
```
+
The declaration of `Multi-column header` could be achieved by wrapping a set of columns into [`igx-column-group`](mcp:get_api_reference?platform=angular&component=IgxColumnGroupComponent) component with [`header`](mcp:get_api_reference?platform=angular&component=IgxColumnGroupComponent&member=header) title passed.
+
```html
@@ -112,7 +119,9 @@ The declaration of `Multi-column header` could be achieved by wrapping a set of
```
+
For achieving `n-th` level of nested headers, the declaration above should be followed. So by nesting [`igx-column-group`](mcp:get_api_reference?platform=angular&component=IgxColumnGroupComponent) leads to the desired result.
+
```html
@@ -125,12 +134,15 @@ For achieving `n-th` level of nested headers, the declaration above should be fo
```
-Every [`igx-column-group`](mcp:get_api_reference?platform=angular&component=IgxColumnGroupComponent) supports [`moving`](column-moving.md), [`pinning`](column-pinning.md) and [`hiding`](column-hiding.md).
-> [!NOTE]
-> When there is a set of columns and column groups, pinning works only for top level column parents. More specifically pinning per nested `column groups` or `columns` is not allowed.
-> Please note that when using Pinning with Multi-Column Headers, the entire Group gets pinned.
-> Moving between `columns` and `column groups` is allowed only when they are at the same level in the hierarchy and both are in the same `group`.
-> When `columns/column-groups` are not wrapped by current `group` which means they are **top level** `columns`, moving is allowed between whole visible columns.
+
+Every [`igx-column-group`](mcp:get_api_reference?platform=angular&component=IgxColumnGroupComponent) supports [`moving`](/treegrid/column-moving), [`pinning`](/treegrid/column-pinning) and [`hiding`](/treegrid/column-hiding).
+**Note:**
+When there is a set of columns and column groups, pinning works only for top level column parents. More specifically pinning per nested `column groups` or `columns` is not allowed.
+Please note that when using Pinning with Multi-Column Headers, the entire Group gets pinned.
+Moving between `columns` and `column groups` is allowed only when they are at the same level in the hierarchy and both are in the same `group`.
+When `columns/column-groups` are not wrapped by current `group` which means they are **top level** `columns`, moving is allowed between whole visible columns.
+
+
```html
@@ -141,9 +153,12 @@ Every [`igx-column-group`](mcp:get_api_reference?platform=angular&component=IgxC
```
+
## Multi-column Header Template
+
Each of the column groups of the grid can be templated separately. The column group expects `ng-template` tag decorated with the `igxHeader` directive.
The `ng-template` is provided with the column group object as a context.
+
```html
...
@@ -154,11 +169,14 @@ The `ng-template` is provided with the column group object as a context.
...
```
+
If you want to re-use a single template for several column groups, you could set the [`headerTemplate`](mcp:get_api_reference?platform=angular&component=IgxColumnGroupComponent&member=headertemplate) property of the column group like this:
+
```html
{{ columnGroup.header | uppercase }}
+
...
...
@@ -168,14 +186,19 @@ If you want to re-use a single template for several column groups, you could set
...
```
-> [!NOTE]
-> If a column header is retemplated and the grid moving is enabled, you have to set the **draggable** attribute of corresponding column to **false** on the templated elements, so that you can handle any of the events that are applied!
+
+**Note:**
+If a column header is retemplated and the grid moving is enabled, you have to set the **draggable** attribute of corresponding column to **false** on the templated elements, so that you can handle any of the events that are applied!
+
+
```html
```
+
The following sample demonstrates how to implement collapsible column groups using header templates.
+
```typescript
import { Component, ViewChild } from '@angular/core';
import { GridSelectionMode, IgxColumnComponent, IgxColumnGroupComponent } from 'igniteui-angular/grids/core';
@@ -274,32 +297,44 @@ export class TreeGridMultiColumnHeaderTemplateSampleComponent {
cursor: pointer;
}
```
+
## Styling
-To get started with styling the sorting behavior, we need to import the `index` file, where all the theme functions and component mixins live:
+
+To get started with styling the sorting behavior, we need to import the `index` file, where all the theme functions and the `tokens()` mixin are exported:
+
```scss
@use "igniteui-angular/theming" as *;
+
// IMPORTANT: Prior to Ignite UI for Angular version 13 use:
// @import '~igniteui-angular/lib/core/styles/themes/index';
```
-Following the simplest approach, we create a new theme that extends the [`grid-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme) and accepts the `$header-background`, `$header-text-color`, `$header-border-width`, `$header-border-style` and `$header-border-color` parameters.
+
+Following the simplest approach, we create a new theme that extends the `grid-theme` and accepts the `$header-background`, `$header-text-color`, `$header-border-width`, `$header-border-style` and `$header-border-color` parameters.
+
```scss
$custom-theme: grid-theme(
- $header-background: #e0f3ff,
- $header-text-color: #e41c77,
+ $header-background: #f1eaf6,
+ $header-text-color: #8c1bdd,
$header-border-width: 1px,
$header-border-style: solid,
- $header-border-color: rgba(0, 0, 0, 0.08)
+ $header-border-color: #d3b9e6,
+ $cell-active-border-color: #7409c1
);
```
->[!NOTE]
->Instead of hardcoding the color values like we just did, we can achieve greater flexibility in terms of colors by using the [`palette`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/palettes#function-palette) and [`color`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/palettes#function-color) functions. Please refer to [`Palettes`](../themes/sass/palettes.md) topic for detailed guidance on how to use them.
-The last step is to **include** the component mixins:
+
+**Note:**
+Instead of hardcoding the color values like we just did, we can achieve greater flexibility in terms of colors by using the `palette` and `color` functions. Please refer to [`Palettes`](/themes/sass/palettes) topic for detailed guidance on how to use them.
+
+The last step is to apply the component theme with `tokens()`:
+
```scss
:host {
@include tokens($custom-theme);
}
```
+
### Demo
+
```typescript
import { Component } from '@angular/core';
import { generateEmployeeDetailedFlatData } from '../data/employees-flat-detailed';
@@ -379,25 +414,26 @@ $custom-theme: grid-theme(
@include tokens($custom-theme);
}
```
->[!NOTE]
->The sample will not be affected by the selected global theme from `Change Theme`.
+
+**Note:**
+The sample will not be affected by the selected global theme from `Change Theme`.
+
## API References
-
-- [IgxTreeGridComponent](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
-- [IgxTreeGridComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme)
-- [IgxColumnGroupComponent](mcp:get_api_reference?platform=angular&component=IgxColumnGroupComponent)
-
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+- `IgxTreeGridComponent Styles`
+- [`IgxColumnGroup`](mcp:get_api_reference?platform=angular&component=IgxColumnGroupComponent)
## Additional Resources
-
-- [Tree Grid overview](tree-grid.md)
-- [Virtualization and Performance](virtualization.md)
-- [Paging](paging.md)
-- [Filtering](filtering.md)
-- [Sorting](sorting.md)
-- [Summaries](summaries.md)
-- [Column Resizing](column-resizing.md)
-- [Selection](selection.md)
-
+
+- [Tree Grid overview](/treegrid/tree-grid)
+- [Virtualization and Performance](/treegrid/virtualization)
+- [Paging](/treegrid/paging)
+- [Filtering](/treegrid/filtering)
+- [Sorting](/treegrid/sorting)
+- [Summaries](/treegrid/summaries)
+- [Column Resizing](/treegrid/column-resizing)
+- [Selection](/treegrid/selection)
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-paging.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-paging.md
index 6ee632383..e4b7a5f0a 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-paging.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-paging.md
@@ -1,16 +1,22 @@
---
title: Angular Grid Paging | Angular Pagination Table | Infragistics
-_description: Configure Angular pagination and create custom pages in the Angular table by Ignite UI, get data for the requested pages with variety of angular events.
-_keywords: angular pagination, igniteui for angular, infragistics
-_license: commercial
+description: Configure Angular pagination and create custom pages in the Angular table by Ignite UI, get data for the requested pages with variety of angular events.
+keywords: angular pagination, igniteui for angular, infragistics
+license: commercial
_canonicalLink: grid/paging
+llms:
+ description: "Pagination is used to split a large set of data into a sequence of pages that have similar content."
_tocName: Paging
_premium: true
---
# Angular Tree Grid Pagination
+
Pagination is used to split a large set of data into a sequence of pages that have similar content. Angular table pagination improves user experience and data interaction. Tree Grid pagination is configurable via a separate component projected in the grid tree by defining a `igx-paginator` tag, similar to adding of a column. As in any Angular Table, the pagination in the Tree Grid supports template for custom pages.
+
## Angular Pagination Example
+
The following example represents Tree Grid pagination and exposes the options usage of `items per page` and how paging can be enabled. The user can also quickly navigate through the Tree Grid pages via "Go to last page" and "Go to first page" buttons.
+
```typescript
import { Component, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';
import { IgxTreeGridComponent } from 'igniteui-angular/grids/tree-grid';
@@ -108,14 +114,18 @@ $progressBar-sample-theme: progress-linear-theme(
width: 100%;
}
```
-Adding a [`igx-paginator`](../paginator.md) component will control whether the feature is present, you can enable/disable it by using a simple `*ngIf` with a toggle property. The [`perPage`](mcp:get_api_reference?platform=angular&component=IgxPaginatorComponent&member=perPage) input controls the visible records per page. Let’s update our Tree Grid to enable paging:
+
+Adding a [`igx-paginator`](/paginator) component will control whether the feature is present, you can enable/disable it by using a simple `*ngIf` with a toggle property. The [`perPage`](mcp:get_api_reference?platform=angular&component=IgxPaginatorComponent&member=perPage) input controls the visible records per page. Let’s update our Tree Grid to enable paging:
+
```html
```
+
Example:
+
```html
@@ -133,8 +143,11 @@ Example:
```
+
## Usage
+
The `igx-paginator` component is used along with the `igx-tree-grid` component in the example below, but you can use it with any other component in case paging functionality is needed.
+
```html
```
+
### Paginator Component Demo
+
```typescript
import { Component, OnInit, ViewChild, AfterViewInit, PLATFORM_ID, inject } from '@angular/core';
import { IPaginatorResourceStrings } from 'igniteui-angular/core';
@@ -273,63 +288,45 @@ igx-switch {
margin-left: 15px;
}
```
-
+
## Remote Paging
-Remote paging can be achieved by declaring a service, responsible for data fetching and a component, which will be responsible for the Grid construction and data subscription. For more detailed information, check the [`Tree Grid Remote Data Operations`](remote-data-operations.md#remote-paging) topic.
+
+Remote paging can be achieved by declaring a service, responsible for data fetching and a component, which will be responsible for the Grid construction and data subscription.
+
+For more detailed information, check the [`Tree Grid Remote Data Operations`](/treegrid/remote-data-operations#remote-paging) topic.
+
## Styling
-To get started with styling the paginator, we need to import the `index` file, where all the theme functions and component mixins live:
+
+To get started with styling the paginator, we need to import the `index` file, where all the theme functions and the `tokens()` mixin are exported:
+
```scss
@use "igniteui-angular/theming" as *;
+
// IMPORTANT: Prior to Ignite UI for Angular version 13 use:
// @import '~igniteui-angular/lib/core/styles/themes/index';
```
-Following the simplest approach, we create a new theme that extends the [`paginator-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-paginator-theme) and accepts the `$text-color`, `$background-color` and the `$border-color` parameters.
-```scss
-$dark-paginator: paginator-theme(
- $text-color: #d0ab23;,
- $background-color: #231c2c,
- $border-color: #d0ab23;
-);
-```
-As seen, the `paginator-theme` only controls colors for the paging container, but does not affect the buttons in the pager UI. To style those buttons, let's create a new icon button theme:
+
+Following the simplest approach, we create a new theme that extends the `paginator-theme` and accepts the `$foreground`, `$background`, `$border-color` and `$accent-color` parameters.
+
```scss
-$dark-button: flat-icon-button-theme(
- $foreground: #d0ab23,
- $hover-foreground: #231c2c,
- $hover-background: #d0ab23,
- $focus-foreground: #231c2c,
- $focus-background: #d0ab23,
- $disabled-foreground: #9b7829
+$paginator-theme: paginator-theme(
+ $foreground: #ff570f,
+ $background: #130425FF,
+ $border-color: #ff570f,
+ $accent-color: #ff570f,
);
```
->[!NOTE]
->Instead of hardcoding the color values like we just did, we can achieve greater flexibility in terms of colors by using the [`palette`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/palettes#function-palette) and [`color`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/palettes#function-color) functions. Please refer to [`Palettes`](../themes/sass/palettes.md) topic for detailed guidance on how to use them.
-The last step is to **include** the component mixins, each with its respective theme:
-```scss
-:host {
- @include tokens($dark-paginator);
- .igx-grid-paginator__pager {
- @include tokens($dark-button);
- }
-}
-```
->[!NOTE]
->We include the created **icon-button-theme** within `.igx-paginator__pager`, so that only the paginator buttons would be styled. Otherwise other icon buttons in the grid would be affected too.
->[!NOTE]
->If the component is using an [`Emulated`](../themes/sass/component-themes.md#view-encapsulation) ViewEncapsulation, it is necessary to `penetrate` this encapsulation using `::ng-deep` in order to style the components which are inside the paging container, like the button:
-```scss
-:host {
- @include tokens($dark-paginator);
+After that we can **include** the newly created theme.
- igx-paginator {
- ::ng-deep {
- @include tokens($dark-button);
- }
- }
+```scss
+igx-paginator {
+ @include tokens($paginator-theme);
}
```
+
### Demo
+
```typescript
import { Component, OnInit } from '@angular/core';
import { ORDERS_DATA } from '../data/orders';
@@ -422,23 +419,26 @@ igx-paginator {
@include tokens($paginator-theme);
}
```
+
## API References
-- [IgxTreeGridComponent API](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
-- [IgxTreeGridComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme)
-- [IgxGridPaginator Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-paginator-theme)
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+- `IgxTreeGridComponent Styles`
+- `IgxGridPaginator Styles`
## Additional Resources
-
-- [Tree Grid overview](tree-grid.md)
-- [Paginator](../paginator.md)
-- [Virtualization and Performance](virtualization.md)
-- [Filtering](filtering.md)
-- [Sorting](sorting.md)
-- [Summaries](summaries.md)
-- [Column Moving](column-moving.md)
-- [Column Pinning](column-pinning.md)
-- [Column Resizing](column-resizing.md)
-- [Selection](selection.md)
-
+
+- [Tree Grid overview](/treegrid/tree-grid)
+- [Paginator](/paginator)
+
+- [Virtualization and Performance](/treegrid/virtualization)
+- [Filtering](/treegrid/filtering)
+- [Sorting](/treegrid/sorting)
+- [Summaries](/treegrid/summaries)
+- [Column Moving](/treegrid/column-moving)
+- [Column Pinning](/treegrid/column-pinning)
+- [Column Resizing](/treegrid/column-resizing)
+- [Selection](/treegrid/selection)
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-remote-data-operations.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-remote-data-operations.md
index f3faffcde..7b64018c0 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-remote-data-operations.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-remote-data-operations.md
@@ -1,15 +1,20 @@
---
title: Angular Tree Remote Data Operations - Ignite UI for Angular
-_description: Start using Angular remote data operations like remote filtering, remote sorting, and remote scrolling to load data from a server with Ignite UI for Angular.
-_keywords: angular remote data operations, ignite ui for angular, infragistics
-_license: commercial
+description: Start using Angular remote data operations like remote filtering, remote sorting, and remote scrolling to load data from a server with Ignite UI for Angular.
+keywords: angular remote data operations, ignite ui for angular, infragistics
+license: commercial
_canonicalLink: grid/remote-data-operations
+llms:
+ description: "The Ignite UI for Angular Tree Grid supports remote data operations such as remote virtualization, remote sorting, remote filtering and others."
_tocName: Remote Data Operations
_premium: true
---
# Angular Tree Grid Remote Data Operations
+
The Ignite UI for Angular Tree Grid supports remote data operations such as remote virtualization, remote sorting, remote filtering and others. This allows the developer to perform these tasks on a server, retrieve the data that is produced and display it in the Tree Grid.
+
## Angular Tree Grid Remote Data Operations Overview Example
+
```typescript
import { AfterViewInit, ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild, inject } from '@angular/core';
import { IgxTreeGridComponent } from 'igniteui-angular/grids/tree-grid';
@@ -95,12 +100,16 @@ export class TreeGridRemoteFilteringSampleComponent implements OnInit, AfterView
margin: 16px;
}
```
-
+
By default, the Tree Grid uses its own logic for performing data operations.
You can perform these tasks remotely and feed the resulting data to the Tree Grid by taking advantage of certain inputs and events, which are exposed by the Tree Grid.
+
### Remote Filtering
+
To provide remote filtering, you need to subscribe to the [`filteringExpressionsTreeChange`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=filteringExpressionsTreeChange) output so that you make the appropriate request based on the arguments received. Let's use a flat collection as a data source for our Tree Grid by providing a [`primaryKey`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=primaryKey) and a [`foreignKey`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=foreignKey).
+
We will also take advantage of the **rxjs** `debounceTime` function, which emits a value from the source Observable only after a particular time span has passed without another source emission. This way the remote operation will be triggered only when the specified amount of time has passed without the user interrupting it.
+
```typescript
const DEBOUNCE_TIME = 300;
...
@@ -114,9 +123,12 @@ public ngAfterViewInit() {
});
}
```
+
When remote filtering is provided, usually we do not need the built-in filtering of the Tree Grid. We can disable it by setting the [`filterStrategy`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=filterStrategy) input of the Tree Grid to the `NoopFilteringStrategy` instance.
+
```html
+
```
+
```typescript
// tree-grid-remote-filtering-sample.ts
+
public noopFilterStrategy = NoopFilteringStrategy.instance();
+
public processData() {
this.treeGrid.isLoading = true;
@@ -139,25 +154,36 @@ public processData() {
});
}
```
+
The remote filtering will have to be performed over the flat collection directly. We will also have to include all the parents for any record that matches the filtering condition regardless of whether or not the parents match the filtering (we do this to keep the hierarchy intact). The result can be seen below:
->[!NOTE]
->When remote data is requested, the filtering operation is case-sensitive.
+
+**Note:**
+When remote data is requested, the filtering operation is case-sensitive.
+
### Remote Filtering Demo
-
+
You can see the result of the code from above at the beginning of this article in the [Demo](#angular-tree-grid-remote-data-operations-overview-example) section.
-## Unique Column Values Strategy
+
+### Unique Column Values Strategy
+
The list items inside the Excel Style Filtering dialog represent the unique values for the respective column. The Tree Grid generates these values based on its data source by default. In case of remote filtering, the grid data does not contain all the data from the server. In order to provide the unique values manually and load them on demand, we can take advantage of the Tree Grid's [`uniqueColumnValuesStrategy`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=uniqueColumnValuesStrategy) input. This input is actually a method that provides three arguments:
+
- **column** - The respective column instance.
- **filteringExpressionsTree** - The filtering expressions tree, which is reduced based on the respective column.
- **done** - Callback that should be called with the newly generated column values when they are retrieved from the server.
+
The developer can manually generate the necessary unique column values based on the information, that is provided by the **column** and the **filteringExpressionsTree** arguments and then invoke the **done** callback.
-> [!NOTE]
-> When the [`uniqueColumnValuesStrategy`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=uniqueColumnValuesStrategy) input is provided, the default unique values generating process in the excel style filtering will not be used.
+
+**Note:**
+When the [`uniqueColumnValuesStrategy`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=uniqueColumnValuesStrategy) input is provided, the default unique values generating process in the excel style filtering will not be used.
+
+
```html
...
```
+
```typescript
public columnValuesStrategy = (column: ColumnType,
columnExprTree: IFilteringExpressionsTree,
@@ -166,7 +192,9 @@ public columnValuesStrategy = (column: ColumnType,
this.remoteValuesService.getColumnData(column, columnExprTree, uniqueValues => done(uniqueValues));
}
```
+
### Unique Column Values Strategy Demo
+
```typescript
import { Component, OnInit, inject } from '@angular/core';
import { ColumnType, IFilteringExpressionsTree } from 'igniteui-angular/core';
@@ -231,7 +259,9 @@ export class TreeGridExcelStyleFilteringLoadOnDemandComponent implements OnInit
margin: 16px;
}
```
+
In order to provide a custom loading template for the excel style filtering, we can use the `igxExcelStyleLoading` directive:
+
```html
...
@@ -240,56 +270,28 @@ In order to provide a custom loading template for the excel style filtering, we
```
-
-## Remote Paging
-@@if (igxName === 'IgxGrid' || igxName === 'IgxHierarchicalGrid') {
-The paging feature can operate with remote data. In order to demonstrate this let's first declare our service that will be responsible for data fetching. We will need the count of all data items in order to calculate the page count. This logic will be added to our service.
-```typescript
-@Injectable()
-export class RemotePagingService {
- public remoteData: BehaviorSubject;
- public dataLenght: BehaviorSubject = new BehaviorSubject(0);
- public url = 'https://www.igniteui.com/api/products';
-
- constructor(private http: HttpClient) {
- this.remoteData = new BehaviorSubject([]) as any;
- }
-
- public getData(index?: number, perPage?: number): any {
- let qS = '';
-
- if (perPage) {
- qS = `?$skip=${index}&$top=${perPage}&$count=true`;
- }
- this.http
- .get(`${this.url + qS}`).pipe(
- map((data: any) => data)
- ).subscribe((data) => this.remoteData.next(data));
- }
+## Remote Paging
- public getDataLength(): any {
- return this.http.get(this.url).pipe(
- map((data: any) => data.length)
- );
- }
-}
-```
-After declaring the service, we need to create a component, which will be responsible for the Tree Grid construction and data subscription.
-}
In this sample we will demonstrate how to display a certain number of root records per page no matter how many child records they have. In order to cancel the built-in Tree Grid paging algorithm, which displays a certain number of records no matter their level (root or child), we have to set the [`perPage`](mcp:get_api_reference?platform=angular&component=IgxPaginatorComponent&member=perPage) property to `Number.MAX_SAFE_INTEGER`.
+
```html
...
```
+
```typescript
public maxPerPage = Number.MAX_SAFE_INTEGER;
```
+
Now we can choose between setting-up our own _custom paging template_ or using the default one that the `igx-paginator` provides. Let's first take a look what is necessary to set-up remote paging by using the _default paging template_.
+
### Remote paging with default template
+
If you want to use the _default paging template_ you need to set the Paginator's [`totalRecords`](mcp:get_api_reference?platform=angular&component=IgxPaginatorComponent&member=totalRecords) property, only then the grid will be able to calculate the _total page number_ based on total remote records. When performing a remote pagination the Paginator will pass to the Grid only the data for the current page, so the grid will not try to paginate the provided data source. That's why we should set Grid's [`pagingMode`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=pagingMode) property to _GridPagingMode.remote_. Also it is necessary to either subscribe to [`pagingDone`](mcp:get_api_reference?platform=angular&component=IgxPaginatorComponent&member=pagingDone) or [`perPageChange`](mcp:get_api_reference?platform=angular&component=IgxPaginatorComponent&member=perPageChange) events in order to fetch the data from your remote service, it depends on the use case which event will be used.
+
```html
@@ -299,17 +301,21 @@ If you want to use the _default paging template_ you need to set the Paginator's
```
+
```typescript
public totalCount = 0;
public data: Observable;
public mode = GridPagingMode.remote;
public isLoading = true;
@ViewChild('grid1', { static: true }) public grid1: IgxGridComponent;
+
private _dataLengthSubscriber;
+
public set perPage(val: number) {
this._perPage = val;
this.paginate(0);
}
+
public ngOnInit() {
this.data = this.remoteService.remoteData.asObservable();
@@ -318,10 +324,12 @@ public ngOnInit() {
this.grid1.isLoading = false;
});
}
+
public ngAfterViewInit() {
const skip = this.page * this.perPage;
this.remoteService.getData(skip, this.perPage);
}
+
public paginate(page: number) {
this.page = page;
const skip = this.page * this.perPage;
@@ -330,6 +338,7 @@ public paginate(page: number) {
this.remoteService.getData(skip, top);
}
```
+
```typescript
import { formatNumber, AsyncPipe } from '@angular/common';
import { AfterViewInit, ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild, ViewEncapsulation, inject } from '@angular/core';
@@ -444,9 +453,11 @@ export class TreeGridRemotePagingDefaultTemplateComponent implements OnInit, Aft
margin-right: 0.5rem;
}
```
-
+
### Remote Paging with custom igx-paginator-content
-When we define a custom paginator content we need to define the content in a way to get the data only for the requested page and to pass the correct **skip** and **top** parameters to the remote service according to the selected page and items [`perPage`](mcp:get_api_reference?platform=angular&component=IgxPaginatorComponent&member=perPage). We are going to use the `` in order to ease our example configuration, along with the [`IgxPageSizeSelectorComponent`](mcp:get_api_reference?platform=angular&component=IgxPageSizeSelectorComponent) and [`IgxPageNavigationComponent`](mcp:get_api_reference?platform=angular&component=IgxPageNavigationComponent) that were introduced - `igx-page-size` will add the per page dropdown and label and `igx-page-nav` will add the navigation action buttons and labels.
+
+When we define a custom paginator content we need to define the content in a way to get the data only for the requested page and to pass the correct **skip** and **top** parameters to the remote service according to the selected page and items [`perPage`](mcp:get_api_reference?platform=angular&component=IgxPaginatorComponent&member=perPage). We are going to use the `` in order to ease our example configuration, along with the [`IgxPageSizeSelector`](mcp:get_api_reference?platform=angular&component=IgxPageSizeSelectorComponent) and [`IgxPageNavigation`](mcp:get_api_reference?platform=angular&component=IgxPageNavigationComponent) that were introduced - `igx-page-size` will add the per page dropdown and label and `igx-page-nav` will add the navigation action buttons and labels.
+
```html
```
+
```typescript
public paginate(page: number) {
this.page = page;
@@ -469,15 +481,20 @@ public paginate(page: number) {
this.remoteService.getData(skip, top);
}
```
->[!NOTE]
-> In order the Remote Paging to be configured properly a `GridPagingMode.Remote` should be set:
+
+**Note:**
+In order the Remote Paging to be configured properly a `GridPagingMode.Remote` should be set:
+
+
```html
...
public mode = GridPagingMode.Remote;
```
+
The last step will be to declare the paginator content based on your requirements.
+
```html
@@ -485,7 +502,9 @@ The last step will be to declare the paginator content based on your requirement
```
+
After all the changes above, the following result will be achieved.
+
```typescript
import { formatNumber, AsyncPipe } from '@angular/common';
import { AfterViewInit, Component, OnDestroy, OnInit, ViewChild, ViewEncapsulation, inject } from '@angular/core';
@@ -608,32 +627,34 @@ export class TreeGridRemotePagingSampleComponent implements OnInit, AfterViewIni
margin-right: 0.5rem;
}
```
-
+
## Known Issues and Limitations
+
- When the grid has no `primaryKey` set and remote data scenarios are enabled (when paging, sorting, filtering, scrolling trigger requests to a remote server to retrieve the data to be displayed in the grid), a row will lose the following state after a data request completes:
- Row Selection
- Row Expand/collapse
- Row Editing
- Row Pinning
-- In remote data scenarios, when the grid has a `primaryKey` set, [`rowSelectionChanging.oldSelection`](mcp:get_api_reference?platform=angular&component=IRowSelectionEventArgs&member=oldSelection) event argument will not contain the full row data object for the rows that are currently out of the data view. In this case, `rowSelectionChanging.oldSelection` object will contain only one property, which is the `primaryKey` field. For the rest of the rows, currently in the data view, `rowSelectionChanging.oldSelection` will contain the whole row data.
+- In remote data scenarios, when the grid has a `primaryKey` set, [`IgxIRowSelectionEventArgs.oldSelection`](mcp:get_api_reference?platform=angular&component=IRowSelectionEventArgs&member=oldSelection) event argument will not contain the full row data object for the rows that are currently out of the data view. In this case, `rowSelectionChanging.oldSelection` object will contain only one property, which is the `primaryKey` field. For the rest of the rows, currently in the data view, `rowSelectionChanging.oldSelection` will contain the whole row data.
+
## API References
-
-- [IgxPaginatorComponent API](mcp:get_api_reference?platform=angular&component=IgxPaginatorComponent)
-- [IgxTreeGridComponent API](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
-- [IgxTreeGridComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme)
+- [`IgxPaginatorComponent API`](mcp:get_api_reference?platform=angular&component=IgxPaginatorComponent)
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+- `IgxTreeGridComponent Styles`
## Additional Resources
-
-- [Paging](paging.md)
-- [Tree Grid overview](tree-grid.md)
-- [Virtualization and Performance](virtualization.md)
-- [Filtering](filtering.md)
-- [Sorting](sorting.md)
-- [Summaries](summaries.md)
-- [Column Moving](column-moving.md)
-- [Column Pinning](column-pinning.md)
-- [Column Resizing](column-resizing.md)
-- [Selection](selection.md)
-
+
+- [Paging](/treegrid/paging)
+- [Tree Grid overview](/treegrid/tree-grid)
+- [Virtualization and Performance](/treegrid/virtualization)
+- [Filtering](/treegrid/filtering)
+- [Sorting](/treegrid/sorting)
+- [Summaries](/treegrid/summaries)
+- [Column Moving](/treegrid/column-moving)
+- [Column Pinning](/treegrid/column-pinning)
+- [Column Resizing](/treegrid/column-resizing)
+- [Selection](/treegrid/selection)
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-row-actions.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-row-actions.md
index 7a0bccfdb..a2fd8fa78 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-row-actions.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-row-actions.md
@@ -1,30 +1,43 @@
---
title: Row actions in Angular Data Grid - Ignite UI for Angular
-_description: The grid component in Ignite UI for Angular provides the ability to use ActionStrip and utilize CRUD for row/cell components and row pinning.
-_keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Angular ActionStrip components, Angular ActionStrip directives, Angular ActionStrip controls
-_license: commercial
+description: The grid component in Ignite UI for Angular provides the ability to use ActionStrip and utilize CRUD for row/cell components and row pinning.
+keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Angular ActionStrip components, Angular ActionStrip directives, Angular ActionStrip controls
+license: commercial
+llms:
+ description: "The grid component in Ignite UI for Angular provides the ability to use ActionStrip and utilize CRUD for row/cell components and row pinning."
_tocName: Row Actions
_premium: true
---
# Row Actions in Angular Tree Grid
-The tree grid component in Ignite UI for Angular provides the ability to use [ActionStrip](../action-strip.md) and utilize CRUD for row/cell components and row pinning. The Action Strip component can host predefined UI controls for these operations.
+
+The tree grid component in Ignite UI for Angular provides the ability to use [ActionStrip](/action-strip) and utilize CRUD for row/cell components and row pinning. The Action Strip component can host predefined UI controls for these operations.
+
## Usage
+
The first step is to import the **IgxActionStripModule** in our **app.module.ts** file:
+
```typescript
// app.module.ts
+
...
import { IgxActionStripModule } from 'igniteui-angular/action-strip';
// import { IgxActionStripModule } from '@infragistics/igniteui-angular'; for licensed package
+
@NgModule({
...
imports: [..., IgxActionStripModule],
...
})
```
+
The predefined `actions` UI components are:
-- [`IgxGridEditingActionsComponent`](mcp:get_api_reference?platform=angular&component=IgxGridEditingActionsComponent) - includes functionality and UI specifically designed for the grid editing. It allows you to quickly toggle edit mode for cells or rows, depending on the [`rowEditable`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=rowEditable) option and row deletion of the grid.
-- [`IgxGridPinningActionsComponent`](mcp:get_api_reference?platform=angular&component=IgxGridPinningActionsComponent) - includes functionality and UI specifically designed for the grid row pinning. It allows you to quickly pin rows and navigate between pinned rows and their disabled counterparts.
+
+- [`IgxGridEditingActions`](mcp:get_api_reference?platform=angular&component=IgxGridEditingActionsComponent) - includes functionality and UI specifically designed for the grid editing. It allows you to quickly toggle edit mode for cells or rows, depending on the [`rowEditable`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=rowEditable) option and row deletion of the grid.
+
+- [`IgxGridPinningActions`](mcp:get_api_reference?platform=angular&component=IgxGridPinningActionsComponent) - includes functionality and UI specifically designed for the grid row pinning. It allows you to quickly pin rows and navigate between pinned rows and their disabled counterparts.
+
They are added inside the `` and this is all needed to have an Action Strip providing default interactions.
+
```html
@@ -36,10 +49,14 @@ They are added inside the `` and this is all needed to have an
```
->[!NOTE]
-> When `IgxActionStripComponent` is a child component of the grid, hovering a row will automatically show the UI.
+
+**Note:**
+When `IgxActionStripComponent` is a child component of the grid, hovering a row will automatically show the UI.
+
## Custom implementation
+
These components expose templates giving flexibility for customization. For instance, if we would like to use the `ActionStrip` for a Gmail scenario with row actions such as `delete`, `edit` and etc. You can simply create button component with `igx-icon`, add click event to it and insert it into the `igx-action-strip` component.
+
```html
@@ -53,6 +70,7 @@ These components expose templates giving flexibility for customization. For inst
```
+
```typescript
import { Component, ViewChild } from '@angular/core';
import { IgxTreeGridComponent } from 'igniteui-angular/grids/tree-grid';
@@ -133,13 +151,15 @@ export class TreeGridActionStripSampleComponent {
}
}
```
->[!NOTE]
-> The predefined actions inherit [`IgxGridActionsBaseDirective`]({environment:infragisticsBaseUrl}/classes/igxgridactionsbasedirective.html) and when creating a custom grid action component, it should also inherit `IgxGridActionsBaseDirective`.
+
+**Note:**
+The predefined actions inherit [`IgxGridActionsBaseDirective`](https://www.infragistics.com/classes/igxgridactionsbasedirective.html) and when creating a custom grid action component, it should also inherit `IgxGridActionsBaseDirective`.
+
## API References
For more detailed information regarding the Action Strip API, refer to the following links:
-- [`IgxActionStripComponent API`](mcp:get_api_reference?platform=angular&component=IgxActionStripComponent)
+- [`IgxActionStrip`](mcp:get_api_reference?platform=angular&component=IgxActionStripComponent)
Additional components and/or directives that can be used within the Action Strip:
- [`IgxGridActionsBaseDirective`](mcp:get_api_reference?platform=angular&component=IgxGridActionsBaseDirective)
-- [`IgxGridPinningActionsComponent`](mcp:get_api_reference?platform=angular&component=IgxGridPinningActionsComponent)
-- [`IgxGridEditingActionsComponent`](mcp:get_api_reference?platform=angular&component=IgxGridEditingActionsComponent)
-- [`IgxDividerDirective`](mcp:get_api_reference?platform=angular&component=IgxDividerDirective)
+- [`IgxGridPinningActions`](mcp:get_api_reference?platform=angular&component=IgxGridPinningActionsComponent)
+- [`IgxGridEditingActions`](mcp:get_api_reference?platform=angular&component=IgxGridEditingActionsComponent)
+- [`IgxDivider`](mcp:get_api_reference?platform=angular&component=IgxDividerDirective)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-row-adding.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-row-adding.md
index 791630742..a441b242b 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-row-adding.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-row-adding.md
@@ -1,16 +1,22 @@
---
title: Adding Rows in Angular Tree Grid - Ignite UI for Angular
-_description: Learn how to use and customize the built-in row adding functionality with Ignite UI for Angular. CRUD capabilities and Intuitive grid row adding. See examples!
-_keywords: row adding, igniteui for angular, infragistics
-_license: commercial
+description: Learn how to use and customize the built-in row adding functionality with Ignite UI for Angular. CRUD capabilities and Intuitive grid row adding. See examples!
+keywords: row adding, igniteui for angular, infragistics
+license: commercial
_canonicalLink: grid/row-adding
+llms:
+ description: "The Tree Grid provides a convenient way to perform data manipulations through inline row adding and a powerful API for Angular CRUD operations."
_tocName: Row Adding
_premium: true
---
# Adding Rows in Angular Tree Grid
-The Tree Grid provides a convenient way to perform data manipulations through inline row adding and a powerful API for Angular CRUD operations. Add an [Action Strip](../action-strip.md) component with editing actions enabled in the grid's template, hover a row and use the provided button, press ALT + + to spawn the row adding UI or ALT + SHIFT + + to spawn the UI for adding a child for the selected row.
+
+The Tree Grid provides a convenient way to perform data manipulations through inline row adding and a powerful API for Angular CRUD operations. Add an [Action Strip](/action-strip) component with editing actions enabled in the grid's template, hover a row and use the provided button, press ALT + + to spawn the row adding UI or ALT + SHIFT + + to spawn the UI for adding a child for the selected row.
+
## Angular Tree Grid Row Adding Example
+
The following sample demonstrates how to enable native row adding in the Tree Grid. Changing a cell value and then clicking or navigating to another cell on the same row doesn't update the row value until confirmed by using the **Done** button, or discarded by using **Cancel** button.
+
```typescript
import { Component, OnInit, ViewChild } from '@angular/core';
import { IgxActionStripComponent } from 'igniteui-angular/action-strip';
@@ -105,13 +111,17 @@ export class TreeGridAddRowSampleComponent implements OnInit {
margin-bottom: 10px;
}
```
-
+
## Row Adding Usage
+
To get started import the `IgxTreeGridModule` in the **app.module.ts** file:
+
```typescript
// app.module.ts
+
...
import { IgxTreeGridModule } from 'igniteui-angular';
+
@NgModule({
...
imports: [..., IgxTreeGridModule],
@@ -119,7 +129,9 @@ import { IgxTreeGridModule } from 'igniteui-angular';
})
export class AppModule {}
```
+
Then define a Tree Grid with bound data source and [`rowEditable`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowEditable) set to true and an [Action Strip](../action-strip.md) component with editing actions enabled. The [`addRow`](mcp:get_api_reference?platform=angular&component=IgxGridEditingActionsComponent&member=addRow) input controls the visibility of the button that spawns the row adding UI.
+
```html
@@ -138,49 +150,80 @@ Then define a Tree Grid with bound data source and [`rowEditable`](mcp:get_api_r
```
-> [!NOTE]
-> Setting primary key is mandatory for row adding operations.
-> [!NOTE]
-> Every column excluding the primary key one is editable in the row adding UI by default. If you want to disable editing for a specific column, then you have to set the [`editable`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=editable) column's input to `false`.
-> [!NOTE]
-> The IgxGridEditingActions inputs controlling the visibility of the add row and add child buttons may use the action strip context (which is of type [`RowType`](mcp:get_api_reference?platform=angular&component=RowType)) to fine tune which records the buttons show for.
+
+**Note:**
+Setting primary key is mandatory for row adding operations.
+
+**Note:**
+Every column excluding the primary key one is editable in the row adding UI by default. If you want to disable editing for a specific column, then you have to set the [`editable`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=editable) column's input to `false`.
+
+**Note:**
+The IgxGridEditingActions inputs controlling the visibility of the add row and add child buttons may use the action strip context (which is of type [`IgxRowType`](mcp:get_api_reference?platform=angular&component=RowType)) to fine tune which records the buttons show for.
+
The internal [`IgxBaseTransactionService`](mcp:get_api_reference?platform=angular&component=IgxBaseTransactionService) is automatically provided for Tree Grid. It holds pending cell changes until the row state is submitted or cancelled.
+
## Start Row Adding Programmatically
+
Tree Grid allows to programmatically spawn the add row UI by using two different public methods. One that accepts a row ID for specifying the row under which the UI should spawn and another that works by index. You can use these methods to spawn the UI anywhere within the current data view. Changing the page or specifying a row that is e.g. filtered out is not supported.
+
Using `beginAddRowById` requires you to specify the row to use as context for the operation by its rowID (PK). The method then functions as though the end-user clicked on the add row action strip button for the specified row, spawning the UI under it. The second parameter controls if the row is added as a child to the context row or as a sibling. You can also make the UI spawn as the very first row in the grid by passing `null` for the first parameter.
+
```typescript
this.treeGrid.beginAddRowById('ALFKI', true); // spawns the add row UI to add a child for the row with PK 'ALFKI'
this.treeGrid.beginAddRowById(null); // spawns the add row UI as the first record
```
+
The `beginAddRowByIndex` method works similarly but the row to use as context is specified by index.
+
```typescript
this.treeGrid.beginAddRowByIndex(10, true); // spawns the add row UI to add a child for the row at index 10
this.treeGrid.beginAddRowByIndex(null); // spawns the add row UI as the first record
```
+
## Positioning
+
- The Default position row add UI is below the row that the end user clicked the add row button for.
+
- The Tree Grid scrolls to fully display the add row UI automatically.
+
- The overlay for the add row UI maintains its position during scrolling.
+
## Behavior
-The add row UI has the same behavior as the row editing one as they are designed to provide a consistent editing experience to end users. Please, refer to the [Tree Grid Row Editing](row-editing.md) topic for more information.
+
+The add row UI has the same behavior as the row editing one as they are designed to provide a consistent editing experience to end users. Please, refer to the [Tree Grid Row Editing](/treegrid/row-editing) topic for more information.
+
After a new row is added through the row adding UI, its position and/or visibility is determined by the sorting, filtering and grouping state of the Tree Grid. In a Tree Grid that does not have any of these states applied, it appears as the last record. A snackbar is briefly displayed containing a button the end user may use to scroll the Tree Grid to its position if it is not in view.
+
## Keyboard Navigation
+
- ALT + + - Enters edit mode for adding a row
+
- ALT + SHIFT + + - Enters edit mode for adding a child
+
- ESC exits row adding mode without submitting any changes
+
- TAB move focus from one editable cell in the row to the next and from the right-most editable cell to the CANCEL and DONE buttons. Navigation from DONE button goes to the left-most editable cell within the currently edited row.
+
## Feature Integration
+
- Any row adding operation will stop if the data view of the Tree Grid gets modified. Any changes made by the end user are submitted. Operations that change the data view include but are not limited to sorting, grouping, filtering, paging, etc.
+
- Summaries are updated after the row add operation finishes. The same is valid for the other data view dependant features such as sorting, filtering, etc.
+
## Customizing Row Adding Overlay
+
### Customizing Text
+
Customizing the text of the row adding overlay is possible using the `igxRowAddTextDirective`.
+
```html
Adding Row
```
+
### Customizing Buttons
+
Customizing the buttons of the row editing overlay is possible using the `igxRowEditActionsDirective`.
If you want the buttons to be part of the keyboard navigation, then each on of them should have the `igxRowEditTabStopDirective`.
@@ -190,39 +233,52 @@ If you want the buttons to be part of the keyboard navigation, then each on of t
Apply
```
-> [!NOTE]
-> Using `igxRowEditActions` directive will change edit actions for both editing and adding overlay buttons.
+
+**Note:**
+Using `igxRowEditActions` directive will change edit actions for both editing and adding overlay buttons.
+
## Remote scenarios
+
In most remote data scenarios the Primary Key assignment happens on the create server request. In this case the added records on the client will not have the final primary key value until saved on the server's data base. In that case the recommended way to handle this update in the Tree Grid is as follows:
+
- If the Tree Grid does not use transactions.
Once the create request is successfully completed and returns the added record data, you can replace that record's id in the local data record instance.
+
- If the Tree Grid uses transactions.
- Once the create request or batch update request is successfully completed and returns the added record instances (with their db generated ids), the related ADD transactions should be cleared from the transaction log using the [clear](mcp:get_api_reference?platform=angular&component=TransactionService&member=clear) API method. This is necessary because the local transaction will have a generated id field, which may differ than the one created in the data base, so they should be cleared. You can then add the record(s) passed in the response to the local data instance.
+ Once the create request or batch update request is successfully completed and returns the added record instances (with their db generated ids), the related ADD transactions should be cleared from the transaction log using the [`IgxTransactionService.clear`](mcp:get_api_reference?platform=angular&component=IgxTransactionService&member=clear) API method. This is necessary because the local transaction will have a generated id field, which may differ than the one created in the data base, so they should be cleared. You can then add the record(s) passed in the response to the local data instance.
+
This will ensure that the remotely generated ids are always reflected in the local data, and subsequent update/delete operations target the correct record ids.
+
## Styling
+
The row adding UI comprises the buttons in the `IgxActionStrip` editing actions, the editing editors and overlay, as well as the snackbar which allows end users to scroll to the newly added row. To style these components you may refer to these comprehensive guides in their respective topics:
-- [Tree Grid Row Editing](row-editing.md#styling)
-- [IgxSnackbar](../snackbar.md#styling)
-- [IgxActionStrip](../action-strip.md#styling)
+
+- [Tree Grid Row Editing](/treegrid/row-editing#styling)
+- [IgxSnackbar](/snackbar#styling)
+- [IgxActionStrip](/action-strip#styling)
+
## API References
-- [rowEditable](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowEditable)
-- [onRowEditEnter](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=onRowEditEnter)
-- [onRowEdit](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=onRowEdit)
-- [rowEditDone](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowEditDone)
-- [onRowEditCancel](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=onRowEditCancel)
-- [endEdit](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=endEdit)
-- [primaryKey](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=primaryKey)
-- [IgxTreeGridComponent](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
-- [IgxActionStripComponent](mcp:get_api_reference?platform=angular&component=IgxActionStripComponent)
-- [IgxGridEditingActionsComponent](mcp:get_api_reference?platform=angular&component=IgxGridEditingActionsComponent)
+- [`rowEditable`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowEditable)
+- [`rowEditEnter`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowEditEnter)
+- [`rowEdit`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowEdit)
+- [`rowEditDone`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowEditDone)
+- [`rowEditExit`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowEditExit)
+- [`endEdit`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=endEdit)
+- [`primaryKey`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=primaryKey)
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+- [`IgxActionStrip`](mcp:get_api_reference?platform=angular&component=IgxActionStripComponent)
+- [`IgxGridEditingActions`](mcp:get_api_reference?platform=angular&component=IgxGridEditingActionsComponent)
## Additional Resources
-
-- [Tree Grid Overview](tree-grid.md)
-- [Tree Grid Editing](editing.md)
-- [Tree Grid Transactions](batch-editing.md)
-
+
+- [Tree Grid Overview](/treegrid/tree-grid)
+
+- [Tree Grid Editing](/treegrid/editing)
+
+- [Tree Grid Transactions](/treegrid/batch-editing)
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-row-drag.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-row-drag.md
index 466ae0277..7a9d7cb37 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-row-drag.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-row-drag.md
@@ -1,15 +1,20 @@
---
title: Row Dragging in Angular Tree Grid - Ignite UI for Angular
-_description: Row dragging in Angular Tree Grid is used to quickly rearrange rows by dragging them with the mouse. See how to configure row dragging in your project.
-_keywords: angular drag component, material component, ignite ui for angular, infragistics
-_license: commercial
+description: Row dragging in Angular Tree Grid is used to quickly rearrange rows by dragging them with the mouse. See how to configure row dragging in your project.
+keywords: angular drag component, material component, ignite ui for angular, infragistics
+license: commercial
_canonicalLink: grid/row-drag
+llms:
+ description: "In Ignite UI for Angular Tree Grid, RowDrag is initialized on the root igx-tree-grid component and is configurable via the rowDraggable input."
_tocName: Row Drag
_premium: true
---
# Row Dragging in Angular Tree Grid
+
In Ignite UI for Angular Tree Grid, **RowDrag** is initialized on the root `igx-tree-grid` component and is configurable via the [`rowDraggable`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowDraggable) input. Enabling row dragging provides users with a row drag-handle with which they can initiate dragging of a row.
+
## Angular Tree Grid Row Drag Example
+
```typescript
/* eslint-disable @typescript-eslint/naming-convention */
import { Component, ViewChild } from '@angular/core';
@@ -112,23 +117,30 @@ export class TreeGridRowDragBaseComponent {
padding-top: 10px;
}
```
-
+
## Configuration
+
In order to enable row-dragging for your `igx-tree-grid`, all you need to do is set the grid's [`rowDraggable`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowDraggable) to **`true`**. Once this is enabled, a row-drag handle will be displayed on each row. This handle can be used to initiate row dragging.
+
```html
...
```
+
Clicking on the drag-handle and _moving the cursor_ while holding down the button will cause the grid's [`rowDragStart`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowDragStart) event to fire. Releasing the click at any time will cause [`rowDragEnd`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowDragEnd) event to fire.
+
Below, you can find a walkthrough on how to configure an `igx-tree-grid` to support row dragging and how to properly handle the drop event.
-@@if (igxName === 'IgxTreeGrid' || igxName === 'IgxHierarchicalGrid') {
+
In this example, we'll handle dragging a row from a grid to a designated area and, when dropping it, removing it from the grid.
-}
+
### Drop Areas
+
Enabling row-dragging was pretty easy, but now we have to configure how we'll handle row-_dropping_.
-We can define where we want our rows to be dropped using the [`igxDrop` directive](../drag-drop.md).
+We can define where we want our rows to be dropped using the [`igxDrop` directive](/drag-drop).
+
First we need to import the `IgxDragDropModule` in our app module:
+
```typescript
import { ..., IgxDragDropModule } from 'igniteui-angular/directives';
// import { ..., IgxDragDropModule } from '@infragistics/igniteui-angular'; for licensed package
@@ -137,8 +149,9 @@ import { ..., IgxDragDropModule } from 'igniteui-angular/directives';
imports: [..., IgxDragDropModule]
})
```
+
Then, in our template, we define a drop-area using the directive's selector:
-@@if (igxName === 'IgxTreeGrid' || igxName === 'IgxHierarchicalGrid') {
+
```html
@@ -146,20 +159,27 @@ Then, in our template, we define a drop-area using the directive's selector:
Drag a row here to delete it
```
-}
+
You may enable animation when a row is dropped on a non-droppable area using the `animation` parameter of the [`rowDragEnd`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowDragEnd) event. If set to true, the dragged row will animate back to its' original position when dropped over a non-droppable area.
+
You may enable animation like this:
+
```typescript
export class IgxTreeGridRowDragComponent {
public onRowDragEnd(args) {
args.animation = true;
}
+
}
```
+
### Drop Area Event Handlers
+
Once we've defined our drop-area in the template, we have to declare our handlers for the `igxDrop`'s [`enter`](mcp:get_api_reference?platform=angular&component=IgxDropDirective&member=enter), [`leave`](mcp:get_api_reference?platform=angular&component=IgxDropDirective&member=leave) and [`dropped`](mcp:get_api_reference?platform=angular&component=IgxDropDirective&member=dropped) events in our component's `.ts` file.
+
First, let's take a look at our `enter` and `leave` handlers. In those methods, we just want to change the icon of the drag's _ghost_ so we can indicate to the user that they are above an area that allows them to drop the row:
+
```typescript
export class IgxTreeGridRowDragComponent {
public onEnterAllowed(args) {
@@ -180,18 +200,19 @@ export class IgxTreeGridRowDragComponent {
}
}
```
+
The `changeGhostIcon` **private** method just changes the icon inside of the drag ghost. The logic in the method finds the element that contains the icon (using the `igx-grid__drag-indicator` class that is applied to the drag-indicator container), changing the element's inner text to the passed one.
The icons themselves are from the [`material` font set](https://material.io/tools/icons/) and are defined in a separate **`enum`**:
-@@if (igxName === 'IgxTreeGrid' || igxName === 'IgxHierarchicalGrid') {
+
```typescript
enum DragIcon {
DEFAULT = 'drag_indicator',
ALLOW = 'remove'
}
```
-}
+
Next, we have to define what should happen when the user actually _drops_ the row inside of the drop-area.
-@@if (igxName === 'IgxTreeGrid' || igxName === 'IgxHierarchicalGrid') {
+
```typescript
export class IgxTreeGridRowDragComponent {
@@ -199,14 +220,19 @@ export class IgxTreeGridRowDragComponent {
const draggedRow: RowType = args.dragData;
draggedRow.delete();
}
+
}
```
-Once the row is dropped, we just call the row's [`delete()`](mcp:get_api_reference?platform=angular&component=IgxTreeGridRowComponent&member=delete) method
-}
-> [!NOTE]
-> When using row data from the event arguments (`args.dragData.data`) or any other row property, note that the entire row is passed in the arguments as a reference, which means that you must clone the data you need, if you want to distinguish it from the one in the source grid.
+
+Once the row is dropped, we just call the row's [`delete()`](mcp:get_api_reference?platform=angular&component=IgxGridRow) method
+
+**Note:**
+When using row data from the event arguments (`args.dragData.data`) or any other row property, note that the entire row is passed in the arguments as a reference, which means that you must clone the data you need, if you want to distinguish it from the one in the source grid.
+
### Templating the drag ghost
+
The drag ghost can be templated using the `IgxRowDragGhost` directive, applied to a `` inside of the `igx-tree-grid`'s body:
+
```html
...
@@ -218,8 +244,11 @@ The drag ghost can be templated using the `IgxRowDragGhost` directive, applied t
...
```
+
The result of the configuration can be seem below in a `igx-tree-grid` with row dragging and multiple selection enabled. The demo shows the count of the currently dragged rows:
+
#### Example Demo
+
```typescript
import { Component, ViewChild } from '@angular/core';
import { GridSelectionMode, IgxColumnComponent, IgxRowDragGhostDirective } from 'igniteui-angular/grids/core';
@@ -342,10 +371,12 @@ export class TreeGridMultiRowDragComponent {
z-index: 1;
}
```
-
+
### Templating the drag icon
+
The drag handle icon can be templated using the grid's [`dragIndicatorIconTemplate`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=dragIndicatorIconTemplate). In the example we're building, let's change the icon from the default one (`drag_indicator`) to `drag_handle`.
To do so, we can use the `igxDragIndicatorIcon` to pass a template inside of the `igx-tree-grid`'s body:
+
```html
...
@@ -355,16 +386,20 @@ To do so, we can use the `igxDragIndicatorIcon` to pass a template inside of the
...
```
+
Once we've set the new icon template, we also need to adjust the `DEFAULT` icon in our `DragIcon enum`, so it's properly change by the `changeIcon` method:
+
```typescript
enum DragIcon {
DEFAULT = "drag_handle",
...
}
```
-@@if (igxName === 'IgxTreeGrid' || igxName === 'IgxHierarchicalGrid') {
+
### Styling the drop area
+
Once our drop handlers are properly configured, all that's left is to style our drop area a bit:
+
```css
.drop-area {
width: 160px;
@@ -378,6 +413,7 @@ Once our drop handlers are properly configured, all that's left is to style our
text-align: center;
margin: 8px;
}
+
:host {
display: flex;
justify-content: center;
@@ -386,9 +422,11 @@ Once our drop handlers are properly configured, all that's left is to style our
width: 100%;
}
```
+
The result can be seen in the demo below:
-}
+
#### Example Demo
+
```typescript
/* eslint-disable @typescript-eslint/naming-convention */
import { Component, ViewChild } from '@angular/core';
@@ -493,28 +531,35 @@ export class TreeGridRowDragComponent {
padding-top: 10px;
}
```
-
+
## Application Demo
+
### Row Reordering Demo
+
With the help of the grid's row drag events and the `igxDrop` directive, you can create a grid that allows you to reorder rows by dragging them.
+
Since all of the actions will be happening _inside_ of the grid's body, that's where you have to attach the `igxDrop` directive:
+
```html
...
```
-> [!NOTE]
-> Make sure that there is a `primaryKey` specified for the grid! The logic needs an unique identifier for the rows so they can be properly reordered
+
+**Note:**
+Make sure that there is a `primaryKey` specified for the grid! The logic needs an unique identifier for the rows so they can be properly reordered
+
Once `rowDraggable` is enabled and a drop zone has been defined, you need to implement a simple handler for the drop event. When a row is dragged, check the following:
-@@if (igxName === 'IgxTreeGrid' || igxName === 'IgxHierarchicalGrid') {
+
- Is the row expanded? If so, collapse it.
- Was the row dropped inside of the grid?
- If so, on which _other_ row was the dragged row dropped?
- Once you've found the _target_ row, swap the records' places in the `data` array
- Was the row initially selected? If so, mark it as selected.
-}
+
Below, you can see this implemented in the component's `.ts` file:
+
```typescript
export class TreeGridRowReorderComponent {
public rowDragStart(args: any): void {
@@ -580,8 +625,11 @@ export class TreeGridRowReorderComponent {
}
}
```
+
With these few easy steps, you've configured a grid that allows reordering rows via drag/drop! You can see the above code in action in the following demo.
+
Notice that we also have row selection enabled and we preserve the selection when dropping the dragged row.
+
```typescript
import { Component, ViewChild } from '@angular/core';
import { IDropDroppedEventArgs, IgxDropDirective } from 'igniteui-angular/directives';
@@ -702,19 +750,21 @@ export class TreeGridRowReorderComponent {
padding: 10px;
}
```
-
-
+
## Limitations
+
Currently, there are no known limitations for the `rowDraggable` directive.
+
## API References
-- [rowDraggable](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowDraggable)
-- [rowDragStart](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowDragStart)
-- [rowDragEnd](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowDragEnd)
-- [IgxTreeGridComponent](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+- [`rowDraggable`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowDraggable)
+- [`rowDragStart`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowDragStart)
+- [`rowDragEnd`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowDragEnd)
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
## Additional Resources
-
-- [Tree Grid Overview](tree-grid.md)
-
+
+- [Tree Grid Overview](/treegrid/tree-grid)
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-row-editing.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-row-editing.md
index 6e30c0eaa..00d548599 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-row-editing.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-row-editing.md
@@ -1,16 +1,22 @@
---
title: Editing Rows in Angular Tree Grid - Ignite UI for Angular
-_description: Want to enable row editing in Angular Tree Grid? Need a powerful API for CRUD operations? Try our Ignite UI for Angular Data Grid rows editing component!
-_keywords: row editing, igniteui for angular, infragistics
-_license: commercial
+description: Want to enable row editing in Angular Tree Grid? Need a powerful API for CRUD operations? Try our Ignite UI for Angular Data Grid rows editing component!
+keywords: row editing, igniteui for angular, infragistics
+license: commercial
_canonicalLink: grid/row-editing
+llms:
+ description: "The Tree Grid provides a convenient way to perform data manipulations through inline editing and a powerful API for Angular CRUD operations."
_tocName: Row Editing
_premium: true
---
# Angular Tree Grid Row Editing
+
The Tree Grid provides a convenient way to perform data manipulations through inline editing and a powerful API for Angular CRUD operations. Click on a row and press **Enter key** or simply double click with the mouse on the row that needs to be modified.
+
## Angular Tree Grid Row Editing Example
+
The following sample demonstrates how to enable row editing in the Tree Grid. Changing a cell value and then clicking or navigating to another cell on the same row won't update the row value until confirmed by using the **Done** button, or discarded by using **Cancel** button.
+
```typescript
/* eslint-disable max-len */
import { Component, OnInit, ViewChild } from '@angular/core';
@@ -74,15 +80,20 @@ export class TreeGridRowEditSampleComponent implements OnInit {
margin: 16px;
}
```
-
-> [!NOTE]
-> When a row is in edit mode, then clicking on a cell on another row will act like the Done button is pressed - submit all the changes of the previous row. If the new cell that gets focus is editable, then the new row also enters edit mode, while if the cell is not editable, then only the previous row exits edit mode.
+
+**Note:**
+When a row is in edit mode, then clicking on a cell on another row will act like the Done button is pressed - submit all the changes of the previous row. If the new cell that gets focus is editable, then the new row also enters edit mode, while if the cell is not editable, then only the previous row exits edit mode.
+
## Row Editing Usage
+
To get started import the `IgxTreeGridModule` in the **app.module.ts** file:
+
```typescript
// app.module.ts
+
...
import { IgxTreeGridModule } from 'igniteui-angular';
+
@NgModule({
...
imports: [..., IgxTreeGridModule],
@@ -90,7 +101,9 @@ import { IgxTreeGridModule } from 'igniteui-angular';
})
export class AppModule {}
```
+
Then define a Tree Grid with bound data source and [`rowEditable`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowEditable) set to true:
+
```html
@@ -105,15 +118,18 @@ Then define a Tree Grid with bound data source and [`rowEditable`](mcp:get_api_r
```
-> [!NOTE]
-> Setting primary key is mandatory for row editing operations.
-> [!NOTE]
-> It's not needed to enable editing for individual columns. Using the [`rowEditable`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowEditable) property in the Tree Grid, will mean that all rows, with defined `field` property, excluding primary one, will be editable. If you want to disable editing for specific column, then you set the [`editable`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=editable) column's input to `false`.
+
+**Note:**
+Setting primary key is mandatory for row editing operations.
+
+**Note:**
+It's not needed to enable editing for individual columns. Using the [`rowEditable`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowEditable) property in the Tree Grid, will mean that all rows, with defined `field` property, excluding primary one, will be editable. If you want to disable editing for specific column, then you set the [`editable`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=editable) column's input to `false`.
+
+
```typescript
-import { Component, OnInit, ViewChild } from '@angular/core';
import { IgxTreeGridComponent } from 'igniteui-angular/grids/tree-grid';
// import { IgxTreeGridComponent } from '@infragistics/igniteui-angular'; for licensed package
-import { FLAT_DATA } from './data';
+
@Component({
providers: [],
selector: 'app-tree-grid-row-editing-sample',
@@ -138,38 +154,65 @@ export class TreeGridRowEditSampleComponent implements OnInit {
}
}
```
-> [!NOTE]
-> The Tree Grid uses internally a provider [`IgxBaseTransactionService`](mcp:get_api_reference?platform=angular&component=IgxBaseTransactionService) that holds pending cell changes, until row state submitted or cancelled.
+
+**Note:**
+The Tree Grid uses internally a provider [`IgxBaseTransactionService`](mcp:get_api_reference?platform=angular&component=IgxBaseTransactionService) that holds pending cell changes, until row state submitted or cancelled.
+
## Positioning
+
- Default position of the overlay will be below the row that is in edit mode
+
- If there is no space below the row then overlay will appear above the row.
+
- Once shown - top or bottom, overlay will maintain this position during scrolling, until the overlay is closed.
+
## Behavior
+
- If row is in edit mode, then editing will continue, if a cell from the same row is clicked.
+
- Clicking "Done" button will finish row editing and will submit changes either to the data source, or to a transaction if available. In addition row will exit edit mode.
+
- Clicking "Cancel" button will revert all current changes in the row and row will exit edit mode.
+
- If row is in edit mode, then clicking a cell from another row will finish the current row edit and will submit new row changes (the same behavior clicking "Done" button). If the new cell that gets focus is editable, then the new row also enters edit mode, while if the cell is not editable, then only the previous row exits edit mode.
+
- If row is in edit mode and Tree Grid is scrolled so that row goes outside the visible area, the latter will be still in edit mode. When Tree Grid is scrolled, so that the row is visible again, the row will be still in edit mode. When clicked outside the Tree Grid, the cell will also stay in edit mode.
+
- When perform _sorting_, _filtering_, _searching_ and _hiding_ operations, will revert all current changes in the row and row will exit edit mode.
+
- When perform _paging_, _resizing_, _pinning_ and _moving_ operations, will exit edit mode and will submit latest value.
+
- Each modified cell gets edited style until row edit is finished. This is the behavior, when Tree Grid is not provided with transactions. When transactions are available - then cell edit style is applied until all the changes are committed.
+
## Keyboard Navigation
+
- `Enter` and `F2` enters row edit mode
+
- `Esc` exits row edit mode and doesn't submit any of the cell changes, made while the row was in edit mode.
+
- `Tab` move focus from one editable cell in the row to the next and from the right-most editable cell to the CANCEL and DONE buttons. Navigation from DONE button goes to the left-most editable cell within the currently edited row.
+
## Feature Integration
+
- Any data changing operation will terminate row editing operations and will submit current row changes. This will include operations like sorting, changing grouping and filtering criteria, paging, etc.
+
- Summaries will be updated after row edit is finished. Same is valid for the other features like sorting, filtering, etc.
+
## Customizing Row Editing Overlay
+
### Customizing Text
+
Customizing the text of the row editing overlay is possible using the `igxRowEditTextDirective`.
The `rowChangesCount` property is exposed and it holds the count of the changed cells.
+
```html
Changes: {{rowChangesCount}}
```
+
### Customizing Buttons
+
Customizing the buttons of the row editing overlay is possible using the `igxRowEditActionsDirective`.
If you want the buttons to be part of the keyboard navigation, then each on of them should have the `igxRowEditTabStopDirective`.
@@ -179,53 +222,80 @@ If you want the buttons to be part of the keyboard navigation, then each on of t
Apply
```
+
## Styling
-Using the [Ignite UI for Angular Theme Library](../themes/index.md), we can greatly alter the Row Editing overlay.
+
+Using the [Ignite UI for Angular Theme Library](/themes), we can greatly alter the Row Editing overlay.
The Row Editing overlay is a composite element - its UI is comprised of a couple of other components:
- - [`igx-banner`](../banner.md) in order to render its contents
- - [`igx-button`](../button.md)s are rendered in the default template (for the `Done` and `Cancel` buttons).
-In the below example, we will make use of those two components' styling options, [`button styling`](../button.md#styling) & [`banner-styling`](../banner.md#styling), to customize the experience of our IgxTreeGrid's Row Editing.
-We will also style the current cell's editor and background to make it more distinct. You can learn more about cell styling in the [Cell Styling section](cell-editing.md#styling).
+ - [`igx-banner`](/banner) in order to render its contents
+ - [`igx-button`](inputs/button)s are rendered in the default template (for the `Done` and `Cancel` buttons).
+
+In the below example, we will make use of those two components' styling options, [`button styling`](inputs/button#styling) & [`banner-styling`](/banner#styling), to customize the experience of our IgxTreeGrid's Row Editing.
+We will also style the current cell's editor and background to make it more distinct.
+
+You can learn more about cell styling in the [Cell Styling section](/treegrid/cell-editing#styling).
+
### Import theme
+
The easiest way to style the Row Editing banner is to define styles in our `app`'s global style file (typically `styles.scss`).
The first thing we need to do is import the `themes/index` file - this gives us access to all the powerful tools of the Ignite UI for Angular Sass framework:
+
```scss
@use "igniteui-angular/theming" as *;
+
// IMPORTANT: Prior to Ignite UI for Angular version 13 use:
// @import '~igniteui-angular/lib/core/styles/themes/index';
```
+
Once we've imported the themes file, we can create custom themes.
+
#### Define the theme
-We can now define a custom [`banner theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-banner-theme) that will affect our Row Editing background and make use of one of the predefined palettes namely `$purple-palette` :
+
+We can now define a custom `banner theme` that will affect our Row Editing background and make use of one of the predefined palettes namely `$purple-palette` :
+
```scss
$banner-theme: banner-theme(
$banner-background: #e3e3e3,
$banner-message-color: color($purple-palette, "secondary", 600)
);
```
-Here we are using `my-banner-palette` in conjunction with [`igx-color`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/palettes#function-color) (exposed by the theme library) for generating our colors.
+
+Here we are using `my-banner-palette` in conjunction with `igx-color` (exposed by the theme library) for generating our colors.
+
### Include the theme
-All we have to do now is apply the theme with a Sass `@include` statement. We pass our newly defined `$banner-theme` through the [`tokens mixin`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#mixin-tokens):
+
+All we have to do now is apply the theme with a Sass `@include` statement. We pass our newly defined `$banner-theme` through the `tokens mixin`:
+
```scss
:host {
@include tokens($banner-theme);
}
```
+
### Component styles
+
Since the Row Editing overlay makes use of a lot of other components' themes, styling it via the global styles can affect other parts of our application (e.g. banners, buttons, etc.). The best way to prevent that is to scope the banner theme to the style file of the specific component it's applied to.
->[!NOTE]
->If the component is using an [`Emulated`](../themes/sass/component-themes.md#view-encapsulation) ViewEncapsulation, it is necessary to penetrate this encapsulation using `::ng-deep` in order to style the grid Row Editing Overlay.
+
+**Note:**
+In some component templates, Emulated View Encapsulation can still prevent the generated token declarations from reaching nested Ignite UI elements. If the theme does not take effect, use `::ng-deep` as shown below or move the theme to a global stylesheet.
+
+
```scss
// custom.component.scss
+
:host {
::ng-deep {
@include tokens($banner-theme);
}
}
```
+
With the above syntax, our custom banner theme properly applies to the grid's Row Editing overlay.
+
### Custom Templates
+
To further customize our Row Editing overlay, we can pass a custom template so we can style the `Done` and `Cancel` buttons separately:
+
```html
@@ -241,21 +311,29 @@ To further customize our Row Editing overlay, we can pass a custom template so w
```
-After we've defined our custom buttons, we can make use of the [`flat-icon-button-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-flat-icon-button-theme) to style them. You can learn more about `igx-icon-button` styling in the [Icon Button Styling documentation](../icon-button.md#icon-button-styling). We can create a custom theme for our `Done` and `Cancel`:
+
+After we've defined our custom buttons, we can make use of the `flat-icon-button-theme` to style them. You can learn more about `igx-icon-button` styling in the [Icon Button Styling documentation](/icon-button#icon-button-styling). We can create a custom theme for our `Done` and `Cancel`:
+
```scss
// custom.component.scss
...
+
$button-theme: flat-icon-button-theme(
$palette: $purple-palette
);
+
...
.custom-buttons {
@include tokens($button-theme);
}
```
+
We scope our `@include` statement in `.custom-buttons` so that it is only applied to the `Done`and `Cancel` buttons.
+
### Demo
-After styling the banner and buttons, we also define a custom style for [the cell in edit mode](cell-editing.md#styling). The result of all the combined styles can be seen below:
+
+After styling the banner and buttons, we also define a custom style for [the cell in edit mode](/treegrid/cell-editing#styling). The result of all the combined styles can be seen below:
+
```typescript
import { Component, OnInit } from '@angular/core';
import { GridSelectionMode, IgxColumnComponent, IgxRowEditActionsDirective, IgxRowEditTabStopDirective, IgxRowEditTextDirective } from 'igniteui-angular/grids/core';
@@ -333,32 +411,39 @@ igx-tree-grid {
@include tokens($grid-theme);
}
```
->[!NOTE]
->The sample will not be affected by the selected global theme from `Change Theme`.
+
+**Note:**
+The sample will not be affected by the selected global theme from `Change Theme`.
+
## Known Issues and Limitations
+
- When the grid has no `primaryKey` set and remote data scenarios are enabled (when paging, sorting, filtering, scrolling trigger requests to a remote server to retrieve the data to be displayed in the grid), a row will lose the following state after a data request completes:
- Row Selection
- Row Expand/collapse
- Row Editing
- Row Pinning
+
## API References
-- [rowEditable](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowEditable)
-- [onRowEditEnter](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=onRowEditEnter)
-- [onRowEdit](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=onRowEdit)
-- [rowEditDone](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowEditDone)
-- [onRowEditCancel](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=onRowEditCancel)
-- [endEdit](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=endEdit)
-- [field](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=field)
-- [editable](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=editable)
-- [primaryKey](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=primaryKey)
-- [IgxTreeGridComponent](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+- [`rowEditable`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowEditable)
+- [`rowEditEnter`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowEditEnter)
+- [`rowEdit`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowEdit)
+- [`rowEditDone`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowEditDone)
+- [`rowEditExit`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowEditExit)
+- [`endEdit`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=endEdit)
+- [`field`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=field)
+- [`editable`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=editable)
+- [`primaryKey`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=primaryKey)
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
## Additional Resources
-
-- [Build CRUD operations with igxGrid](../general/how-to/how-to-perform-crud.md)
-- [Tree Grid Overview](tree-grid.md)
-- [Tree Grid Editing](editing.md)
-- [Tree Grid Transactions](batch-editing.md)
-
+
+- [Build CRUD operations with igxGrid](/general/how-to/how-to-perform-crud)
+- [Tree Grid Overview](/treegrid/tree-grid)
+
+- [Tree Grid Editing](/treegrid/editing)
+
+- [Tree Grid Transactions](/treegrid/batch-editing)
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-row-pinning.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-row-pinning.md
index b5b047889..10c543817 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-row-pinning.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-row-pinning.md
@@ -1,15 +1,20 @@
---
title: Row Pinning in Angular Tree Grid - Ignite UI for Angular
-_description: Use the Angular Row pinning feature to lock rows with a rich and easy to use API. Let users pin rows in a particular order or duplicate them in a special area.
-_keywords: lock row, ignite ui for angular, infragistics
-_license: commercial
+description: Use the Angular Row pinning feature to lock rows with a rich and easy to use API. Let users pin rows in a particular order or duplicate them in a special area.
+keywords: lock row, ignite ui for angular, infragistics
+license: commercial
_canonicalLink: grid/row-pinning
+llms:
+ description: "One or multiple rows can be pinned to the top or bottom of the Angular UI Grid."
_tocName: Row Pinning
_premium: true
---
# Angular Tree Grid Row Pinning
+
One or multiple rows can be pinned to the top or bottom of the Angular UI Grid. **Row Pinning** in Ignite UI for Angular allows end-users to pin rows in a particular order, duplicating them in a special area that is always visible even when they scroll the Tree Grid vertically. The Material UI Grid has a built-in row pinning UI, which is enabled by initializing an `igxActionStrip` component in the context of Tree Grid. In addition, you can define custom UI and change the pin state of the rows via the Row Pinning API.
+
## Angular Tree Grid Row Pinning Example
+
```typescript
import { Component, OnInit, ViewChild } from '@angular/core';
import { ColumnPinningPosition } from 'igniteui-angular/core';
@@ -90,8 +95,11 @@ export class TreeGridRowPinningSampleComponent implements OnInit {
margin-top: 24px;
}
```
+
## Row Pinning UI
+
The built-in row pinning UI is enabled by adding an `igxActionStrip` component with the `GridPinningActions` component. The action strip is automatically shown when hovering a row and will display a pin or unpin button icon based on the state of the row it is shown for. An additional action allowing to scroll the copy of the pinned row into view is shown for each pinned row as well.
+
```html
@@ -103,41 +111,59 @@ The built-in row pinning UI is enabled by adding an `igxActionStrip` component w
```
+
## Row Pinning API
-Row pinning is controlled through the `pinned` input of the [`row`](mcp:get_api_reference?platform=angular&component=RowType). Pinned rows are rendered at the top of the Tree Grid by default and stay fixed through vertical scrolling of the unpinned rows in the Tree Grid body.
+
+Row pinning is controlled through the `pinned` input of the [`IgxRowType`](mcp:get_api_reference?platform=angular&component=RowType). Pinned rows are rendered at the top of the Tree Grid by default and stay fixed through vertical scrolling of the unpinned rows in the Tree Grid body.
+
```typescript
this.treeGrid.getRowByIndex(0).pinned = true;
```
-You may also use the Tree Grid's [`pinRow`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=pinRow) or [`unpinRow`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=unpinRow) methods of the [`IgxTreeGridComponent`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) to pin or unpin records by their ID:
+
+You may also use the Tree Grid's [`pinRow`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=pinRow) or [`unpinRow`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=unpinRow) methods of the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) to pin or unpin records by their ID:
+
```typescript
this.treeGrid.pinRow('ALFKI');
this.treeGrid.unpinRow('ALFKI');
```
+
Note that the row ID is the primary key value, defined by the [`primaryKey`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=primaryKey) of the grid, or the record instance itself. Both methods return a boolean value indicating whether their respective operation is successful or not. Usually the reason they fail is that the row is already in the desired state.
-A row is pinned below the last pinned row. Changing the order of the pinned rows can be done by subscribing to the [`rowPinning`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowPinning) event and changing the [`insertAtIndex`](mcp:get_api_reference?platform=angular&component=IPinRowEventArgs&member=insertAtIndex) property of the event arguments to the desired position index.
+
+A row is pinned below the last pinned row. Changing the order of the pinned rows can be done by subscribing to the [`rowPinning`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowPinning) event and changing the [`IgxIPinRowEventArgs.insertAtIndex`](mcp:get_api_reference?platform=angular&component=IPinRowEventArgs&member=insertAtIndex) property of the event arguments to the desired position index.
+
```html
```
+
```typescript
public rowPinning(event) {
event.insertAtIndex = 0;
}
```
+
## Pinning Position
+
You can change the row pinning position via the [`pinning`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=pinning) configuration option. It allows you to set the pin area position to either Top or Bottom.
When set to Bottom pinned rows are rendered at the bottom of the grid, after the unpinned rows. Unpinned rows can be scrolled vertically, while the pinned rows remain fixed at the bottom.
+
```html
```
+
```typescript
public pinningConfig: IPinningConfig = { rows: RowPinningPosition.Bottom };
```
+
## Custom Row Pinning UI
+
You can define your custom UI and change the pin state of the rows via the related API.
+
### Via extra column with icon
+
Let's say that instead of an action strip you would like to show a pin icon in every row allowing the end-user to click and change a particular row's pin state.
This can be done by adding an extra column with a cell template containing the custom icon.
+
```html
@@ -151,7 +177,9 @@ This can be done by adding an extra column with a cell template containing the c
```
+
On click of the custom icon the pin state of the related row can be changed using the row's API methods.
+
```typescript
public togglePinning(row: IgxGridRow, event) {
event.preventDefault();
@@ -162,7 +190,9 @@ public togglePinning(row: IgxGridRow, event) {
}
}
```
+
#### Demo
+
```typescript
import { AfterViewInit, Component, OnInit, ViewChild, inject } from '@angular/core';
import { ColumnPinningPosition } from 'igniteui-angular/core';
@@ -271,7 +301,9 @@ export class TreeGridRowPinningExtraColumnSampleComponent implements OnInit, Aft
margin-top: 24px;
}
```
+
## Row Pinning Limitations
+
- Only records that exist in the data source can be pinned.
- The row pinning state is not exported to excel. The grid is exported as if no row pinning is applied.
- Because of how pinned rows are stored internally so that they may appear both in the pinned and unpinned areas of the grid, row pinning is not supported when records in the grid are fetched from a remote endpoint on demand (remote virtualization).
@@ -282,35 +314,48 @@ export class TreeGridRowPinningExtraColumnSampleComponent implements OnInit, Aft
- Row Expand/collapse
- Row Editing
- Row Pinning
-
+
## Styling
-The IgxTreeGrid allows styling through the [`Ignite UI for Angular Theme Library`](../themes/sass/component-themes.md). The Tree Grid's [`grid-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme) exposes a wide variety of properties, which allow the customization of all the features of the Tree Grid.
+
+The IgxTreeGrid allows styling through the [`Ignite UI for Angular Theme Library`](/themes/sass/component-themes). The Tree Grid's `grid-theme` exposes a wide variety of properties, which allow the customization of all the features of the Tree Grid.
+
Below, we are going through the steps of customizing the Tree Grid's row pinning styling.
+
### Importing the Styling Library
+
To begin the customization of the row pinning feature, you need to import the `index` file, where all styling functions and mixins are located.
+
```scss
@use "igniteui-angular/theming" as *;
+
// IMPORTANT: Prior to Ignite UI for Angular version 13 use:
// @import '~igniteui-angular/lib/core/styles/themes/index';
```
+
### Defining a Theme
-Next, create a new theme, that extends the [`grid-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme) and accepts the parameters, required to customize the row pinning feature as desired.
+
+Next, create a new theme, that extends the `grid-theme` and accepts the parameters, required to customize the row pinning feature as desired.
+
```scss
-$custom-grid-theme: grid-theme(
- $pinned-border-width: 5px,
- $pinned-border-style: double,
- $pinned-border-color: #ffcd0f,
- $cell-active-border-color: #ffcd0f
+$custom-theme: grid-theme(
+ $pinned-border-width: 1px,
+ $pinned-border-style: dashed,
+ $pinned-border-color: #f325e9,
);
```
+
### Using CSS variables
+
The last step is to pass the custom grid theme:
+
```scss
:host {
- @include tokens($custom-grid-theme);
+ @include tokens($custom-theme);
}
```
+
### Demo
+
```typescript
import { Component, OnInit, ViewChild } from '@angular/core';
import { ColumnPinningPosition } from 'igniteui-angular/core';
@@ -381,27 +426,30 @@ $custom-theme: grid-theme(
@include tokens($custom-theme);
}
```
->[!NOTE]
->The sample will not be affected by the selected global theme from `Change Theme`.
+
+**Note:**
+The sample will not be affected by the selected global theme from `Change Theme`.
+
## API References
-- [IgxTreeGridComponent](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
-- [IgxGridRow](mcp:get_api_reference?platform=angular&component=IgxGridRow)
-- [IgxTreeGridRow](mcp:get_api_reference?platform=angular&component=IgxTreeGridRow)
-- [IgxHierarchicalGridRow](mcp:get_api_reference?platform=angular&component=IgxHierarchicalGridRow)
-- [RowType](mcp:get_api_reference?platform=angular&component=RowType)
-- [IgxTreeGridComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme)
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+- [`IgxGridRow`](mcp:get_api_reference?platform=angular&component=IgxGridRow)
+- [`IgxTreeGridRow`](mcp:get_api_reference?platform=angular&component=IgxTreeGridRow)
+- [`IgxHierarchicalGridRow`](mcp:get_api_reference?platform=angular&component=IgxHierarchicalGridRow)
+- [`IgxRowType`](mcp:get_api_reference?platform=angular&component=RowType)
+- `IgxTreeGridComponent Styles`
## Additional Resources
-
-- [Tree Grid overview](tree-grid.md)
-- [Virtualization and Performance](virtualization.md)
-- [Paging](paging.md)
-- [Filtering](filtering.md)
-- [Sorting](sorting.md)
-- [Summaries](summaries.md)
-- [Column Moving](column-moving.md)
-- [Column Resizing](column-resizing.md)
-- [Selection](selection.md)
-
+
+- [Tree Grid overview](/treegrid/tree-grid)
+- [Virtualization and Performance](/treegrid/virtualization)
+- [Paging](/treegrid/paging)
+- [Filtering](/treegrid/filtering)
+- [Sorting](/treegrid/sorting)
+- [Summaries](/treegrid/summaries)
+- [Column Moving](/treegrid/column-moving)
+- [Column Resizing](/treegrid/column-resizing)
+- [Selection](/treegrid/selection)
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-row-selection.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-row-selection.md
index 3ac5d446f..a1d2a04eb 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-row-selection.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-row-selection.md
@@ -1,16 +1,22 @@
---
title: Angular Grid Select Row - Ignite UI for Angular
-_description: Enable row selection to improve UX and let users manage single or multiple rows. See how easy it is to configure Row data select with Ignite UI.
-_keywords: data select, igniteui for angular, infragistics
-_license: commercial
+description: Enable row selection to improve UX and let users manage single or multiple rows. See how easy it is to configure Row data select with Ignite UI.
+keywords: data select, igniteui for angular, infragistics
+license: commercial
_canonicalLink: grid/row-selection
+llms:
+ description: "With row selection in Ignite UI for Angular, there is row selector column that precedes all other columns within the row."
_tocName: Row selection
_premium: true
---
# Angular Tree Grid Row Selection
+
With row selection in Ignite UI for Angular, there is row selector column that precedes all other columns within the row. When a user clicks on the row selector, the row will either become selected or deselected, enabling the user to select multiple rows of data.
+
## Angular Row Selection Example
+
The sample below demonstrates the four types of Tree Grid's **row selection** behavior. Use the buttons below to enable each of the available selection modes. A brief description will be provided on each button interaction through a snackbar message box. Use the switch button to _hide_ or _show_ the row selector checkbox.
+
```typescript
import { Component, OnInit, ViewChild } from '@angular/core';
import { GridSelectionMode, IRowSelectionEventArgs, IgxColumnComponent } from 'igniteui-angular/grids/core';
@@ -188,44 +194,63 @@ igx-buttongroup {
margin-top: 20px;
}
```
-
+
## Setup
-In order to setup row selection in the [`igx-tree-grid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent), you just need to set the **rowSelection** property. This property accepts **GridSelectionMode** enumeration. **GridSelectionMode** exposes the following four modes: **none**, **single**, **multiple** and **multipleCascade**. Below we will take a look at each of them in more detail.
+
+In order to setup row selection in the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent), you just need to set the **rowSelection** property. This property accepts **GridSelectionMode** enumeration. **GridSelectionMode** exposes the following four modes: **none**, **single**, **multiple** and **multipleCascade**. Below we will take a look at each of them in more detail.
+
### None Selection
-In the [`igx-tree-grid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) by default row selection is disabled, otherwise _([rowSelection]="'none'")_. So you can **not** select or deselect a row through interaction with the Tree Grid UI, the only way to complete these actions is to use the provided API methods.
+
+In the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) by default row selection is disabled, otherwise _([rowSelection]="'none'")_. So you can **not** select or deselect a row through interaction with the Tree Grid UI, the only way to complete these actions is to use the provided API methods.
+
### Single Selection
+
Single row selection can now be easily set up, the only thing you need to do, is to set `[rowSelection] = '"single"'` property. This gives you the opportunity to **select only one row within a grid**. You can select a row by clicking on a cell or pressing the _space_ key when you focus on a cell of the row, and of course you can select a row by clicking on the row selector field. When row is selected or deselected **rowSelectionChanging** event is emitted.
+
```html
+
```
+
```typescript
/* selectionExample.component.ts */
+
public handleRowSelection(event) {
if (args.added.length && args.added[0] === 3) {
args.cancel = true;
}
}
```
+
### Multiple Selection
-To enable multiple row selection in the [`igx-tree-grid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) just set the [`rowSelection`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowSelection) property to `multiple`. This will enable a row selector field on each row and in the Tree Grid header. The row selector allows users to select multiple rows, with the selection persisting through scrolling, paging, and data operations, such as sorting and filtering. The row also can be selected by clicking on a cell or by pressing the _space_ key when a cell is focused. If you have selected one row and click on another while holding the _shift_ key, this will select the whole range of rows. In this selection mode, when you click on a single row, the previous selected rows will be deselected. If you _click_ while holding the _ctrl_ key, the row will be toggled and the previous selection will be preserved.
+
+To enable multiple row selection in the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) just set the [`rowSelection`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowSelection) property to `multiple`. This will enable a row selector field on each row and in the Tree Grid header. The row selector allows users to select multiple rows, with the selection persisting through scrolling, paging, and data operations, such as sorting and filtering. The row also can be selected by clicking on a cell or by pressing the _space_ key when a cell is focused. If you have selected one row and click on another while holding the _shift_ key, this will select the whole range of rows. In this selection mode, when you click on a single row, the previous selected rows will be deselected. If you _click_ while holding the _ctrl_ key, the row will be toggled and the previous selection will be preserved.
+
```html
+
```
+
### Cascade Selection
-To enable cascade row selection in the [`igx-tree-grid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) just set the [`rowSelection`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowSelection) property to `multipleCascade`. This will enable a row selector field on each row and in the Tree Grid header. The row selector allows users to select multiple rows which would select all children in the tree below. The selection persists through scrolling, paging, and data operations, such as sorting and filtering. The row can also be selected by clicking on a cell or by pressing the _space_ key when a cell is focused. If you have selected one row and _click_ on another while holding the _shift_ key, the selection of a parent record will select all of its children even if they are not in the selected range. In this selection mode, when you _click_ on a single row, the previously selected rows will be deselected. If you _click_ while holding the _ctrl_ key, the row and its children will be toggled and the previous selection will be preserved.
+
+To enable cascade row selection in the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) just set the [`rowSelection`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowSelection) property to `multipleCascade`. This will enable a row selector field on each row and in the Tree Grid header. The row selector allows users to select multiple rows which would select all children in the tree below. The selection persists through scrolling, paging, and data operations, such as sorting and filtering. The row can also be selected by clicking on a cell or by pressing the _space_ key when a cell is focused. If you have selected one row and _click_ on another while holding the _shift_ key, the selection of a parent record will select all of its children even if they are not in the selected range. In this selection mode, when you _click_ on a single row, the previously selected rows will be deselected. If you _click_ while holding the _ctrl_ key, the row and its children will be toggled and the previous selection will be preserved.
+
```html
+
```
+
In this mode a parent's selection state entirely depends on the selection state of its children. When a parent has some selected and some deselected children, its checkbox is in an indeterminate state.
+
```ts
@@ -235,85 +260,123 @@ In this mode a parent's selection state entirely depends on the selection state
this.selectedRowIndex = event.newSelection[0];
}
```
+
**Notes**
+
- Row selection will trigger [`rowSelectionChanging`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowSelectionChanging) event. This event gives you information about the _new selection_, _old selection_, the rows that have been _added_ and _removed_ from the old selection. Also the event is _cancellable_, so this allows you to prevent selection.
- When row selection is enabled row selectors are displayed, but if you don't want to show them, you can set `[hideRowSelectors] = true`.
- When you switch between row selection modes at runtime, this will clear the previous row selection state.
+
## API usage
+
### Select rows programmatically
+
The code snippet below can be used to select one or multiple rows simultaneously (via [`primaryKey`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=primaryKey)); Additionally, the second parameter of this method is a boolean property through which you may choose whether the previous row selection will be cleared or not. The previous selection is preserved by default.
-@@if (igxName === 'IgxGrid' || igxName === 'IgxTreeGrid') {
+
```html
+
...
...
Select 1,2 and 5 // select rows and clear previous selection state
```
-}
+
This will add the rows which correspond to the data entries with IDs 1, 2 and 5 to the Tree Grid selection.
+
### Deselect rows
+
If you need to deselect rows programmatically, you can use the `deselectRows(rowIds: [])` method.
+
```html
+
...
...
Deselect 1,2 and 5
```
+
### Row selection event
+
When there is some change in the row selection **[`rowSelectionChanging`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=rowSelectionChanging)** event is emitted. **`rowSelectionChanging`** exposes the following arguments:
+
- `oldSelection` - array of row's data that contains the previous state of the row selection.
- `newSelection` - array of row's data that match the new state of the row selection.
- `added` - array of row's data that are currently added to the selection.
- `removed` - array of row's data that are currently removed according old selection state.
- `event` - the original event that triggered row selection change.
- `cancel` - allows you the prevent the row selection change.
+
#### Row selection event in remote data scenarios
-In remote data scenarios, when the grid has a `primaryKey` set, [`rowSelectionChanging.oldSelection`](mcp:get_api_reference?platform=angular&component=IRowSelectionEventArgs&member=oldSelection) event argument will not contain the full row data object for the rows that are currently out of the data view. In this case, `rowSelectionChanging.oldSelection` object will contain only one property, which is the `primaryKey` field. For the rest of the rows, currently in the data view, `rowSelectionChanging.oldSelection` will contain the whole row data.
+
+In remote data scenarios, when the grid has a `primaryKey` set, [`IgxIRowSelectionEventArgs.oldSelection`](mcp:get_api_reference?platform=angular&component=IRowSelectionEventArgs&member=oldSelection) event argument will not contain the full row data object for the rows that are currently out of the data view. In this case, `rowSelectionChanging.oldSelection` object will contain only one property, which is the `primaryKey` field. For the rest of the rows, currently in the data view, `rowSelectionChanging.oldSelection` will contain the whole row data.
+
```html
+
...
```
+
```typescript
/* selectionExample.component.ts */
+
public handleRowSelectionChange(args) {
args.cancel = true; // this will cancel the row selection
}
+
```
+
### Select all rows
-Another useful API method that [`igx-tree-grid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) provides is `selectAll(onlyFilteredData)`. By default this method will select all data rows, but if filtering is applied, it will select only the rows that match the filter criteria. But if you call the method with _false_ parameter, `selectAll(false)` will always select all data in the grid, even if filtering is applied.
->[!NOTE]
-> Keep in mind that `selectAll()` will not select the rows that are deleted.
+
+Another useful API method that [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) provides is `selectAll(onlyFilteredData)`. By default this method will select all data rows, but if filtering is applied, it will select only the rows that match the filter criteria. But if you call the method with _false_ parameter, `selectAll(false)` will always select all data in the grid, even if filtering is applied.
+**Note:**
+Keep in mind that `selectAll()` will not select the rows that are deleted.
+
### Deselect all rows
-[`igx-tree-grid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) provides `deselectAll(onlyFilteredData)` method, which by default will deselect all data rows, but if filtering is applied will deselect only the rows that match the filter criteria. But if you call the method with _false_ parameter, `deselectAll(false)` will always clear all row selection state even if filtering is applied.
+
+[`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) provides `deselectAll(onlyFilteredData)` method, which by default will deselect all data rows, but if filtering is applied will deselect only the rows that match the filter criteria. But if you call the method with _false_ parameter, `deselectAll(false)` will always clear all row selection state even if filtering is applied.
+
### How to get selected rows
+
If you need to see which rows are currently selected, you can get their row IDs with the `selectedRows` getter.
+
```typescript
+
public getSelectedRows() {
const currentSelection = this.treeGrid.selectedRows; // return array of row IDs
}
```
+
Additionally, assigning row IDs to `selectedRows` will allow you to change the grid's selection state.
+
```typescript
public mySelectedRows = ['Johnathan Winchester', 'Ana Sanders']; // an array of row IDs
```
+
```html
```
+
### Row selector templates
+
You can template header and row selectors in the Tree Grid and also access their contexts which provide useful functionality for different scenarios.
+
By default, the Tree Grid **handles all row selection interactions** on the row selector's parent container or on the row itself, leaving just the state visualization for the template. Overriding the base functionality should generally be done using the [`rowSelectionChanging` event](#row-selection-event). In case you implement a custom template with a `click` handler which overrides the base functionality, you should stop the event's propagation to preserve the correct row state.
+
#### Row template
+
To create a custom row selector template, within the `igx-tree-grid`, declare an `` with `igxRowSelector` directive. From the template you can access the implicitly provided context variable, with properties that give you information about the row's state.
+
The `selected` property shows whether the current row is selected or not while the `index` property can be used to access the row index.
+
```html
{{ rowContext.index }}
@@ -323,22 +386,31 @@ The `selected` property shows whether the current row is selected or not while t
>
```
+
The `rowID` property can be used to get a reference of an `igx-tree-grid` row. This is useful when you implement a `click` handler on the row selector element.
+
```html
```
+
In the above example we are using an `igx-checkbox` and we bind `rowContext.selected` to its `checked` property. See this in action in our [`Row Numbering Demo`](#row-numbering-demo).
+
### Header template
+
To create a custom header selector template, within the Tree Grid, declare an `` with `igxHeadSelector` directive. From the template you can access the implicitly provided context variable, with properties that give you information about the header's state.
+
The `selectedCount` property shows you how many rows are currently selected while `totalCount` shows you how many rows there are in the Tree Grid in total.
+
```html
{{ headContext.selectedCount }} / {{ headContext.totalCount }}
```
+
The `selectedCount` and `totalCount` properties can be used to determine if the head selector should be checked or indeterminate (partially selected).
+
```html
@@ -350,8 +422,11 @@ The `selectedCount` and `totalCount` properties can be used to determine if the
```
+
### Row Numbering Demo
+
This demo shows the usage of custom header and row selectors. The latter uses `rowContext.index` to display row numbers and an `igx-checkbox` bound to `rowContext.selected`.
+
```typescript
import { Component, OnInit } from '@angular/core';
import { generateEmployeeFlatData } from '../data/employees-flat';
@@ -439,9 +514,11 @@ export class TreeGridSelectionTemplateNumbersSampleComponent implements OnInit {
text-align: center;
}
```
-
+
### Conditional Selection Demo
+
This demo prevents some rows from being selected using the `rowSelectionChanging` event and a custom template with disabled checkbox for non-selectable rows.
+
```typescript
import { Component, OnInit } from '@angular/core';
import { IRowSelectionEventArgs, IgxColumnComponent, IgxRowSelectorDirective } from 'igniteui-angular/grids/core';
@@ -526,26 +603,29 @@ export class TreeGridConditionalRowSelectorsSampleComponent implements OnInit {
min-width: calc(1.25rem + (1.5rem * 2));
}
```
-
+
## API References
-- [IgxTreeGridComponent API](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
-_ [IgxTreeGridRow API](mcp:get_api_reference?platform=angular&component=IgxTreeGridRow)
-- [IgxGridCell API](mcp:get_api_reference?platform=angular&component=IgxGridCell)
-- [IgxTreeGridComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme)
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+
+_ [`IgxTreeGridRow`](mcp:get_api_reference?platform=angular&component=IgxTreeGridRow)
+
+- [`IgxGridCell`](mcp:get_api_reference?platform=angular&component=IgxGridCell)
+- `IgxTreeGridComponent Styles`
## Additional Resources
-
-- [Tree Grid overview](tree-grid.md)
-- [Selection](selection.md)
-- [Cell selection](cell-selection.md)
-- [Paging](paging.md)
-- [Filtering](filtering.md)
-- [Sorting](sorting.md)
-- [Summaries](summaries.md)
-- [Column Moving](column-moving.md)
-- [Column Pinning](column-pinning.md)
-- [Column Resizing](column-resizing.md)
-- [Virtualization and Performance](virtualization.md)
-
+
+- [Tree Grid overview](/treegrid/tree-grid)
+- [Selection](/treegrid/selection)
+- [Cell selection](/treegrid/cell-selection)
+- [Paging](/treegrid/paging)
+- [Filtering](/treegrid/filtering)
+- [Sorting](/treegrid/sorting)
+- [Summaries](/treegrid/summaries)
+- [Column Moving](/treegrid/column-moving)
+- [Column Pinning](/treegrid/column-pinning)
+- [Column Resizing](/treegrid/column-resizing)
+- [Virtualization and Performance](/treegrid/virtualization)
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-search.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-search.md
index 7e7c91a41..9a4cb164e 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-search.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-search.md
@@ -1,16 +1,22 @@
---
title: Angular Tree Grid Search Filter - Ignite UI for Angular
-_description: Perform fast grid search with Ignite UI for Angular Tree grid. It allows instant content search in the virtualized data of the Grid, while delivering better UX.
-_keywords: Content search, ignite ui for angular, infragistics
-_license: commercial
+description: Perform fast grid search with Ignite UI for Angular Tree grid. It allows instant content search in the virtualized data of the Grid, while delivering better UX.
+keywords: Content search, ignite ui for angular, infragistics
+license: commercial
_canonicalLink: grid/search
+llms:
+ description: "Angular Tree Grid search enables the process of finding values in the collection of data."
_tocName: Searching
_premium: true
---
# Angular Tree Grid Search Filter
+
Angular Tree Grid search enables the process of finding values in the collection of data. We make it easier to setup this functionality and it can be implemented with search input box, buttons, keyboard navigation and other useful features for an even better user experience. While browsers natively provide content search functionality, most of the time the Tree Grid virtualizes its columns and rows that are out of view. In these cases, the native grid search is unable to search data in the virtualized cells, since they are not part of the DOM. We have extended the Ignite UI for Angular table-based grid with a **search API** that allows you to search through the **virtualized content** of the Tree Grid.
+
## Angular Search Example
+
The following example represents Tree Grid with search input box that allows searching in all columns and rows, as well as specific filtering options for each column.
+
```typescript
import { Component, OnInit, ViewChild } from '@angular/core';
import { IgxTreeGridComponent } from 'igniteui-angular/grids/tree-grid';
@@ -152,12 +158,16 @@ export class TreeGridSearchSampleComponent implements OnInit {
margin-left: 5px;
}
```
-
+
## Angular Search Usage
+
### Grid setup
+
Let's start by creating our grid and binding it to our data. We will also add some custom styles for the components we will be using!
+
```html
+
@@ -166,78 +176,108 @@ Let's start by creating our grid and binding it to our data. We will also add so
```
-@@if (igxName === 'IgxGrid' || igxName === 'IgxTreeGrid') {
+
```css
/* searchgrid.component.css */
+
.grid__wrapper {
margin: 15px;
}
+
.offset {
margin-bottom: 15px;
}
+
.resultsText {
font-size: 0.875rem;
}
+
.chips {
margin-left: 5px;
}
+
.searchButtons {
margin-left: 5px;
}
```
-}
+
Great, and now let's prepare for the search API of our Tree Grid! We can create a few properties, which can be used for storing the currently searched text and whether the search is case sensitive and/or by an exact match.
+
```typescript
// searchgrid.component.ts
+
public searchText: string = '';
public caseSensitive: boolean = false;
public exactMatch: boolean = false;
```
+
### Angular search box input
+
Now let's create our search input! By binding our **searchText** as ngModel to our newly created input and subscribe to the ngModelChange event, we can detect every single **searchText** modification by the user. This will allow us to use the Tree Grid's [`findNext`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=findNext) and [`findPrev`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=findPrev) methods to highlight all the occurrences of the **searchText** and scroll to the next/previous one (depending on which method we have invoked).
+
Both the [`findNext`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=findNext) and the [`findPrev`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=findPrev) methods have three arguments:
+
- `text`: **string** (the text we are searching for)
- (optional) `caseSensitive`: **boolean** (should the search be case sensitive or not, default value is false)
- (optional) `exactMatch`: **boolean** (should the search be by an exact match or not, default value is false)
+
When searching by an exact match, the search API will highlight as results only the cell values that match entirely the **searchText** by taking the case sensitivity into account as well. For example the strings '_software_' and '_Software_' are an exact match with a disregard for the case sensitivity.
+
The methods from above return a **number** value (the number of times the Tree Grid contains the given string).
+
```html
+
```
+
### Display results count
+
Let's also display the position of the current occurrence, along with the total results count! We can do this by using the grid's `lastSearchInfo` property. This property is automatically updated when using the **find** methods.
-- The `treeGrid.lastSearchInfo.matchCount` value will give us the total results count.
+
+- The `treeGrid.lastSearchInfo.matchInfoCache.length` value will give us the total results count.
- The `treeGrid.lastSearchInfo.activeMatchIndex` value will give us the index position of the current occurrence (match).
+
```html
-
+ 0">
+ {{ treeGrid.lastSearchInfo.activeMatchIndex + 1 }} of {{ treeGrid.lastSearchInfo.matchInfoCache.length }} results
-
+
No results
```
+
### Add search buttons
+
In order to freely search and navigate among our search results, let's create a couple of buttons by invoking the [`findNext`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=findNext) and the [`findPrev`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=findPrev) methods inside the buttons' respective click event handlers.
+
```html
+
```
+
### Add keyboard search
+
We can also allow the users to navigate the results by using the keyboard's arrow keys and the Enter key. In order to achieve this, we can handle the **keydown** event of our search input by preventing the default caret movement of the input with the preventDefault() method and invoke the [`findNext`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=findNext)/[`findPrev`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=findPrev) methods depending on which key the user has pressed.
+
```html
+
```
+
```typescript
// searchgrid.component.ts
+
public searchKeyDown(ev) {
if (ev.key === 'Enter' || ev.key === 'ArrowDown' || ev.key === 'ArrowRight') {
ev.preventDefault();
@@ -248,35 +288,49 @@ public searchKeyDown(ev) {
}
}
```
+
### Case sensitive and Exact match
+
Now let's allow the user to choose whether the search should be case sensitive and/or by an exact match. For this purpose we can use simple checkbox inputs by binding our **caseSensitive** and **exactMatch** properties to the inputs' **checked** properties respectively and handle their **change** events by toggling our properties and invoking the [`findNext`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=findNext) method.
+
```html
+
Case sensitive
+
Exact match
```
+
```typescript
// searchgrid.component.ts
+
public updateSearch() {
this.caseSensitive = !this.caseSensitive;
this.treeGrid.findNext(this.searchText, this.caseSensitive, this.exactMatch);
}
+
public updateExactSearch() {
this.exactMatch = !this.exactMatch;
this.treeGrid.findNext(this.searchText, this.caseSensitive, this.exactMatch);
}
```
+
### Persistence
+
What if we would like to filter and sort our Tree Grid or even to add and remove records? After such operations, the highlights of our current search automatically update and persist over any text that matches the **searchText**! Furthermore, the search will work with paging and will persist the highlights through changes of the Tree Grid's [`perPage`](mcp:get_api_reference?platform=angular&component=IgxPaginatorComponent&member=perPage) property.
+
### Adding icons
+
By using some of our other components, we can create an enriched user interface and improve the overall design of our entire search bar! We can have a nice search or delete icon on the left of the search input, a couple of chips for our search options and some material design icons combined with nice ripple styled buttons for our navigation on the right. We can wrap these components inside an input group for a more refined design.
-To do this, let's go and grab the [**IgxInputGroup**](../input-group.md), [**IgxIcon**](../icon.md), [**IgxRipple**](../ripple.md), [**IgxButton**](../button.md) and the [**IgxChip**](../chip.md) modules.
+To do this, let's go and grab the [**IgxInputGroup**](/input-group), [**IgxIcon**](/icon), [**IgxRipple**](/ripple), [**IgxButton**](inputs/button) and the [**IgxChip**](/chip) modules.
+
```typescript
// app.module.ts
+
...
-import {
+
IgxTreeGridModule,
IgxInputGroupModule,
IgxIconModule,
@@ -291,16 +345,21 @@ import {
// IgxButtonModule,
// IgxChipsModule
// } from '@infragistics/igniteui-angular'; for licensed package
+
@NgModule({
...
imports: [..., IgxInputGroupModule, IgxIconModule, IgxRippleModule, IgxButtonModule, IgxChipsModule],
})
export class AppModule {}
```
+
Finally, let's update our template with the new components!
+
We will wrap all of our components inside an [**IgxInputGroup**](../input-group.md). On the left we will toggle between a search and a delete/clear icon (depending on whether the search input is empty or not). In the center, we will position the input itself. In addition, whenever the delete icon is clicked, we will update our **searchText** and invoke the Tree Grid's [`clearSearch`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=clearSearch) method to clear the highlights.
+
```html
+
search
@@ -315,29 +374,37 @@ We will wrap all of our components inside an [**IgxInputGroup**](../input-group.
```
+
```typescript
// searchgrid.component.ts
+
public clearSearch() {
this.searchText = '';
this.treeGrid.clearSearch();
}
```
+
On the right in our input group, let's create three separate containers with the following purposes:
+
- For displaying the search results.
+
```html
+
0">
-
+ 0">
+ {{ treeGrid.lastSearchInfo.activeMatchIndex + 1 }} of {{ treeGrid.lastSearchInfo.matchInfoCache.length }} results
-
+
No results
```
+
- For displaying a couple of chips that toggle the **caseSensitive** and the **exactMatch** properties. We have replaced the checkboxes with two stylish chips that change color based on these properties. Whenever a chip is clicked, we invoke its respective handler - **updateSearch** or **updateExactSearch** depending on which chip has been clicked.
+
```html
@@ -354,9 +421,12 @@ On the right in our input group, let's create three separate containers with the
...
```
+
- For the search navigation buttons, we have transformed our inputs into ripple styled buttons with material icons. The handlers for the click events remain the same - invoking the [`findNext`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=findNext)/[`findPrev`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=findPrev) methods.
+
```html
+
@@ -368,49 +438,53 @@ On the right in our input group, let's create three separate containers with the
```
+
## Known Limitations
-| Limitation | Description |
-| :--------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| Searching in cells with a template | The search functionality highlights work only for the default cell templates. If you have a column with custom cell template, the highlights will not work so you should either use alternative approaches, such as a column formatter, or set the [`searchable`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=searchable) property on the column to false. |
-| Remote Virtualization | The search will not work properly when using remote virtualization |
-| Cells with cut off text | When the text in the cell is too large to fit and the text we are looking for is cut off by the ellipsis, we will still scroll to the cell and include it in the match count, but nothing will be highlighted |
+
+|Limitation|Description|
+|--- |--- |
+|Searching in cells with a template|The search functionality highlights work only for the default cell templates. If you have a column with custom cell template, the highlights will not work so you should either use alternative approaches, such as a column formatter, or set the [`searchable`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=searchable) property on the column to false.|
+|Remote Virtualization| The search will not work properly when using remote virtualization|
+|Cells with cut off text| When the text in the cell is too large to fit and the text we are looking for is cut off by the ellipsis, we will still scroll to the cell and include it in the match count, but nothing will be highlighted |
+
## API References
In this article we implemented our own search bar for the Tree Grid with some additional functionality when it comes to navigating between the search results. We also used some additional Ignite UI for Angular components like icons, chips and inputs. The search API is listed below.
-[`IgxTreeGridComponent`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) methods:
-- [findNext](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=findNext)
-- [findPrev](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=findPrev)
-- [clearSearch](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=clearSearch)
-- [refreshSearch](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=refreshSearch)
+[`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) methods:
+- [`findNext`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=findNext)
+- [`findPrev`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=findPrev)
+- [`clearSearch`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=clearSearch)
+- [`refreshSearch`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=refreshSearch)
[`IgxGridCell`](mcp:get_api_reference?platform=angular&component=IgxGridCell) methods:
-[`IgxColumnComponent`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent) properties:
-- [searchable](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=searchable)
-[ISearchInfo](mcp:get_api_reference?platform=angular&component=ISearchInfo)
+[`IgxColumn`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent) properties:
+- [`searchable`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=searchable)
+[`IgxISearchInfo`](mcp:get_api_reference?platform=angular&component=ISearchInfo)
Additional components and/or directives with relative APIs that were used:
-- [IgxInputGroupComponent](mcp:get_api_reference?platform=angular&component=IgxInputGroupComponent)
-- [IgxIconComponent](mcp:get_api_reference?platform=angular&component=IgxIconComponent)
-- [IgxRippleDirective](mcp:get_api_reference?platform=angular&component=IgxRippleDirective)
-- [IgxButtonDirective](mcp:get_api_reference?platform=angular&component=IgxButtonDirective)
-- [IgxChipComponent](mcp:get_api_reference?platform=angular&component=IgxChipComponent)
+- [`IgxInputGroup`](mcp:get_api_reference?platform=angular&component=IgxInputGroupComponent)
+- [`IgxIcon`](mcp:get_api_reference?platform=angular&component=IgxIconComponent)
+- [`IgxRippleDirective`](mcp:get_api_reference?platform=angular&component=IgxRippleDirective)
+- [`IgxButtonDirective`](mcp:get_api_reference?platform=angular&component=IgxButtonDirective)
+- [`IgxChip`](mcp:get_api_reference?platform=angular&component=IgxChipComponent)
Styles:
-- [IgxTreeGridComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme)
-- [IgxInputGroupComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-input-group-theme)
-- [IgxIconComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-icon-theme)
-- [IgxRippleDirective Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-ripple-theme)
-- [IgxButtonDirective Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-button-theme)
-- [IgxChipComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-chip-theme)
+- `IgxTreeGridComponent Styles`
+- `IgxInputGroupComponent Styles`
+- `IgxIconComponent Styles`
+- `IgxRippleDirective Styles`
+- `IgxButtonDirective Styles`
+- `IgxChipComponent Styles`
## Additional Resources
-
-- [Tree Grid overview](tree-grid.md)
-- [Virtualization and Performance](virtualization.md)
-- [Filtering](filtering.md)
-- [Paging](paging.md)
-- [Sorting](sorting.md)
-- [Summaries](summaries.md)
-- [Column Moving](column-moving.md)
-- [Column Pinning](column-pinning.md)
-- [Column Resizing](column-resizing.md)
-- [Selection](selection.md)
-
+
+- [Tree Grid overview](/treegrid/tree-grid)
+- [Virtualization and Performance](/treegrid/virtualization)
+- [Filtering](/treegrid/filtering)
+- [Paging](/treegrid/paging)
+- [Sorting](/treegrid/sorting)
+- [Summaries](/treegrid/summaries)
+- [Column Moving](/treegrid/column-moving)
+- [Column Pinning](/treegrid/column-pinning)
+- [Column Resizing](/treegrid/column-resizing)
+- [Selection](/treegrid/selection)
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-selection.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-selection.md
index a5bc7e0ae..9b85e1fff 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-selection.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-selection.md
@@ -1,16 +1,21 @@
---
title: Angular Tree Grid Selection - Ignite UI for Angular
-_description: See how easy it is to select data in Ignite UI for Angular grid using variety of events, rich API or with simple mouse interactions like single select.
-_keywords: data select, igniteui for angular, infragistics
-_license: commercial
+description: See how easy it is to select data in Ignite UI for Angular grid using variety of events, rich API or with simple mouse interactions like single select.
+keywords: data select, igniteui for angular, infragistics
+license: commercial
_canonicalLink: grid/selection
+llms:
+ description: "With Ignite UI for Angular Tree Grid you can easily select data by using variety of events, rich API or with simple mouse interactions like single select."
_tocName: Selection
---
# Angular Tree Grid Selection
+
With Ignite UI for Angular Tree Grid you can easily select data by using variety of events, rich API or with simple mouse interactions like single select.
+
## Angular Grid Selection Example
+
The sample below demonstrates the three types of Tree Grid's **cell selection** behavior. Use the buttons below to enable each of the available selection modes. A brief description will be provided on each button interaction through a snackbar message box.
-
+
```typescript
import { Component, OnInit, ViewChild } from '@angular/core';
import { GridSelectionMode, IgxColumnComponent } from 'igniteui-angular/grids/core';
@@ -129,59 +134,80 @@ export class TreeGridCellSelectionComponent implements OnInit {
}
}
```
-
+
## Angular Grid Selection Options
-IgniteUI for Angular Tree Grid component provides three different selection modes - [Row selection](row-selection.md), [Cell selection](cell-selection.md) and [Column selection](column-selection.md). By default only **Multi-cell selection** mode is enabled in the Tree Grid. In order to change/enable selection mode you can use [`rowSelection`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=rowSelection), [`cellSelection`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=cellSelection) or [`selectable`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=selectable) properties.
+
+IgniteUI for Angular Tree Grid component provides three different selection modes - [Row selection](/treegrid/row-selection), [Cell selection](/treegrid/cell-selection) and [Column selection](/treegrid/column-selection). By default only **Multi-cell selection** mode is enabled in the Tree Grid. In order to change/enable selection mode you can use [`rowSelection`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=rowSelection), [`cellSelection`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=cellSelection) or [`selectable`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=selectable) properties.
+
### Angular Row Selection
+
Property [`rowSelection`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=rowSelection) enables you to specify the following options:
+
- none - Row selection would be disabled for the Tree Grid
- single - Selection of only one row within the Tree Grid would be available
-- multiple - Multi-row selection would be available by using the `Row selectors`, with a key combination like ctrl + click, or by pressing the space key once a cell is focused
+- multiple - Multi-row selection would be available by using the `Row selectors`, with a key combination like ctrl + click, or by pressing the space key once a cell is focused
+
- multipleCascade - This is a mode for cascading selection, resulting in the selection of all children in the tree below the record that the user selects with user interaction. In this mode a parent's selection state entirely depends on the selection state of its children.
-> Go to [Row selection topic](row-selection.md) for more information.
+
+> Go to [Row selection topic](/treegrid/row-selection) for more information.
+
### Angular Cell Selection
+
Property [`cellSelection`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=cellSelection) enables you to specify the following options:
+
- none - Cell selection would be disabled for the Tree Grid
- single - Selection of only one cell within the Tree Grid would be available.
- multiple - Currently, this is the default state of the selection in the Tree Grid. Multi-cell selection is available by mouse dragging over the cells, after a left button mouse clicked continuously.
-> Go to [Cell selection topic](cell-selection.md) for more information.
+
+> Go to [Cell selection topic](/treegrid/cell-selection) for more information.
+
### Angular Column Selection
-The [`selectable` property](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=selectable) enables you to specify the following options for each **column**:
+
+The [`` selectable` property ``](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=selectable) enables you to specify the following options for each **column**:
+
- false - the corresponding column selection will be disabled for the Tree Grid
- true - the corresponding column selection will be enabled for the Tree Grid
- This lead to the following three variations:
- Single selection - mouse click over the column cell.
- Multi column selection - holding ctrl + mouse click over the column cells.
- Range column selection - holding shift + mouse click selects everything in between.
-> Go to [Column selection topic](column-selection.md) for more information.
+
+> Go to [Column selection topic](/treegrid/column-selection) for more information.
+
## Known Issues and Limitations
+
- Using the Tree Grid with Selection enabled on IE11 requires the explicit import of the array polyfill in polyfill.ts of the angular application. IE11 is no longer supported as of version 13.0.0.
```typescript
import 'core-js/es7/array';
```
+
- When the grid has no `primaryKey` set and remote data scenarios are enabled (when paging, sorting, filtering, scrolling trigger requests to a remote server to retrieve the data to be displayed in the grid), a row will lose the following state after a data request completes:
- Row Selection
- Row Expand/collapse
- Row Editing
- Row Pinning
+
## API References
-- [IgxTreeGridComponent API](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
-_ [IgxTreeGridRow API](mcp:get_api_reference?platform=angular&component=IgxTreeGridRow)
-- [IgxGridCell API](mcp:get_api_reference?platform=angular&component=IgxGridCell)
-- [IgxTreeGridComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme)
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+
+_ [`IgxTreeGridRow`](mcp:get_api_reference?platform=angular&component=IgxTreeGridRow)
+
+- [`IgxGridCell`](mcp:get_api_reference?platform=angular&component=IgxGridCell)
+- `IgxTreeGridComponent Styles`
## Additional Resources
-
-- [Tree Grid overview](tree-grid.md)
-- [Row Selection](row-selection.md)
-- [Cell Selection](cell-selection.md)
-- [Paging](paging.md)
-- [Filtering](filtering.md)
-- [Sorting](sorting.md)
-- [Summaries](summaries.md)
-- [Column Moving](column-moving.md)
-- [Virtualization and Performance](virtualization.md)
-
+
+- [Tree Grid overview](/treegrid/tree-grid)
+- [Row Selection](/treegrid/row-selection)
+- [Cell Selection](/treegrid/cell-selection)
+- [Paging](/treegrid/paging)
+- [Filtering](/treegrid/filtering)
+- [Sorting](/treegrid/sorting)
+- [Summaries](/treegrid/summaries)
+- [Column Moving](/treegrid/column-moving)
+- [Virtualization and Performance](/treegrid/virtualization)
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-sizing.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-sizing.md
index 68b902bf0..2a047bbc1 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-sizing.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-sizing.md
@@ -1,197 +1,283 @@
---
title: Angular Tree Grid Sizing - Ignite UI for Angular
-_description: Understand how the Angular grid sizing works and learn how to use the width and height in order to accommodate the different scenarios that users can have.
-_keywords: angular grid sizing, igniteui for angular, infragistics
-_license: commercial
+description: Understand how the Angular grid sizing works and learn how to use the width and height in order to accommodate the different scenarios that users can have.
+keywords: angular grid sizing, igniteui for angular, infragistics
+license: commercial
_canonicalLink: grid/sizing
+llms:
+ description: "There are many different ways to size the TreeGrid in order to accommodate a lot of scenarios that the users can have."
_tocName: Sizing
_premium: true
---
# Angular Grid Sizing
-There are many different ways to size the [**IgxTreeGrid**](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) in order to accommodate a lot of scenarios that the users can have. While some are straight forward, others might be more complex and that is why we will take each one and look into them in more depth. We will go through setting `width` and `height` separately since there are some differences e.g. when using percentages for each.
-When it comes to border and padding size for the [**IgxTreeGrid**](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent), they are taken into its width/height size calculations or also known as [Border box](https://developer.mozilla.org/en-US/docs/Web/CSS/box-sizing) sizing. It is applied in all scenarios.
-> [!Note]
-> If the Border box sizing is overridden by the user we cannot guarantee that the [**IgxTreeGrid**](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) will size correctly.
+
+There are many different ways to size the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) in order to accommodate a lot of scenarios that the users can have. While some are straight forward, others might be more complex and that is why we will take each one and look into them in more depth. We will go through setting `width` and `height` separately since there are some differences e.g. when using percentages for each.
+
+When it comes to border and padding size for the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent), they are taken into its width/height size calculations or also known as [Border box](https://developer.mozilla.org/en-US/docs/Web/CSS/box-sizing) sizing. It is applied in all scenarios.
+
+**Note:**
+If the Border box sizing is overridden by the user we cannot guarantee that the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) will size correctly.
+
## Width
-If the `width` input does not have value assigned, its default value is `100%` and the [**IgxTreeGrid**](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) tries to fill the available space. You can check how the grid reacts to it in the `Percentages` section.
-> [!Note]
-> Setting manually the `width` style of the [**IgxTreeGrid**](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) itself will result in an unexpected behavior.
+
+If the `width` input does not have value assigned, its default value is `100%` and the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) tries to fill the available space. You can check how the grid reacts to it in the `Percentages` section.
+
+**Note:**
+Setting manually the `width` style of the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) itself will result in an unexpected behavior.
+
### Null
+
The grid's `width` can accepts value of `null`, which when set, renders all columns in the DOM. The grid sizes accordingly so there is no grid horizontal scrollbar since column virtualization is not applied.
+
- If there are 6 columns and none of them has width defined, the grid will have `width` of `816px`, because each column by default have assigned `width` of `136px` in this scenario. Same will happen if the columns have `width` in percentages. If vertical scrollbar is rendered or there are features that render additional columns their width will be added also.
-
+
+
- If there are 6 columns with column width set to `200px` they will fit in our window and all will be visible:
-
+
+
- If there are more columns or ones with bigger width that go out of the browser's view, they will all still render. Let's have the same amount of columns but each with column width of `300px`. Since they don't all fit in the browser view area, it will create a scrollbar natively. The next example displays this exact scenario:
-
+
+
- If the grid has a parent element of any sort and it doesn't have any overflow set, it will still render all columns visible. Otherwise if the parent element has overflow `auto` or `scroll`, a scrollbar for that parent element will be rendered natively. The parent has bigger height for easier visualization in the following example.
-
-> [!Note]
-> Due to this behavior, if the grid data contains too many columns, it might have significant impact on the browser performance, since all columns would be rendered without virtualization.
+
+
+**Note:**
+Due to this behavior, if the grid data contains too many columns, it might have significant impact on the browser performance, since all columns would be rendered without virtualization.
+
### Pixels
-When the [**IgxTreeGrid**](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) `width` input is set to pixels it will set the whole grid size to that value and it will be static. It will not react to any browser resizing or changes in the DOM, although this is not the case for the grid content:
+
+When the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) `width` input is set to pixels it will set the whole grid size to that value and it will be static. It will not react to any browser resizing or changes in the DOM, although this is not the case for the grid content:
+
- When width is set in pixels in order for the grid to render horizontal scrollbar, its content width needs to exceed the specified grid `width`. Let's, for example, have the combined width of the columns exceed `1200px`. In this case a horizontal scrollbar will be rendered.
-
-- For scenarios where the grid has a parent element, it depends on the parent styling if it will render scrollbar or not. Everything else related to the grid itself is still retained. If the parent element width is smaller than the grid's width and has overflow style set to `auto` or `scroll`, it will render scrollbar natively. For example, if the parent has `width` set to `1000px` and the [**IgxTreeGrid**](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) `width` is still `1200px`, it will look similar to the following illustrations:
+
+
+- For scenarios where the grid has a parent element, it depends on the parent styling if it will render scrollbar or not. Everything else related to the grid itself is still retained. If the parent element width is smaller than the grid's width and has overflow style set to `auto` or `scroll`, it will render scrollbar natively. For example, if the parent has `width` set to `1000px` and the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) `width` is still `1200px`, it will look similar to the following illustrations:
+
+
+
-
-
### Percentages
-When the `width` of the [**IgxTreeGrid**](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) is set to percentages it will size the grid according to the parent element's width. If the parent element does not have width specified the [**IgxTreeGrid**](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) will size relative to the browser window.
+
+When the `width` of the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) is set to percentages it will size the grid according to the parent element's width. If the parent element does not have width specified the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) will size relative to the browser window.
+
- For example, if we set the grid `width` input to `100%` and there is no parent element it will fill 100% of the available width of the browser window. If it is resized the grid will resize as well accordingly.
-
+
+
- If we set grid's width to `100%` and there is a parent element that has specific width of `1200px`, this will mean that the grid will size relative to that element and his final width will be `1200px`.
-
+
+
- If we have a parent element with `width` of `1000px` and have the grid's `width` set to `150%`, the calculated grid width will be `1500px`. In this case the grid will still render fully visible but if we set `overflow: auto` of the parent, that parent will render scrollbar on its own.
-
-
+
+
+
## Height
-By default if no height is defined for the [**IgxTreeGrid**](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent), it will be set to `100%`. You can check how the grid reacts depending on the DOM structure in the `Percentages` section.
-> [!Note]
-> Setting manually the `height` style of the [**IgxTreeGrid**](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) itself will result in an unexpected behavior.
+
+By default if no height is defined for the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent), it will be set to `100%`. You can check how the grid reacts depending on the DOM structure in the `Percentages` section.
+
+**Note:**
+Setting manually the `height` style of the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) itself will result in an unexpected behavior.
+
### Null
-The [**IgxTreeGrid**](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) `height` input can accept `null` value, which when set, displays all rows with no scrollbar no matter how many they are. In this case, there is no vertical virtualization since the grid renders all rows anyway.
+
+The [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) `height` input can accept `null` value, which when set, displays all rows with no scrollbar no matter how many they are. In this case, there is no vertical virtualization since the grid renders all rows anyway.
+
- If we have data with 14 rows in this case the grid will render all 14 of them and size the grid so all are visible without any empty space inside the grid.
-
+
+
- If we have 24 rows instead, the grid will still render all rows but since they are too many, they exceed the browser boundaries. That's why the browser itself will render vertical scrollbar by default so the user can scroll down to the rest of the rows.
-
+
+
- If there is a parent element with defined `height`, the grid will still render all rows and not be affected. Let's say the parent has `height` of `650px`. If he has `overflow` set to `auto` or `scroll`, it will render a vertical scrollbar but the grid will still be unaffected:
-
-
-> [!Note]
-> Due to this behavior, if the grid data contains too many rows, it might have significant impact on the browser performance, since all rows would be rendered without virtualization.
+
+
+
+**Note:**
+Due to this behavior, if the grid data contains too many rows, it might have significant impact on the browser performance, since all rows would be rendered without virtualization.
+
### Pixels
-Setting the [**IgxTreeGrid**](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) `height` in pixels is more straightforward since the grid will size to that specific size in all occasions similarly to how `width` is set in pixels.
+
+Setting the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) `height` in pixels is more straightforward since the grid will size to that specific size in all occasions similarly to how `width` is set in pixels.
+
- If we set, for example, the height `500px` with 4 rows for our data the grid will sit to that size and since 4 rows are not enough to fill the visible area it is expected to have some empty area.
-
+
+
- If the number of rows exceeds the visible area of the grid when `height` is set to pixels a vertical scrollbar will be rendered. For example, a grid with `500px` height set and 14 rows will be rendered the following way:
-
+
+
- If there is a parent element with `height` defined, unless it has `overflow` set to `auto` or `scroll`, the grid will still be fully visible. Otherwise it will render a scrollbar.
-
-
+
+
+
### Percentages
-When the `height` input is set to percentages the [**IgxTreeGrid**](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) will size based on the parent element height. If the parent element has its `height` set in pixels or percentages, the grid will size relative to the size of the parent.
+
+When the `height` input is set to percentages the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) will size based on the parent element height. If the parent element has its `height` set in pixels or percentages, the grid will size relative to the size of the parent.
+
When the parent element does not have defined height, the browser does not assign height to it initially and sizes it based on its children and their size. That is why there is no way for the grid to know what base height to use in order to apply percentage sizing based on it. For this reason, it will render a maximum of 10 rows and if they are more rows, a vertical scrollbar will be rendered. Otherwise, the grid will fit to number of rendered rows. We will look in this scenario in more detail in the next examples.
+
Let's have `width` set to `1200px` and the parent element not having any size applied to it:
+
- If there are less than 10 rows the grid will try to fit all rows in the `visible area without having an empty space between the last row and the bottom of the visible area. For example, let's have the grid data to consist of 7 rows. The grid will render all 7 rows without vertical scrollbar and without empty space inside the grid.
-
+
+
- If there are more than 10 rows a vertical scrollbar will be rendered for the rest of the rows and only 10 rows can be visible at any time. In the next example only the row number is increased to 14.
-
-- If we set the parent element height to `800px` and the [**IgxTreeGrid**](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) to `100%` height this means that the grid will be sized to 100 percentages of `800px`.
+
-
-- If the [**IgxTreeGrid**](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) `height` is set to a number bigger than `100%` and the parent element has height, for the parent to render scrollbar it again needs to have `overflow` set to `auto` or `scroll`. Otherwise the grid will be fully visibly and size relative to the parent size.
+- If we set the parent element height to `800px` and the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) to `100%` height this means that the grid will be sized to 100 percentages of `800px`.
+
+
+
+- If the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) `height` is set to a number bigger than `100%` and the parent element has height, for the parent to render scrollbar it again needs to have `overflow` set to `auto` or `scroll`. Otherwise the grid will be fully visibly and size relative to the parent size.
+
+
+
-
-
- If we want the grid to be sized to `100%` from the browser window we would need to set both `body` and parent grid element heights to `100%`. In this case, the parent element can be sized and the grid will size accordingly if the browser is resized.
-
+
+
## Column Sizing
+
Depending on the grid size itself, the columns inside it can also be sized differently that could result in scenarios where the grid renders horizontal scrollbar or not. Columns can have width set in pixels, percentages or autosized when nothing is set. We will take a deeper look regarding these scenarios in this section.
+
### Default
+
By default when a column doesn't have a specified width it will try to autosize, so that it fills if any empty space is available in the grid view area. Autosized columns have minimum width of `136px`, so if the area available is less than `136px` for that column, it will default to that size.
+
When the grid is resized in these scenarios, the column width is also updated to reflect the changes, so it fills any new empty space available.
-- If a column does not have specified `width` and the [**IgxTreeGrid**](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) has `width` set to `null`, it will be sized to the minimum of `136px`. This means that for a grid with `width` `null` and 6 columns that don't have width, each column will be sized to `136px`.
-
+- If a column does not have specified `width` and the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) has `width` set to `null`, it will be sized to the minimum of `136px`. This means that for a grid with `width` `null` and 6 columns that don't have width, each column will be sized to `136px`.
+
+
+
- When there are multiple autosized columns they will divide the available space between each other equally. This means that if we have 6 columns and there is empty area of `1200px`, each will size to `200px`.
-
+
+
- If there is available empty space, so that each autosized column will be less than `136px`, all autosized columns will default to `136px` and the grid will render horizontal scrollbar. In the next example let's have 12 autosized columns and the grid `width` set to `1000px`.
-
+
+
- If a column does not have `width` specified, but all other columns have either `width` in pixels or percentages, that column will try to also fill the available space. For example, if we don't have width set to the first column and all other 5 have `width` of `100px`, the first will fill the rest.
-
+
+
- Same applies if multiple columns does not have `width` specified, all will divide the available space between each other equally. In the next illustration the first column has `width` set to `100px`.
-
-> [!Note]
-> Feature columns like Row Selector checkbox column and etc. fill additional space that is taken into account when autosizing columns.
+
+
+**Note:**
+Feature columns like Row Selector checkbox column and etc. fill additional space that is taken into account when autosizing columns.
+
### Pixels
-When columns have set specific `width` in pixels, they stick to that size, unless they are resized manually. Since the combined `width` of the columns is static, it can be less than the [**IgxTreeGrid**](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) `width` or exceed it.
-- If the combined `width` of all columns is less than the [**IgxTreeGrid**](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) `width`, there would be an empty are inside the grid that the columns wouldn't be able to fill. This is the expected behavior of the [**IgxTreeGrid**](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent). In the next example the columns have `150px` width.
-
-- If the combined `width` of all columns is bigger than the actual [**IgxTreeGrid**](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) `width`, a horizontal scrollbar will be rendered. In the next example each of the 6 columns have width of `300px` and grid has width of `1200px`, which means that the columns combined have excess of `600px` that goes out of bounds.
+When columns have set specific `width` in pixels, they stick to that size, unless they are resized manually. Since the combined `width` of the columns is static, it can be less than the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) `width` or exceed it.
+
+- If the combined `width` of all columns is less than the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) `width`, there would be an empty are inside the grid that the columns wouldn't be able to fill. This is the expected behavior of the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent). In the next example the columns have `150px` width.
+
+
+
+- If the combined `width` of all columns is bigger than the actual [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) `width`, a horizontal scrollbar will be rendered. In the next example each of the 6 columns have width of `300px` and grid has width of `1200px`, which means that the columns combined have excess of `600px` that goes out of bounds.
+
+
-
### Auto
+
When columns are set to `auto` their size adjusts to fit the longest word in the column. Empty areas are possible if there are cells with very short values, while other cells have very long ones. In this scenario, all cells in the column would adjust to take the width of the cell with the longest value.
-
+
### Percentages
+
When columns have set `width` in percentages, their size is calculated relatively to the grid size. It is similar to how width in pixels works, but provides also responsiveness to the columns which means that when the grid is resized, the columns also will resize accordingly.
+
- If the combined width of all columns is less than `100%`, similarly to when in pixels, there could be an empty area of the grid that the columns do not cover.
-
+
+
- If the combined width is exactly `100%`, the columns will fill all available space of the grid.
-
+
+
- If the combined width exceeds `100%` in order for the user to be able to see the columns out of view, a horizontal scrollbar is rendered.
-
+
+
- If columns are set in percentages and the grid `width` is set to `null`, it would apply`width` of `136px` to each column. That is because the columns cannot be sized relatively to the grid, since it doesn't have `width` itself and relies on its content to be sized when its `width` is `null`. In the following example all 6 columns have `width` set to `50%`:
-
+
+
## Grid Cell Spacing Control
-The [**IgxTreeGrid**](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) automatically adapts its internal spacing based on the [size](display-density.md) setting. You can further customize the padding and margins in grid header and body cells using CSS custom properties for spacing control.
+
+The [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) automatically adapts its internal spacing based on the [size](/treegrid/display-density) setting. You can further customize the padding and margins in grid header and body cells using CSS custom properties for spacing control.
+
### Global Grid Spacing
+
To reduce or increase spacing across all grid cells in your application:
+
```css
/* Reduce all grid spacing by 20% */
igx-grid {
--ig-spacing: 0.8;
}
+
/* Increase spacing for better touch accessibility */
igx-grid {
--ig-spacing: 1.2;
}
```
+
### Grid-Specific Spacing
+
To adjust spacing for a specific grid instance:
+
```css
/* Make a particular grid more compact */
.my-compact-grid {
--ig-spacing: 0.6;
}
+
/* Give a specific grid more breathing room */
.my-spacious-grid {
--ig-spacing: 1.4;
}
```
+
### Directional Spacing Control
+
You can control horizontal and vertical spacing independently:
+
```css
/* Reduce only horizontal spacing (left/right padding) */
.my-grid {
--ig-spacing-inline: 0.5;
--ig-spacing-block: 1.0; /* Keep vertical spacing normal */
}
+
/* Adjust vertical spacing for tighter row spacing */
.my-grid {
--ig-spacing-inline: 1.0; /* Keep horizontal spacing normal */
--ig-spacing-block: 0.7; /* Reduce vertical spacing (if applicable) */
}
```
+
### Size-Specific Spacing
+
Different spacing multipliers can be applied based on the grid's display density:
+
```css
.my-grid {
/* Compact density gets very tight spacing */
@@ -204,29 +290,38 @@ Different spacing multipliers can be applied based on the grid's display density
--ig-spacing-large: 1.3;
}
```
+
### Header vs Body Cell Spacing
+
While the spacing properties affect both header and body cells, you can target them specifically if needed:
+
```css
/* Reduce padding in header cells specifically */
.my-grid igx-grid-header {
--ig-spacing: 0.7;
}
+
/* Adjust spacing in data cells */
.my-grid igx-grid-cell {
--ig-spacing: 0.9;
}
```
-> [!Note]
-> These spacing adjustments work in conjunction with the grid's display density. The spacing multipliers are applied to the base spacing values that are already determined by whether the grid is in compact, cozy, or comfortable density mode.
+
+**Note:**
+These spacing adjustments work in conjunction with the grid's display density. The spacing multipliers are applied to the base spacing values that are already determined by whether the grid is in compact, cozy, or comfortable density mode.
+
## API References
-- [IgxTreeGridComponent API](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
-_ [IgxTreeGridRow API](mcp:get_api_reference?platform=angular&component=IgxTreeGridRow)
-- [IgxTreeGridComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme)
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+
+_ [`IgxTreeGridRow`](mcp:get_api_reference?platform=angular&component=IgxTreeGridRow)
+
+- `IgxTreeGridComponent Styles`
## Additional Resources
-
-- [Tree Grid overview](tree-grid.md)
-- [Virtualization and Performance](virtualization.md)
-
+
+- [Tree Grid overview](/treegrid/tree-grid)
+- [Virtualization and Performance](/treegrid/virtualization)
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-sorting.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-sorting.md
index 8ec240229..52a3ca9e2 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-sorting.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-sorting.md
@@ -1,18 +1,25 @@
---
title: Angular Tree Grid Sorting - Ignite UI for Angular
-_description: Get started with the Angular sorting feature of Ignite for Angular UI grid! Configure a mix of sortable columns & change the display order of data records.
-_keywords: angular sort, ignite ui for angular, infragistics
-_license: commercial
+description: Get started with the Angular sorting feature of Ignite for Angular UI grid! Configure a mix of sortable columns & change the display order of data records.
+keywords: angular sort, ignite ui for angular, infragistics
+license: commercial
_canonicalLink: grid/sorting
+llms:
+ description: "In Ignite UI for Angular Tree Grid, data sorting is enabled on a per-column level, meaning that the igx-tree-grid can have a mix of sortable and non-sortable columns."
_tocName: Sorting
_premium: true
---
# Angular Tree Grid Sorting
+
In Ignite UI for Angular Tree Grid, data sorting is enabled on a per-column level, meaning that the **igx-tree-grid** can have a mix of sortable and non-sortable columns. Performing angular sort actions enables you to change the display order of the records based on specified criteria.
->[!NOTE]
-> Up until now, grouping/sorting worked in conjunction with each other. In 13.2 version, a new behavior which decouples grouping from sorting is introduced. For example - clearing the grouping will not clear sorting expressions in the grid or vice versa. Still, if a column is both sorted and grouped, grouped expressions take precedence.
+
+**Note:**
+Up until now, grouping/sorting worked in conjunction with each other. In 13.2 version, a new behavior which decouples grouping from sorting is introduced. For example - clearing the grouping will not clear sorting expressions in the grid or vice versa. Still, if a column is both sorted and grouped, grouped expressions take precedence.
+
## Angular Tree Grid Sorting Overview Example
+
Additionally there is a custom context menu added for sorting using **igx-tree-grid**'s [`contextMenu`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=contextMenu) Output.
+
```typescript
import { Component, OnInit, ViewChild, AfterViewInit } from '@angular/core';
import { DefaultSortingStrategy, ISortingOptions, SortingDirection } from 'igniteui-angular/core';
@@ -170,127 +177,60 @@ export class TreeGridSortingSampleComponent implements OnInit, AfterViewInit {
}
}
```
-
+
This is done via the [`sortable`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=sortable) input. With the Tree Grid sorting, you can also set the [`sortingIgnoreCase`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=sortingIgnoreCase) property to perform case sensitive sorting:
+
```html
```
-## Sorting Indicators
-Having a certain amount of sorted columns could be really confusing if there is no indication of the sorted order.
-The **IgxTreeGrid** provides a solution for this problem by indicating the index of each sorted column.
-@@if(igxName === "IgxGrid"){
-```typescript
-import { Component, OnInit, ViewChild, AfterViewInit } from '@angular/core';
-import { IgxGridComponent } from 'igniteui-angular/grids/grid';
-import { DefaultSortingStrategy } from 'igniteui-angular/core';
-import { IgxColumnComponent } from 'igniteui-angular/grids/core';
-import { FinancialData } from '../../data/financialData';
-import {generateRandomInteger, generateRandomFloat} from '../../data/utils';
-import { IgxPreventDocumentScrollDirective } from '../../directives/prevent-scroll.directive';
-@Component({
- selector: 'app-grid-sorting-indicators',
- templateUrl: './grid-sorting-indicators.component.html',
- styleUrls: ['./grid-sorting-indicators.component.scss'],
- imports: [IgxGridComponent, IgxPreventDocumentScrollDirective, IgxColumnComponent]
-})
-export class GridSortingIndicatorsComponent implements OnInit, AfterViewInit {
-
- @ViewChild('grid1', { static: true }) public grid: IgxGridComponent;
- public data;
+## Sorting Indicators
- public ngOnInit(): void {
- const typeArr = ['Gold', 'Silver', 'Coal'];
- this.data = FinancialData.generateData(1000).map(dataObj => {
- const type = typeArr[generateRandomInteger(0, 2)];
- switch (type) {
- case 'Gold':
- dataObj['Type'] = 'Gold';
- dataObj['Price'] = generateRandomFloat(1261.78, 1302.76);
- dataObj['Buy'] = generateRandomFloat(1261.78, 1280.73);
- break;
- case 'Silver':
- dataObj['Type'] = 'Silver';
- dataObj['Price'] = generateRandomFloat(17.12, 17.73);
- dataObj['Buy'] = generateRandomFloat(17.12, 17.43);
- break;
- case 'Coal':
- dataObj['Type'] = 'Coal';
- dataObj['Price'] = generateRandomFloat(0.40, 0.42);
- dataObj['Buy'] = generateRandomFloat(0.42, 0.46);
- break;
- }
- return dataObj;
- });
- }
+Having a certain amount of sorted columns could be really confusing if there is no indication of the sorted order.
- public ngAfterViewInit() {
- const expressions = [];
- this.grid.columns.forEach(c => {
- const sortExpr =
- {
- dir: generateRandomInteger(1, 2), fieldName: c.field,
- ignoreCase: true, strategy: DefaultSortingStrategy.instance()
- };
- expressions.push(sortExpr);
- });
- this.grid.sortingExpressions = expressions;
- this.grid.cdr.detectChanges();
- }
- public formatCurrency(value: number) {
- return '$' + value.toFixed(2);
- }
+The **IgxTreeGrid** provides a solution for this problem by indicating the index of each sorted column.
-}
-```
-```html
-
-
-
-
-
-
-
-
-
-
-
-```
-```scss
-.grid__wrapper {
- margin: 0 auto;
- padding: 16px;
-}
-```
-}
## Sorting through the API
+
You can sort any column or a combination of columns through the Tree Grid API using the Tree Grid [`sort`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=sort) method:
+
```typescript
-import { SortingDirection } from 'igniteui-angular/core';
+import { SortingDirection } from 'igniteui-angular/grids/core';
// import { SortingDirection } from '@infragistics/igniteui-angular'; for licensed package
+
// Perform a case insensitive ascending sort on the ProductName column.
this.treeGrid.sort({ fieldName: 'Name', dir: SortingDirection.Asc, ignoreCase: true });
+
// Perform sorting on both the ProductName and Price columns.
this.treeGrid.sort([
{ fieldName: 'Name', dir: SortingDirection.Asc, ignoreCase: true },
{ fieldName: 'UnitPrice', dir: SortingDirection.Desc }
]);
```
-> [!NOTE]
-> Sorting is performed using our [`DefaultSortingStrategy`](mcp:get_api_reference?platform=angular&component=DefaultSortingStrategy) algorithm. Any [`IgxColumnComponent`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=sortStrategy) or [`ISortingExpression`](mcp:get_api_reference?platform=angular&component=ISortingExpression&member=strategy) can use a custom implementation of the [`ISortingStrategy`](mcp:get_api_reference?platform=angular&component=ISortingStrategy) as a substitute algorithm. This is useful when custom sorting needs to be defined for complex template columns, or image columns, for example.
+
+**Note:**
+Sorting is performed using our [`IgxDefaultSortingStrategy`](mcp:get_api_reference?platform=angular&component=DefaultSortingStrategy) algorithm. Any [`IgxColumnComponent`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=sortStrategy) or [`ISortingExpression`](mcp:get_api_reference?platform=angular&component=ISortingExpression&member=strategy) can use a custom implementation of the [`IgxISortingStrategy`](mcp:get_api_reference?platform=angular&component=ISortingStrategy) as a substitute algorithm. This is useful when custom sorting needs to be defined for complex template columns, or image columns, for example.
+
As with the filtering behavior, you can clear the sorting state by using the [`clearSort`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=clearsort) method:
+
```typescript
// Removes the sorting state from the ProductName column
this.treeGrid.clearSort('Name');
+
// Removes the sorting state from every column in the Tree Grid
this.treeGrid.clearSort();
```
-> [!NOTE]
-> The [`sortStrategy`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=sortStrategy) of the **Tree Grid** is of different type compared to the [`sortStrategy`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=sortStrategy) of the **column**, since they work in different scopes and expose different parameters.
-> [!NOTE]
-> The sorting operation **DOES NOT** change the underlying data source of the Tree Grid.
+
+**Note:**
+The [`sortStrategy`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=sortStrategy) of the **Tree Grid** is of different type compared to the [`sortStrategy`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=sortStrategy) of the **column**, since they work in different scopes and expose different parameters.
+
+**Note:**
+The sorting operation **DOES NOT** change the underlying data source of the Tree Grid.
+
## Initial sorting state
+
It is possible to set the initial sorting state of the Tree Grid by passing an array of sorting expressions to the [`sortingExpressions`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=sortingExpressions) property of the Tree Grid.
+
```typescript
public ngAfterViewInit(): void {
this.treeGrid.sortingExpressions = [
@@ -301,53 +241,71 @@ public ngAfterViewInit(): void {
];
}
```
-> [!NOTE]
-> If values of type `string` are used by a column of [`dataType`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=dataType) `Date`, the Tree Grid won't parse them to `Date` objects and using Tree Grid `sorting` won't work as expected. If you want to use `string` objects, additional logic should be implemented on an application level, in order to parse the values to `Date` objects.
-
+
+**Note:**
+If values of type `string` are used by a column of [`dataType`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=dataType) `Date`, the Tree Grid won't parse them to `Date` objects and using Tree Grid `sorting` won't work as expected. If you want to use `string` objects, additional logic should be implemented on an application level, in order to parse the values to `Date` objects.
+
## Sorting Indicators Templates
+
The sorting indicator icon in the column header can be customized using a template. The following directives are available for templating the sorting indicator for any sorting state (ascending, descending, none):
+
- `IgxSortHeaderIconDirective` – re-templates the sorting icon when no sorting is applied.
+
```html
unfold_more
```
+
- `IgxSortAscendingHeaderIconDirective` – re-templates the sorting icon when the column is sorted in ascending order.
+
```html
expand_less
```
+
- `IgxSortDescendningHeaderIconDirective` – re-templates the sorting icon when the column is sorted in descending order.
+
```html
expand_more
```
-
+
## Styling
-To get started with styling the sorting behavior, we need to import the `index` file, where all the theme functions and component mixins live:
+
+To get started with styling the sorting behavior, we need to import the `index` file, where all the theme functions and the `tokens()` mixin are exported:
+
```scss
@use "igniteui-angular/theming" as *;
+
// IMPORTANT: Prior to Ignite UI for Angular version 13 use:
// @import '~igniteui-angular/lib/core/styles/themes/index';
```
-Following the simplest approach, we create a new theme that extends the [`grid-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme) and accepts the `$sorted-header-icon-color` and `sortable-header-icon-hover-color` parameters.
+
+Following the simplest approach, we create a new theme that extends the `grid-theme` and accepts the `$sorted-header-icon-color` and `sortable-header-icon-hover-color` parameters.
+
```scss
$custom-theme: grid-theme(
- $sorted-header-icon-color: #ffb06a,
- $sortable-header-icon-hover-color: black
+ $sorted-header-icon-color: #dc38e8,
+ $sortable-header-icon-hover-color: #5d1461
);
```
->[!NOTE]
->Instead of hardcoding the color values like we just did, we can achieve greater flexibility in terms of colors by using the [`palette`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/palettes#function-palette) and [`color`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/palettes#function-color) functions. Please refer to [`Palettes`](../themes/sass/palettes.md) topic for detailed guidance on how to use them.
-The last step is to **include** the component mixins:
+
+**Note:**
+Instead of hardcoding the color values like we just did, we can achieve greater flexibility in terms of colors by using the `palette` and `color` functions. Please refer to [`Palettes`](/themes/sass/palettes) topic for detailed guidance on how to use them.
+
+The last step is to apply the component theme with `tokens()`:
+
```scss
:host {
@include tokens($custom-theme);
}
```
+
### Demo
+
```typescript
import { Component, OnInit, ViewChild } from '@angular/core';
import { DefaultSortingStrategy, SortingDirection } from 'igniteui-angular/core';
@@ -434,24 +392,27 @@ $custom-theme: grid-theme(
@include tokens($custom-theme);
}
```
->[!NOTE]
->The sample will not be affected by the selected global theme from `Change Theme`.
+
+**Note:**
+The sample will not be affected by the selected global theme from `Change Theme`.
+
## API References
-- [IgxTreeGridComponent API](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
-- [IgxTreeGridComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme)
-- [ISortingExpression](mcp:get_api_reference?platform=angular&component=ISortingExpression)
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+- `IgxTreeGridComponent Styles`
+- [`IgxISortingExpression`](mcp:get_api_reference?platform=angular&component=ISortingExpression)
## Additional Resources
-
-- [Tree Grid overview](tree-grid.md)
-- [Virtualization and Performance](virtualization.md)
-- [Paging](paging.md)
-- [Filtering](filtering.md)
-- [Summaries](summaries.md)
-- [Column Moving](column-moving.md)
-- [Column Pinning](column-pinning.md)
-- [Column Resizing](column-resizing.md)
-- [Selection](selection.md)
-
+
+- [Tree Grid overview](/treegrid/tree-grid)
+- [Virtualization and Performance](/treegrid/virtualization)
+- [Paging](/treegrid/paging)
+- [Filtering](/treegrid/filtering)
+- [Summaries](/treegrid/summaries)
+- [Column Moving](/treegrid/column-moving)
+- [Column Pinning](/treegrid/column-pinning)
+- [Column Resizing](/treegrid/column-resizing)
+- [Selection](/treegrid/selection)
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-state-persistence.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-state-persistence.md
index 745151af0..638eddab9 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-state-persistence.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-state-persistence.md
@@ -1,16 +1,22 @@
---
title: Angular Tree Grid State Persistence - Ignite UI for Angular
-_description: Easily save and restore the grid state, using our comprehensive Ignite UI toolset for Angular. Learn how to restore columns, explore usage, and see demos!
-_keywords: state persistence, ignite ui for angular, infragistics
-_license: commercial
+description: Easily save and restore the grid state, using our comprehensive Ignite UI toolset for Angular. Learn how to restore columns, explore usage, and see demos!
+keywords: state persistence, ignite ui for angular, infragistics
+license: commercial
_canonicalLink: grid/state-persistence
+llms:
+ description: "The igxGridState directive allows developers to easily save and restore the grid state."
_tocName: State Persistence
_premium: true
---
# Angular Tree Grid State Persistence
-Тhe igxGridState directive allows developers to easily save and restore the grid state. When the [`IgxGridState`](mcp:get_api_reference?platform=angular&component=IgxGridStateDirective) directive is applied on the grid, it exposes the [`getState`](mcp:get_api_reference?platform=angular&component=IgxGridStateDirective&member=getState) and [`setState`](mcp:get_api_reference?platform=angular&component=IgxGridStateDirective&member=setState) methods that developers can use to achieve state persistence in any scenario.
+
+The igxGridState directive allows developers to easily save and restore the grid state. When the [`IgxGridStateDirective`](mcp:get_api_reference?platform=angular&component=IgxGridStateDirective) directive is applied on the grid, it exposes the [`getState`](mcp:get_api_reference?platform=angular&component=IgxGridStateDirective&member=getState) and [`setState`](mcp:get_api_reference?platform=angular&component=IgxGridStateDirective&member=setState) methods that developers can use to achieve state persistence in any scenario.
+
## Supported Features
-[`IgxGridState`](mcp:get_api_reference?platform=angular&component=IgxGridStateDirective) directive supports saving and restoring the state of the following features:
+
+[`IgxGridStateDirective`](mcp:get_api_reference?platform=angular&component=IgxGridStateDirective) directive supports saving and restoring the state of the following features:
+
- `Sorting`
- `Filtering`
- `Advanced Filtering`
@@ -23,98 +29,97 @@ _premium: true
- `Columns`
- **NEW**: Multi column headers are now supported out of the box
- Columns order
- - Column properties defined by the [`IColumnState`](mcp:get_api_reference?platform=angular&component=IColumnState) interface.
- - Columns templates and functions are restored using application level code, see [Restoring Column](state-persistence.md#restoring-columns) section.
->[!NOTE]
-> The [`IgxGridState`](mcp:get_api_reference?platform=angular&component=IgxGridStateDirective) directive does not take care of templates. Go to [Restoring Column](state-persistence.md#restoring-columns) section to see how to restore column templates.
->[!NOTE]
-> The `Row Selection` feature requires the [`primaryKey`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=primaryKey) property to be set, so it can be stored/restored correctly.
+ - Column properties defined by the [`IgxIColumnState`](mcp:get_api_reference?platform=angular&component=IColumnState) interface.
+ - Columns templates and functions are restored using application level code, see [Restoring Column](/treegrid/state-persistence#restoring-columns) section.
+
+**Note:**
+The [`IgxGridStateDirective`](mcp:get_api_reference?platform=angular&component=IgxGridStateDirective) directive does not take care of templates. Go to [Restoring Column](/treegrid/state-persistence#restoring-columns) section to see how to restore column templates.
+
+**Note:**
+The `Row Selection` feature requires the [`primaryKey`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=primaryKey) property to be set, so it can be stored/restored correctly.
+
## Usage
-[`getState`](mcp:get_api_reference?platform=angular&component=IgxGridStateDirective&member=getState) - This method returns the grid state in a serialized JSON string, so developers can just take it and save it on any data storage (database, cloud, browser localStorage, etc). The method accepts first optional parameter `serialize`, which determines whether [`getState`](mcp:get_api_reference?platform=angular&component=IgxGridStateDirective&member=getState) will return an [`IGridState`](mcp:get_api_reference?platform=angular&component=IGridState) object or a serialized JSON string.
+
+[`getState`](mcp:get_api_reference?platform=angular&component=IgxGridStateDirective&member=getState) - This method returns the grid state in a serialized JSON string, so developers can just take it and save it on any data storage (database, cloud, browser localStorage, etc). The method accepts first optional parameter `serialize`, which determines whether [`getState`](mcp:get_api_reference?platform=angular&component=IgxGridStateDirective&member=getState) will return an [`IgxIGridState`](mcp:get_api_reference?platform=angular&component=IGridState) object or a serialized JSON string.
The developer may choose to get only the state for a certain feature/features, by passing in the feature name, or an array with feature names as a second argument.
+
```typescript
// get all features` state in a serialized JSON string
const gridState = state.getState();
+
// get an `IGridState` object, containing all features original state objects, as returned by the grid public API
const gridState: IGridState = state.getState(false);
+
// get the sorting and filtering expressions
const sortingFilteringStates: IGridState = state.getState(false, ['sorting', 'filtering']);
```
-[`setState`](mcp:get_api_reference?platform=angular&component=IgxGridStateDirective&member=setState) - The [`setState`](mcp:get_api_reference?platform=angular&component=IgxGridStateDirective&member=setState) method accepts the serialized JSON string or [`IGridState`](mcp:get_api_reference?platform=angular&component=IGridState) object as argument and will restore the state of each feature found in the object/JSON string.
+
+[`setState`](mcp:get_api_reference?platform=angular&component=IgxGridStateDirective&member=setState) - The [`setState`](mcp:get_api_reference?platform=angular&component=IgxGridStateDirective&member=setState) method accepts the serialized JSON string or [`IgxIGridState`](mcp:get_api_reference?platform=angular&component=IGridState) object as argument and will restore the state of each feature found in the object/JSON string.
+
```typescript
state.setState(gridState);
state.setState(sortingFilteringStates)
```
-`options` - The [`options`](mcp:get_api_reference?platform=angular&component=IgxGridStateDirective&member=options) object implements the [`IGridStateOptions`](mcp:get_api_reference?platform=angular&component=IGridStateOptions) interface, i.e. for every key, which is the name of a certain feature, there is the boolean value indicating if this feature state will be tracked. [`getState`](mcp:get_api_reference?platform=angular&component=IgxGridStateDirective&member=getState) method will not put the state of these features in the returned value and [`setState`](mcp:get_api_reference?platform=angular&component=IgxGridStateDirective&member=setState) method will not restore state for it.
+
+`options` - The [`options`](mcp:get_api_reference?platform=angular&component=IgxGridStateDirective&member=options) object implements the [`IgxIGridStateOptions`](mcp:get_api_reference?platform=angular&component=IGridStateOptions) interface, i.e. for every key, which is the name of a certain feature, there is the boolean value indicating if this feature state will be tracked. [`getState`](mcp:get_api_reference?platform=angular&component=IgxGridStateDirective&member=getState) method will not put the state of these features in the returned value and [`setState`](mcp:get_api_reference?platform=angular&component=IgxGridStateDirective&member=setState) method will not restore state for it.
+
```typescript
public options = { cellSelection: false; sorting: false; }
```
+
```html
```
+
The simple to use single-point API's allows to achieve a full state persistence functionality in just a few lines of code. **Copy paste the code from below** - it will save the grid state in the browser `sessionStorage` object every time the user leaves the current page. Whenever the user returns to main page, the grid state will be restored. No more need to configure those complex advanced filtering and sorting expressions every time to get the data you want - do it once and have the code from below do the rest for your users:
+
```typescript
// app.component.ts
@ViewChild(IgxGridStateDirective, { static: true })
public state!: IgxGridStateDirective;
+
public ngOnInit() {
this.router.events.pipe(take(1)).subscribe((event: NavigationStart) => {
this.saveGridState();
});
}
+
public ngAfterViewInit() {
this.restoreGridState();
}
+
public saveGridState() {
const state = this.state.getState() as string;
window.sessionStorage.setItem('grid1-state', state);
}
+
public restoreGridState() {
const state = window.sessionStorage.getItem('grid1-state');
this.state.setState(state);
}
```
+
## Restoring columns
+
When possible the state directive will reuses the columns that already exists on the grid when restoring the state, instead of creating new column instances. The only scenario where a new instance will be created is when the column (or its children in case of a column groups) have no `field` property so there's no way to uniquely identify the matching column and re-use it.
-For such scenarios, the following [`limitations`](state-persistence.md#limitations) are imposed. In that case restoring complex objects can be achieved with code on application level. Let's show how to do this for templated columns:
+
+For such scenarios, the following [`limitations`](/treegrid/state-persistence#limitations) are imposed. In that case restoring complex objects can be achieved with code on application level. Let's show how to do this for templated columns:
+
1. Define a template reference variable (in the example below it is `#activeTemplate`) and assign an event handler for the [`columnInit`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=columnInit) event:
-@@if (igxName === 'IgxGrid') {
- ```html
-
-
-
-
-
-
- ...
-
- ```
-}
-@@if (igxName === 'IgxHierarchicalGrid') {
- ```html
-
-
-
-
-
-
- ...
-
- ```
-}
-@@if (igxName === 'IgxTreeGrid') {
- ```html
-
-
-
-
-
-
- ...
-
- ```
-}
-1. Query the template view in the component using @ViewChild or @ViewChildren decorator. In the [`columnInit`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=columnInit) event handler, assign the template to the column `bodyTemplate` property:
+
+```html
+
+
+
+
+
+
+ ...
+
+```
+
+2. Query the template view in the component using @ViewChild or @ViewChildren decorator. In the [`columnInit`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=columnInit) event handler, assign the template to the column `bodyTemplate` property:
+
```typescript
@ViewChild('activeTemplate', { static: true }) public activeTemplate: TemplateRef;
public onColumnInit(column: IgxColumnComponent) {
@@ -125,7 +130,9 @@ public onColumnInit(column: IgxColumnComponent) {
}
}
```
+
## Demo
+
```typescript
import { Component, OnInit, ViewChild, ViewChildren, QueryList, AfterViewInit, inject } from '@angular/core';
import { Router, RouterLink } from '@angular/router';
@@ -375,18 +382,21 @@ export class TGridSaveStateComponent implements OnInit, AfterViewInit {
width: 100%;
}
```
+
## Limitations
+
- [`getState`](mcp:get_api_reference?platform=angular&component=IgxGridStateDirective&member=getstate) method uses JSON.stringify() method to convert the original objects to a JSON string. JSON.stringify() does not support Functions, thats why the [`IgxGridState`] directive will ignore the columns [`formatter`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=formatter), [`filters`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=filters), [`summaries`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=summaries), [`sortStrategy`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=sortstrategy), [`cellClasses`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=cellClasses), [`cellStyles`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=cellstyles), [`headerTemplate`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=headerTemplate) and [`bodyTemplate`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=bodyTemplate) properties.
-
+
## API References
-- [IgxTreeGridComponent](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
-- [IgxGridStateDirective](mcp:get_api_reference?platform=angular&component=IgxGridStateDirective)
+
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+- [`IgxGridStateDirective`](mcp:get_api_reference?platform=angular&component=IgxGridStateDirective)
+
## Additional Resources
-
-- [Tree Grid overview](tree-grid.md)
-- [Paging](paging.md)
-- [Filtering](filtering.md)
-- [Sorting](sorting.md)
-- [Selection](selection.md)
+- [Tree Grid overview](/treegrid/tree-grid)
+- [Paging](/treegrid/paging)
+- [Filtering](/treegrid/filtering)
+- [Sorting](/treegrid/sorting)
+- [Selection](/treegrid/selection)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-summaries.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-summaries.md
index 94d1605c2..e7a3772c2 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-summaries.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-summaries.md
@@ -1,15 +1,20 @@
---
title: Angular Grid Summaries - Ignite UI for Angular
-_description: Configure Angular grid summaries in the group footer of the column and use the option to set custom angular template in the Ignite UI for Angular table
-_keywords: angular grid summaries, ignite ui for angular, infragistics
-_license: commercial
+description: Configure Angular grid summaries in the group footer of the column and use the option to set custom angular template in the Ignite UI for Angular table
+keywords: angular grid summaries, ignite ui for angular, infragistics
+license: commercial
_canonicalLink: grid/summaries
+llms:
+ description: "The Angular UI grid in Ignite UI for Angular has a summaries feature that functions on a per-column level as group footer."
_tocName: Summaries
_premium: true
---
# Angular Tree Grid Summaries
+
The Angular UI grid in Ignite UI for Angular has a **summaries** feature that functions on a per-column level as group footer. Angular grid summaries is powerful feature which enables the user to see column information in a separate container with a predefined set of default summary items, depending on the type of data within the column or by implementing a custom angular template in the Tree Grid.
+
## Angular Tree Grid Summaries Overview Example
+
```typescript
import { Component, ViewChild } from '@angular/core';
import { ColumnType } from 'igniteui-angular/core';
@@ -204,24 +209,34 @@ export class TreeGridSummarySampleComponent {
}
}
```
-
-> [!NOTE]
-> The summary of the column is a **function of all column values**, unless filtering is applied, then the summary of the column will be **function of the filtered result values**
+
+**Note:**
+The summary of the column is a **function of all column values**, unless filtering is applied, then the summary of the column will be **function of the filtered result values**
+
**Tree Grid summaries** can also be enabled on a per-column level in Ignite UI for Angular, which means that you can activate it only for columns that you need. Tree Grid summaries gives you a predefined set of default summaries, depending on the type of data in the column, so that you can save some time:
+
For `string` and `boolean` [`data types`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=dataType), the following function is available:
+
- count
+
For `number`, `currency` and `percent` data types, the following functions are available:
+
- count
- min
- max
- average
- sum
+
For `date` data type, the following functions are available:
+
- count
- earliest
- latest
-All available column data types could be found in the official [Column types topic](column-types.md#default-template).
+
+All available column data types could be found in the official [Column types topic](/treegrid/column-types#default-template).
+
**Tree Grid summaries** are enabled per-column by setting [`hasSummary`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=hasSummary) property to `true`. It is also important to keep in mind that the summaries for each column are resolved according to the column data type. In the `igx-tree-grid` the default column data type is `string`, so if you want `number` or `date` specific summaries you should specify the [`dataType`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=datatype) property as `number` or `date`. Note that the summary values will be displayed localized, according to the grid [`locale`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=locale) and column [`pipeArgs`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=pipeArgs).
+
```html
@@ -229,16 +244,20 @@ All available column data types could be found in the official [Column types top
```
+
The other way to enable/disable summaries for a specific column or a list of columns is to use the public method [`enableSummaries`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=enableSummaries)/[`disableSummaries`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=disableSummaries) of the **igx-tree-grid**.
+
```html
+
Enable SummaryDisable Summary
```
+
```typescript
public enableSummary() {
this.grid1.enableSummaries([
@@ -250,12 +269,15 @@ public disableSummary() {
this.grid1.disableSummaries('Name');
}
```
+
## Custom Tree Grid Summaries
+
If these functions do not fulfill your requirements you can provide a custom summary for the specific columns. In order to achieve this you have to override one of the base classes [`IgxSummaryOperand`](mcp:get_api_reference?platform=angular&component=IgxSummaryOperand), [`IgxNumberSummaryOperand`](mcp:get_api_reference?platform=angular&component=IgxNumberSummaryOperand) or [`IgxDateSummaryOperand`](mcp:get_api_reference?platform=angular&component=IgxDateSummaryOperand) according to the column data type and your needs. This way you can redefine the existing function or you can add new functions. [`IgxSummaryOperand`](mcp:get_api_reference?platform=angular&component=IgxSummaryOperand) class provides the default implementation only for the [`count`](mcp:get_api_reference?platform=angular&component=IgxSummaryOperand&member=count) method. [`IgxNumberSummaryOperand`](mcp:get_api_reference?platform=angular&component=IgxNumberSummaryOperand) extends [`IgxSummaryOperand`](mcp:get_api_reference?platform=angular&component=IgxSummaryOperand) and provides implementation for the [`min`](mcp:get_api_reference?platform=angular&component=IgxNumberSummaryOperand&member=min), [`max`](mcp:get_api_reference?platform=angular&component=IgxNumberSummaryOperand&member=max), [`sum`](mcp:get_api_reference?platform=angular&component=IgxNumberSummaryOperand&member=sum) and [`average`](mcp:get_api_reference?platform=angular&component=IgxNumberSummaryOperand&member=average). [`IgxDateSummaryOperand`](mcp:get_api_reference?platform=angular&component=IgxDateSummaryOperand) extends [`IgxSummaryOperand`](mcp:get_api_reference?platform=angular&component=IgxSummaryOperand) and additionally gives you [`earliest`](mcp:get_api_reference?platform=angular&component=IgxDateSummaryOperand&member=earliest) and [`latest`](mcp:get_api_reference?platform=angular&component=IgxDateSummaryOperand&member=latest).
+
```typescript
-import { IgxSummaryResult } from 'igniteui-angular/core';
-import { IgxSummaryOperand, IgxNumberSummaryOperand, IgxDateSummaryOperand } from 'igniteui-angular/grids/core';
+import { IgxSummaryResult, IgxSummaryOperand, IgxNumberSummaryOperand, IgxDateSummaryOperand } from 'igniteui-angular/core';
// import { IgxSummaryResult, IgxSummaryOperand, IgxNumberSummaryOperand, IgxDateSummaryOperand } from '@infragistics/igniteui-angular'; for licensed package
+
class MySummary extends IgxNumberSummaryOperand {
constructor() {
super();
@@ -272,8 +294,10 @@ class MySummary extends IgxNumberSummaryOperand {
}
}
```
+
As seen in the examples, the base classes expose the [`operate`](mcp:get_api_reference?platform=angular&component=IgxSummaryOperand&member=operate) method, so you can choose to get all default summaries and modify the result, or calculate entirely new summary results.
The method returns a list of [`IgxSummaryResult`](mcp:get_api_reference?platform=angular&component=IgxSummaryResult).
+
```typescript
interface IgxSummaryResult {
key: string;
@@ -281,19 +305,24 @@ interface IgxSummaryResult {
summaryResult: any;
}
```
+
and take optional parameters for calculating the summaries.
See [Custom summaries, which access all data](#custom-summaries-which-access-all-data) section below.
-> [!NOTE]
-> In order to calculate the summary row height properly, the Tree Grid needs the [`operate`](mcp:get_api_reference?platform=angular&component=IgxSummaryOperand&member=operate) method to always return an array of [`IgxSummaryResult`](mcp:get_api_reference?platform=angular&component=IgxSummaryResult) with the proper length even when the data is empty.
+
+**Note:**
+In order to calculate the summary row height properly, the Tree Grid needs the [`operate`](mcp:get_api_reference?platform=angular&component=IgxSummaryOperand&member=operate) method to always return an array of [`IgxSummaryResult`](mcp:get_api_reference?platform=angular&component=IgxSummaryResult) with the proper length even when the data is empty.
+
And now let's add our custom summary to the column `UnitPrice`. We will achieve that by setting the [`summaries`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=summaries) property to the class we create below.
+
```html
-
+
```
+
```typescript
...
export class GridComponent implements OnInit {
@@ -301,13 +330,16 @@ export class GridComponent implements OnInit {
....
}
```
+
### Custom summaries, which access all data
Now you can access all Tree Grid data inside the custom column summary. Two additional optional parameters are introduced in the IgxSummaryOperand `operate` method.
As you can see in the code snippet below the operate method has the following three parameters:
+
- columnData - gives you an array that contains the values only for the current column
- allGridData - gives you the whole grid data source
- fieldName - current column field
+
```typescript
class MySummary extends IgxNumberSummaryOperand {
constructor() {
@@ -320,6 +352,7 @@ class MySummary extends IgxNumberSummaryOperand {
}
}
```
+
```typescript
import { Component, OnInit, ViewChild } from '@angular/core';
import { IgxColumnComponent } from 'igniteui-angular/grids/core';
@@ -406,8 +439,11 @@ export class TreeGridAllDataSummaryComponent implements OnInit {
padding: 16px;
}
```
+
### Summary Template
+
`igxSummary` targets the column summary providing as a context the column summary results.
+
```html
@@ -416,9 +452,12 @@ export class TreeGridAllDataSummaryComponent implements OnInit {
```
-When a default summary is defined, the height of the summary area is calculated by design depending on the column with the largest number of summaries and the size of the grid. Use the [summaryRowHeight](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=summaryRowHeight) input property to override the default value. As an argument it expects a number value, and setting a false value will trigger the default sizing behavior of the grid footer.
-> [!NOTE]
-> Column summary template could be defined through API by setting the column [summaryTemplate](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=summaryTemplate) property to the required TemplateRef.
+
+When a default summary is defined, the height of the summary area is calculated by design depending on the column with the largest number of summaries and the size of the grid. Use the [`summaryRowHeight`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=summaryRowHeight) input property to override the default value. As an argument it expects a number value, and setting a false value will trigger the default sizing behavior of the grid footer.
+
+**Note:**
+Column summary template could be defined through API by setting the column [`summaryTemplate`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=summaryTemplate) property to the required TemplateRef.
+
```typescript
import { Component, HostBinding, OnInit } from '@angular/core';
import { IgxColumnComponent, IgxSummaryTemplateDirective } from 'igniteui-angular/grids/core';
@@ -609,10 +648,15 @@ igx-buttongroup {
gap: 16px;
}
```
+
## Disable Summaries
+
The [`disabledSummaries`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=disabledSummaries) property provides precise per-column control over the Ignite UI for Angular grid summary feature. This property enables users to customize the summaries displayed for each column in the grid, ensuring that only the most relevant and meaningful data is shown. For example, you can exclude specific summary types, such as `['count', 'min', 'max']`, by specifying their summary keys in an array.
+
This property can also be modified **dynamically at runtime** through code, providing flexibility to adapt the grid's summaries to changing application states or user actions.
+
The following examples illustrate how to use the `disabledSummaries` property to manage summaries for different columns and exclude specific default and custom summary types in the Ignite UI for Angular grid:
+
```html
```
+
For `Units`, custom summaries such as `totalDelivered` and `totalNotDelivered` are excluded using the `disabledSummaries` property.
+
For `UnitPrice`, default summaries like `count`, `sum`, and `average` are disabled, leaving others like `min` and `max` active.
+
At runtime, summaries can also be dynamically disabled using the `disabledSummaries` property. For example, you can set or update the property on specific columns programmatically to adapt the displayed summaries based on user actions or application state changes.
+
```typescript
import {
Component,
@@ -1064,8 +1112,11 @@ export class TreeGridDisableSummariesComponent implements OnInit, AfterViewInit
}
}
```
+
## Formatting summaries
+
By default, summary results, produced by the built-in summary operands, are localized and formatted according to the grid [`locale`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=locale) and column [`pipeArgs`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=pipeArgs). When using custom operands, the `locale` and `pipeArgs` are not applied. If you want to change the default appearance of the summary results, you may format them using the [`summaryFormatter`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=summaryFormatter) property.
+
```typescript
public dateSummaryFormat(summary: IgxSummaryResult, summaryOperand: IgxSummaryOperand): string {
const result = summary.summaryResult;
@@ -1077,9 +1128,11 @@ public dateSummaryFormat(summary: IgxSummaryResult, summaryOperand: IgxSummaryOp
return result;
}
```
+
```html
```
+
```typescript
import { DatePipe } from '@angular/common';
import { Component, OnInit, ViewChild } from '@angular/core';
@@ -1156,18 +1209,27 @@ export class TreeGridSummaryFormatterComponent implements OnInit {
margin: 16px;
}
```
+
## Child Summaries
+
The Tree Grid supports separate summaries for the root nodes and for each nested child node level. Which summaries are shown is configurable using the [`summaryCalculationMode`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=summaryCalculationMode) property. The child level summaries can be shown before or after the child nodes using the [`summaryPosition`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=summaryPosition) property. Along with these two properties the IgxTreeGrid exposes and [`showSummaryOnCollapse`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=showSummaryOnCollapse) property which allows you to determine whether the summary row stays visible when the parent node that refers to is collapsed.
+
The available values of the [`summaryCalculationMode`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=summaryCalculationMode) property are:
+
- rootLevelOnly - Summaries are calculated only for the root level nodes.
- childLevelsOnly - Summaries are calculated only for the child levels.
- rootAndChildLevels - Summaries are calculated for both root and child levels. This is the default value.
+
The available values of the [`summaryPosition`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=summaryPosition) property are:
+
- top - The summary row appears before the list of child rows.
- bottom - The summary row appears after the list of child rows. This is the default value.
+
The [`showSummaryOnCollapse`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=showSummaryOnCollapse) property is boolean. Its default value is set to **false**, which means that the summary row would be hidden when the parent row is collapsed. If the property is set to **true** the summary row stays visible when parent row is collapsed.
-> [!NOTE]
-> The [`summaryPosition`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=summaryPosition) property applies only for the child level summaries. The root level summaries appear always fixed at the bottom of the Tree Grid.
+
+**Note:**
+The [`summaryPosition`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=summaryPosition) property applies only for the child level summaries. The root level summaries appear always fixed at the bottom of the Tree Grid.
+
```typescript
import { Component, OnInit, ViewChild } from '@angular/core';
import { DefaultSortingStrategy, GridSummaryCalculationMode, ISortingExpression, IgxNumberSummaryOperand, IgxSummaryOperand, IgxSummaryResult, SortingDirection } from 'igniteui-angular/core';
@@ -1335,10 +1397,13 @@ igx-buttongroup{
width: 600px;
}
```
-
+
## Exporting Summaries
+
There is an [`exportSummaries`](mcp:get_api_reference?platform=angular&component=IgxExcelExporterOptions&member=exportSummaries) option in `IgxExcelExporterOptions` that specifies whether the exported data should include the grid's summaries. Default `exportSummaries` value is **false**.
+
The [`IgxExcelExporterService`](mcp:get_api_reference?platform=angular&component=IgxExcelExporterService) will export the default summaries for all column types as their equivalent excel functions so they will continue working properly when the sheet is modified. Try it for yourself in the example below:
+
```typescript
import { Component, ViewChild, inject } from '@angular/core';
import { ColumnType } from 'igniteui-angular/core';
@@ -1557,70 +1622,92 @@ export class TreeGridSummaryExportComponent {
margin: 25px auto;
}
```
+
The exported file includes a hidden column that holds the level of each `DataRecord` in the sheet. This level is used in the summaries to filter out the cells that need to be included in the summary function.
+
In the table below, you can find the corresponding Excel formula for each of the default summaries.
-| Data Type | Function | Excel Function |
-| :------------------------------ | :-------: | :------------------------------------------------------------------------------- |
-| `string`, `boolean` | count | ="Count: "&COUNTIF(start:end, recordLevel) |
-| `number`, `currency`, `percent` | count | ="Count: "&COUNTIF(start:end, recordLevel) |
-| | min | ="Min: "&MIN(IF(start:end=recordLevel, rangeStart:rangeEnd)) |
-| | max | ="Max: "&MAX(IF(start:end=recordLevel, rangeStart:rangeEnd)) |
-| | average | ="Avg: "&AVERAGEIF(start:end, recordLevel, rangeStart:rangeEnd) |
-| | sum | ="Sum: "&SUMIF(start:end, recordLevel, rangeStart:rangeEnd) |
-| `date` | count | ="Count: "&COUNTIF(start:end, recordLevel) |
-| | earliest | ="Earliest: "& TEXT(MIN(IF(start:end=recordLevel, rangeStart:rangeEnd)), format) |
-| | latest | ="Latest: "&TEXT(MAX(IF(start:end=recordLevel, rangeStart:rangeEnd)), format) |
+
+| Data Type | Function | Excel Function |
+|:--------|:--------:|:---------------|
+|`string`, `boolean` | count | ="Count: "&COUNTIF(start:end, recordLevel) |
+|`number`, `currency`, `percent` | count | ="Count: "&COUNTIF(start:end, recordLevel) |
+|| min| ="Min: "&MIN(IF(start:end=recordLevel, rangeStart:rangeEnd)) |
+|| max | ="Max: "&MAX(IF(start:end=recordLevel, rangeStart:rangeEnd)) |
+|| average | ="Avg: "&AVERAGEIF(start:end, recordLevel, rangeStart:rangeEnd) |
+|| sum | ="Sum: "&SUMIF(start:end, recordLevel, rangeStart:rangeEnd) |
+|`date` | count | ="Count: "&COUNTIF(start:end, recordLevel) |
+|| earliest | ="Earliest: "& TEXT(MIN(IF(start:end=recordLevel, rangeStart:rangeEnd)), format) |
+|| latest | ="Latest: "&TEXT(MAX(IF(start:end=recordLevel, rangeStart:rangeEnd)), format) |
+
### Known Limitations
-| Limitation | Description |
-| :---------------------------- | :------------------------------------------------------------------------------ |
-| Exporting custom summaries | Custom summaries will be exported as strings instead of Excel functions. |
+
+|Limitation|Description|
+|--- |--- |
+| Exporting custom summaries | Custom summaries will be exported as strings instead of Excel functions. |
| Exporting templated summaries | Templated summaries are not supported and will be exported as the default ones. |
+
## Keyboard Navigation
+
The summary rows can be navigated with the following keyboard interactions:
+
- UP - navigates one cell up
- DOWN - navigates one cell down
- LEFT - navigates one cell left
- RIGHT - navigates one cell right
- CTRL + LEFT or HOME - navigates to the leftmost cell
- CTRL + RIGHT or END - navigates to the rightmost cell
+
## Styling
-To get started with styling the sorting behavior, we need to import the `index` file, where all the theme functions and component mixins live:
+
+To get started with styling the sorting behavior, we need to import the `index` file, where all the theme functions and the `tokens()` mixin are exported:
+
```scss
@use "igniteui-angular/theming" as *;
+
// IMPORTANT: Prior to Ignite UI for Angular version 13 use:
// @import '~igniteui-angular/lib/core/styles/themes/index';
```
-Following the simplest approach, we create a new theme that extends the [`grid-summary-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-summary-theme) and accepts the `$background-color`, `$focus-background-color`, `$label-color`, `$result-color`, `$pinned-border-width`, `$pinned-border-style` and `$pinned-border-color` parameters.
+
+Following the simplest approach, we create a new theme that extends the `grid-summary-theme` and accepts the `$background-color`, `$focus-background-color`, `$label-color`, `$result-color`, `$pinned-border-width`, `$pinned-border-style` and `$pinned-border-color` parameters.
+
```scss
+$summaries-background: #eef4e5;
+
$custom-theme: grid-summary-theme(
- $background-color: #e0f3ff,
- $focus-background-color: rgba(#94d1f7, .3),
- $label-color: #e41c77,
- $result-color: black,
+ $background-color: $summaries-background,
+ $label-color: #486821,
+ $result-color: #172505,
$pinned-border-width: 2px,
$pinned-border-style: dotted,
- $pinned-border-color: #e41c77
+ $pinned-border-color: #172505,
);
```
->[!NOTE]
->Instead of hardcoding the color values like we just did, we can achieve greater flexibility in terms of colors by using the [`palette`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/palettes#function-palette) and [`color`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/palettes#function-color) functions. Please refer to [`Palettes`](../themes/sass/palettes.md) topic for detailed guidance on how to use them.
+
+**Note:**
+Instead of hardcoding the color values like we just did, we can achieve greater flexibility in terms of colors by using the `palette` and `color` functions. Please refer to [`Palettes`](/themes/sass/palettes) topic for detailed guidance on how to use them.
+
The last step is to **include** the component custom theme:
+
```scss
:host {
@include tokens($custom-theme);
}
```
->[!NOTE]
->If the component is using an [`Emulated`](../themes/sass/component-themes.md#view-encapsulation) ViewEncapsulation, it is necessary to `penetrate` this encapsulation using `::ng-deep`:
- ```scss
+**Note:**
+In some component templates, Emulated View Encapsulation can still prevent the generated token declarations from reaching nested Ignite UI elements. If the theme does not take effect, use `::ng-deep` as shown below or move the theme to a global stylesheet.
+
+
+```scss
:host {
::ng-deep {
@include tokens($custom-theme);
}
}
```
+
### Demo
+
```typescript
import { Component, ViewChild } from '@angular/core';
import { ColumnType } from 'igniteui-angular/core';
@@ -1742,7 +1829,6 @@ $custom-theme: grid-summary-theme(
$background-color: $summaries-background,
$label-color: #486821,
$result-color: #172505,
- $pinned-border-width: 2px,
$pinned-border-style: dotted,
$pinned-border-color: #172505,
);
@@ -1757,28 +1843,30 @@ $custom-theme: grid-summary-theme(
}
}
```
+
## API References
-- [IgxTreeGridComponent API](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
-- [IgxTreeGridComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme)
-- [IgxTreeGridSummaries Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-summary-theme)
-- [IgxSummaryOperand](mcp:get_api_reference?platform=angular&component=IgxSummaryOperand)
-- [IgxNumberSummaryOperand](mcp:get_api_reference?platform=angular&component=IgxNumberSummaryOperand)
-- [IgxDateSummaryOperand](mcp:get_api_reference?platform=angular&component=IgxDateSummaryOperand)
-- [IgxColumnGroupComponent](mcp:get_api_reference?platform=angular&component=IgxColumnGroupComponent)
-- [IgxColumnComponent](mcp:get_api_reference?platform=angular&component=IgxColumnComponent)
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+- `IgxTreeGridComponent Styles`
+- `IgxTreeGridSummaries Styles`
+- [`IgxSummaryOperand`](mcp:get_api_reference?platform=angular&component=IgxSummaryOperand)
+- [`IgxNumberSummaryOperand`](mcp:get_api_reference?platform=angular&component=IgxNumberSummaryOperand)
+- [`IgxDateSummaryOperand`](mcp:get_api_reference?platform=angular&component=IgxDateSummaryOperand)
+- [`IgxColumnGroup`](mcp:get_api_reference?platform=angular&component=IgxColumnGroupComponent)
+- [`IgxColumn`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent)
## Additional Resources
-
-- [Tree Grid overview](tree-grid.md)
-- [Column Data Types](column-types.md#default-template)
-- [Virtualization and Performance](virtualization.md)
-- [Paging](paging.md)
-- [Filtering](filtering.md)
-- [Sorting](sorting.md)
-- [Column Moving](column-moving.md)
-- [Column Pinning](column-pinning.md)
-- [Column Resizing](column-resizing.md)
-- [Selection](selection.md)
-
+
+- [Tree Grid overview](/treegrid/tree-grid)
+- [Column Data Types](/treegrid/column-types#default-template)
+- [Virtualization and Performance](/treegrid/virtualization)
+- [Paging](/treegrid/paging)
+- [Filtering](/treegrid/filtering)
+- [Sorting](/treegrid/sorting)
+- [Column Moving](/treegrid/column-moving)
+- [Column Pinning](/treegrid/column-pinning)
+- [Column Resizing](/treegrid/column-resizing)
+- [Selection](/treegrid/selection)
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-theming.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-theming.md
new file mode 100644
index 000000000..24a9367ee
--- /dev/null
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-theming.md
@@ -0,0 +1,1115 @@
+---
+title: Angular Tree Grid Theming - Ignite UI for Angular
+description: The Ignite UI for Angular Tree Grid is themed with grid-theme(), a Sass function that derives every color in the component from three primary tokens.
+keywords: angular tree grid theming, angular tree grid styling, grid theme, ignite ui for angular, infragistics
+license: commercial
+_canonicalLink: grid/theming
+last_updated: "2026-08-27"
+llms:
+ description: "The Ignite UI for Angular Tree Grid is themed through grid-theme(), which derives every color from a background, foreground and accent token."
+_tocName: Theming
+_premium: true
+---
+# Angular Tree Grid Theming
+
+The Ignite UI for Angular Tree Grid is themed through `grid-theme`, which derives every color from a background, foreground and accent token. Those three primary tokens reach everything the component renders: the header, the rows, the borders, the summaries, the toolbar, the paginator and the filtering popups.
+
+**Note:**
+There is no separate theme function per grid. The Data Grid, Tree Grid, Hierarchical Grid and Pivot Grid all read `grid-theme()`, so the same theme applies to any of them without modification.
+
+## Angular Tree Grid Theming Example
+
+The four themes below are custom — written for this sample, not shipped with the library. Each sets the three primary tokens and nothing else in the color space, so switching between them shows how far those three values reach.
+
+```typescript
+import { Component, OnInit, signal } from '@angular/core';
+import { IgxAvatarComponent } from 'igniteui-angular/avatar';
+import { IgxButtonGroupComponent } from 'igniteui-angular/button-group';
+import { IgxButtonDirective } from 'igniteui-angular/directives';
+import { IgxCellTemplateDirective, IgxColumnComponent } from 'igniteui-angular/grids/core';
+import { IgxTreeGridComponent } from 'igniteui-angular/grids/tree-grid';
+import { EMPLOYEE_FLAT_AVATARS_DATA } from '../data/employees-flat-avatars';
+import { IgxPreventDocumentScrollDirective } from '../../directives/prevent-scroll.directive';
+
+@Component({
+ selector: 'app-tree-grid-style',
+ styleUrls: ['./tree-grid-style.component.scss'],
+ templateUrl: './tree-grid-style.component.html',
+ imports: [IgxTreeGridComponent, IgxPreventDocumentScrollDirective, IgxColumnComponent, IgxCellTemplateDirective, IgxAvatarComponent, IgxButtonGroupComponent, IgxButtonDirective]
+})
+export class TreeGridStyleComponent implements OnInit {
+
+ public data: any[];
+ public themes = [
+ { label: 'Studio', class: 'theme-studio', swatch: 'theme-swatch--studio' },
+ { label: 'Ledger', class: 'theme-ledger', swatch: 'theme-swatch--ledger' },
+ { label: 'Editorial', class: 'theme-editorial', swatch: 'theme-swatch--editorial' },
+ { label: 'Midnight', class: 'theme-midnight', swatch: 'theme-swatch--midnight' }
+ ];
+
+ public activeTheme = signal(this.themes[0].class);
+
+ public ngOnInit() {
+ this.data = EMPLOYEE_FLAT_AVATARS_DATA();
+ }
+
+ public selectTheme(args: { index: number }) {
+ this.activeTheme.set(this.themes[args.index].class);
+ }
+}
+```
+```html
+
+
+```
+```scss
+@use "igniteui-angular/theming" as *;
+
+:host {
+ display: block;
+ block-size: 100%;
+}
+
+.playground {
+ display: flex;
+ align-items: stretch;
+ gap: 20px;
+ padding: 16px;
+ box-sizing: border-box;
+ block-size: 100%;
+ min-block-size: 520px;
+ overflow: hidden;
+}
+
+.playground__stage {
+ @include tokens(grid-theme(
+ $background: #08002e,
+ $accent-color: #ff7d52
+ ));
+}
+
+.playground__rail {
+ --ig-size: var(--ig-size-medium);
+ --ig-button-group-elevation: 0;
+
+ flex: 0 0 280px;
+ display: flex;
+ flex-direction: column;
+ gap: 12px;
+ min-block-size: 0;
+ overflow-y: auto;
+ padding-inline-end: 4px;
+
+ igx-expansion-panel-title {
+ font-size: 13px;
+ font-weight: 600;
+ letter-spacing: 0.04em;
+ color: var(--ig-gray-700);
+ }
+}
+
+.playground__hint {
+ margin: 0 0 10px;
+ font-size: 12px;
+ line-height: 1.45;
+ color: var(--ig-gray-600);
+}
+
+.playground__fields {
+ display: flex;
+ flex-direction: column;
+ gap: 14px;
+}
+
+.playground__control {
+ display: flex;
+ flex-direction: column;
+ gap: 6px;
+}
+
+.playground__label {
+ font-size: 12px;
+ color: var(--ig-gray-700);
+}
+
+.playground__actions {
+ position: sticky;
+ inset-block-end: 0;
+ z-index: 1;
+ display: flex;
+ gap: 8px;
+ padding-block: 8px;
+ background: var(--ig-surface-500);
+ border-block-start: 1px solid var(--ig-gray-200);
+
+ button {
+ flex: 1;
+ }
+}
+
+.playground__dialog-title {
+ font-size: 16px;
+ font-weight: 600;
+}
+
+.playground__dialog-body {
+ --ig-size: var(--ig-size-medium);
+ --ig-icon-size: 18px;
+ --ig-h5-font-size: 14px;
+ --ig-h5-font-weight: 600;
+ --ig-expansion-panel-border-radius: 4px;
+ --ig-expansion-panel-header-background: var(--ig-gray-100);
+
+ inline-size: min(680px, 80vw);
+
+ ::ng-deep .igx-expansion-panel__body {
+ padding: 0;
+ }
+}
+
+.playground__copy {
+ margin-inline-start: auto;
+}
+
+.playground__export {
+ border: 1px solid var(--ig-gray-300);
+ border-radius: 6px;
+ overflow: hidden;
+}
+
+.playground__code {
+ ::ng-deep pre.shiki {
+ margin: 0;
+ padding: 10px 12px;
+ font-size: 13px;
+ line-height: 1.5;
+ font-family: 'JetBrains Mono', 'Fira Code', Consolas, monospace;
+ max-block-size: 55vh;
+ overflow: auto;
+ overscroll-behavior: contain;
+ }
+}
+
+.playground__loading {
+ display: grid;
+ place-items: center;
+ block-size: 100%;
+ color: var(--ig-gray-600);
+ font-size: 13px;
+}
+
+.playground__preview {
+ flex: 1 1 auto;
+ min-inline-size: 0;
+ min-block-size: 0;
+ display: flex;
+ flex-direction: column;
+ gap: 12px;
+}
+
+.playground__stage {
+ flex: 1 1 auto;
+ min-block-size: 0;
+ overflow: hidden;
+}
+
+.playground__cell {
+ display: flex;
+ align-items: center;
+ gap: 8px;
+ height: 100%;
+}
+
+@media (max-width: 860px) {
+ .playground {
+ flex-direction: column;
+ block-size: auto;
+ overflow: visible;
+ }
+
+ .playground__rail {
+ flex: 0 0 auto;
+ overflow: visible;
+ }
+
+ .playground__stage {
+ min-block-size: 460px;
+ }
+}
+```
+
+## API References
+
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+- `IgxTreeGridComponent Styles`
+
+## Additional Resources
+
+- [Tree Grid overview](/treegrid/tree-grid)
+- [Palettes](/themes/sass/palettes)
+- [Typography](/themes/typography)
+
+- [Size](/treegrid/display-density)
+- [Conditional Styling](/treegrid/conditional-cell-styling)
+
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-toolbar.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-toolbar.md
index 7b986d723..14602ac99 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-toolbar.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-toolbar.md
@@ -1,20 +1,27 @@
---
title: Angular Grid Toolbar - Ignite UI for Angular
-_description: Use Angular Tree Grid Toolbar for essential UI operations. Hosts different UI controls for the Grid’s features - column hiding, pinning, excel exporting, etc.
-_keywords: angular toolbar, igniteui for angular, infragistics
-_license: commercial
+description: Use Angular Tree Grid Toolbar for essential UI operations. Hosts different UI controls for the Grid’s features - column hiding, pinning, excel exporting, etc.
+keywords: angular toolbar, igniteui for angular, infragistics
+license: commercial
_canonicalLink: grid/toolbar
+llms:
+ description: "The Tree Grid in Ignite UI for Angular provides a GridToolbar which is essentially a container for UI operations."
_tocName: Toolbar
_premium: true
---
# Angular Tree Grid Toolbar
-The Tree Grid in Ignite UI for Angular provides an [`IgxGridToolbarComponent`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarComponent) which is essentially a container for **UI** operations. The Angular toolbar is located at the top of the Angular component, i.e the Tree Grid and it matches its horizontal size. The toolbar container can host predefined UI controls for the following Tree Grid's features:
+
+The Tree Grid in Ignite UI for Angular provides an [`IgxGridToolbar`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarComponent) which is essentially a container for **UI** operations. The Angular toolbar is located at the top of the Angular component, i.e the Tree Grid and it matches its horizontal size. The toolbar container can host predefined UI controls for the following Tree Grid's features:
+
- Column Hiding
- Column Pinning
- Exporting to Excel, CSV and PDF
- Advanced Filtering
+
or just any other custom content. The toolbar and the predefined UI components support Angular events and expose API for developers.
+
## Angular Toolbar Grid Example
+
```typescript
import { Component } from '@angular/core';
import { EMPLOYEE_FLAT_AVATARS_DATA } from '../data/employees-flat-avatars';
@@ -86,13 +93,15 @@ export class TreeGridToolbarSample4Component {
margin-left: 30px;
}
```
+
The predefined `actions` and `title` UI components are added inside the `` and this is all needed to have a toolbar providing default interactions with the corresponding Grid features:
+
```html
Tree Grid Toolbar
-
+
@@ -100,23 +109,31 @@ The predefined `actions` and `title` UI components are added inside the `
```
-> Note: As seen in the code snippet above, the predefined `actions` UI components are wrapped in the [`` container](mcp:get_api_reference?platform=angular&component=IgxGridToolbarActionsComponent). This way, the toolbar title is aligned to the left of the toolbar and the actions are aligned to the right of the toolbar.
+
+**Note:**
+As seen in the code snippet above, the predefined `actions` UI components are wrapped in the [`` ` container ``](mcp:get_api_reference?platform=angular&component=IgxGridToolbarActionsComponent). This way, the toolbar title is aligned to the left of the toolbar and the actions are aligned to the right of the toolbar.
+
Of course, each of these UIs can be added independently of each other, or may not be added at all. This way the toolbar container will be rendered empty:
+
```html
```
+
For a comprehensive look over each of the default UI components, continue reading the **Features** section
below.
+
## Features
+
The toolbar is great at separating logic/interactions which affects the grid as a whole.
As shown above, it can be configured to provide default components for controlling, column hiding, column pinning,
advanced filtering and exporting data from the grid.
These features can be enabled independently from each other by following a pattern similar to the card component of
the Ignite UI for Angular suite.
Listed below are the main features of the toolbar with example code for each of them.
+
```typescript
import { Component } from '@angular/core';
import { EMPLOYEE_FLAT_AVATARS_DATA } from '../data/employees-flat-avatars';
@@ -219,18 +236,24 @@ export class TreeGridToolbarSample1Component {
margin-left: 30px;
}
```
+
### Title
-Setting a title for the toolbar in your grid is achieved by using the [IgxGridToolbarTitleComponent](mcp:get_api_reference?platform=angular&component=IgxGridToolbarTitleComponent).
+
+Setting a title for the toolbar in your grid is achieved by using the [`IgxGridToolbarTitle`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarTitleComponent).
Users can provide anything from simple text to more involved templates.
+
```html
Grid toolbar title
```
+
### Actions
-The toolbar exposes a [specific container](mcp:get_api_reference?platform=angular&component=IgxGridToolbarActionsComponent) where users can place actions/interactions in relation to the parent grid.
+
+The toolbar exposes a [`specific container`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarActionsComponent) where users can place actions/interactions in relation to the parent grid.
As with the title portion of the toolbar, users can provide anything inside that template part, including the default
toolbar interaction components.
+
```html
@@ -240,13 +263,16 @@ toolbar interaction components.
```
+
Each action now exposes a way to change the overlay settings of the actions dialog by using the [`overlaySettings`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarHidingComponent&member=overlaySettings) input, example:
+
```html
```
+
```ts
public data: any[];
public positionStrategyScaleCenter = new GlobalPositionStrategy({
@@ -259,6 +285,7 @@ public overlaySettingsScaleCenter = {
modal: true,
closeOnEscape: true
};
+
public positionStrategyAuto = new AutoPositionStrategy();
public overlaySettingsAuto = {
positionStrategy: this.positionStrategyAuto,
@@ -270,11 +297,15 @@ constructor() {
this.data = athletesData;
}
```
+
The default overlaySettings are using _ConnectedPositionStrategy_ with _Absolute_ scroll strategy, _modal_ set to false, with enabled _close on escape_ and _close on outside click_ interactions.
+
### Column pinning
-[Toolbar Pinning component](mcp:get_api_reference?platform=angular&component=IgxGridToolbarPinningComponent) provides the default UI for interacting with column pinning in the grid.
+
+[`Toolbar Pinning component`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarPinningComponent) provides the default UI for interacting with column pinning in the grid.
The component is setup to work out of the box with the parent grid containing the toolbar as well as several input properties for customizing the UI, such as the component
title, the placeholder for the component input and the height of the dropdown itself.
+
```html
@@ -287,10 +318,13 @@ title, the placeholder for the component input and the height of the dropdown it
```
+
### Column hiding
-[Toolbar Hiding component](mcp:get_api_reference?platform=angular&component=IgxGridToolbarHidingComponent) provides the default
+
+[`Toolbar Hiding component`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarHidingComponent) provides the default
UI for interacting with column hiding. Exposes the same input properties for customizing the UI, such as the component
title, the placeholder for the component input and the height of the dropdown itself.
+
```html
@@ -303,8 +337,11 @@ title, the placeholder for the component input and the height of the dropdown it
```
+
### Advanced filtering
-[Toolbar Advanced Filtering component](mcp:get_api_reference?platform=angular&component=IgxGridToolbarAdvancedFilteringComponent) provides the default UI for the Advanced Filtering feature. The component exposes a way to change the default text of the button.
+
+[`Toolbar Advanced Filtering component`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarAdvancedFilteringComponent) provides the default UI for the Advanced Filtering feature. The component exposes a way to change the default text of the button.
+
```html
@@ -312,28 +349,36 @@ title, the placeholder for the component input and the height of the dropdown it
```
+
### Data exporting
-As with the rest of the toolbar actions, exporting is provided through a [Toolbar Exporter component](mcp:get_api_reference?platform=angular&component=IgxGridToolbarExporterComponent) out of the box.
-The exporting component is using the respective service for the target data format ([Excel](mcp:get_api_reference?platform=angular&component=IgxExcelExporterService), [CSV](mcp:get_api_reference?platform=angular&component=IgxCsvExporterService), [PDF](mcp:get_api_reference?platform=angular&component=IgxPdfExporterService)). That means if the respective service is not provided through the dependency injection chain, the component
+
+As with the rest of the toolbar actions, exporting is provided through a [`Toolbar Exporter component`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarExporterComponent) out of the box.
+The exporting component is using the respective service for the target data format ([`Excel`](mcp:get_api_reference?platform=angular&component=IgxExcelExporterService), [`CSV`](mcp:get_api_reference?platform=angular&component=IgxCsvExporterService), [`PDF`](mcp:get_api_reference?platform=angular&component=IgxPdfExporterService)). That means if the respective service is not provided through the dependency injection chain, the component
won't be able to export anything.
If you need a refresher on the DI in Angular, check the [official guide](https://angular.io/guide/dependency-injection). Here is a sample snippet showing how to enable
all export services for your application.
+
```typescript
// app.module.ts
import { IgxExcelExporterService, IgxCsvExporterService, IgxPdfExporterService } from 'igniteui-angular/grids/core';
// import { IgxExcelExporterService, IgxCsvExporterService, IgxPdfExporterService } from '@infragistics/igniteui-angular/grids/core'; for licensed package
+
@NgModule({
...
providers: [IgxExcelExporterService, IgxCsvExporterService, IgxPdfExporterService ]
})
export class AppModule { ... }
```
-> [!Note]
-> In v12.2.1 and later, the exporter services are provided in root, which means you no longer need to declare them in the AppModule providers.
+
+**Note:**
+In v12.2.1 and later, the exporter services are provided in root, which means you no longer need to declare them in the AppModule providers.
+
The toolbar exporter component exposes several input properties for customizing both the UI and the exporting experience.
These range from changing the display text, to enabling/disabling options in the dropdown to customizing the name of the
-generated file. For full reference, consult the [API documentation](mcp:get_api_reference?platform=angular&component=IgxGridToolbarExporterComponent) for the toolbar exporter component.
+generated file. For full reference, consult the [`API documentation`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarExporterComponent) for the toolbar exporter component.
+
Here is a snippet showing some of the options which can be customized through the Angular template:
+
```html
@@ -355,15 +400,20 @@ Here is a snippet showing some of the options which can be customized through th
```
-In addition to changing the exported filename, the user can further configure the exporter options by waiting for the [toolbarExporting](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=toolbarExporting) event and customizing the options entry in the event properties.
-> [!NOTE]
-> By default when exporting to CSV the exporter exports using a comma separator and uses a '.csv' extension for the output file.
-> You can customize these exporting parameters by subscribing to events of the exporter or changing the values of the exporter options fields.
-> You can also cancel the export process by setting the cancel field of the event args to true.
+
+In addition to changing the exported filename, the user can further configure the exporter options by waiting for the [`toolbarExporting`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=toolbarExporting) event and customizing the options entry in the event properties.
+
+**Note:**
+By default when exporting to CSV the exporter exports using a comma separator and uses a '.csv' extension for the output file.
+You can customize these exporting parameters by subscribing to events of the exporter or changing the values of the exporter options fields.
+You can also cancel the export process by setting the cancel field of the event args to true.
+
The following code snippet demonstrates subscribing to the toolbar exporting event and configuring the exporter options:
+
```html
```
+
```typescript
configureExport(args: IGridToolbarExportEventArgs) {
const options: IgxExporterOptionsBase = args.options;
@@ -378,19 +428,18 @@ configureExport(args: IGridToolbarExportEventArgs) {
}
args.exporter.columnExporting.subscribe((columnArgs: IColumnExportingEventArgs) => {
- @@if (igxName === 'IgxGrid') {
- // Don't export image fields
- columnArgs.cancel = columnArgs.header === 'Athlete' ||
- columnArgs.header === 'Country';
- }
- @@if (igxName === 'IgxTreeGrid') {
+
+
+
// Don't export image field
columnArgs.cancel = columnArgs.header === 'Name';
- }
+
});
}
```
+
The following sample demonstrates how to customize the exported files:
+
```typescript
import { Component } from '@angular/core';
import {
@@ -494,12 +543,16 @@ export class TreeGridToolbarSample2Component {
margin-left: 30px;
}
```
-
+
+
+
## Exporting Indicator
+
When using the default toolbar exporter component, whenever an export operation takes place the toolbar will show a progress indicator while the operation is in progress.
-Moreover, users can set the toolbar [showProgress](mcp:get_api_reference?platform=angular&component=IgxGridToolbarComponent&member=showProgress) property and use for their own long running operations
+Moreover, users can set the toolbar [`showProgress`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarComponent&member=showProgress) property and use for their own long running operations
or just as another way to signify an action taking place in the grid.
The sample below has significant amount of data. While the data is being exported, the progress bar is shown. Additionally, it has another button that simulates a long running operation in the grid:
+
```typescript
import { Component, inject, ChangeDetectorRef } from '@angular/core';
import { ORDERS_DATA } from '../data/orders';
@@ -588,15 +641,19 @@ export class TreeGridExportVisualizationComponent {
margin: 10px;
}
```
-
+
## Custom Content
-> [!NOTE]
-> This replaces the old toolbar template directive. If you are migrating from a version before v11 our migrations will handle
-> the moving of the template content. However, we do not handle the bindings in the template, so make sure to double check the modified
-> template files after the migration completes.
+
+**Note:**
+This replaces the old toolbar template directive. If you are migrating from a version before v11 our migrations will handle
+the moving of the template content. However, we do not handle the bindings in the template, so make sure to double check the modified
+template files after the migration completes.
+
If the actions part of the toolbar component is not sufficient for a particular use case, the toolbar itself has a general content projection where
users can provide additional UI. If the user needs the respective grid instance for API calls or bindings, they can create a template reference variable.
+
Here is a sample snippet:
+
```html
@@ -617,9 +674,12 @@ Here is a sample snippet:
...
+
```
+
The following sample demonstrates how to add an additional button to the toolbar to clear the sorting set by clicking on the columns' headers:
+
```typescript
import { Component } from '@angular/core';
import { EMPLOYEE_FLAT_AVATARS_DATA } from '../data/employees-flat-avatars';
@@ -699,72 +759,57 @@ export class TreeGridToolbarSample3Component {
margin-left: 30px;
}
```
-
+
+
+
## Styling
-To get started with styling the toolbar, we need to import the index file, where all the theme functions and component mixins live:
+
+To get started with styling the toolbar, we need to import the index file, where all the theme functions and the `tokens()` mixin are exported:
+
```scss
@use "igniteui-angular/theming" as *;
+
// IMPORTANT: Prior to Ignite UI for Angular version 13 use:
// @import '~igniteui-angular/lib/core/styles/themes/index';
```
-First, let's create a new palette.
-```scss
-$my-dark-palette: palette(
- $primary: #2466ff,
- $secondary: #ffcd0f,
- $surface: #2a2b2f,
- $grays: #fff,
-);
-$my-dark-color: color($my-dark-palette, 'surface');
-```
-Now, create a new theme that extends the [`grid-toolbar-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-toolbar-theme) and modify the `$background-color` and the `$title-text-color` parameters.
-```scss
-$dark-grid-toolbar-theme: grid-toolbar-theme(
- $background-color: $my-dark-color,
- $title-text-color: color($my-dark-palette, 'secondary'),
- $dropdown-background: $my-dark-color,
-);
-```
-To theme the column actions menus of the toolbar, we have to change the theme of the [`column-actions-theme`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-igx-column-actionsr-theme) component.
-```scss
-$dark-column-actions-theme: column-actions-theme(
- $title-color: color($my-dark-palette, 'secondary'),
- $background-color: color($my-dark-palette, 'surface')
-);
-```
-Since the column actions are using other components - `igx-button` and `igx-checkbox` we need to change their themes to match our new toolbar theme.
+
+Next, create a new theme that extends the `grid-toolbar-theme`.
+
```scss
-$dark-button-theme: outlined-button-theme(
- $background: color($my-dark-palette, 'secondary'),
- $hover-background: color($my-dark-palette, 'grays', 100),
- $hover-foreground: color($my-dark-palette, 'secondary')
-);
-$dark-checkbox-theme: checkbox-theme(
- $tick-color: $my-dark-color,
+$accent: #ffcd0f;
+
+$grid-toolbar-theme: grid-toolbar-theme(
+ $background: #170237,
+ $border-color: $accent,
+ $title-text-color: #f6d8d8,
+ $item-hover-background: rgb(246 216 216 / 0.3),
);
```
+
The last step is to **include** the newly created themes.
+
```scss
:host {
- @include tokens($dark-grid-toolbar-theme);
- @include tokens($dark-column-actions-theme);
- @include tokens($dark-checkbox-theme);
- @include tokens($dark-button-theme);
+ igx-grid-toolbar {
+ @include tokens($grid-toolbar-theme);
+ }
}
```
->[!NOTE]
->If the component is using an [`Emulated`](../themes/sass/component-themes.md#view-encapsulation) ViewEncapsulation, it is necessary to `penetrate` this encapsulation using `::ng-deep` to style the components inside the grid toolbar component:
+
+**Note:**
+In some component templates, Emulated View Encapsulation can still prevent the generated token declarations from reaching nested Ignite UI elements. If the theme does not take effect, use `::ng-deep` as shown below or move the theme to a global stylesheet.
+
+
```scss
-@include tokens($dark-grid-toolbar-theme);
-:host {
- ::ng-deep {
- @include tokens($dark-column-actions-theme);
- @include tokens($dark-checkbox-theme);
- @include tokens($dark-button-theme);
+:host ::ng-deep {
+ igx-grid-toolbar {
+ @include tokens($grid-toolbar-theme);
}
}
```
+
### Demo
+
```typescript
import { Component } from '@angular/core';
import { EMPLOYEE_FLAT_AVATARS_DATA } from '../data/employees-flat-avatars';
@@ -847,22 +892,25 @@ $grid-toolbar-theme: grid-toolbar-theme(
}
}
```
-
+
+
+
## API References
The Grid Toolbar service has a few more APIs to explore, which are listed below.
-- [`IgxGridToolbarActionsComponent`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarActionsComponent)
-- [`IgxGridToolbarAdvancedFilteringComponent`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarAdvancedFilteringComponent)
-- [`IgxGridToolbarComponent`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarComponent)
-- [`IgxGridToolbarExporterComponent`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarExporterComponent)
-- [`IgxGridToolbarHidingComponent`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarHidingComponent)
-- [`IgxGridToolbarPinningComponent`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarPinningComponent)
-- [`IgxGridToolbarTitleComponent`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarTitleComponent)
-[`IgxTreeGridComponent`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) events:
+- [`IgxGridToolbarActions`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarActionsComponent)
+- [`IgxGridToolbarAdvancedFiltering`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarAdvancedFilteringComponent)
+- [`IgxGridToolbar`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarComponent)
+- [`IgxGridToolbarExporter`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarExporterComponent)
+- [`IgxGridToolbarHiding`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarHidingComponent)
+- [`IgxGridToolbarPinning`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarPinningComponent)
+- [`IgxGridToolbarTitle`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarTitleComponent)
+[`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) events:
- [`toolbarExporting`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=toolbarExporting)
Styles:
-- [`IgxTreeGridComponent Styles`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme)
+- `IgxTreeGridComponent Styles`
## Additional Resources
-
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-tree-grid.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-tree-grid.md
index 54ec40f9d..502d5b57e 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-tree-grid.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-tree-grid.md
@@ -1,18 +1,20 @@
---
title: Angular Tree Grid | Fastest Angular Tree Table | Infragistics
-_description: The Ignite UI for Angular Tree Grid is used to display and manipulate hierarchical or flat data with ease. Quickly bind your data with very little coding. Try it for FREE
-_keywords: angular tree grid, angular tree table, angular tree grid component, angular tree table component, angular ui components, igniteui for angular, infragistics
-_license: commercial
+description: The Ignite UI for Angular Tree Grid is used to display and manipulate hierarchical or flat data with ease. Quickly bind your data with very little coding. Try it for FREE
+keywords: angular tree grid, angular tree table, angular tree grid component, angular tree table component, angular ui components, igniteui for angular, infragistics
+license: commercial
+llms:
+ description: "The Ignite UI for Angular Tree Grid is used to display and manipulate hierarchical or flat self-referencing data."
_tocName: Tree Grid
+_premium: true
---
-
# Angular Tree Grid Component Overview
The Ignite UI for Angular Tree Grid is used to display and manipulate hierarchical or flat self-referencing data. Quickly bind your data with very little code or use a variety of events to customize different behaviors. This component provides a rich set of features like data selection, excel style filtering, sorting, paging, grouping, templating, column moving, column pinning, export to Excel, CSV and PDF, and more.
## Angular Tree Grid Example
-In this example, you can see how users can display hierarchical data. We have included filtering and sorting options, pinning and hiding, row selection, export to excel, csv and pdf, and cell templating that uses our [Sparkline](../charts/types/sparkline-chart.md) component. In addition, you can see an example of custom pagination with [Angular Pagination](paging.md).
+In this example, you can see how users can display hierarchical data. We have included filtering and sorting options, pinning and hiding, row selection, export to excel, csv and pdf, and cell templating that uses our [Sparkline](/charts/types/sparkline-chart) component. In addition, you can see an example of custom pagination with [Angular Pagination](/treegrid/paging).
```typescript
import { Component, OnInit, inject } from '@angular/core';
@@ -122,8 +124,6 @@ export class TreeGridChilddatakeySampleComponent implements OnInit {
}
```
-
-
## Getting Started with Ignite UI for Angular Tree Grid
To get started with the Ignite UI for Angular Tree Grid component, first you need to install Ignite UI for Angular. In an existing Angular application, type the following command:
@@ -132,7 +132,7 @@ To get started with the Ignite UI for Angular Tree Grid component, first you nee
ng add igniteui-angular
```
-For a complete introduction to the Ignite UI for Angular, read the [_getting started_](../general/getting-started.md) topic.
+For a complete introduction to the Ignite UI for Angular, read the [_getting started_](/general/getting-started) topic.
The next step is to import the `IgxTreeGridModule` in your **app.module.ts** file.
@@ -177,29 +177,26 @@ Now that you have the Ignite UI for Angular Tree Grid module or directives impor
## Using the Angular Tree Grid
->[!NOTE]
->**This component can utilize the [`HammerModule`](https://angular.io/api/platform-browser/HammerModule) **optionally**. It can be imported in the root module of the application in order for touch interactions to work as expected.**.
-
-The [`IgxTreeGridComponent`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) shares a lot of features with the [`IgxGridComponent`](mcp:get_api_reference?platform=angular&component=IgxGridComponent), but it also adds the ability to display its data hierarchically.
-In order to achieve this, the [`IgxTreeGridComponent`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) provides us with a couple of ways to define the relations among our data objects - by using a [child collection](#child-collection) for every data object or by using [primary and foreign keys](#primary-and-foreign-keys) for every data object.
+The [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) shares a lot of features with the [`IgxGrid`](mcp:get_api_reference?platform=angular&component=IgxGridComponent), but it also adds the ability to display its data hierarchically.
+In order to achieve this, the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) provides us with a couple of ways to define the relations among our data objects - by using a [child collection](#child-collection) for every data object or by using [primary and foreign keys](#primary-and-foreign-keys) for every data object.
### Tree Cells
Regardless of which option is used for building the tree grid's hierarchy (child collection or primary and foreign keys), the tree grid's rows are constructed of two types of cells:
- [`IgxGridCell`](mcp:get_api_reference?platform=angular&component=IgxGridCell) - Ordinary cell that contains a value.
-- [`IgxGridCell`](mcp:get_api_reference?platform=angular&component=IgxGridCell) - Tree cell that contains a value, an expand/collapse indicator and an indentation div element, which is based on the level of the cell's row. The level of a row component can be accessed through the [`level`](mcp:get_api_reference?platform=angular&component=ITreeGridRecord&member=level) property of its inner [`treeRow`](mcp:get_api_reference?platform=angular&component=IgxTreeGridRow&member=treeRow).
+- [`IgxGridCell`](mcp:get_api_reference?platform=angular&component=IgxGridCell) - Tree cell that contains a value, an expand/collapse indicator and an indentation div element, which is based on the level of the cell's row. The level of a row component can be accessed through the [`IgxITreeGridRecord.level`](mcp:get_api_reference?platform=angular&component=ITreeGridRecord&member=level) property of its inner [`IgxTreeGridRow.treeRow`](mcp:get_api_reference?platform=angular&component=IgxTreeGridRow&member=treeRow).
-> [!NOTE]
-> Each row can have only one tree cell, but it can have multiple (or none) ordinary cells.
+**Note:**
+Each row can have only one tree cell, but it can have multiple (or none) ordinary cells.
### Initial Expansion Depth
-Initially the tree grid will expand all node levels and show them. This behavior can be configured using the [`expansionDepth`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=expansionDepth) property. By default its value is **Infinity** which means all node levels will be expanded. You may control the initial expansion depth by setting this property to a numeric value. For example **0** will show only root level nodes, **1** will show root level nodes and their child nodes and so on.
+Initially the tree grid will expand all node levels and show them. This behavior can be configured using the [`IgxTreeGrid.expansionDepth`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=expansionDepth) property. By default its value is **Infinity** which means all node levels will be expanded. You may control the initial expansion depth by setting this property to a numeric value. For example **0** will show only root level nodes, **1** will show root level nodes and their child nodes and so on.
### Child Collection
-When we are using the **child collection** option, every data object contains a child collection, that is populated with items of the same type as the parent data object. This way every record in our tree grid will have a direct reference to any of its children. In this case the [`data`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=data) property of our tree grid that contains the original data source will be a hierarchically defined collection.
+When we are using the **child collection** option, every data object contains a child collection, that is populated with items of the same type as the parent data object. This way every record in our tree grid will have a direct reference to any of its children. In this case the [`IgxTreeGrid.data`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=data) property of our tree grid that contains the original data source will be a hierarchically defined collection.
For this sample, let's use the following collection structure:
@@ -234,7 +231,7 @@ export const EMPLOYEE_DATA = [
]
```
-Now let's start by importing our data collection and binding it to the [`data`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=data) input of our tree grid.
+Now let's start by importing our data collection and binding it to the [`IgxTreeGrid.data`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=data) input of our tree grid.
```html
@@ -243,7 +240,7 @@ Now let's start by importing our data collection and binding it to the [`data`](
```
-In order for the IgxTreeGridComponent to build the hierarchy, we will have to set its [`childDataKey`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=childdatakey) property to the name of the child collection that is used in each of our data objects. In our case that will be the **Employees** collection.
+In order for the IgxTreeGridComponent to build the hierarchy, we will have to set its [`IgxTreeGrid.childdatakey`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=childdatakey) property to the name of the child collection that is used in each of our data objects. In our case that will be the **Employees** collection.
In addition, we will disable the automatic column generation and define them manually by matching them to the actual properties of our data objects. (The **Employees** collection will be automatically used for the hierarchy, so there is no need to include it in the columns' definitions.)
```html
@@ -257,7 +254,7 @@ In addition, we will disable the automatic column generation and define them man
```
-We will now enable the row selection and paging features of the tree grid by using the [`rowSelection`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=rowSelection) and the [`paging`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=paging) properties.
+We will now enable the row selection and paging features of the tree grid by using the [`IgxGrid.rowSelection`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=rowSelection) and the [`IgxTreeGrid.paging`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=paging) properties.
We will also enable the summaries feature on the first column and the filtering, sorting, editing, moving and resizing features for each of our columns.
```html
@@ -274,7 +271,7 @@ We will also enable the summaries feature on the first column and the filtering,
```
-Finally, we will enable the toolbar of our tree grid, along with the column hiding, column pinning and exporting features by using the [`IgxGridToolbarComponent`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarComponent), [`IgxGridToolbarHidingComponent`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarHidingComponent), [`IgxGridToolbarPinningComponent`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarPinningComponent) and [`IgxGridToolbarExporterComponent`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarExporterComponent) respectively.
+Finally, we will enable the toolbar of our tree grid, along with the column hiding, column pinning and exporting features by using the [`IgxGridToolbar`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarComponent), [`IgxGridToolbarHiding`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarHidingComponent), [`IgxGridToolbarPinning`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarPinningComponent) and [`IgxGridToolbarExporter`](mcp:get_api_reference?platform=angular&component=IgxGridToolbarExporterComponent) respectively.
```html
@@ -301,7 +298,7 @@ You can see the result of the code from above at the beginning of this article i
### Primary and Foreign keys
-When we are using the **primary and foreign keys** option, every data object contains a primary key and a foreign key. The primary key is the unique identifier of the current data object and the foreign key is the unique identifier of its parent. In this case the [`data`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=data) property of our tree grid that contains the original data source will be a flat collection.
+When we are using the **primary and foreign keys** option, every data object contains a primary key and a foreign key. The primary key is the unique identifier of the current data object and the foreign key is the unique identifier of its parent. In this case the [`IgxTreeGrid.data`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=data) property of our tree grid that contains the original data source will be a flat collection.
The following is an example of a component which contains a flat collection defined with primary and foreign keys relation:
@@ -335,7 +332,7 @@ export class MyComponent implements OnInit {
In the sample data above, all records have an ID, a ParentID and some additional properties like Name, JobTitle and Age. As mentioned previously, the ID of the records must be unique. The ParentID contains the ID of the parent node. If a row has a ParentID that does not match any row in the tree grid, then that means this row is a root row.
-The parent-child relation is configured using the tree grid's [`primaryKey`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=primaryKey) and [`foreignKey`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=foreignKey) properties.
+The parent-child relation is configured using the tree grid's [`IgxTreeGrid.primaryKey`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=primaryKey) and [`IgxTreeGrid.foreignKey`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=foreignKey) properties.
Here is the template of the component which demonstrates how to configure the tree grid to display the data defined in the above flat collection:
@@ -350,7 +347,7 @@ Here is the template of the component which demonstrates how to configure the tr
```
-In addition we will enable the row selection feature of the tree grid by using the [`rowSelection`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=rowSelection) property and also the filtering, sorting, editing, moving and resizing features for each of our columns.
+In addition we will enable the row selection feature of the tree grid by using the [`IgxGrid.rowSelection`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=rowSelection) property and also the filtering, sorting, editing, moving and resizing features for each of our columns.
```html
@@ -450,10 +447,299 @@ export class TreeGridPrimaryforeignkeySampleComponent implements OnInit {
}
```
->[!NOTE]
->The sample will not be affected by the selected global theme from `Change Theme`.
+## Persistence and Integration
+
+The indentation of the **tree cells** persists across other tree grid features like filtering, sorting and paging.
+
+- When **sorting** is applied on a column, the data rows get sorted by levels. This means that the root level rows will be sorted independently from their respective children. Their respective children collections will each be sorted independently as well and so on.
+- The first column (the one that has a [`IgxColumn.visibleIndex`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=visibleIndex) of 0) is always the tree column.
+- The column that ends up with a [`IgxColumn.visibleIndex`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent&member=visibleIndex) of 0 after operations like column pinning, column hiding and column moving becomes the tree column.
+- Exported Excel worksheets reflect the hierarchy by grouping the records as they are grouped in the tree grid itself. All records expanded states would also be persisted and reflected.
+- When exporting to CSV, levels and expanded states are ignored and all data is exported as flat.
+
+## Angular Tree Grid Sizing
+
+See the [Grid Sizing](/treegrid/sizing) topic.
+
+## Styling
+
+The Tree Grid allows styling through the [`Ignite UI for Angular Theme Library`](/themes/sass/component-themes). The tree grid's `grid-theme` exposes a wide variety of properties, which allows the customization of all the tree grid's features.
+
+To get started with styling the Tree Grid, we need to import the `index` file, where all the theme functions and the `tokens()` mixin are exported:
+
+```scss
+@use "igniteui-angular/theming" as *;
+
+// IMPORTANT: Prior to Ignite UI for Angular version 13 use:
+// @import '~igniteui-angular/lib/core/styles/themes/index';
+```
+
+Next we need to create a custom theme, the easiest and recommended way to style the `igx-tree-grid` is to use the `grid-theme` and provide just the three main colors: `background`, `foreground`, and `accent-color`.
+
+**Note:**
+There is no specific `sass` tree grid function.
+
+These are the core theme properties. When you set them, all grid parts and internal components derive their colors from those values, resulting in a consistent appearance throughout the entire grid. Nested components such as buttons, icons, inputs, dropdowns, checkboxes, scrollbars, chips, and other helper components also derive their styling tokens from the main `grid-theme` for a unified look.
+
+```scss
+$background: #292826;
+$foreground: #eeece1;
+$accent: #ffcd0f;
+
+$custom-grid: grid-theme(
+ $background: $background,
+ $foreground: $foreground,
+ $accent-color: $accent,
+);
+```
+
+**Note:**
+Instead of hardcoding the color values like we just did, we can achieve greater flexibility in terms of colors by using the [`palette`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/palettes#function-palette) and [`color`](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/palettes#function-color) functions. Please refer to [`Palettes`](/themes/sass/palettes) topic for detailed guidance on how to use them.
+
+The last step is to **include** the component theme in our application.
+
+```scss
+:host {
+ @include tokens($custom-grid);
+}
+```
+
+### Angular Tree Grid Styling Demo
+
+```typescript
+import { Component, OnInit, signal } from '@angular/core';
+import { IgxAvatarComponent } from 'igniteui-angular/avatar';
+import { IgxButtonGroupComponent } from 'igniteui-angular/button-group';
+import { IgxButtonDirective } from 'igniteui-angular/directives';
+import { IgxCellTemplateDirective, IgxColumnComponent } from 'igniteui-angular/grids/core';
+import { IgxTreeGridComponent } from 'igniteui-angular/grids/tree-grid';
+import { EMPLOYEE_FLAT_AVATARS_DATA } from '../data/employees-flat-avatars';
+import { IgxPreventDocumentScrollDirective } from '../../directives/prevent-scroll.directive';
+
+@Component({
+ selector: 'app-tree-grid-style',
+ styleUrls: ['./tree-grid-style.component.scss'],
+ templateUrl: './tree-grid-style.component.html',
+ imports: [IgxTreeGridComponent, IgxPreventDocumentScrollDirective, IgxColumnComponent, IgxCellTemplateDirective, IgxAvatarComponent, IgxButtonGroupComponent, IgxButtonDirective]
+})
+export class TreeGridStyleComponent implements OnInit {
+
+ public data: any[];
+ public themes = [
+ { label: 'Studio', class: 'theme-studio', swatch: 'theme-swatch--studio' },
+ { label: 'Ledger', class: 'theme-ledger', swatch: 'theme-swatch--ledger' },
+ { label: 'Editorial', class: 'theme-editorial', swatch: 'theme-swatch--editorial' },
+ { label: 'Midnight', class: 'theme-midnight', swatch: 'theme-swatch--midnight' }
+ ];
-
+ public activeTheme = signal(this.themes[0].class);
+
+ public ngOnInit() {
+ this.data = EMPLOYEE_FLAT_AVATARS_DATA();
+ }
+
+ public selectTheme(args: { index: number }) {
+ this.activeTheme.set(this.themes[args.index].class);
+ }
+}
+```
+```html
+
+ Custom themes, not built-in: each is a grid-theme() with its
+ own background and accent.
+
+
+
+
+
+
+
+
+ {{ cell.value }}
+
+
+
+
+
+
+
+
+```
+```scss
+@use "layout.scss";
+@use "igniteui-angular/theming" as *;
+
+$studio-bg: #faf4ed;
+$studio-accent: #907aa9;
+$ledger-bg: #eceff4;
+$ledger-accent: #5e81ac;
+$editorial-bg: #333c43;
+$editorial-accent: #a7c080;
+$midnight-bg: #282a36;
+$midnight-accent: #bd93f9;
+
+.theme-studio {
+ --ig-size: var(--ig-size-large);
+ --ig-radius-factor: 0.6;
+
+ @include tokens(grid-theme(
+ $background: $studio-bg,
+ $foreground: #575279,
+ $accent-color: $studio-accent,
+ $header-background: #fffaf3,
+ $header-border-color: #dfdad9,
+ $row-border-color: #f2e9e1,
+ $grid-border-color: #dfdad9,
+ $grid-shadow: (0 1px 3px rgba(87, 82, 121, 0.10), 0 1px 2px rgba(87, 82, 121, 0.06))
+ ));
+}
+
+.theme-ledger {
+ --ig-size: var(--ig-size-small);
+ --ig-radius-factor: 0;
+
+ @include tokens(grid-theme(
+ $background: $ledger-bg,
+ $foreground: #2e3440,
+ $accent-color: $ledger-accent,
+ $header-background: #d8dee9,
+ $row-odd-background: #eceff4,
+ $row-even-background: #e5e9f0,
+ $body-column-border-color-odd: #d8dee9,
+ $body-column-border-color-even: #d8dee9,
+ $row-border-color: #d8dee9,
+ $grid-border-color: #c8d0dc
+ ));
+}
+
+.theme-editorial {
+ --ig-size: var(--ig-size-large);
+ --ig-radius-factor: 0;
+
+ @include tokens(grid-theme(
+ $schema: $dark-material-schema,
+ $background: $editorial-bg,
+ $foreground: #d3c6aa,
+ $accent-color: $editorial-accent,
+ $header-background: #3a464c,
+ $row-border-color: #333c43,
+ $grid-border-color: #333c43
+ ));
+}
+
+.theme-midnight {
+ --ig-size: var(--ig-size-medium);
+ --ig-radius-factor: 0.25;
+
+ @include tokens(grid-theme(
+ $schema: $dark-material-schema,
+ $background: $midnight-bg,
+ $foreground: #f8f8f2,
+ $accent-color: $midnight-accent,
+ $header-background: #21222c,
+ $body-column-border-color-odd: #44475a,
+ $body-column-border-color-even: #44475a,
+ $row-border-color: #44475a,
+ $grid-border-color: #44475a
+ ));
+}
+
+.grid__wrapper {
+ display: flex;
+ flex-direction: column;
+ gap: 16px;
+}
+
+.theme-picker {
+ --ig-button-group-elevation: 0;
+
+ display: flex;
+ flex-direction: column;
+ gap: 6px;
+ align-self: flex-start;
+}
+
+.theme-picker__label {
+ font-size: 12px;
+ font-weight: 500;
+ letter-spacing: 0.04em;
+ color: var(--ig-gray-700);
+}
+
+.theme-picker__hint {
+ margin: 0;
+ font-size: 12px;
+ line-height: 1.45;
+ color: var(--ig-gray-600);
+
+ code {
+ font-family: 'JetBrains Mono', 'Fira Code', Consolas, monospace;
+ font-size: 11px;
+ }
+}
+
+.theme-swatch {
+ display: inline-block;
+ min-width: 14px;
+ aspect-ratio: 1;
+ border-radius: 50%;
+ border: 1px solid var(--ig-gray-300);
+ vertical-align: -2px;
+ background: linear-gradient(135deg, var(--swatch-bg) 0 50%, var(--swatch-accent) 50% 100%);
+}
+
+.theme-swatch--studio {
+ --swatch-bg: #{$studio-bg};
+ --swatch-accent: #{$studio-accent};
+}
+
+.theme-swatch--ledger {
+ --swatch-bg: #{$ledger-bg};
+ --swatch-accent: #{$ledger-accent};
+}
+
+.theme-swatch--editorial {
+ --swatch-bg: #{$editorial-bg};
+ --swatch-accent: #{$editorial-accent};
+}
+
+.theme-swatch--midnight {
+ --swatch-bg: #{$midnight-bg};
+ --swatch-accent: #{$midnight-accent};
+}
+```
+
+There are also additional parameters in the `grid-theme` that you can use if you want more specific customizations.
+
+**Note:**
+The sample will not be affected by the selected global theme from `Change Theme`.
## Performance (Experimental)
@@ -465,10 +751,11 @@ platformBrowserDynamic()
.catch(err => console.error(err));
```
->[!NOTE]
-> This is still in experimental feature for the `igxTreeGrid`. This means that there might be some unexpected behaviors in the Tree Grid. In case of encountering any such behavior, please contact us on our [Github](https://github.com/IgniteUI/igniteui-angular/discussions) page.
->[!NOTE]
-> Enabling it can affects other parts of an Angular application that the `igxTreeGrid` is not related to.
+**Note:**
+This is still in experimental feature for the `igxTreeGrid`. This means that there might be some unexpected behaviors in the Tree Grid. In case of encountering any such behavior, please contact us on our [Github](https://github.com/IgniteUI/igniteui-angular/discussions) page.
+
+**Note:**
+Enabling it can affects other parts of an Angular application that the `igxTreeGrid` is not related to.
## Known Limitations
@@ -477,8 +764,9 @@ platformBrowserDynamic()
| Templating Tree Cells | When templating a tree cell, content that spans outside the boundaries of the cell will not be shown unless positioned in an overlay. |
| Group By | Group By feature is not supported, because it is inherent to the tree grid. |
-> [!NOTE]
-> The tree grid has a depth limit of 25 levels. Supporting more levels requires adding custom CSS classes in the application. You may see an example of such CSS class below:
+**Note:**
+The tree grid has a depth limit of 25 levels. Supporting more levels requires adding custom CSS classes in the application. You may see an example of such CSS class below:
+
```scss
.igx-grid__tree-cell--padding-level-26 {
@@ -486,46 +774,36 @@ platformBrowserDynamic()
}
```
-> [!NOTE]
-> `igxTreeGrid` uses `igxForOf` directive internally hence all `igxForOf` limitations are valid for `igxTreeGrid`. For more details see [igxForOf Known Issues](../for-of.md#known-limitations) section.
-
-
+**Note:**
+`igxTreeGrid` uses `igxForOf` directive internally hence all `igxForOf` limitations are valid for `igxTreeGrid`. For more details see [igxForOf Known Issues](/for-of#known-limitations) section.
## API References
-
-
-
-- [IgxTreeGridComponent](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
-- [IgxGridCell](mcp:get_api_reference?platform=angular&component=IgxGridCell)
-- [IgxTreeGridRow](mcp:get_api_reference?platform=angular&component=IgxTreeGridRow)
-- [IgxGridComponent](mcp:get_api_reference?platform=angular&component=IgxGridComponent)
-- [IgxGridComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme)
-- [IgxBaseTransactionService](mcp:get_api_reference?platform=angular&component=IgxBaseTransactionService)
-
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+- [`IgxGridCell`](mcp:get_api_reference?platform=angular&component=IgxGridCell)
+- [`IgxTreeGridRow`](mcp:get_api_reference?platform=angular&component=IgxTreeGridRow)
+- [`IgxGrid`](mcp:get_api_reference?platform=angular&component=IgxGridComponent)
+- `IgxGridComponent Styles`
+- [`IgxBaseTransactionService`](mcp:get_api_reference?platform=angular&component=IgxBaseTransactionService)
## Theming Dependencies
-- [IgxIcon Theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-icon-theme)
-- [IgxInputGroup Theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-input-group-theme)
-- [IgxChip Theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-chip-theme)
-- [IgxRipple Theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-ripple-theme)
-- [IgxButton Theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-button-theme)
-- [IgxOverlay Theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-overlay-theme)
-- [IgxDropDown Theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-drop-down-theme)
-- [IgxCalendar Theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-calendar-theme)
-- [IgxSnackBar Theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-snackbar-theme)
-- [IgxBadge Theme](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-badge-theme)
-
+- `IgxIcon Theme`
+- `IgxInputGroup Theme`
+- `IgxChip Theme`
+- `IgxRipple Theme`
+- `IgxButton Theme`
+- `IgxOverlay Theme`
+- `IgxDropDown Theme`
+- `IgxCalendar Theme`
+- `IgxSnackBar Theme`
+- `IgxBadge Theme`
## Additional Resources
-
-
-- [Grid Sizing](sizing.md)
-- [Data Grid](../grid/grid.md)
-- [Row Editing](row-editing.md)
-- [Ignite UI for Angular Skills](../ai/skills.md) — Agent Skills for grids, data operations, and theming
+- [Grid Sizing](/treegrid/sizing)
+- [Data Grid](/grid/grid)
+- [Row Editing](/treegrid/row-editing)
+- [Ignite UI for Angular Skills](/ai/skills) — Agent Skills for grids, data operations, and theming
-
Our community is active and always welcoming to new ideas.
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-validation.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-validation.md
index f5ceeeedd..ea2d5bd21 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-validation.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-validation.md
@@ -1,16 +1,23 @@
---
title: Editing and Validation in Angular Tree Grid - Infragistics
-_description: Validate the input of the users in grid and notify them if it's valid or not while using Angular Tree Grid. See demos & examples!
-_keywords: angular validation, ignite ui for angular, infragistics
-_license: commercial
+description: Validate the input of the users in grid and notify them if it's valid or not while using Angular Tree Grid. See demos & examples!
+keywords: angular validation, ignite ui for angular, infragistics
+license: commercial
+llms:
+ description: "The Tree Grid's editing exposes a built-in validation mechanism of user input when editing cells/rows."
_tocName: Validation
_premium: true
---
# Angular Tree Grid Editing and Validation
+
The Tree Grid's editing exposes a built-in validation mechanism of user input when editing cells/rows. It extends the [Angular Form validation](https://angular.io/guide/form-validation) functionality to allow easier integration with a well known functionality. When the state of the editor changes, visual indicators are applied to the edited cell.
+
## Configuration
+
### Configure via template-driven configuration
+
We extend some of the Angular Forms validator directives to directly work with the `IgxColumn`. The same validators are available as attributes to be set declaratively in `igx-column`. The following validators are supported out-of-the-box:
+
- required
- min
- max
@@ -18,11 +25,15 @@ We extend some of the Angular Forms validator directives to directly work with t
- minlength
- maxlength
- pattern
+
To validate that a column input would be set and the value is going to be formatted as an email, you can use the related directives:
+
```html
```
+
The following sample demonstrates how to use the prebuilt `required`, `email` and `min` validator directives in a Tree Grid.
+
```typescript
/* eslint-disable @typescript-eslint/naming-convention */
import { Component, OnInit, ViewChild } from '@angular/core';
@@ -72,26 +83,15 @@ export class TreeGridValidatorServiceComponent implements OnInit {
margin: 15px;
}
```
-
+
### Configure via reactive forms
+
We expose the `FormGroup` that will be used for validation when editing starts on a row/cell via a `formGroupCreated` event. You can modify it by adding your own validators for the related fields:
+
```html
```
-@@if (igxName === 'IgxGrid' || igxName === 'IgxHierarchicalGrid') {
-```ts
- public formCreateHandler(args: IGridFormGroupCreatedEventArgs) {
- const formGroup = args.formGroup;
- const orderDateRecord = formGroup.get('OrderDate');
- const requiredDateRecord = formGroup.get('RequiredDate');
- const shippedDateRecord = formGroup.get('ShippedDate');
- orderDateRecord.addValidators(this.futureDateValidator());
- requiredDateRecord.addValidators(this.pastDateValidator());
- shippedDateRecord.addValidators(this.pastDateValidator());
- }
-```
-}
```ts
public formCreateHandler(args: IGridFormGroupCreatedEventArgs) {
const formGroup = args.formGroup;
@@ -99,24 +99,38 @@ We expose the `FormGroup` that will be used for validation when editing starts o
hireDateRecord.addValidators([this.futureDateValidator(), this.pastDateValidator()]);
}
```
+
You can decide to write your own validator function, or use one of the [built-in Angular validator functions](https://angular.io/guide/form-validation#built-in-validator-functions).
+
## Validation service API
+
The grid exposes a validation service via the [`validation`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=validation) property.
That service has the following public APIs:
+
- [`valid`](mcp:get_api_reference?platform=angular&component=IgxGridValidationService&member=valid) - returns if the grid validation state is valid.
- [`getInvalid`](mcp:get_api_reference?platform=angular&component=IgxGridValidationService&member=getInvalid) - returns records with invalid states.
- [`clear`](mcp:get_api_reference?platform=angular&component=IgxGridValidationService&member=clear) - clears state for record by id or clears all state if no id is provided.
- [`markAsTouched`](mcp:get_api_reference?platform=angular&component=IgxGridValidationService&member=markAsTouched) - marks the related record/field as touched.
+
Invalid states will persist until the validation errors in them are fixed according to the validation rule or they are cleared.
+
## Validation triggers
+
Validation will be triggered in the following scenarios:
+
- While editing via the cell editor based on the grid's [`validationTrigger`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=validationTrigger). Either on `change` while typing in the editor, or on `blur` when the editor loses focus or closes.
- When updating cells/rows via the API - [`updateRow`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=updateRow), [`updateCell`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=updateCell) etc..
- When using batch editing and the [`undo`](mcp:get_api_reference?platform=angular&component=IgxTransactionService&member=undo)/[`redo`](mcp:get_api_reference?platform=angular&component=IgxTransactionService&member=redo) API of the transaction service.
-> Note: Validation will not trigger for records that have not been edited via user input or via the editing API. Visual indicators on the cell will only shown if the related input is considered touched - either via user interaction or via the `markAsTouched` API of the validation service.
+
+**Note:**
+Validation will not trigger for records that have not been edited via user input or via the editing API. Visual indicators on the cell will only shown if the related input is considered touched - either via user interaction or via the `markAsTouched` API of the validation service.
+
## Angular Tree Grid Validation Customization Options
+
### Set a custom validator
+
You can define your own validation directive to use on a `` in the template.
+
```ts
@Directive({
selector: '[phoneFormat]',
@@ -132,13 +146,18 @@ export class PhoneFormatDirective extends Validators {
}
}
```
+
Once it is defined and added in your app module you can set it declaratively to a given column in the grid:
+
```html
```
+
### Change default error template
+
You can define your own custom error template that will be displayed in the error tooltip when the cell enters invalid state.
This is useful in scenarios where you want to add your own custom error message or otherwise change the look or content of the message.
+
```html
@@ -150,13 +169,17 @@ This is useful in scenarios where you want to add your own custom error message
```
+
### Prevent exiting edit mode on invalid state
+
In some cases you may want to disallow submitting an invalid value in the data.
In that scenarios you can use the [`cellEdit`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=cellEdit) or [`rowEdit`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=rowEdit) events and cancel the event in case the new value is invalid.
-Both events' arguments have a [`valid`](mcp:get_api_reference?platform=angular&component=IGridEditEventArgs&member=valid) property and can be canceled accordingly. How it is used can be seen in the [Cross-field Validation example](#cross-field-example)
+Both events' arguments have a [`IgxIGridEditEventArgs.valid`](mcp:get_api_reference?platform=angular&component=IGridEditEventArgs&member=valid) property and can be canceled accordingly. How it is used can be seen in the [Cross-field Validation example](#cross-field-example)
+
```html
```
+
```ts
public cellEdit(evt) {
if (!evt.valid) {
@@ -164,8 +187,11 @@ public cellEdit(evt) {
}
}
```
+
### Example
+
The below example demonstrates the above-mentioned customization options.
+
```typescript
/* eslint-disable @typescript-eslint/naming-convention */
import { Component, Directive, forwardRef, Input, OnInit, ViewChild } from '@angular/core';
@@ -321,12 +347,16 @@ export class TreeGridValidatorServiceExtendedComponent implements OnInit {
padding: 10px 0;
}
```
-
+
## Cross-field validation
+
In some scenarios validation of one field may depend on the value of another field in the record.
In that case a custom validator can be used to compare the values in the record via their shared `FormGroup`.
+
The below sample demonstrates a cross-field validation between different field of the same record. It checks that a specified City for a person is in the Country currently set and vice versa. Also check if the age for a person was 18 already when it was hired.
+
The next lines of code show the cross-field validator function, which contains comparisons described above and sets the related errors.
+
```ts
private rowValidator(): ValidatorFn {
return (formGroup: FormGroup): ValidationErrors | null => {
@@ -349,20 +379,26 @@ private rowValidator(): ValidatorFn {
};
}
```
+
The cross-field validator can be added to the `formGroup` of the row from [`formGroupCreated`](mcp:get_api_reference?platform=angular&component=IgxGridComponent&member=formGroupCreated) event, which returns the new `formGroup` for each row when entering edit mode:
+
```html
+
```
+
```typescript
public formCreateHandler(evt: IGridFormGroupCreatedEventArgs) {
evt.formGroup.addValidators(this.rowValidator());
}
```
+
The different errors are displayed in a templated cell that combines all errors in a single tooltip. Depending on the row valid state different icon is displayed:
+
```html
@@ -380,7 +416,9 @@ The different errors are displayed in a templated cell that combines all errors
```
+
The error messages are gathered in the `stateMessage` function, which gathers the errors for each cell, because each column could have templated form validations and then checks the errors for the row itself, which come from the custom `rowValidator`.
+
```typescript
public stateMessage(cell: CellType) {
const messages = [];
@@ -409,8 +447,11 @@ public stateMessage(cell: CellType) {
return messages;
}
```
+
### Cross-field example
+
The below sample demonstrates the cross-field validation in action.
+
```typescript
/* eslint-disable @typescript-eslint/naming-convention */
import { Component, OnInit, ViewChild } from '@angular/core';
@@ -614,26 +655,38 @@ export class TreeGridValidatorServiceCrossFieldComponent implements OnInit {
padding: 10px 0;
}
```
-
+
## Styling
-Using the [Ignite UI for Angular Theme Library](../themes/index.md), we can alter the default validation styles while editing.
+
+Using the [Ignite UI for Angular Theme Library](/themes), we can alter the default validation styles while editing.
+
In the example below, we will make use of the exposed template for validation message, which pops out in a tooltip and overriding the error color to modify the default looks of the validation.
We will also style the background of the invalid rows to make them more distinct.
+
### Import theme
+
The easiest way to style and access css variables is to define styles in our `app`'s global style file (typically `styles.scss`).
The first thing we need to do is import the `themes/index` file - this gives us access to all the powerful tools of the Ignite UI for Angular Sass framework:
+
```scss
@use "igniteui-angular/theming" as *;
+
// IMPORTANT: Prior to Ignite UI for Angular version 13 use:
// @import '~igniteui-angular/lib/core/styles/themes/index';
```
+
### Include the styles
+
In order to change the error color you can use the css variable `--ig-error-500`:
+
```scss
--ig-error-500: 34, 80%, 63%;
```
+
### Custom Templates
+
Changing the default error template allows setting custom classes and styles:
+
```html
@@ -642,8 +695,11 @@ Changing the default error template allows setting custom classes and styles:
```
+
### Invalid row and cell styles
+
Rows and cells provide API for the developers to know if a row or cell is invalid and what kind of errors are active.
+
```ts
public rowStyles = {
background: (row: RowType) => row.cells.find(c => c.validation.errors !== null && c.validation.errors !== undefined) ? '#FF000033' : '#00000000'
@@ -656,11 +712,16 @@ public cellStyles = {
}
}
```
+
```html
+
+
```
+
### Demo
+
```typescript
import { Component, OnInit, ViewChild } from '@angular/core';
import { IgxTreeGridComponent } from 'igniteui-angular/grids/tree-grid';
@@ -681,7 +742,7 @@ export class TreeGridValidationStyleComponent implements OnInit {
public data: IEmployee[];
public columns: any[];
public selectionMode = 'multiple';
- public rowStyles = {
+ public rowStyles: any = {
background: (row: RowType) => row.cells.find(c => c.validation.errors !== null && c.validation.errors !== undefined) ? '#FF000033' : '#00000000'
};
public cellStyles = {
@@ -729,23 +790,29 @@ igx-tree-grid{
--ig-error-500: 34deg, 80%, 63%;
}
```
-
+
## API References
-- [IgxBaseTransactionService](mcp:get_api_reference?platform=angular&component=IgxBaseTransactionService)
-- [IgxGridComponent](mcp:get_api_reference?platform=angular&component=IgxGridComponent)
-- [IgxColumnComponent](mcp:get_api_reference?platform=angular&component=IgxColumnComponent)
+- [`IgxBaseTransactionService`](mcp:get_api_reference?platform=angular&component=IgxBaseTransactionService)
+- [`IgxGrid`](mcp:get_api_reference?platform=angular&component=IgxGridComponent)
+- [`IgxColumn`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent)
## Known Issues and Limitations
-| Limitation | Description |
-| :------------------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+
+|Limitation|Description|
+| --- | --- |
| When `validationTrigger` is blur, `editValue` and validation will trigger only after editor is blurred. | Reason is that this utilizes the formControl's [`updateOn`](https://angular.io/api/forms/AbstractControl#updateOn) property. This determines the event on which the formControl will update and trigger related validators. |
+
## Additional Resources
-- [Build CRUD operations with igxGrid](../general/how-to/how-to-perform-crud.md)
-- [Tree Grid Overview](tree-grid.md)
-- [Tree Grid Editing](editing.md)
-- [Tree Grid Row Editing](row-editing.md)
-- [Tree Grid Row Adding](row-adding.md)
-- [Tree Grid Transactions](batch-editing.md)
-
+
+- [Build CRUD operations with igxGrid](/general/how-to/how-to-perform-crud)
+- [Tree Grid Overview](/treegrid/tree-grid)
+
+- [Tree Grid Editing](/treegrid/editing)
+
+- [Tree Grid Row Editing](/treegrid/row-editing)
+- [Tree Grid Row Adding](/treegrid/row-adding)
+- [Tree Grid Transactions](/treegrid/batch-editing)
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-virtualization.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-virtualization.md
index a0604640a..7e685126a 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-virtualization.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/treegrid-virtualization.md
@@ -1,45 +1,60 @@
---
title: Angular Grid Virtualization and Performance - Ignite UI for Angular
-_description: The Ignite UI for Angular Virtualization directive is the core mechanic behind the speed & performance of the grid when handling large data sets. Try for free!
-_keywords: angular data grid, grid performance, data table virtualization, ignite ui for angular
-_license: commercial
+description: The Ignite UI for Angular Virtualization directive is the core mechanic behind the speed & performance of the grid when handling large data sets. Try for free!
+keywords: angular data grid, grid performance, data table virtualization, ignite ui for angular
+license: commercial
_canonicalLink: grid/virtualization
+llms:
+ description: "In Ignite UI for Angular, the TreeGrid control now utilizes the igxForOf directive and virtualizes its content both vertically and horizontally."
_tocName: Virtualization and performance
_premium: true
---
# Angular Tree Grid Virtualization and Performance
-In Ignite UI for Angular, the [IgxTreeGrid](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) control now utilizes the [`igxForOf`](mcp:get_api_reference?platform=angular&component=IgxForOfDirective) directive and virtualizes its content both vertically and horizontally.
+
+In Ignite UI for Angular, the [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent) control now utilizes the [`igxForOf`](mcp:get_api_reference?platform=angular&component=IgxForOfDirective) directive and virtualizes its content both vertically and horizontally.
+
## Enabling Virtualization
-By utilizing the [`igxForOf`](mcp:get_api_reference?platform=angular&component=IgxForOfDirective) directive the IgxTreeGrid now optimizes DOM rendering and memory consumption by rendering only what is currently visible in the view port and swapping the displayed data while the user scrolls the data horizontally/vertically. [IgxTreeGrid](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)'s [`width`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=width) and [`height`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=height) defaults to `100%` which will enable virtualization if the content displayed cannot fit inside the available space and scrollbars are required either vertically or horizontally. However, it is also possible to explicitly set the Tree Grid's [`width`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=width) and/or [`height`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=height) to `null` which means that the related dimension will be determined by the total size of the items inside. No scrollbar will then be shown and all items will be rendered along the respective dimension (columns if [`width`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=width) is `null` and rows if [`height`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=height) is `null`).
+
+By utilizing the [`igxForOf`](mcp:get_api_reference?platform=angular&component=IgxForOfDirective) directive the IgxTreeGrid now optimizes DOM rendering and memory consumption by rendering only what is currently visible in the view port and swapping the displayed data while the user scrolls the data horizontally/vertically. [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)'s [`width`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=width) and [`height`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=height) defaults to `100%` which will enable virtualization if the content displayed cannot fit inside the available space and scrollbars are required either vertically or horizontally. However, it is also possible to explicitly set the Tree Grid's [`width`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=width) and/or [`height`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=height) to `null` which means that the related dimension will be determined by the total size of the items inside. No scrollbar will then be shown and all items will be rendered along the respective dimension (columns if [`width`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=width) is `null` and rows if [`height`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=height) is `null`).
+
The size of the data chunks is determined by:
+
- The row height for the vertical (row) virtualization. This is determined by the [`rowHeight`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=rowheight) option and is 50(px) by default.
- The individual column widths in pixels for the horizontal (column) virtualization. They can be determined by either setting explicit width for each column component or setting the Tree Grid's [`columnWidth`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent&member=columnWidth) option, which will be applied to all columns that don't have explicit width set.
+
In most cases, letting the grid apply its default behavior by leaving dimensions unset will produce the desired layout. For column widths it is determined by the column count, the columns with set width, and the calculated width of the Tree Grid's container. The grid will try to fit all columns inside the available space as long as the width it attempts to assign is not under 136(px). In such cases, columns with unassigned width will receive the minimum width of 136(px) and a horizontal scrollbar will be shown. The grid will be horizontally virtualized.
+
Explicitly setting column widths in percentages (%) will, in most cases, create a grid that is not virtualized horizontally as it will not have a horizontal scrollbar.
+
## Virtualization Limitations
+
- On Mac OS horizontal scrollbar is not visible when "Show scrollbars only when scrolling" system option is set to true (which is the default value). This is because the Tree Grid’s row container has an overflow set to hidden. Change the option to "Always" and the scrollbar will appear.
+
## FAQ
+
### Why having dimensions in the Tree Grid is necessary for virtualization to work?
+
Without information about the sizes of the container and the items before rendering them setting the width or height of a scrollbar or determining which of the items should be in the view when you scroll to a random location in the Tree Grid is erroneous. Any assumptions on what the actual dimensions might be could lead to unnatural behavior of the scrollbar and ultimately suboptimal experience for the end-user. This is why setting the related dimensions is enforced in order for virtualization to take effect.
-
+
## API References
-- [IgxTreeGridComponent](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
-- [IgxTreeGridComponent Styles](https://www.infragistics.com/products/ignite-ui-angular/docs/sass/latest/themes#function-grid-theme)
-- [IgxColumnComponent](mcp:get_api_reference?platform=angular&component=IgxColumnComponent)
-- [IgxForOfDirective](mcp:get_api_reference?platform=angular&component=IgxForOfDirective)
-- [IForOfState](mcp:get_api_reference?platform=angular&component=IForOfState)
+- [`IgxTreeGrid`](mcp:get_api_reference?platform=angular&component=IgxTreeGridComponent)
+- `IgxTreeGridComponent Styles`
+- [`IgxColumn`](mcp:get_api_reference?platform=angular&component=IgxColumnComponent)
+- [`IgxForOfDirective`](mcp:get_api_reference?platform=angular&component=IgxForOfDirective)
+- [`IgxIForOfState`](mcp:get_api_reference?platform=angular&component=IForOfState)
## Additional Resources
-
-- [Tree Grid overview](tree-grid.md)
-- [Paging](paging.md)
-- [Filtering](filtering.md)
-- [Sorting](sorting.md)
-- [Summaries](summaries.md)
-- [Column Moving](column-moving.md)
-- [Column Pinning](column-pinning.md)
-- [Column Resizing](column-resizing.md)
-- [Selection](selection.md)
-
+
+- [Tree Grid overview](/treegrid/tree-grid)
+- [Paging](/treegrid/paging)
+- [Filtering](/treegrid/filtering)
+- [Sorting](/treegrid/sorting)
+- [Summaries](/treegrid/summaries)
+- [Column Moving](/treegrid/column-moving)
+- [Column Pinning](/treegrid/column-pinning)
+- [Column Resizing](/treegrid/column-resizing)
+- [Selection](/treegrid/selection)
+
Our community is active and always welcoming to new ideas.
+
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-area-chart.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-area-chart.md
index 3a264ec0b..f65e4da49 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-area-chart.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-area-chart.md
@@ -1,21 +1,22 @@
---
-title: Angular Area Chart | Data Visualization | Infragistics
-_description: Infragistics' Angular Area Chart
-_keywords: Angular Charts, Area Chart, Infragistics
-_license: commercial
-mentionedTypes: ["DomainChart", "CategoryChart", "XamDataChart", "CategoryChartType"]
+title: "Angular Area Chart | Data Visualization | Infragistics"
+description: Infragistics' Angular Area Chart
+keywords: "Angular Charts, Area Chart, Infragistics"
+license: commercial
+mentionedTypes: ["DomainChart", "CategoryChart", "DataChart", "CategoryChartType"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Area Chart renders as a collection of points connected by straight line segments with the area below the line filled in."
_tocName: Area Chart
_premium: true
---
-
# Angular Area Chart
-The Ignite UI for Angular Area Chart renders as a collection of points connected by straight line segments with the area below the line filled in. Values are represented on the y-axis (labels on the left side) and categories are displayed on the x-axis (bottom labels). This chart emphasize the amount of change over a period of time or compare multiple items as well as the relationship of parts of a whole by displaying the total of the plotted values. Therefore, they are often chronological, showing a change of quantity e.g. accumulation of a commodity over time.
+The Ignite UI for Angular Area Chart renders as a collection of points connected by straight line segments with the area below the line filled in. Values are represented on the y-axis (labels on the left side) and categories are displayed on the x-axis (bottom labels). This chart emphasize the amount of change over a period of time or compare multiple items as well as the relationship of parts of a whole by displaying the total of the plotted values. Therefore, they are often chronological, showing a change of quantity e.g. accumulation of a commodity over time.
## Angular Area Chart Example
-You can create Angular Category Area Chart in the [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) control by binding your data to `ItemsSource` property and setting [`chartType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html#chartType) property to **Area** enum, as shown in the example below.
+You can create Angular Category Area Chart in the `IgxCategoryChart` control by binding your data to `DataSource` property and setting `CategoryChart.ChartType` property to **Area** enum, as shown in the example below.
```typescript
import { NgModule } from "@angular/core";
@@ -121,8 +122,6 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Area Chart Recommendations
### Area Chart Use Cases
@@ -157,7 +156,7 @@ There are several common use cases for choosing an Area Chart:
## Angular Area Chart with Single Series
-Angular Area Chart is often used to show the change of value over time such as the amount of renewable electricity produced. You can create this type of chart in [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) control by binding your data and setting [`chartType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html#chartType) property to [`Area`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.categorycharttype.html#Area) value, as shown in the example below.
+Angular Area Chart is often used to show the change of value over time such as the amount of renewable electricity produced. You can create this type of chart in `IgxCategoryChart` control by binding your data and setting `CategoryChart.ChartType` property to `Area` value, as shown in the example below.
```typescript
import { NgModule } from "@angular/core";
@@ -252,11 +251,9 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Area Chart with Multiple Series
-Similarly to how you can show multiple [Line Chart](line-chart.md) and [Spline Chart](spline-chart.md), you may also combine multiple Area Charts in the same control. This is accomplished by binding multiple data source to `ItemsSource` property of the [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) control.
+Similarly to how you can show multiple [Line Chart](line-chart.md) and [Spline Chart](spline-chart.md), you may also combine multiple Area Charts in the same control. This is accomplished by binding multiple data source to `DataSource` property of the `IgxCategoryChart` control.
```typescript
import { NgModule } from "@angular/core";
@@ -362,11 +359,9 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Area Chart Styling
-Area charts often have semi-transparent fill for their areas, thicker lines and slightly larger markers than usual. Below is an example showing how you can style the Area Chart from earlier accordingly.
+Area charts often have semi-transparent fill for their areas, thicker lines and slightly larger markers than usual. Below is an example showing how you can style the Area Chart from earlier accordingly.
```typescript
import { NgModule } from "@angular/core";
@@ -477,15 +472,13 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Advanced Types of Area Charts
-The following sections explain more advanced types of Angular Area Charts that can be created using the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control instead of [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) control with simplified API.
+The following sections explain more advanced types of Angular Area Charts that can be created using the `IgxDataChart` control instead of `IgxCategoryChart` control with simplified API.
## Angular Step Area Chart
-The Angular Step Area Chart belongs to a group of category charts and it is rendered using a collection of points connected by continuous vertical and horizontal lines with the area below lines filled in. Values are represented on the y-axis and categories are displayed on the x-axis. The step area chart emphasizes the amount of change over a period of time or compares multiple items. You can create this type of chart in [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) control by binding your data and setting [`chartType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html#chartType) property to [`StepArea`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.categorycharttype.html#StepArea) value, as shown in the example below.
+The Angular Step Area Chart belongs to a group of category charts and it is rendered using a collection of points connected by continuous vertical and horizontal lines with the area below lines filled in. Values are represented on the y-axis and categories are displayed on the x-axis. The step area chart emphasizes the amount of change over a period of time or compares multiple items. You can create this type of chart in `IgxCategoryChart` control by binding your data and setting `CategoryChart.ChartType` property to `StepArea` value, as shown in the example below.
```typescript
import { NgModule } from "@angular/core";
@@ -595,13 +588,11 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
-The following sections explain more advanced types of Angular Area Charts that can be created using the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control instead of [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) control with simplified API.
+The following sections explain more advanced types of Angular Area Charts that can be created using the `IgxDataChart` control instead of `IgxCategoryChart` control with simplified API.
## Angular Range Area Chart
-The Angular Range Area Chart allows you show the area as a range between two values over time. You can create this type of chart in [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to [`IgxRangeAreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxrangeareaseriescomponent.html), as shown in the example below.
+The Angular Range Area Chart allows you show the area as a range between two values over time. You can create this type of chart in `IgxDataChart` control by binding your data to `IgxRangeAreaSeries`, as shown in the example below.
```typescript
import { NgModule } from "@angular/core";
@@ -752,11 +743,9 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Stacked Area Chart
-The Angular Stacked Area Chars is rendered using a collection of points connected by line segments, with the area below the line filled in and stacked on top of each other. Stacked Area Charts follow all the same requirements as Area Charts, with the only difference being that visually, the shaded areas are stacked on top of each other. You can create this type of chart in [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to [`IgxStackedAreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstackedareaseriescomponent.html), as shown in the example below.
+The Angular Stacked Area Chars is rendered using a collection of points connected by line segments, with the area below the line filled in and stacked on top of each other. Stacked Area Charts follow all the same requirements as Area Charts, with the only difference being that visually, the shaded areas are stacked on top of each other. You can create this type of chart in `IgxDataChart` control by binding your data to `IgxStackedAreaSeries`, as shown in the example below.
```typescript
import { NgModule } from "@angular/core";
@@ -938,11 +927,9 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Stacked 100% Area Chart
-The Angular Stacked 100% Area Chart allows you represent your data as part of a whole being changed over time e.g. a country's energy consumption related to the sources from which it is produced. In such cases representing all stacked elements equally may be a better idea. You can create this type of chart in [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to [`IgxStacked100AreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstacked100areaseriescomponent.html), as shown in the example below.
+The Angular Stacked 100% Area Chart allows you represent your data as part of a whole being changed over time e.g. a country's energy consumption related to the sources from which it is produced. In such cases representing all stacked elements equally may be a better idea. You can create this type of chart in `IgxDataChart` control by binding your data to `IgxStacked100AreaSeries`, as shown in the example below.
```typescript
import { NgModule } from "@angular/core";
@@ -1121,11 +1108,9 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Stacked Spline Area Chart
-The Angular Stacked Spline Area Chart is rendered using a collection of points connected by curved spline segments, with the area below the curved spline fill in and stacked on top of each other. Stacked Spline Area Chart follows all of the same requirements as area charts, with the only difference being that the visually shaded areas are stacked on top of each other. You can create this type of chart in [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to [`IgxStackedSplineAreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstackedsplineareaseriescomponent.html), as shown in the example below.
+The Angular Stacked Spline Area Chart is rendered using a collection of points connected by curved spline segments, with the area below the curved spline fill in and stacked on top of each other. Stacked Spline Area Chart follows all of the same requirements as area charts, with the only difference being that the visually shaded areas are stacked on top of each other. You can create this type of chart in `IgxDataChart` control by binding your data to `IgxStackedSplineAreaSeries`, as shown in the example below.
```typescript
import { NgModule } from "@angular/core";
@@ -1307,11 +1292,9 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Stacked 100% Spline Area Chart
-The Angular Stacked 100% Spline Area Chart is identical to the Stacked Spline Area Chart in all aspects except for the treatment of the values on the y-axis. Instead of presenting a direct representation of the data, the Stacked 100% Spline Area Chart presents the data in terms of a percent of the sum of all values in a particular data point. Sometimes the chart represents part of a whole being changed over time. For example, a country's energy consumption related to the sources from which it is produced. In such cases, representing all stacked elements equally may be a better idea. You can create this type of chart in [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to [`IgxStacked100SplineAreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstacked100splineareaseriescomponent.html), as shown in the example below.
+The Angular Stacked 100% Spline Area Chart is identical to the Stacked Spline Area Chart in all aspects except for the treatment of the values on the y-axis. Instead of presenting a direct representation of the data, the Stacked 100% Spline Area Chart presents the data in terms of a percent of the sum of all values in a particular data point. Sometimes the chart represents part of a whole being changed over time. For example, a country's energy consumption related to the sources from which it is produced. In such cases, representing all stacked elements equally may be a better idea. You can create this type of chart in `IgxDataChart` control by binding your data to `IgxStacked100SplineAreaSeries`, as shown in the example below.
```typescript
import { NgModule } from "@angular/core";
@@ -1489,11 +1472,9 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Radial Area Chart
-The Angular Radial Area Chart belongs to a group of [Radial Chart](radial-chart.md) and has a shape of a filled polygon that is bound by a collection of straight lines connecting data points. This chart type uses the same concept of data plotting as the Area Chart, but wraps the data points around a circular axis rather than stretching them horizontally. You can create this type of chart in [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to [`IgxRadialAreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxradialareaseriescomponent.html), as shown in the example below.
+The Angular Radial Area Chart belongs to a group of [Radial Chart](radial-chart.md) and has a shape of a filled polygon that is bound by a collection of straight lines connecting data points. This chart type uses the same concept of data plotting as the Area Chart, but wraps the data points around a circular axis rather than stretching them horizontally. You can create this type of chart in `IgxDataChart` control by binding your data to `IgxRadialAreaSeries`, as shown in the example below.
```typescript
import { NgModule } from "@angular/core";
@@ -1649,11 +1630,9 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Polar Area Chart
-The Angular Polar Area Chart belongs to a group of [Polar Chart](polar-chart.md) and have a shape of a filled polygon, where vertices or corners are located at the polar (angle/radius) coordinates of data points and are connected by a straight line and then filling the area represented by the connected points. The Polar Area Chart uses the same concepts of data plotting as the Scatter Marker Chart, but instead wraps the points around a circle and fills in the area that is drawn, rather than stretching the points and area filled along a horizontal line. You can create this type of chart in [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to [`IgxPolarAreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpolarareaseriescomponent.html), as shown in the example below.
+The Angular Polar Area Chart belongs to a group of [Polar Chart](polar-chart.md) and have a shape of a filled polygon, where vertices or corners are located at the polar (angle/radius) coordinates of data points and are connected by a straight line and then filling the area represented by the connected points. The Polar Area Chart uses the same concepts of data plotting as the Scatter Marker Chart, but instead wraps the points around a circle and fills in the area that is drawn, rather than stretching the points and area filled along a horizontal line. You can create this type of chart in `IgxDataChart` control by binding your data to `IgxPolarAreaSeries`, as shown in the example below.
```typescript
import { NgModule } from "@angular/core";
@@ -1814,11 +1793,9 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Polar Spline Area Chart
-The Angular Polar Spline Area Chart belongs to a group of [Polar Chart](polar-chart.md) and have a shape of a filled polygon, where vertices or corners are located at the polar (angle/radius) coordinates of data points and are connected by a curved spline and then filling the area represented by the connected points. The Polar Spline Area Chart uses the same concepts of data plotting as the Scatter Marker Chart, but instead wraps the points around a circle and fills in the area that is drawn, rather than stretching the points and area filled along a horizontal line. You can create this type of chart in [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to [`IgxPolarSplineAreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpolarsplineareaseriescomponent.html), as shown in the example below.
+The Angular Polar Spline Area Chart belongs to a group of [Polar Chart](polar-chart.md) and have a shape of a filled polygon, where vertices or corners are located at the polar (angle/radius) coordinates of data points and are connected by a curved spline and then filling the area represented by the connected points. The Polar Spline Area Chart uses the same concepts of data plotting as the Scatter Marker Chart, but instead wraps the points around a circle and fills in the area that is drawn, rather than stretching the points and area filled along a horizontal line. You can create this type of chart in `IgxDataChart` control by binding your data to `IgxPolarSplineAreaSeries`, as shown in the example below.
```typescript
import { NgModule } from "@angular/core";
@@ -1968,8 +1945,6 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Additional Resources
You can find more information about related chart types in these topics:
@@ -1987,13 +1962,26 @@ The following table lists API members mentioned in above sections:
| Chart Type | Control Name | API Members |
| -------------------------|-----------------|-----------------------|
-| Area | [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) | [`chartType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html#chartType) = [`Area`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.categorycharttype.html#Area) |
-| Step Area | [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) | [`chartType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html#chartType) = [`StepArea`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.categorycharttype.html#StepArea) |
-| Range Area | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxRangeAreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxrangeareaseriescomponent.html) |
-| Radial Area | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxRadialAreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxradialareaseriescomponent.html) |
-| Polar Area | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxPolarAreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpolarareaseriescomponent.html) |
-| Polar Spline Area | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxPolarSplineAreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpolarsplineareaseriescomponent.html) |
-| Stacked Area | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxStackedAreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstackedareaseriescomponent.html) |
-| Stacked Spline Area | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxStackedSplineAreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstackedsplineareaseriescomponent.html) |
-| Stacked 100% Area | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxStacked100AreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstacked100areaseriescomponent.html) |
-| Stacked 100% Spline Area | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxStacked100SplineAreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstacked100splineareaseriescomponent.html) |
+| Area | `IgxCategoryChart` | `CategoryChart.ChartType` = `Area` |
+| Step Area | `IgxCategoryChart` | `CategoryChart.ChartType` = `StepArea` |
+| Range Area | `IgxDataChart` | `IgxRangeAreaSeries` |
+| Radial Area | `IgxDataChart` | `IgxRadialAreaSeries` |
+| Polar Area | `IgxDataChart` | `IgxPolarAreaSeries` |
+| Polar Spline Area | `IgxDataChart` | `IgxPolarSplineAreaSeries` |
+| Stacked Area | `IgxDataChart` | `IgxStackedAreaSeries` |
+| Stacked Spline Area | `IgxDataChart` | `IgxStackedSplineAreaSeries` |
+| Stacked 100% Area | `IgxDataChart` | `IgxStacked100AreaSeries` |
+| Stacked 100% Spline Area | `IgxDataChart` | `IgxStacked100SplineAreaSeries` |
+
+## API References
+
+`IgxCategoryChart`
+`IgxDataChart`
+`IgxRangeAreaSeries`
+`IgxRadialAreaSeries`
+`IgxPolarAreaSeries`
+`IgxPolarSplineAreaSeries`
+`IgxStackedAreaSeries`
+`IgxStackedSplineAreaSeries`
+`IgxStacked100AreaSeries`
+`IgxStacked100SplineAreaSeries`
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-bar-chart.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-bar-chart.md
index def0a5e6f..a2995bf74 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-bar-chart.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-bar-chart.md
@@ -1,21 +1,20 @@
---
-title: Angular Bar Chart and Graph | Ignite UI for Angular
-_description: Angular Bar Chart is among the most common category chart types used to quickly compare frequency, count, total, or average of data in different categories. Try for FREE.
-_keywords: Angular Charts, Bar Chart, Bar Graph, Horizontal Chart, Infragistics
-_license: commercial
-mentionedTypes: ["XamDataChart", "BarSeries", "StackedBarSeries", "Stacked100BarSeries", "Series"]
+title: "Angular Bar Chart and Graph | Ignite UI for Angular"
+description: "Angular Bar Chart is among the most common category chart types used to quickly compare frequency, count, total, or average of data in different categories. Try for FREE."
+keywords: "Angular Charts, Bar Chart, Bar Graph, Horizontal Chart, Infragistics"
+license: commercial
+mentionedTypes: ["DataChart", "BarSeries", "StackedBarSeries", "Stacked100BarSeries", "RangeBarSeries", "Series"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Bar Chart, Bar Graph, or Horizontal Bar Chart, is among the most common category chart types used to quickly compare frequency, count, total, or average of data in different categories with data encoded by horizontal bars with equal heights but different."
_tocName: Bar Chart
_premium: true
---
-
# Angular Bar Chart
-
-The Ignite UI for Angular Bar Chart, Bar Graph, or Horizontal Bar Chart, is among the most common category chart types used to quickly compare frequency, count, total, or average of data in different categories with data encoded by horizontal bars with equal heights but different lengths. This chart is ideal for showing variations in the value of an item over time. Data is represented using a collection of rectangles that extend from the left to right of the chart towards the values of data points. Bar Chart is very similar to [Column Chart](column-chart.md) except that Bar Chart renders with 90 degrees clockwise rotation and therefore it has horizontal orientation (left to right) while [Column Chart](column-chart.md) has vertical orientation (up and down)
+The Ignite UI for Angular Bar Chart, Bar Graph, or Horizontal Bar Chart, is among the most common category chart types used to quickly compare frequency, count, total, or average of data in different categories with data encoded by horizontal bars with equal heights but different lengths. This chart is ideal for showing variations in the value of an item over time. Data is represented using a collection of rectangles that extend from the left to right of the chart towards the values of data points. Bar Chart is very similar to [Column Chart](column-chart.md) except that Bar Chart renders with 90 degrees clockwise rotation and therefore it has horizontal orientation (left to right) while [Column Chart](column-chart.md) has vertical orientation (up and down)
## Angular Bar Chart Example
-
-You can create Angular Bar Chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data sources to multiple [`IgxBarSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxbarseriescomponent.html), as shown in the example below:
+You can create Angular Bar Chart in the `IgxDataChart` control by binding your data sources to multiple `IgxBarSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -176,12 +175,9 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Bar Chart Recommendations
### Are Angular Bar Charts right for your project?
-
Angular Bar Chart includes several variants based on your data or how you want to tell the correct story with your data. These include:
- Grouped Bar Chart
@@ -190,7 +186,6 @@ Angular Bar Chart includes several variants based on your data or how you want t
- Stacked 100 Bar Chart
### Bar Chart Use Cases
-
There are several common use cases for choosing a Bar Chart:
- You need to show trends over time or a numeric value change in a category of data.
@@ -207,7 +202,6 @@ These use cases are commonly used for the following scenarios:
- Any String Value Comparing a Numeric Value or Time-Series Value.
### Bar Chart Best Practices
-
- Start you numeric Axis at 0.
- Use a single color for the bars.
- Be sure the space separating each bar is 1/2 the width of the bar itself.
@@ -215,22 +209,17 @@ These use cases are commonly used for the following scenarios:
- Right-align category values on the Y-Axis (left side labels of chart) for readability.
### When Not to Use Bar Chart
-
- You have too much data so the Y-Axis can't fit in the space or is not legible.
- You need a detailed Time-Series analysis - consider a [Line Chart](line-chart.md) with a Time-Series for this type of data.
### Bar Chart Data Structure
-
- The data source must be an array or a list of data items.
- The data source must contain at least one data item.
- The list must contain at least one data column (string or date time).
- The list must contain at least one numeric data column.
-
-
## Angular Bar Chart with Single Series
-
-Bar Chart belongs to a group of Category Series and it is rendered using a collection of rectangles that extend from the left to right of the chart towards the values of data points. You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxBarSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxbarseriescomponent.html), as shown in the example below:
+Bar Chart belongs to a group of Category Series and it is rendered using a collection of rectangles that extend from the left to right of the chart towards the values of data points. You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxBarSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -367,11 +356,9 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Bar Chart with Multiple Series
-The Bar Chart is able to render multiple bars per category for comparison purposes. In this example, the Bar Chart is comparing box office revenue amongst popular movie franchises. You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to multiple [`IgxBarSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxbarseriescomponent.html), as shown in the example below:
+The Bar Chart is able to render multiple bars per category for comparison purposes. In this example, the Bar Chart is comparing box office revenue amongst popular movie franchises. You can create this type of chart in the `IgxDataChart` control by binding your data to multiple `IgxBarSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -532,11 +519,9 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Bar Chart Styling
-The Bar Chart can be styled, and allows for the ability to use [annotation values](../features/chart-annotations.md) for each bar, for example, to demonstrate percent comparisons. You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxBarSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxbarseriescomponent.html) and adding a [`IgxCalloutLayerComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcalloutlayercomponent.html), as shown in the example below:
+The Bar Chart can be styled, and allows for the ability to use [annotation values](../features/chart-annotations.md) for each bar, for example, to demonstrate percent comparisons. You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxBarSeries` and adding a `IgxCalloutLayer`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -691,15 +676,13 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Stacked Bar Chart
A Stacked Bar Chart, or Stacked Bar Graph, is a type of category chart that is used to compare the composition of different categories of data by displaying different sized fragments in the horizontal bars of the chart. The length of each bar, or stack of fragments, is proportionate to its overall value.
The Stacked Bar Chart differs from the Bar Chart in that the data points representing your data are stacked next to each other horizontally to visually group your data. Each stack can contain both positive and negative values. All positive values are grouped on the positive side of the X-Axis, and all negative values are grouped on the negative side of the X-Axis.
-You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxStackedBarSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstackedbarseriescomponent.html), as shown in the example below:
+You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxStackedBarSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -871,13 +854,11 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Stacked 100% Bar Chart
The Angular Stacked 100% Bar Chart is identical to the Angular Stacked Bar Chart in all aspects except in their treatment of the values on X-Axis (bottom labels of the chart). Instead of presenting a direct representation of the data, the stacked 100 bar chart presents the data in terms of percent of the sum of all values in a data point.
-You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxStacked100BarSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstacked100barseriescomponent.html), as shown in the example below:
+You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxStacked100BarSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -1047,7 +1028,166 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
+## Angular Range Bar Chart
+
+The Angular Range Bar Chart belongs to a group of range charts and is rendered using horizontal rectangles that can appear in the middle of the plot area of the chart, rather than stretching from the left like the traditional [Category Bar Chart](bar-chart.md#angular-bar-chart-example). This type of series emphasizes the amount of change between low values and high values in the same data point over a period of time or compares multiple items.
+
+Range values are represented on the X-Axis and categories are displayed on the Y-Axis. Because each bar visualizes both a low value and a high value, this chart is useful for scenarios such as showing daily temperature ranges, minimum and maximum prices, or any bounded measurements where a single value is not sufficient.
+
+The Range Bar Chart is identical to the [Range Column Chart](column-chart.md#angular-range-column-chart) in all aspects except that the ranges are represented as a set of horizontal bars rather than vertical columns.
+
+You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxRangeBarSeries`. The series reads low and high values from `LowMemberPath` and `HighMemberPath`, and it typically uses a `NumericXAxis` with a `CategoryYAxis`, as shown in the example below:
+
+```typescript
+import { NgModule } from "@angular/core";
+import { FormsModule } from "@angular/forms";
+import { CommonModule } from "@angular/common";
+import { BrowserModule } from "@angular/platform-browser";
+import { BrowserAnimationsModule } from "@angular/platform-browser/animations";
+import { AppComponent } from "./app.component";
+
+import { IgxDataChartAnnotationModule, IgxDataChartCategoryModule, IgxDataChartCoreModule, IgxDataChartInteractivityModule, IgxDataChartVerticalCategoryModule, IgxLegendModule, IgxRangeBarSeriesModule } from 'igniteui-angular-charts';
+
+@NgModule({
+ bootstrap: [AppComponent],
+ declarations: [
+ AppComponent
+],
+ imports: [
+ BrowserModule,
+ BrowserAnimationsModule,
+ CommonModule,
+ FormsModule,
+ IgxDataChartAnnotationModule,
+ IgxDataChartCategoryModule,
+ IgxDataChartCoreModule,
+ IgxDataChartInteractivityModule,
+ IgxDataChartVerticalCategoryModule,
+ IgxLegendModule,
+ IgxRangeBarSeriesModule
+],
+ providers: [],
+ schemas: []
+})
+export class AppModule {}
+```
+```typescript
+import { AfterViewInit, Component, ViewChild, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';
+import { TemperatureRangeDataItem, TemperatureRangeData } from './TemperatureRangeData';
+import { IgxLegendComponent, IgxDataChartComponent, IgxCategoryYAxisComponent, IgxNumericXAxisComponent, IgxRangeBarSeriesComponent, IgxDataToolTipLayerComponent } from 'igniteui-angular-charts';
+
+@Component({
+ standalone: false,
+ selector: "app-root",
+ styleUrls: ["./app.component.scss"],
+ templateUrl: "./app.component.html",
+ changeDetection: ChangeDetectionStrategy.OnPush
+})
+
+export class AppComponent implements AfterViewInit
+{
+
+ @ViewChild("legend", { static: true } )
+ private legend: IgxLegendComponent
+ @ViewChild("chart", { static: true } )
+ private chart: IgxDataChartComponent
+ @ViewChild("yAxis", { static: true } )
+ private yAxis: IgxCategoryYAxisComponent
+ @ViewChild("xAxis", { static: true } )
+ private xAxis: IgxNumericXAxisComponent
+ @ViewChild("rangeBarSeries1", { static: true } )
+ private rangeBarSeries1: IgxRangeBarSeriesComponent
+ @ViewChild("rangeBarSeries2", { static: true } )
+ private rangeBarSeries2: IgxRangeBarSeriesComponent
+ @ViewChild("dataToolTipLayer", { static: true } )
+ private dataToolTipLayer: IgxDataToolTipLayerComponent
+ private _temperatureRangeData: TemperatureRangeData = null;
+ public get temperatureRangeData(): TemperatureRangeData {
+ if (this._temperatureRangeData == null)
+ {
+ this._temperatureRangeData = new TemperatureRangeData();
+ }
+ return this._temperatureRangeData;
+ }
+
+ public constructor(private _detector: ChangeDetectorRef)
+ {
+ }
+
+ public ngAfterViewInit(): void
+ {
+ }
+
+}
+```
+```html
+
+
+ Monthly Temperature Range in LA and NYC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+```scss
+/* styles are loaded the Shared CSS file located at:
+https://dl.infragistics.com/x/css/samples/shared.v8.css
+*/
+```
## Additional Resources
@@ -1060,13 +1200,10 @@ You can find more information about related chart types in these topics:
- [Stacked Chart](stacked-chart.md)
## API References
-
-The following table lists API members mentioned in the above sections:
-
-- [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html)
-- `ItemsSource`
-- [`IgxBarSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxbarseriescomponent.html)
-- [`IgxCalloutLayerComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcalloutlayercomponent.html)
-- [`IgxStackedBarSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstackedbarseriescomponent.html)
-- [`IgxStacked100BarSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstacked100barseriescomponent.html)
-- [`IgxStackedBarSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstackedbarseriescomponent.html)
+`IgxDataChart`
+`IgxBarSeries`
+`IgxCalloutLayer`
+`IgxStackedBarSeries`
+`IgxStacked100BarSeries`
+`IgxRangeBarSeries`
+`DataSource`
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-bubble-chart.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-bubble-chart.md
index 9d349a1d2..ab1324cd6 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-bubble-chart.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-bubble-chart.md
@@ -1,21 +1,20 @@
---
title: Angular Bubble Chart | Data Visualization | Infragistics
-_description: Infragistics' Angular Bubble Chart
-_keywords: Angular Charts, Bubble Chart, Infragistics
-_license: commercial
-mentionedTypes: ["Series", "BubbleSeries", "ScatterSeries", "MarkerType"]
+description: Infragistics' Angular Bubble Chart
+keywords: Angular Charts, Bubble Chart, Infragistics
+license: commercial
+
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Bubble Chart is a type of Scatter Chart that show markers with variable scaling to represent the relationship among items in several distinct series of data or to plot data items using x and y coordinates."
_tocName: Bubble Chart
_premium: true
---
-
# Angular Bubble Chart
-
The Ignite UI for Angular Bubble Chart is a type of [Scatter Chart](scatter-chart.md) that show markers with variable scaling to represent the relationship among items in several distinct series of data or to plot data items using x and y coordinates. These coordinates of the data point are determined by two numeric data columns. The Bubble Chart draws attention to uneven intervals or clusters of data. This chart is often used to plot scientific data, and can highlight the deviation of collected data from predicted results. The Bubble Chart has many of the characteristics of the [Scatter Marker Chart](scatter-chart.md#angular-scatter-marker-chart) but with the option to have various radius scale sizes.
## Angular Bubble Chart Example
-
-You can create Ignite UI for Angular Bubble Chart in [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control using the [`IgxBubbleSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxbubbleseriescomponent.html) and two numeric axes, as shown in the example below.
+You can create Ignite UI for Angular Bubble Chart in `IgxDataChart` control using the `IgxBubbleSeries` and two numeric axes, as shown in the example below.
```typescript
import { NgModule } from "@angular/core";
@@ -227,11 +226,8 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Bubble Chart with Single Series
-
-You can bind your data to `ItemsSource` property of [`IgxBubbleSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxbubbleseriescomponent.html) and map data columns using its [`xMemberPath`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxbubbleseriescomponent.html#xMemberPath), [`yMemberPath`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxbubbleseriescomponent.html#yMemberPath), [`radiusMemberPath`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxbubbleseriescomponent.html#radiusMemberPath) properties, as shown in the example below:
+You can bind your data to `DataSource` property of `IgxBubbleSeries` and map data columns using its `XMemberPath`, `YMemberPath`, `RadiusMemberPath` properties, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -396,11 +392,8 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Bubble Chart with Multiple Series
-
-In Angular Bubble Chart, binding multiple data sources works by setting each new data source to `ItemsSource` property of a additional [`IgxBubbleSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxbubbleseriescomponent.html), as shown in the example below:
+In Angular Bubble Chart, binding multiple data sources works by setting each new data source to `DataSource` property of a additional `IgxBubbleSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -612,11 +605,8 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Bubble Chart Styling
-
-In Angular Bubble Chart, you can customize shape of bubble markers using [`markerType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxbubbleseriescomponent.html#markerType) property, their size with [`radiusScale`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxbubbleseriescomponent.html#radiusScale) property, and their appearance using [`markerBrush`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxbubbleseriescomponent.html#markerBrush), [`markerOutline`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxbubbleseriescomponent.html#markerOutline), [`markerThickness`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxbubbleseriescomponent.html#markerThickness) properties. In addition, you can also color bubble markers based on a data column using [`fillMemberPath`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxbubbleseriescomponent.html#fillMemberPath) and [`fillScale`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxbubbleseriescomponent.html#fillScale) properties. In this example, usage of above properties is demonstrated.
+In Angular Bubble Chart, you can customize shape of bubble markers using `MarkerType` property, their size with `RadiusScale` property, and their appearance using `MarkerBrush`, `MarkerOutline`, `MarkerThickness` properties. In addition, you can also color bubble markers based on a data column using `FillMemberPath` and `FillScale` properties. In this example, usage of above properties is demonstrated.
```typescript
import { NgModule } from "@angular/core";
@@ -787,28 +777,12 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Additional Resources
- [Scatter Chart](scatter-chart.md)
- [Shape Chart](shape-chart.md)
## API References
-
-The following table lists API members mentioned in the above sections:
-
-- [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html)
-- [`IgxBubbleSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxbubbleseriescomponent.html)
-- [`IgxScatterSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxscatterseriescomponent.html)
-- `ItemsSource`
-- [`fillMemberPath`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxbubbleseriescomponent.html#fillMemberPath)
-- [`fillScale`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxbubbleseriescomponent.html#fillScale)
-- [`markerType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxbubbleseriescomponent.html#markerType)
-- [`markerBrush`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxbubbleseriescomponent.html#markerBrush)
-- [`markerOutline`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxbubbleseriescomponent.html#markerOutline)
-- [`markerThickness`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxbubbleseriescomponent.html#markerThickness)
-- [`radiusScale`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxbubbleseriescomponent.html#radiusScale)
-- [`radiusMemberPath`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxbubbleseriescomponent.html#radiusMemberPath)
-- [`xMemberPath`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxbubbleseriescomponent.html#xMemberPath)
-- [`yMemberPath`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxbubbleseriescomponent.html#yMemberPath)
+`IgxDataChart`
+`IgxBubbleSeries`
+`IgxScatterSeries`
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-column-chart.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-column-chart.md
index 28118f1df..2b579c3d6 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-column-chart.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-column-chart.md
@@ -1,21 +1,22 @@
---
-title: Angular Column Chart | Data Visualization | Infragistics
-_description: Infragistics' Angular Column Chart
-_keywords: Angular Charts, Column Chart, Column Graph, Vertical Bar Chart, Infragistics
-_license: commercial
-mentionedTypes: ["DomainChart", "CategoryChart", "XamDataChart", "ColumnSeries", "WaterfallSeries", "StackedColumnSeries", "Stacked100ColumnSeries", "RangeColumnSeries", "RadialColumnSeries", "CategoryChartType", "Series"]
+title: "Angular Column Chart | Data Visualization | Infragistics"
+description: Infragistics' Angular Column Chart
+keywords: "Angular Charts, Column Chart, Column Graph, Vertical Bar Chart, Infragistics"
+license: commercial
+mentionedTypes: ["DomainChart", "CategoryChart", "DataChart", "ColumnSeries", "WaterfallSeries", "StackedColumnSeries", "Stacked100ColumnSeries", "RangeColumnSeries", "RadialColumnSeries", "CategoryChartType", "Series"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Column Char, Column Graph, or Vertical Bar Chart is among the most common category chart types used to quickly compare frequency, count, total, or average of data in different categories with data encoded by columns with equal widths but different heights."
_tocName: Column Chart
_premium: true
---
-
# Angular Column Chart
-The Ignite UI for Angular Column Char, Column Graph, or Vertical Bar Chart is among the most common category chart types used to quickly compare frequency, count, total, or average of data in different categories with data encoded by columns with equal widths but different heights. These columns extend from the bottom to top of the chart towards the values of data points. This chart emphasizes the amount of change over a period of time or compares multiple items. Column Chart is very similar to [Bar Chart](bar-chart.md) except that Column Chart renders in vertical orientation (up and down) while [Bar Chart](bar-chart.md) has horizontal orientation (left to right) or 90 degrees clockwise rotation.
+The Ignite UI for Angular Column Char, Column Graph, or Vertical Bar Chart is among the most common category chart types used to quickly compare frequency, count, total, or average of data in different categories with data encoded by columns with equal widths but different heights. These columns extend from the bottom to top of the chart towards the values of data points. This chart emphasizes the amount of change over a period of time or compares multiple items. Column Chart is very similar to [Bar Chart](bar-chart.md) except that Column Chart renders in vertical orientation (up and down) while [Bar Chart](bar-chart.md) has horizontal orientation (left to right) or 90 degrees clockwise rotation.
## Angular Column Chart Example
-You can create Angular Column Chart in the [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) control by binding your data and setting [`chartType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html#chartType) to **Column** enum, as shown in the example below:
+You can create Angular Column Chart in the `IgxCategoryChart` control by binding your data and setting `CategoryChart.ChartType` to **Column** enum, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -122,8 +123,6 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Column Charts Recommendations
### Column Charts Use Cases
@@ -154,7 +153,7 @@ There are several uses cases for Column Charts. When you:
Column Chart belongs to a group of Category Series and it is rendered using a collection of rectangles that extend from the bottom to top of the chart towards the values of data points.
-You can create this type of chart in the [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) control by binding your data and setting the [`chartType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html#chartType) property to **Column** value, as shown in the example below:
+You can create this type of chart in the `IgxCategoryChart` control by binding your data and setting the `CategoryChart.ChartType` property to **Column** value, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -251,11 +250,9 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Column Chart with Multiple Series
-The Column Chart is able to render multiple columns per category for comparison purposes. You can create this type of chart in the [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) control by binding your data and setting the [`chartType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html#chartType) property to **Column** value, as shown in the example below:
+The Column Chart is able to render multiple columns per category for comparison purposes. You can create this type of chart in the `IgxCategoryChart` control by binding your data and setting the `CategoryChart.ChartType` property to **Column** value, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -362,13 +359,11 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Column Chart Styling
The Angular Column Chart has many options for styling and modification of the visual appearance.
-You can create this type of chart in the [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) control by binding your data, as shown in the example below:
+You can create this type of chart in the `IgxCategoryChart` control by binding your data, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -477,17 +472,15 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Advanced Types of Column Charts
-The following sections explain more advanced types of Angular Column Charts that can be created using the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control instead of [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) control with simplified API.
+The following sections explain more advanced types of Angular Column Charts that can be created using the `IgxDataChart` control instead of `IgxCategoryChart` control with simplified API.
## Angular Waterfall Chart
The Waterfall Chart belongs to a group of category charts and it is rendered using a collection of vertical columns that show the difference between consecutive data points. The columns are color coded for distinguishing between positive and negative changes in value. The Waterfall Chart is similar in appearance to the [Range Column Chart](column-chart.md#angular-range-column-chart), but it requires only one numeric data column rather than two columns for each data point.
-You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxWaterfallSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxwaterfallseriescomponent.html), as shown in the example below:
+You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxWaterfallSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -624,13 +617,11 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Stacked Column Chart
The Stacked Column Chart is similar to the [Category Column Chart](column-chart.md#angular-column-chart-example) in all aspects, except the series are represented on top of one another rather than to the side. The Stacked Column Chart is used to show comparing results between series. Each stacked fragment in the collection represents one visual element in each stack. Each stack can contain both positive and negative values. All positive values are grouped on the positive side of the Y-Axis, and all negative values are grouped on the negative side of the Y-Axis. The Stacked Column Chart uses the same concepts of data plotting as the [Stacked Bar Chart](stacked-chart.md#angular-stacked-bar-chart) but data points are stacked along vertical line (Y-Axis) rather than along horizontal line (X-Axis).
-You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxStackedBarSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstackedbarseriescomponent.html), as shown in the example below:
+You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxStackedBarSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -810,13 +801,11 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Stacked 100% Column Chart
The Stacked 100% Column Chart is identical to the [Stacked Column Chart](stacked-chart.md#angular-stacked-column-chart) in all aspects except in their treatment of the values on Y-Axis. Instead of presenting a direct representation of the data, the Stacked 100 Column Chart presents the data in terms of percent of the sum of all values in a data point.
-You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxStacked100BarSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstacked100barseriescomponent.html), as shown in the example below:
+You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxStacked100BarSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -977,15 +966,13 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Range Column Chart
The Angular Range Column Chart belongs to a group of range charts and is rendered using vertical rectangles that can appear in the middle of the plot area of the chart, rather than stretching from the bottom like the traditional [Category Column Chart](column-chart.md#angular-column-chart-example). This type of series emphasizes the amount of change between low values and high values in the same data point over a period of time or compares multiple items. Range values are represented on the Y-Axis and categories are displayed on the X-Axis.
-The Range Column Chart is identical to the [Range Area Chart](area-chart.md)(area-chart.md#angular-range-area-chart) in all aspects except that the ranges are represented as a set of vertical columns rather than a filled area.
+The Range Column Chart is identical to the [Range Area Chart](area-chart.md#angular-range-area-chart) in all aspects except that the ranges are represented as a set of vertical columns rather than a filled area.
-You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxRangeColumnSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxrangecolumnseriescomponent.html), as shown in the example below:
+You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxRangeColumnSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -1136,13 +1123,11 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Radial Column Chart
The Radial Column Chart belongs to a group of [Radial Chart](radial-chart.md), and is visualized by using a collection of rectangles that extend from the center of the chart toward the locations of data points. This utilizes the same concepts of data plotting as the [Category Column Chart](column-chart.md#angular-column-chart-example), but wraps data points around a circle rather than stretching them horizontally.
-You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxRadialColumnSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxradialcolumnseriescomponent.html), as shown in the example below:
+You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxRadialColumnSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -1296,8 +1281,6 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Additional Resources
You can find more information about related chart types in these topics:
@@ -1308,14 +1291,23 @@ You can find more information about related chart types in these topics:
- [Stacked Chart](stacked-chart.md)
## API References
-
The following table lists API members mentioned in the above sections:
| Chart Type | Control Name | API Members |
| --------------------|--------------------|------------------------|
-| Column | [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) | [`chartType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html#chartType) = **Column** |
-| Radial Column | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxRadialColumnSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxradialcolumnseriescomponent.html) |
-| Range Column | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxRangeColumnSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxrangecolumnseriescomponent.html) |
-| Stacked Column | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxStackedColumnSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstackedcolumnseriescomponent.html) |
-| Stacked 100% Column | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxStacked100ColumnSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstacked100columnseriescomponent.html) |
-| Waterfall | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxWaterfallSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxwaterfallseriescomponent.html) |
+| Column | `IgxCategoryChart` | `CategoryChart.ChartType` = **Column** |
+| Radial Column | `IgxDataChart` | `IgxRadialColumnSeries` |
+| Range Column | `IgxDataChart` | `IgxRangeColumnSeries` |
+| Stacked Column | `IgxDataChart` | `IgxStackedColumnSeries` |
+| Stacked 100% Column | `IgxDataChart` | `IgxStacked100ColumnSeries` |
+| Waterfall | `IgxDataChart` | `IgxWaterfallSeries` |
+
+`IgxCategoryChart`
+`IgxDataChart`
+`IgxWaterfallSeries`
+`IgxStackedBarSeries`
+`IgxStacked100BarSeries`
+`IgxRangeColumnSeries`
+`IgxRadialColumnSeries`
+`IgxStackedColumnSeries`
+`IgxStacked100ColumnSeries`
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-composite-chart.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-composite-chart.md
index 62c6c03fa..8c1a174f5 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-composite-chart.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-composite-chart.md
@@ -1,21 +1,22 @@
---
-title: Angular Composite Chart | Combo Chart| Data Visualization | Infragistics
-_description: Infragistics' Angular Composite Chart
-_keywords: Angular Charts, Composite Chart, Combo Chart, Infragistics
-_license: commercial
-mentionedTypes: ["XamDataChart", "Series"]
+title: "Angular Composite Chart | Combo Chart| Data Visualization | Infragistics"
+description: Infragistics' Angular Composite Chart
+keywords: "Angular Charts, Composite Chart, Combo Chart, Infragistics"
+license: commercial
+mentionedTypes: ["DataChart", "Series"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Composite Chart, also called a Combo Chart, is visualization that combines different types of chart types in the same plot area."
_tocName: Composite Chart
_premium: true
---
-
# Angular Composite / Combo Chart
The Ignite UI for Angular Composite Chart, also called a Combo Chart, is visualization that combines different types of chart types in the same plot area. It is very useful when presenting two data series that have a very different scale and might be expressed in different units. The most common example is dollars on one axis and percentage on the other axis.
## Angular Composite / Combo Example
-The following example demonstrates how to create Composite Chart using [`IgxColumnSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcolumnseriescomponent.html) and [`IgxLineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxlineseriescomponent.html) in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control.
+The following example demonstrates how to create Composite Chart using `IgxColumnSeries` and `IgxLineSeries` in the `IgxDataChart` control.
```typescript
import { NgModule } from "@angular/core";
@@ -177,22 +178,17 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Additional Resources
- [Bar Chart](bar-chart.md)
- [Column Chart](column-chart.md)
-
-
-
- [Line Chart](line-chart.md)
- [Stacked Chart](stacked-chart.md)
## API References
-- [`IgxCategoryXAxisComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategoryxaxiscomponent.html)
-- [`IgxColumnSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcolumnseriescomponent.html)
-- [`IgxLineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxlineseriescomponent.html)
-- [`IgxNumericYAxisComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxnumericyaxiscomponent.html)
-- [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html)
+`IgxDataChart`
+`IgxColumnSeries`
+`IgxLineSeries`
+`IgxCategoryXAxis`
+`IgxNumericYAxis`
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-data-pie-chart.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-data-pie-chart.md
index 619a4c0aa..57d330089 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-data-pie-chart.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-data-pie-chart.md
@@ -1,21 +1,20 @@
---
title: Angular Pie Charts and Graphs | Ignite UI for Angular
-_description: The Ignite UI for Angular data pie chart is a specialized UI control that renders a pie chart, consisting of a circular area divided into sections. Try for FREE.
-_keywords: Angular charts, pie chart, Ignite UI for Angular, Infragistics, data binding, slice selection, animation, highlighting, legend
-_license: commercial
-mentionedTypes: ["DataPieChart", "XamDataChart", "OthersCategoryType", "SeriesSelectionMode", "SeriesSelectionBehavior", "SeriesHighlightingBehavior"]
+description: The Ignite UI for Angular data pie chart is a specialized UI control that renders a pie chart, consisting of a circular area divided into sections. Try for FREE.
+keywords: Angular charts, pie chart, Ignite UI for Angular, Infragistics, data binding, slice selection, animation, highlighting, legend
+license: commercial
+
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Data Pie Chart is a part-to-whole chart that shows how categories (parts) of a data set add up to a total (whole) value."
_tocName: Data Pie Chart
_premium: true
---
-
# Angular Data Pie Chart
-
The Ignite UI for Angular Data Pie Chart is a part-to-whole chart that shows how categories (parts) of a data set add up to a total (whole) value. Categories are rendered as sections in a circular, or pie-shaped graph. Each section, or pie slice, has an arc length proportional to its underlying data value. Categories are shown in proportion to other categories based on their value percentage to the total value being analyzed, as parts of 100 or 100%.
## Angular Data Pie Chart Example
-
-You can create the Angular Pie Chart in the [`IgxDataPieChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html) by binding your data items with a string and a numeric data value. These data values will add up to a value of 100% of visualization.
+You can create the Angular Pie Chart in the `IgxDataPieChart` by binding your data items with a string and a numeric data value. These data values will add up to a value of 100% of visualization.
```typescript
import { NgModule } from "@angular/core";
@@ -102,10 +101,7 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Data Pie Chart Recommendations
-
Pie Charts are appropriate for small data sets and are easy to read at a glance. Pie charts are just one type of part-to-whole visualization such as Doughnut (Ring) Chart, Funnel Chart, Stacked Area Chart, Stacked Bar Chart, and Treemap.
The Angular Data Pie Chart includes interactive features that give the viewer tools to analyze data, like:
@@ -136,16 +132,15 @@ Do Not Use Pie Chart When:
- It would be easier for the viewer to perceive the value difference in a Bar chart.
## Angular Data Pie Chart Legend
-
Legends are used to show information about each point, to know about its contribution towards the total sum.
-In order to display a legend next to the pie chart an ItemLegend needs to be created and assigned to the [`IgxLegendComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxlegendcomponent.html) property. The ItemLegend will display its items in vertical orientation as a default, but this can be changed by setting its [`orientation`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxlegendcomponent.html#orientation) property.
+In order to display a legend next to the pie chart an ItemLegend needs to be created and assigned to the `Legend` property. The ItemLegend will display its items in vertical orientation as a default, but this can be changed by setting its `Orientation` property.
-The labels shown on the legend will display the same content as the label that is shown for each slice in the [`IgxDataPieChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html) by default, but this can be modified by utilizing the [`legendSliceLabelContentMode`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#legendSliceLabelContentMode) property on the chart. This exposes an enumeration that allows you to show the label, value, percentage, or any combination of those as the legend's content for each slice in the chart.
+The labels shown on the legend will display the same content as the label that is shown for each slice in the `IgxDataPieChart` by default, but this can be modified by utilizing the `LegendSliceLabelContentMode` property on the chart. This exposes an enumeration that allows you to show the label, value, percentage, or any combination of those as the legend's content for each slice in the chart.
-You can also modify the ItemLegend badge. By default, it appears as a filled circle corresponding to the color of the associated chart slice. You can configure this by using the [`legendItemBadgeShape`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#legendItemBadgeShape) property on the chart, and you can set this to be a circle, line, bar, column, and more.
+You can also modify the ItemLegend badge. By default, it appears as a filled circle corresponding to the color of the associated chart slice. You can configure this by using the `LegendItemBadgeShape` property on the chart, and you can set this to be a circle, line, bar, column, and more.
-Below is an example that demonstrates usage of the ItemLegend with the [`IgxDataPieChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html).
+Below is an example that demonstrates usage of the ItemLegend with the `IgxDataPieChart`.
```typescript
import { NgModule } from "@angular/core";
@@ -257,38 +252,34 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Pie Chart Others Category
-
Sometimes, the underlying data for the pie chart will contain many items with small values. In this case, the Others category will permit automatic aggregation of several data values into a single slice.
-The Others category in the [`IgxDataPieChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html) has three main, configurable properties - [`othersCategoryType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#othersCategoryType), [`othersCategoryThreshold`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#othersCategoryThreshold), and [`othersCategoryText`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#othersCategoryText) that allow you to configure how the Others slice in the chart is shown. These are each described below:
+The Others category in the `IgxDataPieChart` has three main, configurable properties - `OthersCategoryType`, `OthersCategoryThreshold`, and `OthersCategoryText` that allow you to configure how the Others slice in the chart is shown. These are each described below:
-The [`othersCategoryType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#othersCategoryType) property works in tandem with the [`othersCategoryThreshold`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#othersCategoryThreshold) property of the [`IgxDataPieChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html). For the [`othersCategoryType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#othersCategoryType), you can define whether you want the [`othersCategoryThreshold`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#othersCategoryThreshold) to be evaluated as a number or a percentage. For example, if you decide on number and set the [`othersCategoryThreshold`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#othersCategoryThreshold) to 5, any slices that have a value less than 5 will become part of the Others category. Using the same value of 5 with a percent type, any values that are less than 5 percent of the total values of the [`IgxDataPieChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html) will become part of the Others category.
+The `OthersCategoryType` property works in tandem with the `OthersCategoryThreshold` property of the `IgxDataPieChart`. For the `OthersCategoryType`, you can define whether you want the `OthersCategoryThreshold` to be evaluated as a number or a percentage. For example, if you decide on number and set the `OthersCategoryThreshold` to 5, any slices that have a value less than 5 will become part of the Others category. Using the same value of 5 with a percent type, any values that are less than 5 percent of the total values of the `IgxDataPieChart` will become part of the Others category.
-To get the underlying data items that are contained within the Others slice in the chart, you can utilize the [`getOthersContext`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#getOthersContext) method on the chart. This return type of this method is an [`IgxOthersCategoryContextComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxotherscategorycontextcomponent.html) which exposes an [`items`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxotherscategorycontextcomponent.html#items) property. The [`items`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxotherscategorycontextcomponent.html#items) property returns an array that will contain the items in the Others slice. Additionally, when clicking the Others slice, the `Item` property of the event arguments for the `SeriesClick` event will be will also return this [`IgxOthersCategoryContextComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxotherscategorycontextcomponent.html).
+To get the underlying data items that are contained within the Others slice in the chart, you can utilize the `GetOthersContext` method on the chart. This return type of this method is an `IgxOthersCategoryContext` which exposes an `Items` property. The `Items` property returns an array that will contain the items in the Others slice. Additionally, when clicking the Others slice, the `Item` property of the event arguments for the `SeriesClick` event will be will also return this `IgxOthersCategoryContext`.
-By default, the Others slice will be represented by a label of "Others." You can change this by modifying the [`othersCategoryText`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#othersCategoryText) property of the chart.
+By default, the Others slice will be represented by a label of "Others." You can change this by modifying the `OthersCategoryText` property of the chart.
### Angular Styling the Others Slice
-
You can style the aggregated Others slice separately from other slices by using these properties:
-- `OthersCategoryBrush`\
- Sets the fill (brush) used for the Others slice.
+- `OthersCategoryBrush`
+ Sets the fill (brush) used for the Others slice.
-- `OthersCategoryOutline`\
- Sets the outline (stroke) used for the Others slice.
+- `OthersCategoryOutline`
+ Sets the outline (stroke) used for the Others slice.
These properties only affect the Others slice (when it exists). All other slices continue to use the normal palette and item-wise coloring behavior.
-> [!NOTE]
-> The Others slice is only rendered when the chart is configured to create it (for example, with [`othersCategoryThreshold`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#othersCategoryThreshold) greater than `0` and an appropriate [`othersCategoryType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#othersCategoryType)). If the Others slice is not present, `OthersCategoryBrush` and `OthersCategoryOutline` have no visible effect.
+**Note:**
+The Others slice is only rendered when the chart is configured to create it (for example, with `OthersCategoryThreshold` greater than `0` and an appropriate `OthersCategoryType`). If the Others slice is not present, `OthersCategoryBrush` and `OthersCategoryOutline` have no visible effect.
-If you want to ensure that the Others category does not show up in the [`IgxDataPieChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html), you can set the [`othersCategoryThreshold`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#othersCategoryThreshold) to 0.
+If you want to ensure that the Others category does not show up in the `IgxDataPieChart`, you can set the `OthersCategoryThreshold` to 0.
-The following sample demonstrates usage of the Others slice in the [`IgxDataPieChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html):
+The following sample demonstrates usage of the Others slice in the `IgxDataPieChart`:
```typescript
import { NgModule } from "@angular/core";
@@ -441,31 +432,28 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Data Pie Chart Selection
+The `IgxDataPieChart` supports slice selection by mouse click on the slices plotted in the chart. This can be configured by utilizing the `SelectionBehavior` and `SelectionMode` properties of the chart, described below:
-The [`IgxDataPieChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html) supports slice selection by mouse click on the slices plotted in the chart. This can be configured by utilizing the [`selectionBehavior`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#selectionBehavior) and [`selectionMode`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#selectionMode) properties of the chart, described below:
+The main two options of the `SelectionBehavior` are `PerDataItemSingleSelect` and `PerDataItemMultiSelect`, which will enable single and multiple selection, respectively.
-The main two options of the [`selectionBehavior`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#selectionBehavior) are [`PerDataItemSingleSelect`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.seriesselectionbehavior.html#PerDataItemSingleSelect) and [`PerDataItemMultiSelect`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.seriesselectionbehavior.html#PerDataItemMultiSelect), which will enable single and multiple selection, respectively.
+The `SelectionMode` property exposes an enumeration that determines how the pie chart slices respond to being selected. The following are the options of that enumeration and what they do:
-The [`selectionMode`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#selectionMode) property exposes an enumeration that determines how the pie chart slices respond to being selected. The following are the options of that enumeration and what they do:
+- `Brighten`: The selected slices will be highlighted.
+- `FadeOthers`: The selected slices will remain their same color and others will fade.
+- `FocusColorFill`: The selected slices will change their background to the FocusBrush of the chart.
+- `FocusColorOutline`: The selected slices will have an outline with the color defined by the FocusBrush of the chart.
+- `FocusColorThickOutline`: The selected slices will have an outline with the color defined by the FocusBrush of the chart. The thickness of this outline can be configured via the Thickness property of the control as well.
+- `GrayscaleOthers`: The unselected slices will have a gray color filter applied to them.
+- `None`: There is no effect on the selected slices.
+- `SelectionColorFill`: The selected slices will change their background to the SelectionBrush of the chart.
+- `SelectionColorOutline`: The selected slices will have an outline with the color defined by the SelectionBrush of the chart.
+- `SelectionColorThickOutline`: The selected slices will have an outline with the color defined by the FocusBrush of the chart. The thickness of this outline can be configured via the Thickness property of the control as well.
+- `ThickOutline`: The selected slices will apply an outline with the thickness dependent on the Thickness property of the chart.
-- [`Brighten`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.seriesselectionmode.html#Brighten): The selected slices will be highlighted.
-- [`FadeOthers`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.seriesselectionmode.html#FadeOthers): The selected slices will remain their same color and others will fade.
-- [`FocusColorFill`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.seriesselectionmode.html#FocusColorFill): The selected slices will change their background to the FocusBrush of the chart.
-- [`FocusColorOutline`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.seriesselectionmode.html#FocusColorOutline): The selected slices will have an outline with the color defined by the FocusBrush of the chart.
-- [`FocusColorThickOutline`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.seriesselectionmode.html#FocusColorThickOutline): The selected slices will have an outline with the color defined by the FocusBrush of the chart. The thickness of this outline can be configured via the Thickness property of the control as well.
-- [`GrayscaleOthers`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.seriesselectionmode.html#GrayscaleOthers): The unselected slices will have a gray color filter applied to them.
-- [`None`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.seriesselectionmode.html#None): There is no effect on the selected slices.
-- [`SelectionColorFill`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.seriesselectionmode.html#SelectionColorFill): The selected slices will change their background to the SelectionBrush of the chart.
-- [`SelectionColorOutline`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.seriesselectionmode.html#SelectionColorOutline): The selected slices will have an outline with the color defined by the SelectionBrush of the chart.
-- [`SelectionColorThickOutline`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.seriesselectionmode.html#SelectionColorThickOutline): The selected slices will have an outline with the color defined by the FocusBrush of the chart. The thickness of this outline can be configured via the Thickness property of the control as well.
-- [`ThickOutline`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.seriesselectionmode.html#ThickOutline): The selected slices will apply an outline with the thickness dependent on the Thickness property of the chart.
+When a slice is selected, its underlying data item will be added to the SelectedSeriesItems collection of the chart. As such, the DataPieChart exposes the SelectedSeriesItemsChanged event to detect when a slice has been selected and this collection is changed.
-When a slice is selected, its underlying data item will be added to the SelectedSeriesItems collection of the chart. As such, the XamDataPieChart exposes the SelectedSeriesItemsChanged event to detect when a slice has been selected and this collection is changed.
-
-The following sample demonstrates the selection feature of the [`IgxDataPieChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html) control:
+The following sample demonstrates the selection feature of the `IgxDataPieChart` control:
```typescript
import { NgModule } from "@angular/core";
@@ -613,28 +601,23 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Data Pie Chart Highlighting
+The `IgxDataPieChart` supports mouse over highlighting, as well as a highlighting overlay that can be configured by providing a separate data source.
-The [`IgxDataPieChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html) supports mouse over highlighting, as well as a highlighting overlay that can be configured by providing a separate data source.
-
-First, the [`highlightingBehavior`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#highlightingBehavior) enumerated property determines how a slice will be highlighted. The following are the options of that property and what they do:
+First, the `HighlightingBehavior` enumerated property determines how a slice will be highlighted. The following are the options of that property and what they do:
-- [`DirectlyOver`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.serieshighlightingbehavior.html#DirectlyOver): The slices are only highlighted when the mouse is directly over them.
-- [`NearestItems`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.serieshighlightingbehavior.html#NearestItems): The nearest slice to the mouse position will be highlighted.
-- [`NearestItemsAndSeries`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.serieshighlightingbehavior.html#NearestItemsAndSeries): The nearest slice and series to the mouse position will be highlighted.
-- [`NearestItemsRetainMainShapes`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.serieshighlightingbehavior.html#NearestItemsRetainMainShapes): The nearest items to the mouse position will be highlighted and the main shapes of the series will not be de-emphasized.
+- `DirectlyOver`: The slices are only highlighted when the mouse is directly over them.
+- `NearestItems`: The nearest slice to the mouse position will be highlighted.
+- `NearestItemsAndSeries`: The nearest slice and series to the mouse position will be highlighted.
+- `NearestItemsRetainMainShapes`: The nearest items to the mouse position will be highlighted and the main shapes of the series will not be de-emphasized.
-The [`highlightingMode`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#highlightingMode) enumerated property determines how the data pie chart slices respond to being highlighted. The following are the options of that property and what they do:
+The `HighlightingMode` enumerated property determines how the data pie chart slices respond to being highlighted. The following are the options of that property and what they do:
-- [`Brighten`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.seriesselectionmode.html#Brighten): The series will have its color brightened when the mouse position is over or near it.
-- `BrightenSpecific`: The specific slice will have its color brightened when the mouse position is over or near it.
-- [`FadeOthers`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.seriesselectionmode.html#FadeOthers): The series will retain its color when the mouse position is over or near it, while the others will appear faded.
-- `FadeOthersSpecific`: The specific slice will retain its color when the mouse position is over or near it, while the others will appear faded.
-- [`None`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.seriesselectionmode.html#None): The series and slices will not be highlighted.
+- `Brighten`: The series will have its color brightened when the mouse position is over or near it.
+- `FadeOthers`: The series will retain its color when the mouse position is over or near it, while the others will appear faded.
+- `None`: The series and slices will not be highlighted.
-The following example demonstrates the mouse highlighting behaviors of the [`IgxDataPieChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html) component:
+The following example demonstrates the mouse highlighting behaviors of the `IgxDataPieChart` component:
```typescript
import { NgModule } from "@angular/core";
@@ -774,7 +757,7 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-In addition to the mouse highlighting, the [`IgxDataPieChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html) exposes a highlight filter capability that can display a subset of your data. This is applied by specifying a `HighlightedDataSource` for the control and by setting the [`highlightedValuesDisplayMode`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#highlightedValuesDisplayMode) property to `Overlay`. The `HighlightedDataSource` expects a subset of the data assigned to the `DataSource` property of the [`IgxDataPieChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html).
+In addition to the mouse highlighting, the `IgxDataPieChart` exposes a highlight filter capability that can display a subset of your data. This is applied by specifying a `HighlightedDataSource` for the control and by setting the `HighlightedValuesDisplayMode` property to `Overlay`. The `HighlightedDataSource` expects a subset of the data assigned to the `DataSource` property of the `IgxDataPieChart`.
When these conditions are met, the values of the subset will be highlighted, while the remainder of the full set of data will be faded - effectively creating a highlight for the subset and allowing easier visualization of a subset of your data within the same control.
@@ -884,17 +867,14 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Data Pie Chart Animation
+The `IgxDataPieChart` supports animating its slices into view, as well as when a value changes.
-The [`IgxDataPieChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html) supports animating its slices into view, as well as when a value changes.
-
-You can set the [`isTransitionInEnabled`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#isTransitionInEnabled) property to **true** to have the pie chart animate into view. The type of animation performed can be configured by setting the [`transitionInMode`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#transitionInMode) enumerated property to the type of animation you would like to see. Additionally, you can also set the [`transitionInSpeedType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#transitionInSpeedType) property to scale with index, value, normal, or randomized. The duration of this animation can be controlled by the [`transitionInDuration`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#transitionInDuration) property, which takes a `TimeSpan`.
+You can set the `IsTransitionInEnabled` property to **true** to have the pie chart animate into view. The type of animation performed can be configured by setting the `TransitionInMode` enumerated property to the type of animation you would like to see. Additionally, you can also set the `TransitionInSpeedType` property to scale with index, value, normal, or randomized. The duration of this animation can be controlled by the `TransitionInDuration` property, which takes a `TimeSpan`.
-If you would like to animate data changes, this can also be done by setting the [`animateSeriesWhenAxisRangeChanges`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#animateSeriesWhenAxisRangeChanges) property to **true**. The duration of this change can be configured by setting the [`transitionDuration`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#transitionDuration) property as well.
+If you would like to animate data changes, this can also be done by setting the `AnimateSeriesWhenAxisRangeChanges` property to **true**. The duration of this change can be configured by setting the `TransitionDuration` property as well.
-The following sample demonstrates the usage of animation in the [`IgxDataPieChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html):
+The following sample demonstrates the usage of animation in the `IgxDataPieChart`:
```typescript
import { NgModule } from "@angular/core";
@@ -1035,25 +1015,10 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Additional Resources
-
- [Donut Chart](donut-chart.md)
- [Polar Chart](polar-chart.md)
- [Radial Chart](radial-chart.md)
## API References
-
-The following table lists API members mentioned in the above sections:
-
-- [`chartType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#chartType)
-- [`othersCategoryThreshold`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#othersCategoryThreshold)
-- [`othersCategoryType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#othersCategoryType)
-- [`selectionMode`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#selectionMode)
-- [`selectionBehavior`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html#selectionBehavior)
-
-|Chart Type | Control Name | API Members |
-|-----------------|----------------|------------ |
-|Data Pie Chart | [`IgxDataPieChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html) | [`IgxDataPieChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatapiechartcomponent.html) |
-|Item Legend | [`IgxItemLegendComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxitemlegendcomponent.html) | [`IgxItemLegendComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxitemlegendcomponent.html) |
+`IgxDataPieChart`
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-donut-chart.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-donut-chart.md
index 4efd22643..83ae1c60a 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-donut-chart.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-donut-chart.md
@@ -1,21 +1,20 @@
---
-title: Angular Donut Chart | Data Visualization | Infragistics
-_description: Infragistics' Angular Donut Chart
-_keywords: Angular Charts, Donut Chart, Donut Chart, Infragistics
-_license: commercial
-mentionedTypes: ["XamDoughnutChart", "DoughnutChart"]
+title: "Angular Donut Chart | Data Visualization | Infragistics"
+description: Infragistics' Angular Donut Chart
+keywords: "Angular Charts, Donut Chart, Donut Chart, Infragistics"
+license: commercial
+mentionedTypes: ["DoughnutChart", "DoughnutChart"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Donut Chart is similar to the Pie Chart, proportionally illustrating the occurrences of a variable."
_tocName: Donut Chart
_premium: true
---
-
# Angular Donut Chart
-
The Ignite UI for Angular Donut Chart is similar to the [Pie Chart](pie-chart.md), proportionally illustrating the occurrences of a variable. The donut chart can display multiple variables in concentric rings, and provides built-in support for visualizing hierarchical data. The rings are capable of being bound to a different data item, or they can share a common data source.
## Angular Donut Chart Example
-
-You can create Donut Chart using the [`IgxDoughnutChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdoughnutchartcomponent.html) control by binding your data as shown in the example below.
+You can create Donut Chart using the `IgxDoughnutChart` control by binding your data as shown in the example below.
```typescript
import { NgModule } from "@angular/core";
@@ -127,18 +126,12 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Donut Chart Recommendations
### Are Angular Donut Charts right for your project?
-
Donut Charts are appropriate for small data sets and are easy to read at a glance. Donut charts are just one type of part-to-whole visualization. Others include:
- [Pie](pie-chart.md)
-
-
-
- [Stacked Area](area-chart.md)
- [Stacked 100% Area (Stacked Percentage Area)](area-chart.md)
- [Stacked Bar](bar-chart.md)
@@ -154,7 +147,6 @@ The Angular Donut Chart includes interactive features that give the viewer tools
- Chart Animations
### Best Practices for Donut Charts
-
- Using multiple data sets to display your data in a ring display.
- Placing the information such as values or labels, within the hole of the donut for quick explanation of data.
- Comparing slices or segments as percentage values in proportion to a total value or whole.
@@ -163,7 +155,6 @@ The Angular Donut Chart includes interactive features that give the viewer tools
- Ensuring the color palette is distinguishable for segments/slices of the parts.
### When not to use a Donut Chart
-
- Comparing change over time —use a [Bar](bar-chart.md), [Line](line-chart.md) or [Area](area-chart.md) chart.
- Requiring precise data comparison —use a [Bar](bar-chart.md), [Line](line-chart.md) or [Area](area-chart.md) chart.
- You have more than 6 or 8 segments (high data volume) — consider a [Bar](bar-chart.md), [Line](line-chart.md) or [Area](area-chart.md) chart if it works for your data story.
@@ -171,7 +162,6 @@ The Angular Donut Chart includes interactive features that give the viewer tools
- You have negative data, as this can not be represented in a donut chart.
## Angular Donut Chart - Slice Selection
-
The Angular Donut Chart has the ability to select slices on click. Optionally, you may apply a single custom visual style to the selected slices. The `SliceClick` event is raised when the user clicks on a slice. Enabling slice selection allows you to modify the slice's selection upon click. The following sample demonstrates how to enable slice selection and set the selected slice color to gray.
```typescript
@@ -310,10 +300,7 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Donut Chart - Multiple Rings
-
It is possible to have a multiple ring display in the Angular Donut Chart, with each of the rings capable of being bound to a different data item, or they can share a common data source. This can be helpful if you need to display your data as tiers that have an underlying common category, such as the season to month data display below:
```typescript
@@ -438,10 +425,7 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Additional Resources
-
You can find more information about related chart types in these topics:
- [Pie Chart](pie-chart.md)
@@ -449,11 +433,4 @@ You can find more information about related chart types in these topics:
- [Radial Chart](radial-chart.md)
## API References
-
-The following table lists API members mentioned in the above sections:
-
-- [`IgxDoughnutChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdoughnutchartcomponent.html)
-- [`allowSliceExplosion`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdoughnutchartcomponent.html#allowSliceExplosion)
-- [`allowSliceSelection`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdoughnutchartcomponent.html#allowSliceSelection)
-- [`innerExtent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdoughnutchartcomponent.html#innerExtent)
-- `SliceClick`
+`IgxDoughnutChart`
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-line-chart.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-line-chart.md
index 441e3ab3d..5344de765 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-line-chart.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-line-chart.md
@@ -1,21 +1,22 @@
---
-title: Angular Line Chart and Graph | Ignite UI for Angular
-_description: The Angular Line chart is capable of handling high volumes of data, ranging into millions of data points, and updating them every few milliseconds. Try for FREE.
-_keywords: Angular Charts, Line Chart, Line Graph, Infragistics
-_license: commercial
-mentionedTypes: ["DomainChart", "CategoryChart", "XamDataChart", "Legend", "PolarLineSeries", "RadialLineSeries", "StackedLineSeries", "Stacked100LineSeries", "Series", "CategoryChartType"]
+title: "Angular Line Chart and Graph | Ignite UI for Angular"
+description: The Angular Line chart is capable of handling high volumes of data, ranging into millions of data points, and updating them every few milliseconds. Try for FREE.
+keywords: "Angular Charts, Line Chart, Line Graph, Infragistics"
+license: commercial
+mentionedTypes: ["DomainChart", "CategoryChart", "DataChart", "Legend", "PolarLineSeries", "RadialLineSeries", "StackedLineSeries", "Stacked100LineSeries", "Series", "CategoryChartType"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Line Chart or Line Graph is a type of category charts that show the continuous data values represented by points connected by straight line segments of one or more quantities over a period of time."
_tocName: Line Chart
_premium: true
---
-
# Angular Line Chart
-The Ignite UI for Angular Line Chart or Line Graph is a type of category charts that show the continuous data values represented by points connected by straight line segments of one or more quantities over a period of time. It’s often used to show trends and perform comparative analysis. The Y-Axis (labels on left side) show a numeric value, while the X-Axis (bottom labels) show a time-series or comparison category. You can include one or more data sets to compare, which would render as multiple lines in the chart.
+The Ignite UI for Angular Line Chart or Line Graph is a type of category charts that show the continuous data values represented by points connected by straight line segments of one or more quantities over a period of time. It's often used to show trends and perform comparative analysis. The Y-Axis (labels on left side) show a numeric value, while the X-Axis (bottom labels) show a time-series or comparison category. You can include one or more data sets to compare, which would render as multiple lines in the chart.
## Angular Line Chart Example
-You can create the Angular Line Chart in the [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) control by binding your data to `ItemsSource` property and setting [`chartType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html#chartType) property to [`Line`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.categorycharttype.html#Line) enum, as shown in the example below.
+You can create the Angular Line Chart in the `IgxCategoryChart` control by binding your data to `DataSource` property and setting `CategoryChart.ChartType` property to `Line` enum, as shown in the example below.
```typescript
import { NgModule } from "@angular/core";
@@ -121,8 +122,6 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Line Chart Recommendations
### Are Angular Line Charts right for your project?
@@ -172,7 +171,7 @@ There are several common use cases for choosing a Line Chart:
The Angular Line Chart is often used to show the change of value over time such as the amount of renewable electricity produced since 2009 over a ten-year period, as we have shown in the example below.
-You can create this type of chart in the [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) control by binding your data and setting the [`chartType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html#chartType) property to [`Line`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.categorycharttype.html#Line), as shown in the example below:
+You can create this type of chart in the `IgxCategoryChart` control by binding your data and setting the `CategoryChart.ChartType` property to `Line`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -267,13 +266,11 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Line Chart with Multiple Series
-Since the Angular Line Chart allows you to combine multiple series and compare or see how they change over time, let’s see how easy it is to achieve this. All we need to do is bind to a data source containing the data for China and the USA, and the line chart will automatically update to fit the additional data.
+Since the Angular Line Chart allows you to combine multiple series and compare or see how they change over time, let's see how easy it is to achieve this. All we need to do is bind to a data source containing the data for China and the USA, and the line chart will automatically update to fit the additional data.
-You can create this type of chart in the [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) control by binding your data and setting the [`chartType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html#chartType) property to [`Line`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.categorycharttype.html#Line), as shown in the example below:
+You can create this type of chart in the `IgxCategoryChart` control by binding your data and setting the `CategoryChart.ChartType` property to `Line`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -379,15 +376,13 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Line Chart with Live Data
The Angular Line chart is capable of handling high volumes of data, ranging into millions of data points, and updating them every few milliseconds as demonstrated in the following demo.
In this example, we are streaming live data into the Angular Line Chart at an interval of your choosing. You can set the data points from 5,000 to 1 million and update the chart to optimize the scale based on the device you are rendering the chart on.
-You can create this type of chart in the [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) control by binding your data and setting the [`chartType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html#chartType) property to [`Line`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.categorycharttype.html#Line), as shown in the example below:
+You can create this type of chart in the `IgxCategoryChart` control by binding your data and setting the `CategoryChart.ChartType` property to `Line`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -654,13 +649,11 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Styling Line Chart
Once our chart is set up, we may want to make some further styling customizations such as change the line colors, change the legend font family, and/or increase the size of the axis labels to make it easier to read.
-You can create this type of chart in the [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) control by binding your data and setting the [`chartType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html#chartType) property to [`Line`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.categorycharttype.html#Line), as shown in the example below:
+You can create this type of chart in the `IgxCategoryChart` control by binding your data and setting the `CategoryChart.ChartType` property to `Line`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -769,9 +762,9 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-You can also create a dashed line within the [`IgxLineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxlineseriescomponent.html) by using the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) and setting the [`dashArray`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpolarlineseriescomponent.html#dashArray) property on the series. This property takes an array of numbers that will describe the length of the resulting dashes in the line.
+You can also create a dashed line within the `IgxLineSeries` by using the `IgxDataChart` and setting the `DashArray` property on the series. This property takes an array of numbers that will describe the length of the resulting dashes in the line.
-The following example demonstrates usage of the [`dashArray`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpolarlineseriescomponent.html#dashArray) in a [`IgxLineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxlineseriescomponent.html) in [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html):
+The following example demonstrates usage of the `DashArray` in a `IgxLineSeries` in `IgxDataChart`:
```typescript
import { NgModule } from "@angular/core";
@@ -925,15 +918,13 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Advanced Types of Line Charts
-The following sections explain more advanced types of Angular Line Charts that can be created using the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control instead of [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) control with simplified API.
+The following sections explain more advanced types of Angular Line Charts that can be created using the `IgxDataChart` control instead of `IgxCategoryChart` control with simplified API.
## Angular Stacked Line Chart
-The Stacked Line Chart is often used to show the change of value over time such as the amount of renewable electricity produced for several years between regions. You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxStackedLineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstackedlineseriescomponent.html), as shown in the example below:
+The Stacked Line Chart is often used to show the change of value over time such as the amount of renewable electricity produced for several years between regions. You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxStackedLineSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -1115,13 +1106,11 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Stacked 100% Line Chart
The Stacked 100% Line Chart is identical to the Stacked Line Chart in all aspects except in their treatment of the values on y-axis. Instead of presenting a direct representation of the data, the Stacked 100% Line Chart presents the data in terms of percent of the sum of all values in a data point. The example below shows a study made for online shopping traffic by departments via tablet, phone and personal computers.
-You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxStacked100LineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstacked100lineseriescomponent.html), as shown in the example below:
+You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxStacked100LineSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -1299,13 +1288,11 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Radial Line Chart
The Radial Line Chart belongs to a group of radial charts and has a shape of an unfilled polygon that is bound by a collection of straight lines connecting data points. This chart type uses the same concept of data plotting as the Line Chart, but wraps the data points around a circular axis rather than stretching them horizontally.
-You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxRadialLineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxradiallineseriescomponent.html), as shown in the example below:
+You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxRadialLineSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -1461,13 +1448,11 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Polar Line Chart
The Polar Line Chart belongs to a group of polar charts and is rendered using a collection of straight lines connecting data points in polar (angle/radius) coordinate system. Polar Line Charts use the same concepts of data plotting as the [Scatter Line Chart](scatter-chart.md) with the difference that the visualization wraps data points around a circle rather than stretching them horizontally.
-You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxPolarLineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpolarlineseriescomponent.html), as shown in the example below:
+You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxPolarLineSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -1626,8 +1611,6 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Additional Resources
You can find more information about related chart types in these topics:
@@ -1645,8 +1628,16 @@ The following table lists API members mentioned in the above sections:
| Chart Type | Control Name | API Members |
| ------------------|--------------------|----------------------- |
-| Line | [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) | [`chartType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html#chartType) = [`Line`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.categorycharttype.html#Line) |
-| Polar Line | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxPolarLineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpolarlineseriescomponent.html) |
-| Radial Line | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxRadialLineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxradiallineseriescomponent.html) |
-| Stacked Line | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxStackedLineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstackedlineseriescomponent.html) |
-| Stacked 100% Line | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxStacked100LineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstacked100lineseriescomponent.html) |
+| Line | `IgxCategoryChart` | `CategoryChart.ChartType` = `Line` |
+| Polar Line | `IgxDataChart` | `IgxPolarLineSeries` |
+| Radial Line | `IgxDataChart` | `IgxRadialLineSeries` |
+| Stacked Line | `IgxDataChart` | `IgxStackedLineSeries` |
+| Stacked 100% Line | `IgxDataChart` | `IgxStacked100LineSeries` |
+
+`IgxCategoryChart`
+`IgxDataChart`
+`IgxLineSeries`
+`IgxPolarLineSeries`
+`IgxRadialLineSeries`
+`IgxStackedLineSeries`
+`IgxStacked100LineSeries`
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-pie-chart.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-pie-chart.md
index f524b68b5..60403ae75 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-pie-chart.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-pie-chart.md
@@ -1,21 +1,20 @@
---
-title: Angular Pie Charts and Graphs | Ignite UI for Angular
-_description: The Ignite UI for Angular pie chart is a specialized UI control that renders a pie chart, consisting of a circular area divided into sections. Try for FREE.
-_keywords: Angular charts, pie chart, Ignite UI for Angular, Infragistics, data binding, slice selection, slice explosion, animation
-_license: commercial
-mentionedTypes: ["XamPieChart", "XamDataChart"]
+title: "Angular Pie Charts and Graphs | Ignite UI for Angular"
+description: The Ignite UI for Angular pie chart is a specialized UI control that renders a pie chart, consisting of a circular area divided into sections. Try for FREE.
+keywords: "Angular charts, pie chart, Ignite UI for Angular, Infragistics, data binding, slice selection, slice explosion, animation"
+license: commercial
+mentionedTypes: ["PieChart", "DataChart"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Pie Chart, or Pie Graph, is a part-to-whole chart that shows how categories (parts) of a data set add up to a total (whole) value."
_tocName: Pie Chart
_premium: true
---
-
# Angular Pie Chart
-
The Ignite UI for Angular Pie Chart, or Pie Graph, is a part-to-whole chart that shows how categories (parts) of a data set add up to a total (whole) value. Categories are rendered as sections in a circular, or pie-shaped graph. Each section, or pie slice, has an arc length proportional to its underlying data value. Categories are shown in proportion to other categories based on their value percentage to the total value being analyzed, as parts of 100 or 100%.
## Angular Pie Chart Example
-
-You can create the Angular Pie Chart in the [`IgxPieChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpiechartcomponent.html) by binding your data items with a string and a numeric data value. These data values will add up to a value of 100% of visualization. In this case, the example shows the overall breakdown of budget spend by department.
+You can create the Angular Pie Chart in the `IgxPieChart` by binding your data items with a string and a numeric data value. These data values will add up to a value of 100% of visualization. In this case, the example shows the overall breakdown of budget spend by department.
```typescript
import { NgModule } from "@angular/core";
@@ -117,10 +116,7 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Pie Chart Recommendations
-
Pie Charts are appropriate for small data sets and are easy to read at a glance. Pie charts are just one type of part-to-whole visualization. Others include:
- Pie
@@ -161,12 +157,11 @@ Do Not Use Pie Chart When:
- It would be easier for the viewer to perceive the value difference in a Bar chart.
## Angular Pie Chart Legend
-
Legends are used to show information about each point, to know about its contribution towards the total sum. You can collapse the point using legend click.
-In order to display a legend next to the pie chart an ItemLegend needs to be created and assigned to the [`IgxLegendComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxlegendcomponent.html) property. The [`legendLabelMemberPath`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpiechartcomponent.html#legendLabelMemberPath) can then be used to specify which property on your data model it will use to display inside the legend for each pie slice.
+In order to display a legend next to the pie chart an ItemLegend needs to be created and assigned to the `Legend` property. The `LegendLabelMemberPath` can then be used to specify which property on your data model it will use to display inside the legend for each pie slice.
-Additionally you can use the [`legendItemTemplate`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpiechartcomponent.html#legendItemTemplate) and [`legendItemBadgeTemplate`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpiechartcomponent.html#legendItemBadgeTemplate) properties and the various font properties on ItemLegend to further customize the look of the legend items.
+Additionally you can use the `LegendItemTemplate` and `LegendItemBadgeTemplate` properties and the various font properties on ItemLegend to further customize the look of the legend items.
```typescript
import { NgModule } from "@angular/core";
@@ -270,15 +265,12 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Pie Chart Others Category
-
Sometimes, the underlying data for the pie chart will contain many items with small values. In this case, the Others category will permit automatic aggregation of several data values into a single slice
-In the sample below, the [`othersCategoryThreshold`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpiechartcomponent.html#othersCategoryThreshold) is set to 2, and [`othersCategoryType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpiechartcomponent.html#othersCategoryType) is set to Number. Therefore, items with value less than or equal to 2 will be assigned to the "Others" category.
+In the sample below, the `OthersCategoryThreshold` is set to 2, and `OthersCategoryType` is set to Number. Therefore, items with value less than or equal to 2 will be assigned to the "Others" category.
-If you set [`othersCategoryType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpiechartcomponent.html#othersCategoryType) to Percent, then [`othersCategoryThreshold`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpiechartcomponent.html#othersCategoryThreshold) will be interpreted as a percentage rather than as a value, i.e. items whose values are less than 2% of the sum of all item values would be assigned to the Others category. You can use whichever [`othersCategoryType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpiechartcomponent.html#othersCategoryType) is most appropriate for your application.
+If you set `OthersCategoryType` to Percent, then `OthersCategoryThreshold` will be interpreted as a percentage rather than as a value, i.e. items whose values are less than 2% of the sum of all item values would be assigned to the Others category. You can use whichever `OthersCategoryType` is most appropriate for your application.
```typescript
import { NgModule } from "@angular/core";
@@ -385,10 +377,7 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Pie Chart Explosion
-
The pie chart supports explosion of individual pie slices as well as a `SliceClick` event that allows you to modify selection states and implement custom logic
```typescript
@@ -484,13 +473,10 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Pie Chart Selection
+The pie chart supports slice selection by mouse click as the default behavior. You can determine the selected slices by using the `SelectedItems` property. The selected slices are then highlighted.
-The pie chart supports slice selection by mouse click as the default behavior. You can determine the selected slices by using the [`selectedItems`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpiechartcomponent.html#selectedItems) property. The selected slices are then highlighted.
-
-There is a property called [`selectionMode`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpiechartcomponent.html#selectionMode) which is how you set what mode you want the pie chart to use. The default value is `Single`. In order to disable selection, set the property to `Manual`.
+There is a property called `SelectionMode` which is how you set what mode you want the pie chart to use. The default value is `Single`. In order to disable selection, set the property to `Manual`.
The pie chart supports three different selection modes.
@@ -499,15 +485,14 @@ The pie chart supports three different selection modes.
- Manual - When the mode is set to Manual, selection is disabled.
The pie chart has 4 events associated with selection:
-
- SelectedItemChanging
- SelectedItemChanged
- SelectedItemsChanging
- SelectedItemsChanged
-The events that end in “Changing” are cancelable events which means you can stop the selection of a slice by setting the event argument property `Cancel` to true. When set to true the associated property will not update and the slice will not become selected. This is useful for scenarios where you want to keep users from being able to select certain slices based on the data inside it.
+The events that end in "Changing" are cancelable events which means you can stop the selection of a slice by setting the event argument property `Cancel` to true. When set to true the associated property will not update and the slice will not become selected. This is useful for scenarios where you want to keep users from being able to select certain slices based on the data inside it.
-For scenarios where you click on the Others slice, the pie chart will return an object called [`IgxPieSliceOthersContext`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpiesliceotherscontext.html). This object contains a list of the data items contained within the Others slice.
+For scenarios where you click on the Others slice, the pie chart will return an object called `IgxPieSliceOthersContext`. This object contains a list of the data items contained within the Others slice.
```typescript
import { NgModule } from "@angular/core";
@@ -607,10 +592,7 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Pie Chart Animation
-
You can animate the pie chart smoothly by setting the `radiusFactor` property, which will scale the chart's radius. Also set the `startAngle` property to angle the chart such that it keep increasing the chart angle while rotating.
In the code below, the radiusFactor is increasing the chart by 0.25% of the size, and startAngle is rotating the chart by 1 degree. When radiusFactor and startAngle reached to its maximum limit the animation is stopped by reset the animation flag and clear the interval.
@@ -758,10 +740,7 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Pie Chart Styling
-
Once our pie chart is created, we may want to make some further styling customizations such as a change of the colors for the slices of the chart, as demonstrated below:
```typescript
@@ -868,10 +847,7 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Radial Pie Chart
-
The Radial Pie Chart belongs to a group of Radial Charts and uses belongs to a group of radial charts and uses pie slices that extend from the center of chart towards locations of data points. This chart type takes concepts of categorizing multiple series of data points and wraps them around a circular axis rather than stretching data points along a horizontal line.
```typescript
@@ -1026,8 +1002,6 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Additional Resources
- [Donut Chart](donut-chart.md)
@@ -1035,17 +1009,4 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
- [Radial Chart](radial-chart.md)
## API References
-
-The following table lists API members mentioned in the above sections:
-
-- [`legendItemBadgeTemplate`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpiechartcomponent.html#legendItemBadgeTemplate)
-- [`legendItemTemplate`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpiechartcomponent.html#legendItemTemplate)
-- [`legendLabelMemberPath`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpiechartcomponent.html#legendLabelMemberPath)
-- [`othersCategoryThreshold`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpiechartcomponent.html#othersCategoryThreshold)
-- [`othersCategoryType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpiechartcomponent.html#othersCategoryType)
-- [`selectionMode`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpiechartcomponent.html#selectionMode)
-
-|Chart Type | Control Name | API Members |
-|-----------------|----------------|------------ |
-|Pie Chart | [`IgxPieChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpiechartcomponent.html) | `PieChart` |
-|Radial Pie Chart | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxRadialPieSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxradialpieseriescomponent.html) |
+`IgxPieChart`
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-point-chart.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-point-chart.md
index 6095fc672..26e51a1f6 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-point-chart.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-point-chart.md
@@ -1,21 +1,20 @@
---
-title: Angular Point Chart | Data Visualization | Infragistics
-_description: Infragistics' Angular Point Chart
-_keywords: Angular Charts, Point Chart, Infragistics
-_license: commercial
+title: "Angular Point Chart | Data Visualization | Infragistics"
+description: Infragistics' Angular Point Chart
+keywords: "Angular Charts, Point Chart, Infragistics"
+license: commercial
mentionedTypes: ["DomainChart", "CategoryChart", "CategoryChartType", "Legend", "Series"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Point Chart renders a collection of points."
_tocName: Point Chart
_premium: true
---
-
# Angular Point Chart
-
The Ignite UI for Angular Point Chart renders a collection of points. Values are represented on the y-axis (labels on the left side) and categories are displayed on the x-axis (bottom labels). These charts emphasize the amount of change over a period of time or compare multiple items as well as the relationship of parts of a whole by displaying the total of the plotted values.
## Angular Point Chart Example
-
-You can create the Angular Point Chart in the [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) control by binding your data to `ItemsSource` property and setting [`chartType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html#chartType) property to **Point** enum, as shown in the example below.
+You can create the Angular Point Chart in the `IgxCategoryChart` control by binding your data to `DataSource` property and setting `CategoryChart.ChartType` property to **Point** enum, as shown in the example below.
```typescript
import { NgModule } from "@angular/core";
@@ -121,10 +120,7 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Point Chart with Single Series
-
In the following example, the Angular Point Chart plots a single data source by automatically selecting numeric data column for y-axis and non-numeric data column for x-axis.
```typescript
@@ -221,11 +217,8 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Point Chart with Multiple Series
-
-Since the Angular Point Chart allows you to combine multiple series and compare or see how they change over time, let’s see how easy it is to achieve this. All we need to do is bind to a data source containing the data for China and the USA, and the point chart will automatically update to fit the additional data.
+Since the Angular Point Chart allows you to combine multiple series and compare or see how they change over time, let's see how easy it is to achieve this. All we need to do is bind to a data source containing the data for China and the USA, and the point chart will automatically update to fit the additional data.
```typescript
import { NgModule } from "@angular/core";
@@ -331,10 +324,7 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Point Chart Styling
-
Once the Angular Point Chart is set up, we may want to make some further styling customizations such as change the markers and its outlines, brushes and thickness.
```typescript
@@ -445,11 +435,8 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Advanced Types of Point Charts
-
-You can create more advanced types of Angular Point Charts using the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control instead of [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) control by following these topics:
+You can create more advanced types of Angular Point Charts using the `IgxDataChart` control instead of `IgxCategoryChart` control by following these topics:
- [Scatter Bubble Chart](bubble-chart.md)
- [Scatter Marker Chart](scatter-chart.md#angular-scatter-marker-chart)
@@ -464,13 +451,5 @@ You can find more information about related chart features in these topics:
- [Chart Markers](../features/chart-markers.md)
## API References
-
-The following table lists API members mentioned in the above sections:
-
-- [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html)
-- [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html)
-- [`chartType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html#chartType)
-- [`markerTypes`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdomainchartcomponent.html#markerTypes)
-- [`markerOutlines`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdomainchartcomponent.html#markerOutlines)
-- [`markerBrushes`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdomainchartcomponent.html#markerBrushes)
-- [`markerThickness`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdomainchartcomponent.html#markerThickness)
+`IgxCategoryChart`
+`IgxDataChart`
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-polar-chart.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-polar-chart.md
index 88d0a9af4..e43e94052 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-polar-chart.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-polar-chart.md
@@ -1,21 +1,20 @@
---
-title: Angular Polar Chart | Data Visualization | Infragistics
-_description: Infragistics' Angular Polar Chart
-_keywords: Angular Charts, Polar Chart, Infragistics
-_license: commercial
-mentionedTypes: ["XamDataChart", "PolarAreaSeries", "Series"]
+title: "Angular Polar Chart | Data Visualization | Infragistics"
+description: Infragistics' Angular Polar Chart
+keywords: "Angular Charts, Polar Chart, Infragistics"
+license: commercial
+mentionedTypes: ["DataChart", "PolarAreaSeries", "Series"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Polar Chart uses the polar coordinate system (angle, radius) instead of the Cartesian coordinate system (x, y) to plot data in chart."
_tocName: Polar Chart
_premium: true
---
-
# Angular Polar Chart
-
The Ignite UI for Angular Polar Chart uses the polar coordinate system (angle, radius) instead of the Cartesian coordinate system (x, y) to plot data in chart. In other words, Polar Chart takes concepts of [Scatter Series](scatter-chart.md) and wrap them around a circle rather than stretching data points horizontally. It is often used to plot scientific data (e.g. wind direction and speed, direction, and strength of magnetic field, location of objects in solar system), and can highlight the deviation of collected data from predicted results.
## Angular Polar Area Chart
-
-The Polar Area Chart renders using a collection of polygons connecting data points and it uses the same concepts of data plotting as the [Category Area Chart](area-chart.md#angular-area-chart-example) with the difference that the visualization wraps data points around a circle rather than stretching them horizontally. You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxPolarAreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpolarareaseriescomponent.html), as shown in the example below:
+The Polar Area Chart renders using a collection of polygons connecting data points and it uses the same concepts of data plotting as the [Category Area Chart](area-chart.md#angular-area-chart-example) with the difference that the visualization wraps data points around a circle rather than stretching them horizontally. You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxPolarAreaSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -176,11 +175,8 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Polar Spline Area Chart
-
-The Polar Spline Area Chart renders also as a collection of polygons but they have curved splines connecting data points instead of straight lines like [Polar Area Chart](polar-chart.md#angular-polar-area-chart) does. You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxPolarAreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpolarareaseriescomponent.html), as shown in the example below:
+The Polar Spline Area Chart renders also as a collection of polygons but they have curved splines connecting data points instead of straight lines like [Polar Area Chart](polar-chart.md#angular-polar-area-chart) does. You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxPolarAreaSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -330,11 +326,8 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Polar Marker Chart
-
-The Polar Marker Chart renders using a collection of markers representing data points in polar (angle/radius) coordinate system. This chart uses the same concepts of data plotting as the [Scatter Marker Chart](scatter-chart.md#angular-scatter-marker-chart) with the difference that the visualization wraps data points around a circle rather than stretching them horizontally. You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxPolarScatterSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpolarscatterseriescomponent.html), as shown in the example below:
+The Polar Marker Chart renders using a collection of markers representing data points in polar (angle/radius) coordinate system. This chart uses the same concepts of data plotting as the [Scatter Marker Chart](scatter-chart.md#angular-scatter-marker-chart) with the difference that the visualization wraps data points around a circle rather than stretching them horizontally. You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxPolarScatterSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -480,11 +473,8 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Polar Line Chart
-
-The Polar Line Chart renders using a collection of straight lines connecting data points in polar (angle/radius) coordinate system. This chart uses the same concepts of data plotting as the [Scatter Line Chart](scatter-chart.md#angular-scatter-line-chart) with the difference that the visualization wraps data points around a circle rather than stretching them horizontally. You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxPolarLineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpolarlineseriescomponent.html), as shown in the example below:
+The Polar Line Chart renders using a collection of straight lines connecting data points in polar (angle/radius) coordinate system. This chart uses the same concepts of data plotting as the [Scatter Line Chart](scatter-chart.md#angular-scatter-line-chart) with the difference that the visualization wraps data points around a circle rather than stretching them horizontally. You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxPolarLineSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -643,11 +633,8 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Polar Spline Chart
-
-The Polar Spline Chart renders using a collection of curved splines connecting data points in polar (angle/radius) coordinate system. This Chart uses the same concepts of data plotting as the [Scatter Spline Chart](scatter-chart.md#angular-scatter-spline-chart) with the difference that the visualization wraps data points around a circle rather than stretching them horizontally. You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxPolarSplineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpolarsplineseriescomponent.html), as shown in the example below:
+The Polar Spline Chart renders using a collection of curved splines connecting data points in polar (angle/radius) coordinate system. This Chart uses the same concepts of data plotting as the [Scatter Spline Chart](scatter-chart.md#angular-scatter-spline-chart) with the difference that the visualization wraps data points around a circle rather than stretching them horizontally. You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxPolarSplineSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -795,11 +782,8 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Polar Chart Styling
-
-Once our polar chart is created, we may want to make some further styling customizations such as a change of the line colors, marker types, or outline colors of those markers. You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxPolarAreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpolarareaseriescomponent.html), as shown in the example below:
+Once our polar chart is created, we may want to make some further styling customizations such as a change of the line colors, marker types, or outline colors of those markers. You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxPolarAreaSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -959,10 +943,7 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Additional Resources
-
You can find more information about related chart types in these topics:
- [Area Chart](area-chart.md)
@@ -974,17 +955,11 @@ You can find more information about related chart types in these topics:
- [Spline Chart](spline-chart.md)
## API References
-
-The following table lists API members mentioned in the above sections:
-
-- [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html)
-- [`IgxPolarAreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpolarareaseriescomponent.html)
-- [`IgxPolarLineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpolarlineseriescomponent.html)
-- [`IgxPolarSplineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpolarsplineseriescomponent.html)
-- [`IgxPolarSplineAreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpolarsplineareaseriescomponent.html)
-- [`IgxPolarScatterSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpolarscatterseriescomponent.html)
-- `ItemsSource`
-- [`angleMemberPath`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpolarareaseriescomponent.html#angleMemberPath)
-- [`radiusMemberPath`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxpolarareaseriescomponent.html#radiusMemberPath)
-- [`IgxNumericAngleAxisComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxnumericangleaxiscomponent.html)
-- [`IgxNumericRadiusAxisComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxnumericradiusaxiscomponent.html)
+`IgxDataChart`
+`IgxPolarAreaSeries`
+`IgxPolarLineSeries`
+`IgxPolarSplineSeries`
+`IgxPolarSplineAreaSeries`
+`IgxPolarScatterSeries`
+`IgxNumericAngleAxis`
+`IgxNumericRadiusAxis`
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-radial-chart.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-radial-chart.md
index 2325aa4fe..4bd419577 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-radial-chart.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-radial-chart.md
@@ -1,21 +1,22 @@
---
-title: Angular Radial Chart | Data Visualization | Infragistics
-_description: Infragistics' Angular Radial Chart
-_keywords: Angular Charts, Radial Chart, Infragistics
-_license: commercial
-mentionedTypes: ["XamDataChart", "RadialLineSeries", "Series"]
+title: "Angular Radial Chart | Data Visualization | Infragistics"
+description: Infragistics' Angular Radial Chart
+keywords: "Angular Charts, Radial Chart, Infragistics"
+license: commercial
+mentionedTypes: ["DataChart", "RadialLineSeries", "Series"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Radial Chart takes data and render it as collection of data points wrapped around a circle (rather than stretching along a horizontal line)."
_tocName: Radial Chart
_premium: true
---
-
# Angular Radial Chart
The Ignite UI for Angular Radial Chart takes data and render it as collection of data points wrapped around a circle (rather than stretching along a horizontal line). Radial Chart is also mapping a list of categories from the minimum to the maximum of the extent of the chart, and support the category grouping mechanisms.
## Angular Radial Area Chart
-The Angular Radial Area Chart has a shape of a filled polygon that is bound by a collection of straight lines connecting data points. This chart type uses the same concept of data plotting as the [Area Chart](area-chart.md), but wraps the data points around a circular axis rather than stretching them horizontally. You can create this type of chart in [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to [`IgxRadialAreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxradialareaseriescomponent.html), as shown in the example below.
+The Angular Radial Area Chart has a shape of a filled polygon that is bound by a collection of straight lines connecting data points. This chart type uses the same concept of data plotting as the [Area Chart](area-chart.md), but wraps the data points around a circular axis rather than stretching them horizontally. You can create this type of chart in `IgxDataChart` control by binding your data to `IgxRadialAreaSeries`, as shown in the example below.
```typescript
import { NgModule } from "@angular/core";
@@ -171,11 +172,9 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Radial Column Chart
-The Radial Column Chart is visualized by using a collection of rectangles that extend from the center of the chart toward the locations of data points. This utilizes the same concepts of data plotting as the [Column Chart](column-chart.md), but wraps data points around a circle rather than stretching them horizontally. You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxRadialColumnSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxradialcolumnseriescomponent.html), as shown in the example below:
+The Radial Column Chart is visualized by using a collection of rectangles that extend from the center of the chart toward the locations of data points. This utilizes the same concepts of data plotting as the [Column Chart](column-chart.md), but wraps data points around a circle rather than stretching them horizontally. You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxRadialColumnSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -329,11 +328,9 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Radial Line Chart
-The Angular Radial Line Chart has renders as a collection of straight lines connecting data points. This chart type uses the same concept of data plotting as the [Line Chart](line-chart.md), but wraps the data points around a circular axis rather than stretching them horizontally. You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to [`IgxRadialLineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxradiallineseriescomponent.html), as shown in the example below:
+The Angular Radial Line Chart has renders as a collection of straight lines connecting data points. This chart type uses the same concept of data plotting as the [Line Chart](line-chart.md), but wraps the data points around a circular axis rather than stretching them horizontally. You can create this type of chart in the `IgxDataChart` control by binding your data to `IgxRadialLineSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -489,11 +486,9 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Radial Pie Chart
-The Radial Pie Chart uses pie slices that extend from the center of chart towards locations of data points. This chart type takes concepts of categorizing multiple series of data points and wraps them around a circular axis rather than stretching data points along a horizontal line. You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxRadialPieSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxradialpieseriescomponent.html), as shown in the example below:
+The Radial Pie Chart uses pie slices that extend from the center of chart towards locations of data points. This chart type takes concepts of categorizing multiple series of data points and wraps them around a circular axis rather than stretching data points along a horizontal line. You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxRadialPieSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -647,11 +642,9 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Radial Chart Styling
-Once our radial chart is created, we may want to make some further styling customizations such as a change of the line colors, marker types, or outline colors of those markers. This example demonstrates how to customize styling in [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control.
+Once our radial chart is created, we may want to make some further styling customizations such as a change of the line colors, marker types, or outline colors of those markers. This example demonstrates how to customize styling in `IgxDataChart` control.
```typescript
import { NgModule } from "@angular/core";
@@ -805,13 +798,9 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Radial Chart Settings
-In addition, the labels can be configured to appear near or wide from the chart. This can be configured with the `LabelMode` property for the [`IgxCategoryAngleAxisComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategoryangleaxiscomponent.html).
-
-
+In addition, the labels can be configured to appear near or wide from the chart. This can be configured with the `LabelMode` property for the `IgxCategoryAngleAxis`.
## Additional Resources
@@ -825,16 +814,10 @@ You can find more information about related chart types in these topics:
## API References
-The following table lists API members mentioned in the above sections:
-
-- [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html)
-- [`IgxRadialAreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxradialareaseriescomponent.html)
-- [`IgxRadialColumnSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxradialcolumnseriescomponent.html)
-- [`IgxRadialLineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxradiallineseriescomponent.html)
-- [`IgxRadialPieSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxradialpieseriescomponent.html)
-- `ItemsSource`
-- `AngleAxisName`
-- `ValueAxisName`
-- [`valueMemberPath`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxradiallineseriescomponent.html#valueMemberPath)
-- [`IgxCategoryAngleAxisComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategoryangleaxiscomponent.html)
-- [`IgxNumericRadiusAxisComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxnumericradiusaxiscomponent.html)
+`IgxDataChart`
+`IgxRadialAreaSeries`
+`IgxRadialColumnSeries`
+`IgxRadialLineSeries`
+`IgxRadialPieSeries`
+`IgxCategoryAngleAxis`
+`IgxNumericRadiusAxis`
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-scatter-chart.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-scatter-chart.md
index 1e91b7b56..6767daacc 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-scatter-chart.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-scatter-chart.md
@@ -1,21 +1,22 @@
---
-title: Angular Scatter Chart | Data Visualization | Infragistics
-_description: Infragistics' Angular Scatter Chart
-_keywords: Angular Charts, Scatter Chart, Infragistics
-_license: commercial
-mentionedTypes: ["XamDataChart", "ScatterSeries", "ScatterLineSeries", "ScatterSplineSeries", "HighDensityScatterSeries", "ScatterAreaSeries", "ScatterContourSeries", "Series"]
+title: "Angular Scatter Chart | Data Visualization | Infragistics"
+description: Infragistics' Angular Scatter Chart
+keywords: "Angular Charts, Scatter Chart, Infragistics"
+license: commercial
+mentionedTypes: ["DataChart", "ScatterSeries", "ScatterLineSeries", "ScatterSplineSeries", "HighDensityScatterSeries", "ScatterAreaSeries", "ScatterContourSeries", "Series"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Scatter Chart belongs to a group of charts that show the relationship among items in distinct series of data or to plot data items using numeric x and y coordinates."
_tocName: Scatter Chart
_premium: true
---
-
# Angular Scatter Charts
The Ignite UI for Angular Scatter Chart belongs to a group of charts that show the relationship among items in distinct series of data or to plot data items using numeric x and y coordinates. These charts draw attention to uneven intervals or clusters of data. They are often used to plot scientific data, and can highlight the deviation of collected data from predicted results. Also, you can use them to organize data chronologically (even if the data is not in chronological order).
## Angular Scatter Marker Chart
-Angular Scatter Marker Chart renders as a collection of markers, each having a pair of numeric X/Y values that determines its location in the Cartesian coordinate system. You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxScatterSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxscatterseriescomponent.html), as shown in the example below:
+Angular Scatter Marker Chart renders as a collection of markers, each having a pair of numeric X/Y values that determines its location in the Cartesian coordinate system. You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxScatterSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -172,11 +173,9 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Scatter Line Chart
-Angular Scatter Line Chart renders as a collection of markers connected by a straight lines, each having a pair of numeric X/Y values that determines its location in the Cartesian coordinate system. You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxScatterLineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxscatterlineseriescomponent.html), as shown in the example below:
+Angular Scatter Line Chart renders as a collection of markers connected by a straight lines, each having a pair of numeric X/Y values that determines its location in the Cartesian coordinate system. You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxScatterLineSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -342,11 +341,9 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Scatter Spline Chart
-Angular Scatter Spline Chart renders as a collection of markers connected by a curved spline, each having a pair of numeric X/Y values that determines its location in the Cartesian coordinate system. You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxScatterSplineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxscattersplineseriescomponent.html), as shown in the example below:
+Angular Scatter Spline Chart renders as a collection of markers connected by a curved spline, each having a pair of numeric X/Y values that determines its location in the Cartesian coordinate system. You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxScatterSplineSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -512,11 +509,9 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Scatter High Density Chart
-Use the Angular Scatter High Density (HD) Chart to bind and show scatter data ranging from thousands to millions of data points with very little loading time. Due to this chart type being designed for such a large amount of points, it is visualized as tiny dots as opposed to full sized markers, and displays areas with the most data using a higher color density representing a cluster of data points. You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxHighDensityScatterSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxhighdensityscatterseriescomponent.html), as shown in the example below:
+Use the Angular Scatter High Density (HD) Chart to bind and show scatter data ranging from thousands to millions of data points with very little loading time. Due to this chart type being designed for such a large amount of points, it is visualized as tiny dots as opposed to full sized markers, and displays areas with the most data using a higher color density representing a cluster of data points. You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxHighDensityScatterSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -649,11 +644,9 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Scatter Area Chart
-Angular Scatter Area Chart draws a colored surface based on a triangulation of X and Y data with a numeric data value assigned to each point. This chart is useful for rendering heat maps, magnetic field strength or Wi-Fi strength in an office. You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxScatterAreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxscatterareaseriescomponent.html), as shown in the example below:
+Angular Scatter Area Chart draws a colored surface based on a triangulation of X and Y data with a numeric data value assigned to each point. This chart is useful for rendering heat maps, magnetic field strength or Wi-Fi strength in an office. You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxScatterAreaSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -820,11 +813,9 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Scatter Contour Chart
-Angular Scatter Contour Chart draws colored contour lines based on a triangulation of X and Y data with a numeric data value assigned to each point. This chart is useful for rendering heat maps, magnetic field strength or Wi-Fi strength in an office. You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxScatterContourSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxscattercontourseriescomponent.html), as shown in the example below:
+Angular Scatter Contour Chart draws colored contour lines based on a triangulation of X and Y data with a numeric data value assigned to each point. This chart is useful for rendering heat maps, magnetic field strength or Wi-Fi strength in an office. You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxScatterContourSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -948,8 +939,6 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Additional Resources
You can find more information about related chart types in these topics:
@@ -961,14 +950,13 @@ You can find more information about related chart types in these topics:
- [Shape Chart](shape-chart.md)
## API References
-
The following table lists API members mentioned in the above sections:
-|Chart Type | Control Name | API Members |
-|----------------------------|----------------|------------------------ |
-|Scatter Marker | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxScatterSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxscatterseriescomponent.html) |
-|Scatter Line | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxScatterLineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxscatterlineseriescomponent.html) |
-|Scatter Spline | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxScatterSplineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxscattersplineseriescomponent.html) |
-|High Density Scatter | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxHighDensityScatterSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxhighdensityscatterseriescomponent.html) |
-|Scatter Area | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxScatterAreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxscatterareaseriescomponent.html) |
-|Scatter Contour | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxScatterContourSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxscattercontourseriescomponent.html) |
+ |Chart Type | Control Name | API Members |
+ |----------------------------|----------------|------------------------ |
+ |Scatter Marker | `IgxDataChart` | `IgxScatterSeries` |
+ |Scatter Line | `IgxDataChart` | `IgxScatterLineSeries` |
+ |Scatter Spline | `IgxDataChart` | `IgxScatterSplineSeries` |
+ |High Density Scatter | `IgxDataChart` | `IgxHighDensityScatterSeries` |
+ |Scatter Area | `IgxDataChart` | `IgxScatterAreaSeries` |
+ |Scatter Contour | `IgxDataChart` | `IgxScatterContourSeries` |
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-shape-chart.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-shape-chart.md
index fa83a4ba4..4ba703718 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-shape-chart.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-shape-chart.md
@@ -1,23 +1,24 @@
---
title: Angular Shape Chart | Data Visualization | Infragistics
-_description: Infragistics' Angular Shape Chart
-_keywords: Angular Charts, Shape Chart, Infragistics
-_license: commercial
-mentionedTypes: ["XamDataChart", "ScatterPolygonSeries", "ScatterPolylineSeries", "Series", "GeographicShapeSeriesBase"]
+description: Infragistics' Angular Shape Chart
+keywords: Angular Charts, Shape Chart, Infragistics
+license: commercial
+
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Shape Charts are a group of charts that take array of shapes (array or arrays of X/Y points) and render them as collection of polygons or polylines in Cartesian (x, y) coordinate system."
_tocName: Shape Chart
_premium: true
---
-
# Angular Shape Charts
The Ignite UI for Angular Shape Charts are a group of charts that take array of shapes (array or arrays of X/Y points) and render them as collection of polygons or polylines in Cartesian (x, y) coordinate system. They are often used highlight regions in scientific data or they can be used to plot diagrams, blueprints, or even floor plan of buildings.
## Angular Scatter Polygon Chart
-The Angular Scatter Polygon Chart renders an array or array of arrays of polygons in the Cartesian (x, y) coordinate system using [`IgxScatterPolygonSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxscatterpolygonseriescomponent.html) in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control. This chart can be used to filled shapes of plot diagrams, blueprints, or even the floor plan of buildings.
+The Angular Scatter Polygon Chart renders an array or array of arrays of polygons in the Cartesian (x, y) coordinate system using `IgxScatterPolygonSeries` in the `IgxDataChart` control. This chart can be used to filled shapes of plot diagrams, blueprints, or even the floor plan of buildings.
-You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxScatterPolygonSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxscatterpolygonseriescomponent.html), as shown in the example below:
+You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxScatterPolygonSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -192,13 +193,11 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Scatter Polyline Chart
-The Angular Scatter Polyline Chart renders an array or array of arrays of polylines in the Cartesian (x, y) coordinate system using [`IgxScatterPolylineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxscatterpolylineseriescomponent.html) in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control. This chart can be used to outlines of plot diagrams, blueprints, or even the floor plan of buildings. Also, it can visualizes complex relationships between a large amount of elements.
+The Angular Scatter Polyline Chart renders an array or array of arrays of polylines in the Cartesian (x, y) coordinate system using `IgxScatterPolylineSeries` in the `IgxDataChart` control. This chart can be used to outlines of plot diagrams, blueprints, or even the floor plan of buildings. Also, it can visualizes complex relationships between a large amount of elements.
-You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxScatterPolylineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxscatterpolylineseriescomponent.html), as shown in the example below:
+You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxScatterPolylineSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -372,26 +371,17 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Additional Resources
You can find more information about related chart types in these topics:
-- [Area Chart](area-chart.md)
-- [Line Chart](line-chart.md)
-- [Scatter Chart](scatter-chart.md)
+- [Area Chart](./area-chart.md)
+- [Line Chart](./line-chart.md)
+- [Scatter Chart](./scatter-chart.md)
## API References
-
-The following table lists API members mentioned in the above sections:
-
-- [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html)
-- [`IgxScatterPolygonSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxscatterpolygonseriescomponent.html)
-- [`IgxScatterPolylineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxscatterpolylineseriescomponent.html)
-- `ItemsSource`
-- [`shapeMemberPath`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxscatterpolygonseriescomponent.html#shapeMemberPath)
-- [`IgxNumericXAxisComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxnumericxaxiscomponent.html)
-- [`IgxNumericYAxisComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxnumericyaxiscomponent.html)
-- `YAxisName`
-- `XAxisName`
+`IgxDataChart`
+`IgxScatterPolygonSeries`
+`IgxScatterPolylineSeries`
+`IgxNumericXAxis`
+`IgxNumericYAxis`
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-sparkline-chart.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-sparkline-chart.md
index 3bfada5f2..8a3841307 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-sparkline-chart.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-sparkline-chart.md
@@ -1,21 +1,22 @@
---
-title: Angular Sparkline | Data Visualization Tools | Infragistics
-_description: Use Infragistics' Angular sparkline chart control to render in a small scale layout such as a grid cell or stand alone. Learn about the Ignite UI for Angular sparkline chart configurable elements!
-_keywords: Sparkline, Ignite UI for Angular, Infragistics, WinLoss, Area, Column
-_license: commercial
-mentionedTypes: ["XamSparkline", "SparklineDisplayType", "TrendLineType"]
+title: "Angular Sparkline | Data Visualization Tools | Infragistics"
+description: Use Infragistics' Angular sparkline chart control to render in a small scale layout such as a grid cell or stand alone. Learn about the Ignite UI for Angular sparkline chart configurable elements!
+keywords: Sparkline, Ignite UI for Angular, Infragistics, WinLoss, Area, Column
+license: commercial
+mentionedTypes: ["Sparkline", "SparklineDisplayType", "TrendLineType"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Sparkline is a lightweight charting control."
_tocName: Sparkline Chart
_premium: true
---
-
# Angular Sparkline
-The Ignite UI for Angular Sparkline is a lightweight charting control. It is intended for rendering within a small-scale layout such as within a grid cell but can also be rendered alone. The [`Sparkline`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_excel.sparkline.html) has several visual elements and corresponding features that can be configured and customized such as the chart type, markers, ranges, trendlines, unknown value plotting, and tooltips.
+The Ignite UI for Angular Sparkline is a lightweight charting control. It is intended for rendering within a small-scale layout such as within a grid cell but can also be rendered alone. The `IgxSparkline` has several visual elements and corresponding features that can be configured and customized such as the chart type, markers, ranges, trendlines, unknown value plotting, and tooltips.
## Angular Sparkline Example
-The following example shows all the different types of [`Sparkline`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_excel.sparkline.html) available. The type is defined by setting the [`displayType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxsparklinecomponent.html#displayType) property. If the [`displayType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxsparklinecomponent.html#displayType) property is not specified, then by default, the [`Line`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.sparklinedisplaytype.html#Line) type is displayed.
+The following example shows all the different types of `IgxSparkline` available. The type is defined by setting the `DisplayType` property. If the `DisplayType` property is not specified, then by default, the `Line` type is displayed.
```typescript
import { NgModule } from "@angular/core";
@@ -118,48 +119,40 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
-Like this sample? Get access to our complete Angular toolkit and start building your own apps in minutes. Download it for free.
+Like this sample? Get access to our complete Angular toolkit and start building your own apps in minutes. Download it for free.
## Sparkline Recommendations
### Is the Sparkline chart right for your project?
-
The primary benefit of the Sparkline control compared to other charting controls is that it can render in a limited space such as a grid cell with all its visual elements shown.
The Angular Sparkline has the ability to mark the data points with elliptical icons to indicate the highest, lowest, first, last, and negative values. The markers can be customized with a desired shape, color, or image.
### Sparkline Use Cases
-
- You have a compact space to display a chart in.
- You want to show trends in a series of values, such as weekly revenue.
### Sparkline Best Practices
-
- Always start the Y-Axis (left or right axis) at 0 so data comparison is accurate.
- Order time-series data from left to right.
- Use visual attributes like solid lines to show a series of data.
### When Not to Use Sparkline
-
- You need to analyze the data in detail.
- You need to display every label of the data points. It only allows showing high and low values on the Y-Axis, and first and last values on the X-Axis.
### Sparkline Data Structure
-
- It requires one-dimensional data.
- The data set must contain at least two numeric fields.
- The text in the data source fields can be used to display the first and last label on the X-Axis.
## Sparkline Types
+The Angular Sparkline supports the following types of sparklines by setting the `DisplayType` property accordingly:
-The Angular Sparkline supports the following types of sparklines by setting the [`displayType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxsparklinecomponent.html#displayType) property accordingly:
-
-- [`Line`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.sparklinedisplaytype.html#Line): Displays the line chart type of Sparkline with numeric data, connecting the data points with line segments. At least two data points must be supplied to visualize the data in Sparkline.
-- [`Area`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.sparklinedisplaytype.html#Area): Displays the Area chart type of Sparkline with numeric data. This is like line type with additional steps of closing the area after each line is drawn. At least two data points must be supplied to visualize the data in Sparkline.
-- [`Column`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.sparklinedisplaytype.html#Column): Displays the Column chart type of Sparkline with numeric data. Some may refer to it as vertical bars. This type can render a single data point, but it would require specifying the minimum value range property (minimum) in Sparkline so the supplied single data point can be visible, otherwise the value will be treated as the minimum value and will not be visible.
-- [`WinLoss`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.sparklinedisplaytype.html#WinLoss): This type is similar in its visual appearance to Column chart type, in which the value of each column is equal to either the positive maximum (for positive values) or the negative minimum (for negative value) of the data set. The idea is to indicate a win or loss scenario. For the Win/Loss chart to display properly, the data set must have both positive and negative values. If the WinLoss sparkline is bound to the same data as the other types such as the Line type, which can be bound to a collection of numeric values, then the Angular Sparkline will select two values from the collection - the highest and the lowest - and will render the sparkline based upon those values.
+- `Line`: Displays the line chart type of Sparkline with numeric data, connecting the data points with line segments. At least two data points must be supplied to visualize the data in Sparkline.
+- `Area`: Displays the Area chart type of Sparkline with numeric data. This is like line type with additional steps of closing the area after each line is drawn. At least two data points must be supplied to visualize the data in Sparkline.
+- `Column`: Displays the Column chart type of Sparkline with numeric data. Some may refer to it as vertical bars. This type can render a single data point, but it would require specifying the minimum value range property (minimum) in Sparkline so the supplied single data point can be visible, otherwise the value will be treated as the minimum value and will not be visible.
+- `WinLoss`: This type is similar in its visual appearance to Column chart type, in which the value of each column is equal to either the positive maximum (for positive values) or the negative minimum (for negative value) of the data set. The idea is to indicate a win or loss scenario. For the Win/Loss chart to display properly, the data set must have both positive and negative values. If the WinLoss sparkline is bound to the same data as the other types such as the Line type, which can be bound to a collection of numeric values, then the Angular Sparkline will select two values from the collection - the highest and the lowest - and will render the sparkline based upon those values.
```typescript
import { NgModule } from "@angular/core";
@@ -262,11 +255,9 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Markers
-The Angular Sparkline allows you to show markers as circular-colored icons on your series to indicate the individual data points based on X/Y coordinates. Markers can be set on sparklines of display types of [`Line`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.sparklinedisplaytype.html#Line), [`Area`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.sparklinedisplaytype.html#Area), and [`Column`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.sparklinedisplaytype.html#Column). The [`WinLoss`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.sparklinedisplaytype.html#WinLoss) type of sparkline does not currently accept markers. By default, markers are not displayed, but they can be enabled by setting the corresponding marker visibility property.
+The Angular Sparkline allows you to show markers as circular-colored icons on your series to indicate the individual data points based on X/Y coordinates. Markers can be set on sparklines of display types of `Line`, `Area`, and `Column`. The `WinLoss` type of sparkline does not currently accept markers. By default, markers are not displayed, but they can be enabled by setting the corresponding marker visibility property.
Markers in the sparkline can be placed in any combination of the following locations:
@@ -277,7 +268,7 @@ Markers in the sparkline can be placed in any combination of the following locat
- `Last`: Display a marker on the last data point in the sparkline.
- `Negative`: Display markers on the negative data points plotted in the sparkline.
-All of the markers mentioned above can be customized using the related marker type's property in aspects of color, visibility, and size. For example, the `Low` markers above will have properties [`lowMarkerBrush`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxsparklinecomponent.html#lowMarkerBrush), [`lowMarkerVisibility`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxsparklinecomponent.html#lowMarkerVisibility), and [`lowMarkerSize`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxsparklinecomponent.html#lowMarkerSize).
+All of the markers mentioned above can be customized using the related marker type's property in aspects of color, visibility, and size. For example, the `Low` markers above will have properties `LowMarkerBrush`, `LowMarkerVisibility`, and `LowMarkerSize`.
```typescript
import { NgModule } from "@angular/core";
@@ -482,21 +473,19 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Normal Range
The normal range feature of the Angular Sparkline is a horizontal stripe representing some pre-defined meaningful range when the data is being visualized. The normal range can be set as a shaded area outlined with the desired color.
-The normal range can be wider than the maximum data point or beyond, and it can also be as thin as the sparkline's [`Line`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.sparklinedisplaytype.html#Line) display type, to serve as a threshold indicator, for instance. The width of the normal range is determined by the following three properties, which serve as the minimum settings required for displaying the normal range:
+The normal range can be wider than the maximum data point or beyond, and it can also be as thin as the sparkline's `Line` display type, to serve as a threshold indicator, for instance. The width of the normal range is determined by the following three properties, which serve as the minimum settings required for displaying the normal range:
-- [`normalRangeVisibility`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxsparklinecomponent.html#normalRangeVisibility): Whether the normal range is visible.
-- [`normalRangeMaximum`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxsparklinecomponent.html#normalRangeMaximum): The bottom border of the range.
-- [`normalRangeMinimum`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxsparklinecomponent.html#normalRangeMinimum): The top border of the range.
+- `NormalRangeVisibility`: Whether the normal range is visible.
+- `NormalRangeMaximum`: The bottom border of the range.
+- `NormalRangeMinimum`: The top border of the range.
-By default, the normal range is not displayed. When enabled, the normal range shows up with a light gray color appearance, which can also be configured using the [`normalRangeFill`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxsparklinecomponent.html#normalRangeFill) property.
+By default, the normal range is not displayed. When enabled, the normal range shows up with a light gray color appearance, which can also be configured using the `NormalRangeFill` property.
-You can also configure whether to show the normal range in front of or behind the plotted series in your Angular Sparkline by setting the [`displayNormalRangeInFront`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxsparklinecomponent.html#displayNormalRangeInFront) property.
+You can also configure whether to show the normal range in front of or behind the plotted series in your Angular Sparkline by setting the `DisplayNormalRangeInFront` property.
```typescript
import { NgModule } from "@angular/core";
@@ -656,13 +645,11 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Trendlines
-The Angular Sparkline has support for a range of trendlines that display as another layer on top of the actual sparkline layer. To display a sparkline, you can use the [`trendLineType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxsparklinecomponent.html#trendLineType) property.
+The Angular Sparkline has support for a range of trendlines that display as another layer on top of the actual sparkline layer. To display a sparkline, you can use the [`IgxTrendLineType`](mcp:get_api_reference?platform=angular&component=TrendLineType) property.
-The trendlines are calculated according to the algorithm specified by the [`trendLineType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxsparklinecomponent.html#trendLineType) property using the values of the data the the chart is bound to.
+The trendlines are calculated according to the algorithm specified by the [`IgxTrendLineType`](mcp:get_api_reference?platform=angular&component=TrendLineType) property using the values of the data the the chart is bound to.
Trendlines can only be displayed one at a time and by default, the trendline is not displayed.
@@ -798,13 +785,11 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Unknown Value Interpolation
The Angular Sparkline can detect unknown values and render the space for unknown values through a specified interpolation algorithm. If your data contains null values and you do not use this feature, meaning no interpolation is specified, the unknown value will not be plotted.
-To plot the unknown values, you can set the [`unknownValuePlotting`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxsparklinecomponent.html#unknownValuePlotting) property of the Angular Sparkline. The sample below shows the differences between the values of the [`unknownValuePlotting`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxsparklinecomponent.html#unknownValuePlotting) property, allowing you to toggle it on or off using a checkbox:
+To plot the unknown values, you can set the `UnknownValuePlotting` property of the Angular Sparkline. The sample below shows the differences between the values of the `UnknownValuePlotting` property, allowing you to toggle it on or off using a checkbox:
```typescript
import { NgModule } from "@angular/core";
@@ -936,8 +921,6 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Sparkline in Data Grid
You can embed the Angular Sparkline in a template column of data grid or other UI controls that support templates. The following code example shows how to do this:
@@ -1083,19 +1066,9 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
You can find more information about related chart types in these topics:
-- [Area Chart](area-chart.md)
-- [Column Chart](column-chart.md)
-- [Line Chart](line-chart.md)
+- [Area Chart](./area-chart.md)
+- [Column Chart](./column-chart.md)
+- [Line Chart](./line-chart.md)
## API References
-
-The following is a list of API members mentioned in the above sections:
-
-- [`displayNormalRangeInFront`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxsparklinecomponent.html#displayNormalRangeInFront)
-- [`displayType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxsparklinecomponent.html#displayType)
-- [`lowMarkerBrush`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxsparklinecomponent.html#lowMarkerBrush)
-- [`lowMarkerSize`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxsparklinecomponent.html#lowMarkerSize)
-- [`lowMarkerVisibility`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxsparklinecomponent.html#lowMarkerVisibility)
-- [`normalRangeFill`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxsparklinecomponent.html#normalRangeFill)
-- [`unknownValuePlotting`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxsparklinecomponent.html#unknownValuePlotting)
-- [`IgxSparklineComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxsparklinecomponent.html)
+`IgxSparkline`
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-spline-chart.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-spline-chart.md
index f6c441c22..f538a534d 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-spline-chart.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-spline-chart.md
@@ -1,20 +1,21 @@
---
-title: Angular Spline Chart | Data Visualization | Infragistics
-_description: Infragistics' Angular Spline Chart
-_keywords: Angular Charts, Spline Chart, Infragistics
-_license: commercial
-mentionedTypes: ["DomainChart", "CategoryChart", "XamDataChart", "SplineSeries", "StackedSplineSeries", "Stacked100SplineSeries", "Series", "CategoryChartType"]
+title: "Angular Spline Chart | Data Visualization | Infragistics"
+description: Infragistics' Angular Spline Chart
+keywords: "Angular Charts, Spline Chart, Infragistics"
+license: commercial
+mentionedTypes: ["DomainChart", "CategoryChart", "DataChart", "SplineSeries", "StackedSplineSeries", "Stacked100SplineSeries", "Series", "CategoryChartType"]
+llms:
+ description: "The Ignite UI for Angular Spline Chart belongs to a group of Category Charts that render as a collection of points connected by smooth curves of spline."
_tocName: Spline Chart
_premium: true
---
-
# Angular Spline Chart
-The Ignite UI for Angular Spline Chart belongs to a group of Category Charts that render as a collection of points connected by smooth curves of spline. Values are represented on the y-axis and categories are displayed on the x-axis. Spline Chart emphasizes the amount of change over a period of time or compares multiple items as well as the relationship of parts to a whole by displaying the total of the plotted values. Spline Chart is identical to [Line Chart](line-chart.md) in all aspects except that line connecting data points has spline interpolation and smoothing for improved presentation of data.
+The Ignite UI for Angular Spline Chart belongs to a group of Category Charts that render as a collection of points connected by smooth curves of spline. Values are represented on the y-axis and categories are displayed on the x-axis. Spline Chart emphasizes the amount of change over a period of time or compares multiple items as well as the relationship of parts to a whole by displaying the total of the plotted values. Spline Chart is identical to [Line Chart](./line-chart.md) in all aspects except that line connecting data points has spline interpolation and smoothing for improved presentation of data.
## Angular Spline Chart Example
-The following example shows how to create Angular Spline Chart in the [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) control by binding your data and setting the [`chartType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html#chartType) property to [`Spline`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.categorycharttype.html#Spline) enum.
+The following example shows how to create Angular Spline Chart in the `IgxCategoryChart` control by binding your data and setting the `CategoryChart.ChartType` property to `Spline` enum.
```typescript
import { NgModule } from "@angular/core";
@@ -118,13 +119,11 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Spline Chart with Single Series
The Spline Chart is often used to show the change of value over time such as the amount of renewable electricity produced since 2009 over a ten-year period for Europe, as shown in the example below.
-You can create this type of chart in the [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) control by binding your data and setting the [`chartType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html#chartType) property to [`Spline`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.categorycharttype.html#Spline), as shown in the example below:
+You can create this type of chart in the `IgxCategoryChart` control by binding your data and setting the `CategoryChart.ChartType` property to `Spline`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -220,13 +219,11 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Spline Chart with Multiple Series
Since the Spline Chart allows you to combine multiple series and compare or see how they change over time. All we need to do is bind to a data source containing the data for China and the USA, and the chart will automatically update to fit the additional data.
-You can create this type of chart in the [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) control by binding your data and setting the [`chartType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html#chartType) property to [`Spline`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.categorycharttype.html#Spline), as shown in the example below:
+You can create this type of chart in the `IgxCategoryChart` control by binding your data and setting the `CategoryChart.ChartType` property to `Spline`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -330,13 +327,11 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Spline Chart Styling
If you need a Spline Chart with more features such as composite other series, you can configure the markers, marker brushes, marker outlines, series brushes and series outlines as demonstrated below.
-You can create this type of chart in the [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) control by binding your data and setting the [`chartType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html#chartType) property to [`Spline`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.categorycharttype.html#Spline), as shown in the example below:
+You can create this type of chart in the `IgxCategoryChart` control by binding your data and setting the `CategoryChart.ChartType` property to `Spline`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -444,17 +439,15 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Advanced Types of Spline Charts
-The following sections explain more advanced types of Angular Spline Charts that can be created using the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control instead of [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) control with simplified API.
+The following sections explain more advanced types of Angular Spline Charts that can be created using the `IgxDataChart` control instead of `IgxCategoryChart` control with simplified API.
## Angular Stacked Spline Chart
The Stacked Spline Chart is often used to show the change of value over time such as the amount of renewable electricity produced for several years between regions, as we have shown in the example below.
-You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxStackedSplineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstackedsplineseriescomponent.html), as shown in the example below:
+You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxStackedSplineSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -636,13 +629,11 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Stacked 100% Spline Chart
The Stacked 100% Spline Chart is identical to the Stacked Spline Chart in all aspects except in their treatment of the values on y-axis. Instead of presenting a direct representation of the data, the Stacked 100% Spline Chart presents the data in terms of percent of the sum of all values in a data point. The example below shows a study made for online shopping traffic by departments via tablet, phone and personal computers.
-You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxStacked100SplineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstacked100splineseriescomponent.html), as shown in the example below:
+You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxStacked100SplineSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -819,17 +810,15 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Additional Resources
You can find more information about related chart types in these topics:
-- [Area Chart](area-chart.md)
-- [Line Chart](spline-chart.md)
-- [Polar Chart](polar-chart.md)
-- [Radial Chart](radial-chart.md)
-- [Stacked Chart](stacked-chart.md)
+- [Area Chart](./area-chart.md)
+- [Line Chart](./spline-chart.md)
+- [Polar Chart](./polar-chart.md)
+- [Radial Chart](./radial-chart.md)
+- [Stacked Chart](./stacked-chart.md)
## API References
@@ -837,6 +826,11 @@ The following table lists API members mentioned in the above sections:
| Chart Type | Control Name | API Members |
| --------------------|--------------------|-------------------------- |
-| Spline | [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) | [`chartType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html#chartType) = [`Spline`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.categorycharttype.html#Spline) |
-| Stacked Spline | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxStackedSplineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstackedsplineseriescomponent.html) |
-| Stacked 100% Spline | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxStacked100SplineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstacked100splineseriescomponent.html) |
+| Spline | `IgxCategoryChart` | `CategoryChart.ChartType` = `Spline` |
+| Stacked Spline | `IgxDataChart` | `IgxStackedSplineSeries` |
+| Stacked 100% Spline | `IgxDataChart` | `IgxStacked100SplineSeries` |
+
+`IgxCategoryChart`
+`IgxDataChart`
+`IgxStackedSplineSeries`
+`IgxStacked100SplineSeries`
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-stacked-chart.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-stacked-chart.md
index 4fcb57e30..ca6da73ac 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-stacked-chart.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-stacked-chart.md
@@ -1,21 +1,22 @@
---
-title: Angular Stacked Chart | Data Visualization | Infragistics
-_description: Infragistics' Angular Stacked Chart
-_keywords: Angular Charts, Stacked Chart, Stacked 100% Chart, Infragistics
-_license: commercial
-mentionedTypes: ["XamDataChart", "StackedAreaSeries", "Stacked100AreaSeries", "StackedBarSeries", "Stacked100BarSeries", "StackedColumnSeries", "Stacked100ColumnSeries", "StackedLineSeries", "Stacked100LineSeries", "StackedSplineSeries", "Stacked100SplineSeries", "StackedSplineAreaSeries", "Stacked100SplineAreaSeries", "Series"]
+title: "Angular Stacked Chart | Data Visualization | Infragistics"
+description: Infragistics' Angular Stacked Chart
+keywords: "Angular Charts, Stacked Chart, Stacked 100% Chart, Infragistics"
+license: commercial
+mentionedTypes: ["DataChart", "StackedAreaSeries", "Stacked100AreaSeries", "StackedBarSeries", "Stacked100BarSeries", "StackedColumnSeries", "Stacked100ColumnSeries", "StackedLineSeries", "Stacked100LineSeries", "StackedSplineSeries", "Stacked100SplineSeries", "StackedSplineAreaSeries", "Stacked100SplineAreaSeries", "Series"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Stacked Chart belongs to a special group of charts that render multiple values of data items as stacked area/polygons, bars, columns, lines, or splines."
_tocName: Stacked Chart
_premium: true
---
-
# Angular Stacked Chart
The Ignite UI for Angular Stacked Chart belongs to a special group of charts that render multiple values of data items as stacked area/polygons, bars, columns, lines, or splines. Standard Stacked Charts render actual values of data items while Stacked 100% Charts render values as percentage of total values.
## Angular Stacked Chart Types
-The following example, you can use the drop-down to switch between all of the different types stacked charts available in the Angular [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control.
+The following example, you can use the drop-down to switch between all of the different types stacked charts available in the Angular `IgxDataChart` control.
```typescript
import { NgModule } from "@angular/core";
@@ -307,15 +308,13 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
The following sections demonstrate individual types of Ignite UI for Angular Stacked Charts.
## Angular Stacked Area Chart
-Stacked Area Charts are rendered using a collection of points connected by line segments, with the area below the line filled in and stacked on top of each other. Stacked Area Charts follow all the same requirements as [Area Chart](area-chart.md), with the only difference being that visually, the shaded areas are stacked on top of each other.
+Stacked Area Charts are rendered using a collection of points connected by line segments, with the area below the line filled in and stacked on top of each other. Stacked Area Charts follow all the same requirements as [Area Chart](./area-chart.md), with the only difference being that visually, the shaded areas are stacked on top of each other.
-You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxStackedAreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstackedareaseriescomponent.html), as shown in the example below.
+You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxStackedAreaSeries`, as shown in the example below.
```typescript
import { NgModule } from "@angular/core";
@@ -497,13 +496,10 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Stacked 100 Area Chart
-
Sometimes the series represent part of a whole being changed over time e.g. a country's energy consumption related to the sources from which it is produced. In such cases representing all stacked elements equally may be a better idea.
-You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxStacked100AreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstacked100areaseriescomponent.html), as shown in the example below.
+You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxStacked100AreaSeries`, as shown in the example below.
```typescript
import { NgModule } from "@angular/core";
@@ -682,15 +678,13 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Stacked Bar Chart
A Stacked Bar Chart, or Stacked Bar Graph, is a type of category chart that is used to compare the composition of different categories of data by displaying different sized fragments in the horizontal bars of the chart. The length of each bar, or stack of fragments, is proportionate to its overall value.
-The Stacked Bar Chart differs from the [Bar Chart](bar-chart.md) in that the data points representing your data are stacked next to each other horizontally to visually group your data. Each stack can contain both positive and negative values. All positive values are grouped on the positive side of the X-Axis, and all negative values are grouped on the negative side of the X-Axis.
+The Stacked Bar Chart differs from the [Bar Chart](./bar-chart.md) in that the data points representing your data are stacked next to each other horizontally to visually group your data. Each stack can contain both positive and negative values. All positive values are grouped on the positive side of the X-Axis, and all negative values are grouped on the negative side of the X-Axis.
-In this example of an Stacked Bar Chart, we have a Numeric X Axis (bottom labels of the chart) and a Category Y Axis (left labels of the chart). You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxStackedBarSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstackedbarseriescomponent.html), as shown in the example below.
+In this example of an Stacked Bar Chart, we have a Numeric X Axis (bottom labels of the chart) and a Category Y Axis (left labels of the chart). You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxStackedBarSeries`, as shown in the example below.
```typescript
import { NgModule } from "@angular/core";
@@ -862,13 +856,11 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Stacked 100% Bar Chart
The Angular Stacked 100% Bar Chart is identical to the Angular stacked bar chart in all aspects except in their treatment of the values on X-Axis (bottom labels of the chart). Instead of presenting a direct representation of the data, the stacked 100% bar chart presents the data in terms of percent of the sum of all values in a data point.
-In this example of a Stacked 100% Bar Chart, the Energy Product values are shown as a 100% value of all of the data in the fragments of the horizontal bars. You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxStacked100BarSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstacked100barseriescomponent.html), as shown in the example below.
+In this example of a Stacked 100% Bar Chart, the Energy Product values are shown as a 100% value of all of the data in the fragments of the horizontal bars. You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxStacked100BarSeries`, as shown in the example below.
```typescript
import { NgModule } from "@angular/core";
@@ -1038,13 +1030,11 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Stacked Column Chart
-The Stacked Column Chart is identical to the [Column Chart](column-chart.md) in all aspects, except the series are represented on top of one another rather than to the side. The Stacked Column Chart is used to show comparing results between series. Each stacked fragment in the collection represents one visual element in each stack. Each stack can contain both positive and negative values. All positive values are grouped on the positive side of the Y-Axis, and all negative values are grouped on the negative side of the Y-Axis. The Stacked Column Chart uses the same concepts of data plotting as the Stacked Bar Chart but data points are stacked along vertical line (Y-Axis) rather than along horizontal line (X-Axis).
+The Stacked Column Chart is identical to the [Column Chart](./column-chart.md) in all aspects, except the series are represented on top of one another rather than to the side. The Stacked Column Chart is used to show comparing results between series. Each stacked fragment in the collection represents one visual element in each stack. Each stack can contain both positive and negative values. All positive values are grouped on the positive side of the Y-Axis, and all negative values are grouped on the negative side of the Y-Axis. The Stacked Column Chart uses the same concepts of data plotting as the Stacked Bar Chart but data points are stacked along vertical line (Y-Axis) rather than along horizontal line (X-Axis).
-You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxStackedColumnSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstackedcolumnseriescomponent.html), as shown in the example below.
+You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxStackedColumnSeries`, as shown in the example below.
```typescript
import { NgModule } from "@angular/core";
@@ -1224,13 +1214,11 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Stacked 100% Column Chart
The Stacked 100% Column Chart is identical to the Stacked Column Chart in all aspects except in their treatment of the values on Y-Axis. Instead of presenting a direct representation of the data, the Stacked 100% Column Chart presents the data in terms of percent of the sum of all values in a data point.
-The example below shows a study made for online shopping traffic by departments via tablet, phone and personal computers. You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxStacked100ColumnSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstacked100columnseriescomponent.html), as shown in the example below.
+The example below shows a study made for online shopping traffic by departments via tablet, phone and personal computers. You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxStacked100ColumnSeries`, as shown in the example below.
```typescript
import { NgModule } from "@angular/core";
@@ -1391,11 +1379,9 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Stacked Line Chart
-The Stacked Line Chart is often used to show the change of value over time such as the amount of renewable electricity produced for several years between regions. You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxStackedLineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstackedlineseriescomponent.html), as shown in the example below:
+The Stacked Line Chart is often used to show the change of value over time such as the amount of renewable electricity produced for several years between regions. You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxStackedLineSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -1577,13 +1563,11 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Stacked 100% Line Chart
The Stacked 100% Line Chart is identical to the Stacked Line Chart in all aspects except in their treatment of the values on y-axis. Instead of presenting a direct representation of the data, the Stacked 100% Line Chart presents the data in terms of percent of the sum of all values in a data point. The example below shows a study made for online shopping traffic by departments via tablet, phone and personal computers.
-You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxStacked100LineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstacked100lineseriescomponent.html), as shown in the example below:
+You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxStacked100LineSeries`, as shown in the example below:
```typescript
import { NgModule } from "@angular/core";
@@ -1761,13 +1745,11 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Stacked Spline Area Chart
-Stacked Spline Area Charts are rendered using a collection of points connected by curved spline segments, with the area below the curved spline fill in and stacked on top of each other. Stacked Spline Area Charts follow all of the same requirements as [Area Chart](area-chart.md), with the only difference being that the visually shaded areas are stacked on top of each other.
+Stacked Spline Area Charts are rendered using a collection of points connected by curved spline segments, with the area below the curved spline fill in and stacked on top of each other. Stacked Spline Area Charts follow all of the same requirements as [Area Chart](./area-chart.md), with the only difference being that the visually shaded areas are stacked on top of each other.
-You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxStackedSplineAreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstackedsplineareaseriescomponent.html), as shown in the example below.
+You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxStackedSplineAreaSeries`, as shown in the example below.
```typescript
import { NgModule } from "@angular/core";
@@ -1949,13 +1931,11 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Stacked 100% Spline Area Chart
The Stacked 100% Spline Area Chart is identical to the Stacked Spline Area Chart in all aspects except for the treatment of the values on the y-axis. Instead of presenting a direct representation of the data, the Stacked 100% Spline Area Chart presents the data in terms of a percent of the sum of all values in a particular data point. Sometimes the chart represents part of a whole being changed over time. For example, a country's energy consumption related to the sources from which it is produced. In such cases, representing all stacked elements equally may be a better idea.
-You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxStacked100SplineAreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstacked100splineareaseriescomponent.html), as shown in the example below.
+You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxStacked100SplineAreaSeries`, as shown in the example below.
```typescript
import { NgModule } from "@angular/core";
@@ -2133,11 +2113,9 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Stacked Spline Chart
-The Stacked Spline Chart is often used to show the change of value over time such as the amount of renewable electricity produced for several years between regions. You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxStackedSplineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstackedsplineseriescomponent.html), as shown in the example below.
+The Stacked Spline Chart is often used to show the change of value over time such as the amount of renewable electricity produced for several years between regions. You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxStackedSplineSeries`, as shown in the example below.
```typescript
import { NgModule } from "@angular/core";
@@ -2319,13 +2297,11 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Stacked 100% Spline Chart
The Stacked 100% Spline Chart is identical to the Stacked Spline Chart in all aspects except in their treatment of the values on y-axis. Instead of presenting a direct representation of the data, the Stacked 100% Spline Chart presents the data in terms of percent of the sum of all values in a data point. The example below shows a study made for online shopping traffic by departments via tablet, phone and personal computers.
-You can create this type of chart in the [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) control by binding your data to a [`IgxStacked100SplineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstacked100splineseriescomponent.html).
+You can create this type of chart in the `IgxDataChart` control by binding your data to a `IgxStacked100SplineSeries`.
```typescript
import { NgModule } from "@angular/core";
@@ -2502,33 +2478,29 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Additional Resources
-
You can find more information about related chart types in these topics:
-- [Area Chart](area-chart.md)
-- [Bar Chart](bar-chart.md)
-- [Column Chart](column-chart.md)
-- [Line Chart](line-chart.md)
-- [Spline Chart](spline-chart.md)
+- [Area Chart](./area-chart.md)
+- [Bar Chart](./bar-chart.md)
+- [Column Chart](./column-chart.md)
+- [Line Chart](./line-chart.md)
+- [Spline Chart](./spline-chart.md)
## API References
-
The following table lists API members mentioned in the above sections:
| Chart Type | Control Name | API Members |
| -------------------------|----------------|-------------------------------- |
-| Stacked Area | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxStackedAreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstackedareaseriescomponent.html) |
-| Stacked Bar | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxStackedBarSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstackedbarseriescomponent.html) |
-| Stacked Column | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxStackedColumnSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstackedcolumnseriescomponent.html) |
-| Stacked Line | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxStackedLineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstackedlineseriescomponent.html) |
-| Stacked Spline | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxStackedSplineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstackedsplineseriescomponent.html) |
-| Stacked Spline Area | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxStackedSplineAreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstackedsplineareaseriescomponent.html) |
-| Stacked 100% Area | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxStacked100AreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstacked100areaseriescomponent.html) |
-| Stacked 100% Bar | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxStacked100BarSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstacked100barseriescomponent.html) |
-| Stacked 100% Column | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxStacked100ColumnSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstacked100columnseriescomponent.html) |
-| Stacked 100% Line | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxStacked100LineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstacked100lineseriescomponent.html) |
-| Stacked 100% Spline | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxStacked100SplineSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstacked100splineseriescomponent.html) |
-| Stacked 100% Spline Area | [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html) | [`IgxStacked100SplineAreaSeriesComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxstacked100splineareaseriescomponent.html) |
+| Stacked Area | `IgxDataChart` | `IgxStackedAreaSeries` |
+| Stacked Bar | `IgxDataChart` | `IgxStackedBarSeries` |
+| Stacked Column | `IgxDataChart` | `IgxStackedColumnSeries` |
+| Stacked Line | `IgxDataChart` | `IgxStackedLineSeries` |
+| Stacked Spline | `IgxDataChart` | `IgxStackedSplineSeries` |
+| Stacked Spline Area | `IgxDataChart` | `IgxStackedSplineAreaSeries` |
+| Stacked 100% Area | `IgxDataChart` | `IgxStacked100AreaSeries` |
+| Stacked 100% Bar | `IgxDataChart` | `IgxStacked100BarSeries` |
+| Stacked 100% Column | `IgxDataChart` | `IgxStacked100ColumnSeries` |
+| Stacked 100% Line | `IgxDataChart` | `IgxStacked100LineSeries` |
+| Stacked 100% Spline | `IgxDataChart` | `IgxStacked100SplineSeries` |
+| Stacked 100% Spline Area | `IgxDataChart` | `IgxStacked100SplineAreaSeries` |
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-step-chart.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-step-chart.md
index d3fabaab8..0a06f1b76 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-step-chart.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-step-chart.md
@@ -1,21 +1,22 @@
---
-title: Angular Step Chart | Data Visualization | Infragistics
-_description: Infragistics' Angular Step Chart
-_keywords: Angular Charts, Step Chart, Step Area Chart, Step Line Chart, Infragistics
-_license: commercial
+title: "Angular Step Chart | Data Visualization | Infragistics"
+description: Infragistics' Angular Step Chart
+keywords: "Angular Charts, Step Chart, Step Area Chart, Step Line Chart, Infragistics"
+license: commercial
mentionedTypes: ["DomainChart", "CategoryChart", "CategoryChartType", "Series", "CategoryChartType"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Step Chart belongs to a group of category charts that render as a collection of points connected by continuous vertical and horizontal lines."
_tocName: Step Chart
_premium: true
---
-
# Angular Step Chart
The Ignite UI for Angular Step Chart belongs to a group of category charts that render as a collection of points connected by continuous vertical and horizontal lines. Values are represented on the y-axis and categories are displayed on the x-axis. Step Chart emphasizes the amount of change over a period of time or compares multiple items.
## Angular Step Area Chart
-You can create Angular Step Area Chart in the [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) control by setting [`chartType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html#chartType) property to [`StepArea`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.categorycharttype.html#StepArea) enum, as shown in the example below.
+You can create Angular Step Area Chart in the `IgxCategoryChart` control by setting `CategoryChart.ChartType` property to `StepArea` enum, as shown in the example below.
```typescript
import { NgModule } from "@angular/core";
@@ -125,13 +126,11 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Step Line Chart
The Angular Step Line Chart is very similar to Step Area Chart, except that the area below lines are filled in.
-You can create Step Line Chart in the [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) control by binding your data and setting [`chartType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html#chartType) property to [`StepLine`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.categorycharttype.html#StepLine) value, as shown in the example below.
+You can create Step Line Chart in the `IgxCategoryChart` control by binding your data and setting `CategoryChart.ChartType` property to `StepLine` value, as shown in the example below.
```typescript
import { NgModule } from "@angular/core";
@@ -238,11 +237,9 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Step Chart Styling
-If you need Step Charts with more features such as composite other series, you can configure the [`markerTypes`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdomainchartcomponent.html#markerTypes), [`markerBrushes`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdomainchartcomponent.html#markerBrushes), [`markerOutlines`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdomainchartcomponent.html#markerOutlines), lines' [`brushes`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdomainchartcomponent.html#brushes), and lines' [`outlines`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdomainchartcomponent.html#outlines) properties on the [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html) control as demonstrated below.
+If you need Step Charts with more features such as composite other series, you can configure the `MarkerTypes`, `MarkerBrushes`, `MarkerOutlines`, lines' `Brushes`, and lines' `Outlines` properties on the `IgxCategoryChart` control as demonstrated below.
```typescript
import { NgModule } from "@angular/core";
@@ -352,26 +349,13 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Additional Resources
You can find more information about related chart types in these topics:
-- [Area Chart](area-chart.md)
-- [Line Chart](line-chart.md)
+- [Area Chart](./area-chart.md)
+- [Line Chart](./line-chart.md)
- [Chart Markers](../features/chart-markers.md)
## API References
-
-The following table lists API members mentioned in the above sections:
-
-- [`IgxCategoryChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html)
-- [`chartType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html#chartType)
-- [`StepArea`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.categorycharttype.html#StepArea)
-- [`StepLine`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.categorycharttype.html#StepLine)
-- [`brushes`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdomainchartcomponent.html#brushes)
-- [`outlines`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdomainchartcomponent.html#outlines)
-- [`markerBrushes`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdomainchartcomponent.html#markerBrushes)
-- [`markerOutlines`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdomainchartcomponent.html#markerOutlines)
-- [`markerTypes`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdomainchartcomponent.html#markerTypes)
+`IgxCategoryChart`
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-stock-chart.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-stock-chart.md
index 9f22c2917..8d799d733 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-stock-chart.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-stock-chart.md
@@ -1,21 +1,22 @@
---
-title: Angular Stock/Financial Charts | Ignite UI for Angular
-_description: The Ignite UI for Angular Stock Chart is a composite visualization that renders stock ticker data, or price data in an interactive time-series display. Try for FREE.
-_keywords: Angular Charts, Stock Chart, Financial Chart, Candlestick Chart, OHLC Chart, Infragistics
-_license: commercial
-mentionedTypes: ["DomainChart", "FinancialChart", "FinancialChartType", "IndicatorTypes", "ZoomSliderType", "Series", "FinancialChartType"]
+title: "Angular Stock/Financial Charts | Ignite UI for Angular"
+description: The Ignite UI for Angular Stock Chart is a composite visualization that renders stock ticker data, or price data in an interactive time-series display. Try for FREE.
+keywords: "Angular Charts, Stock Chart, Financial Chart, Candlestick Chart, OHLC Chart, Infragistics"
+license: commercial
+mentionedTypes: ["DomainChart", "FinancialChart", "FinancialChartType", "IndicatorTypes", "ZoomSliderType", "Series"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Stock Chart, sometimes referred to as Angular Financial Chart or Candlestick Chart, is a composite visualization that renders stock ticker data, or price data in an interactive time-series display."
_tocName: Financial / Stock Chart
_premium: true
---
-
# Angular Stock Chart
The Ignite UI for Angular Stock Chart, sometimes referred to as Angular Financial Chart or Candlestick Chart, is a composite visualization that renders stock ticker data, or price data in an interactive time-series display. Stock Chart shows stock prices for a ticker over time in a Time Series X-Axis. Also, this chart shows information for a company’s ticker data like Open Price, High Price, Low Price and Close Price (OHLC) for configurable period of time. The Stock Chart offers multiple ways in which the data can be visualized and interpreted, including display modes for price and volume and a host of Stock indicators.
## Angular Stock Chart Example
-You can create Stock Chart using the [`IgxFinancialChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxfinancialchartcomponent.html) control by binding your data and optionally setting [`chartType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html#chartType) property to [`Line`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.financialcharttype.html#Line) value, as shown in the example below.
+You can create Stock Chart using the `IgxFinancialChart` control by binding your data and optionally setting `ChartType` property to `Line` value, as shown in the example below.
```typescript
import { NgModule } from "@angular/core";
@@ -26,7 +27,6 @@ import { BrowserAnimationsModule } from "@angular/platform-browser/animations";
import { AppComponent } from "./app.component";
import { IgxFinancialChartModule, IgxLegendModule } from "igniteui-angular-charts";
-import { FinancialDataService } from "./FinancialDataService";
@NgModule({
@@ -43,34 +43,33 @@ import { FinancialDataService } from "./FinancialDataService";
IgxFinancialChartModule,
IgxLegendModule
],
- providers: [FinancialDataService],
+ providers: [],
schemas: []
})
export class AppModule {}
```
```typescript
import { ChangeDetectionStrategy, Component } from "@angular/core";
-import { FinancialDataService } from "./FinancialDataService";
+import { FinancialDataService, StockSeries } from "./FinancialDataService";
@Component({
standalone: false,
changeDetection: ChangeDetectionStrategy.OnPush,
- providers: [ FinancialDataService ],
selector: "app-root",
styleUrls: ["./app.component.scss"],
templateUrl: "./app.component.html"
})
export class AppComponent {
- public data: any;
- constructor(private dataService: FinancialDataService) {
- this.data = [ this.dataService.getGoog(), this.dataService.getMsft() ];
+ public data: StockSeries[];
+ constructor(dataService: FinancialDataService) {
+ this.data = dataService.getMultiple();
}
}
```
```html
-
+
-
## Stock Chart Recommendations
### Are Angular Stock Charts right for your project?
@@ -140,7 +137,6 @@ import { BrowserAnimationsModule } from "@angular/platform-browser/animations";
import { AppComponent } from "./app.component";
import { IgxFinancialChartModule, IgxLegendModule } from "igniteui-angular-charts";
-import { FinancialDataService } from "./FinancialDataService";
@NgModule({
@@ -157,34 +153,33 @@ import { FinancialDataService } from "./FinancialDataService";
IgxFinancialChartModule,
IgxLegendModule
],
- providers: [FinancialDataService],
+ providers: [],
schemas: []
})
export class AppModule {}
```
```typescript
import { ChangeDetectionStrategy, Component } from "@angular/core";
-import { FinancialDataService } from "./FinancialDataService";
+import { FinancialDataService, StockSeries } from "./FinancialDataService";
@Component({
standalone: false,
changeDetection: ChangeDetectionStrategy.OnPush,
- providers: [ FinancialDataService ],
selector: "app-root",
styleUrls: ["./app.component.scss"],
templateUrl: "./app.component.html"
})
export class AppComponent {
- public data: any;
- constructor(private dataService: FinancialDataService) {
- this.data = [ this.dataService.getGoog(), this.dataService.getMsft() ];
+ public data: StockSeries[];
+ constructor(dataService: FinancialDataService) {
+ this.data = dataService.getMultiple();
}
}
```
```html
-
+
-
## Angular Stock Chart
-In this example the Stock Chart is representing the S\&P 500 over the course of a year; useful for investors and conducting technical analysis and forecasting future pricing/reports.
+In this example the Stock Chart is representing the S&P 500 over the course of a year; useful for investors and conducting technical analysis and forecasting future pricing/reports.
```typescript
import { NgModule } from "@angular/core";
@@ -288,8 +281,6 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Stock Chart Styling
If you need a Stock Chart with more features such as composite other series, you can configure the thickness, outlines, brushes, negative outlines, negative brushes as demonstrated below. In this example, the stock chart is comparing revenue between Amazon, Microsoft and Tesla.
@@ -369,11 +360,9 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Chart Annotations
-The Crosshair Annotation Layer provides crossing lines that meet at the actual value of every targeted series. Crosshair types include: Horizontal, Vertical, and Both. The Crosshairs can also be configured to snap to data points by setting the [`crosshairsSnapToData`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdomainchartcomponent.html#crosshairsSnapToData) property to true, otherwise the crosshairs will be interpolated between data points. Annotations can also be enabled to display the crosshair's value along the axis.
+The Crosshair Annotation Layer provides crossing lines that meet at the actual value of every targeted series. Crosshair types include: Horizontal, Vertical, and Both. The Crosshairs can also be configured to snap to data points by setting the `CrosshairsSnapToData` property to true, otherwise the crosshairs will be interpolated between data points. Annotations can also be enabled to display the crosshair's value along the axis.
The Final Value Layer provides a quick view along the axis of the ending value displayed in a series.
@@ -565,8 +554,6 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Angular Chart Panes
The following panes are available:
@@ -577,27 +564,23 @@ The following panes are available:
- Zoom Pane - Controls the zoom of all the panes and it is always rendered at bottom of the chart.
### Indicator Pane
-
Financial Indicators are often used by traders to measure changes and to show trends in stock prices. These indicators are usually displayed below the price pane because they do not share the same Y-Axis scale.
By default the indicator panes are not displayed. The toolbar allows the end user to select which indicator to display at run time.
-In order to display an indicator pane initially, the [`indicatorTypes`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxfinancialchartcomponent.html#indicatorTypes) property must be set to a least one type of indicator, as demonstrated in the following code:
+In order to display an indicator pane initially, the `IndicatorTypes` property must be set to a least one type of indicator, as demonstrated in the following code:
### Volume Pane
-
-The volume pane represents the number of shares traded during a given period. Low volume would indicate little interest, while high volume would indicate high interest with a lot of trades. This can be displayed using column, line or area chart types. The toolbar allows the end user to display the volume pane by selecting a chart type to render the data at runtime. In order the display the pane, a volume type must be set, as demonstrated in the following code:
+The volume pane represents the number of shares traded during a given period. Low volume would indicate little interest, while high volume would indicate high interest with a lot of trades. This can be displayed using column, line or area chart types. The toolbar allows the end user to display the volume pane by selecting a chart type to render the data at runtime. In order the display the pane, a volume type must be set, as demonstrated in the following code:
### Price Pane
-
-This pane displays stock prices and shows the stock's high, low, open and close prices over time. In addition it can display trend lines and overlays. Your end user can choose different chart types from the toolbar. By default, the chart type is set to [`Auto`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/enums/igniteui_angular_charts.financialcharttype.html#Auto). You can override the default setting, as demonstrated in the following code:
+This pane displays stock prices and shows the stock's high, low, open and close prices over time. In addition it can display trend lines and overlays. Your end user can choose different chart types from the toolbar. By default, the chart type is set to `Auto`. You can override the default setting, as demonstrated in the following code:
Note that is recommended to use line chart type if plotting multiple data sources or if plotting data source with a lot of data points.
### Zoom Pane
+This pane controls the zoom of all the displayed panes. This pane is displayed by default. It can be turned off by setting the `ZoomSliderType` to `none` as demonstrated in the following code:
-This pane controls the zoom of all the displayed panes. This pane is displayed by default. It can be turned off by setting the [`zoomSliderType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxfinancialchartcomponent.html#zoomSliderType) to `none` as demonstrated in the following code:
-
-Note that you should set the [`zoomSliderType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxfinancialchartcomponent.html#zoomSliderType) option to the same value as the [`chartType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html#chartType) option is set to. This way, the zoom slider will show correct preview of the price pane. The following code demonstrates how to do this:
+Note that you should set the `ZoomSliderType` option to the same value as the `ChartType` option is set to. This way, the zoom slider will show correct preview of the price pane. The following code demonstrates how to do this:
In this example, the stock chart is plotting revenue for United States.
@@ -688,8 +671,6 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Additional Resources
You can find more information about related chart features in these topics:
@@ -701,12 +682,4 @@ You can find more information about related chart features in these topics:
- [Chart Performance](../features/chart-performance.md)
## API References
-
-The following table lists API members mentioned in the above sections:
-
-- [`chartType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxcategorychartcomponent.html#chartType)
-- [`crosshairsSnapToData`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdomainchartcomponent.html#crosshairsSnapToData)
-- `ItemsSource`
-- [`IgxFinancialChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxfinancialchartcomponent.html)
-- [`indicatorTypes`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxfinancialchartcomponent.html#indicatorTypes)
-- [`zoomSliderType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxfinancialchartcomponent.html#zoomSliderType)
+`IgxFinancialChart`
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-treemap-chart.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-treemap-chart.md
index 035bbcc4d..5403610ab 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-treemap-chart.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/types-treemap-chart.md
@@ -1,21 +1,22 @@
---
-title: Angular Treemap | Data Visualization Tools | Orientation | Layout | Data Binding | Infragistics
-_description: Use Infragistics' Angular Treemap control show relative weighting of data points at more than one level supporting strip, squarified, and slice-and-dice algorithms. Learn about Ignite UI for Angular treemap!
-_keywords: Angular Tree Map, Treemap, layout, orientation, Ignite UI for Angular, Infragistics
-_license: commercial
+title: "Angular Treemap | Data Visualization Tools | Orientation | Layout | Data Binding | Infragistics"
+description: Use Infragistics' Angular Treemap control show relative weighting of data points at more than one level supporting strip, squarified, and slice-and-dice algorithms. Learn about Ignite UI for Angular treemap!
+keywords: "Angular Tree Map, Treemap, layout, orientation, Ignite UI for Angular, Infragistics"
+license: commercial
mentionedTypes: ["Treemap", "TreemapOrientation", "TreemapLayoutType", "TreemapHighlightingMode", "TreemapHighlightedValueDisplayMode"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Treemap chart displays hierarchical (tree-structured) data as a set of nested nodes."
_tocName: Treemap
_premium: true
---
-
# Angular Treemap
The Ignite UI for Angular Treemap chart displays hierarchical (tree-structured) data as a set of nested nodes. Each branch of the tree is given a treemap node, which is then tiled with smaller nodes representing sub-branches. Each node’s rectangle has an area proportional to a specified dimension on the data. Often the nodes are colored to show a separate dimension of the data.
## Angular Treemap Example
-In the following example, the [`IgxTreemapComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxtreemapcomponent.html) demonstrates the 30 largest countries in the world by total area.
+In the following example, the `IgxTreemap` demonstrates the 30 largest countries in the world by total area.
```typescript
import { NgModule } from "@angular/core";
@@ -118,8 +119,6 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Treemap Recommendations
### Are Angular Treemaps right for your project?
@@ -153,13 +152,13 @@ There are several common use cases for choosing a Treemap. When you:
- The data source must be an array or a list of data items
- The data source must contain at least one data item otherwise the map will not render any nodes.
-- All data items must contain at least one data column (e.g. string) which should be mapped to the [`labelMemberPath`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxtreemapcomponent.html#labelMemberPath) property.
-- All data items must contain at least one numeric data column which should be mapped using the [`valueMemberPath`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxtreemapcomponent.html#valueMemberPath) property.
-- To categorize data into organized tiles you can optionally use [`parentIdMemberPath`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxtreemapcomponent.html#parentIdMemberPath) and [`idMemberPath`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxtreemapcomponent.html#idMemberPath).
+- All data items must contain at least one data column (e.g. string) which should be mapped to the `LabelMemberPath` property.
+- All data items must contain at least one numeric data column which should be mapped using the `ValueMemberPath` property.
+- To categorize data into organized tiles you can optionally use `ParentIdMemberPath` and `IdMemberPath`.
## Angular Treemap Configuration
-In the following example, the treemap demonstrates the ability of changing it's algorithmic structure by modifying the [`layoutType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxtreemapcomponent.html#layoutType) and [`layoutOrientation`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxtreemapcomponent.html#layoutOrientation) properties.
+In the following example, the treemap demonstrates the ability of changing it's algorithmic structure by modifying the `LayoutType` and `LayoutOrientation` properties.
```typescript
import { NgModule } from "@angular/core";
@@ -325,8 +324,6 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
### Layout Types
The Treemap chart displays the relative weight of data. It uses a variety of algorithms to help it determine how the layout of its data items should occur:
@@ -342,9 +339,9 @@ The Treemap allows you to choose the algorithm that is best for your requirement
### Layout Orientation
-[`layoutOrientation`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxtreemapcomponent.html#layoutOrientation) property enables the user to set the direction in which the nodes of the hierarchy will be expanded.
+`LayoutOrientation` property enables the user to set the direction in which the nodes of the hierarchy will be expanded.
-Note that the [`layoutOrientation`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxtreemapcomponent.html#layoutOrientation) property works with the layout types SliceAndDice and Strip.
+Note that the `LayoutOrientation` property works with the layout types SliceAndDice and Strip.
- `Horizontal` – the child nodes are going to be stacked horizontally(SliceAndDice).
- `Vertical` – the child nodes are going to be stacked vertically (SliceAndDice).
@@ -527,7 +524,7 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
### Angular Treemap Highlighting
-In the following example, the treemap demonstrates the ability of node highlighting. There are two options for this feature. Each node can individually brighten, by decreasing its opacity, or cause all other nodes to trigger the same effect. To enable this feature, set [`highlightingMode`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxtreemapcomponent.html#highlightingMode)to Brighten or FadeOthers.
+In the following example, the treemap demonstrates the ability of node highlighting. There are two options for this feature. Each node can individually brighten, by decreasing its opacity, or cause all other nodes to trigger the same effect. To enable this feature, set `HighlightingMode`to Brighten or FadeOthers.
```typescript
import { NgModule } from "@angular/core";
@@ -674,10 +671,10 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
## Angular Treemap Percent based highlighting
-- [`highlightedDataSource`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxtreemapcomponent.html#highlightedDataSource): Specifies the datasource to read highlighted values from. If null, then highlighted values are read from the ItemsSource property.
-- [`highlightedValueMemberPath`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxtreemapcomponent.html#highlightedValueMemberPath): Specifies the name of the property in the datasource where the highlighted values are read.
-- [`highlightedValueOpacity`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxtreemapcomponent.html#highlightedValueOpacity): Controls the opacity of the normal value behind the highlighted value.
-- [`highlightedValuesDisplayMode`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxtreemapcomponent.html#highlightedValuesDisplayMode): Enables or disables highlighted values.
+- `HighlightedItemsSource`: Specifies the datasource to read highlighted values from. If null, then highlighted values are read from the ItemsSource property.
+- `HighlightedValueMemberPath`: Specifies the name of the property in the datasource where the highlighted values are read.
+- `HighlightedValueOpacity`: Controls the opacity of the normal value behind the highlighted value.
+- `HighlightedValuesDisplayMode`: Enables or disables highlighted values.
- Auto: The treemap decides what mode to use.
- Overlay: The treemap displays highlighted values over top the normal value with a slight opacity applied to the normal value.
- Hidden: The treemap does not show highlighted values.
@@ -792,21 +789,12 @@ https://dl.infragistics.com/x/css/samples/shared.v8.css
*/
```
-
-
## Additional Resources
You can find more information about related chart types in these topics:
-- [Area Chart](area-chart.md)
-- [Shape Chart](shape-chart.md)
+- [Area Chart](./area-chart.md)
+- [Shape Chart](./shape-chart.md)
## API References
-
-The following is a list of API members mentioned in the above sections:
-
-- [`IgxTreemapComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxtreemapcomponent.html)
-- [`layoutOrientation`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxtreemapcomponent.html#layoutOrientation)
-- [`highlightedValuesDisplayMode`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxtreemapcomponent.html#highlightedValuesDisplayMode)
-- [`highlightedValueMemberPath`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxtreemapcomponent.html#highlightedValueMemberPath)
-- [`layoutType`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxtreemapcomponent.html#layoutType)
+`IgxTreemap`
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/virtual-scroll.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/virtual-scroll.md
new file mode 100644
index 000000000..f7ba20454
--- /dev/null
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/virtual-scroll.md
@@ -0,0 +1,1116 @@
+---
+title: "Virtual Scroll"
+description: "The Virtual Scroll is a component that renders only the items in its viewport plus a small buffer, so large lists scroll smoothly."
+keywords: "Angular Virtual Scroll, virtualization, virtual list, large lists, infinite scroll, remote data, Ignite UI for Angular"
+last_updated: "2026-09-25"
+license: MIT
+mentionedTypes: ["VirtualScroll"]
+relatedComponents: ["List", "Grid", "Card"]
+llms:
+ description: "The Ignite UI for Angular Virtual Scroll is a component that renders large lists by keeping only the items in its viewport, plus a configurable buffer, in the DOM."
+_tocName: Virtual Scroll
+---
+# Virtual Scroll Component
+
+The Ignite UI for Angular Virtual Scroll is a component that renders large lists by keeping only the items in its viewport, plus a configurable buffer, in the DOM. The scrollbar still spans the whole collection, so a virtual list of a hundred thousand items scrolls like a regular list.
+
+## Live Demo
+
+```typescript
+import { Component } from '@angular/core';
+import { IgxAvatarComponent } from 'igniteui-angular/avatar';
+import { IgxChipComponent } from 'igniteui-angular/chips';
+import {
+ IgxListActionDirective,
+ IgxListComponent,
+ IgxListItemComponent,
+ IgxListLineSubTitleDirective,
+ IgxListLineTitleDirective,
+ IgxListThumbnailDirective
+} from 'igniteui-angular/list';
+import { IgxVirtualItemDirective, IgxVirtualScrollComponent } from 'igniteui-angular/virtual-scroll';
+import { Employee, generateEmployees } from '../employees';
+
+@Component({
+ selector: 'app-virtual-scroll-overview',
+ styleUrls: ['./virtual-scroll-overview.component.scss'],
+ templateUrl: './virtual-scroll-overview.component.html',
+ imports: [
+ IgxVirtualScrollComponent,
+ IgxVirtualItemDirective,
+ IgxListComponent,
+ IgxListItemComponent,
+ IgxListThumbnailDirective,
+ IgxListLineTitleDirective,
+ IgxListLineSubTitleDirective,
+ IgxListActionDirective,
+ IgxAvatarComponent,
+ IgxChipComponent
+ ]
+})
+export class VirtualScrollOverviewComponent {
+ public readonly employees: Employee[] = generateEmployees(100_000);
+}
+```
+```html
+
+ Employees ({{ employees.length }})
+
+
+
+
+ {{ employee.name }}
+ {{ employee.email }}
+ {{ employee.department }}
+
+
+
+
+```
+```scss
+:host {
+ display: block;
+ padding: 16px;
+}
+
+.employees__viewport {
+ block-size: 480px;
+}
+```
+
+## Anatomy
+
+The Angular Virtual Scroll renders the visible items plus a configurable buffer, and its track preserves the scroll range of the whole collection.
+
+
+
+1. Host: The scroll container. Its fixed height (width when horizontal) sets how many items are visible.
+2. Track: A spacer sized to the estimated length of the whole collection, so the scrollbar spans every item.
+3. Content element: Holds only the rendered items. It starts at the first rendered buffer item, above the viewport, and takes its size from the rendered items.
+4. Item wrapper: One per rendered item. It hosts the item template and is the box that gets measured.
+5. Over-scan buffer: The overScan items (2 by default) rendered past each edge of the viewport.
+
+```text
+igx-virtual-scroll — scrollable viewport (role="list")
+└── .igx-virtual-scroll__track — provides the collection's scroll range
+ └── .igx-virtual-scroll__content — positions the rendered window
+ └── .igx-virtual-item — one wrapper per rendered item (data-index); hosts the item template
+```
+
+## Getting Started
+
+Set up Ignite UI for Angular with the [Getting Started](../general/getting-started.md) topic, then import the `IgxVirtualScroll` and the `IgxVirtualItemDirective`, which marks the item template:
+
+```ts
+import { Component } from '@angular/core';
+import { IgxVirtualItemDirective, IgxVirtualScrollComponent } from 'igniteui-angular/virtual-scroll';
+
+@Component({
+ selector: 'app-employees',
+ imports: [IgxVirtualScrollComponent, IgxVirtualItemDirective],
+ templateUrl: './employees.component.html'
+})
+export class EmployeesComponent {
+ public items = Array.from({ length: 100_000 }, (_, i) => ({ name: `Item ${i}` }));
+}
+```
+
+```html
+
+
+
{{ index }}: {{ item.name }}
+
+
+```
+
+The Virtual Scroll host needs a fixed height for vertical scrolling or a fixed width for horizontal scrolling. A host that grows with its content renders every item, so the list is not virtualized.
+
+### Prerequisites and Version Compatibility
+
+| Requirement | Value |
+| --- | --- |
+| Package | `igniteui-angular` (MIT) |
+| Entry point | `igniteui-angular/virtual-scroll` |
+| First release with the component | 22.2.0 |
+
+## Usage
+
+### Item Template
+
+The Virtual Scroll item template receives the item and its position in the whole collection. Use the index and the total count for position-dependent content, such as alternating styles or `aria-posinset` and `aria-setsize`.
+
+Mark an `ng-template` with `igxVirtualItem`, or pass a template defined elsewhere through `itemTemplate`, which takes precedence. The template context provides `$implicit` (the item), `index`, `count`, `first`, `last`, `even`, and `odd`.
+
+```html
+
+
+
+
+
+ {{ employee.name }}
+ {{ employee.email }}
+
+
+
+
+```
+
+### Data
+
+The Virtual Scroll `data` collection is compared by reference. Assign a new array to update the list; changing the bound array in place, for example with `push`, does not update it.
+
+```ts
+this.employees = [...this.employees, newEmployee];
+```
+
+When `data` changes, the component keeps the measured sizes of the items before the first changed index and measures the rest again when they render. Appending keeps every existing measurement; replacing, filtering, or sorting discards the measurements from the first changed item onwards.
+
+### Estimated Item Size
+
+The Virtual Scroll `estimatedItemSize` is the size in pixels an item has until it renders and is measured (`50` by default). Items can have different sizes: each measured size replaces the estimate.
+
+Set the estimate close to the average item size to keep the scrollbar and `scrollToIndex` accurate before items are measured.
+
+```html
+...
+```
+
+```typescript
+import { Component } from '@angular/core';
+import { IgxAvatarComponent } from 'igniteui-angular/avatar';
+import { IgxChipComponent } from 'igniteui-angular/chips';
+import {
+ IgxListActionDirective,
+ IgxListComponent,
+ IgxListItemComponent,
+ IgxListLineDirective,
+ IgxListLineSubTitleDirective,
+ IgxListLineTitleDirective,
+ IgxListThumbnailDirective
+} from 'igniteui-angular/list';
+import { IgxVirtualItemDirective, IgxVirtualScrollComponent } from 'igniteui-angular/virtual-scroll';
+import { Employee, generateEmployees } from '../employees';
+
+@Component({
+ selector: 'app-virtual-scroll-variable-size',
+ styleUrls: ['./virtual-scroll-variable-size.component.scss'],
+ templateUrl: './virtual-scroll-variable-size.component.html',
+ imports: [
+ IgxVirtualScrollComponent,
+ IgxVirtualItemDirective,
+ IgxListComponent,
+ IgxListItemComponent,
+ IgxListThumbnailDirective,
+ IgxListLineTitleDirective,
+ IgxListLineSubTitleDirective,
+ IgxListLineDirective,
+ IgxListActionDirective,
+ IgxAvatarComponent,
+ IgxChipComponent
+ ]
+})
+export class VirtualScrollVariableSizeComponent {
+ public readonly employees: Employee[] = generateEmployees(10_000);
+}
+```
+```html
+
+ Team directory ({{ employees.length }})
+
+
+
+
+ {{ employee.name }}
+ {{ employee.email }}
+ @if (employee.bio) {
+ {{ employee.bio }}
+ }
+ {{ employee.department }}
+
+
+
+
+```
+```scss
+:host {
+ display: block;
+ padding: 16px;
+}
+
+.employees__viewport {
+ block-size: 480px;
+}
+
+.employees__bio {
+ padding-block-start: 4px;
+ white-space: normal;
+ color: var(--ig-gray-700);
+}
+```
+
+Items are measured by their border box, so margins are not part of an item's size. Space items with padding, or with a `gap` inside the item, instead of margins.
+
+### Orientation
+
+The Virtual Scroll `orientation` sets the scroll axis: `vertical` (default) or `horizontal`. In a horizontal list, give each item a width and the host a height. In a right-to-left context, horizontal scrolling and item positioning are mirrored.
+
+```html
+
+
+
+
+
+```
+```scss
+:host {
+ display: block;
+ padding: 16px;
+}
+
+.cards {
+ block-size: 200px;
+}
+
+// Items are measured by their border box, so the spacing between cards is
+// padding on the item wrapper rather than a margin.
+.cards__item {
+ box-sizing: border-box;
+ inline-size: 220px;
+ block-size: 100%;
+ padding: 8px;
+
+ igx-card {
+ block-size: 100%;
+ }
+}
+
+.cards__item--wide {
+ inline-size: 320px;
+}
+```
+
+### Over-Scan
+
+The Virtual Scroll `overScan` is the number of extra items rendered beyond each edge of the viewport (`2` by default). A larger value reduces blank areas during fast scrolling and renders more elements.
+
+```html
+...
+```
+
+### Scroll to Index
+
+The Virtual Scroll `scrollToIndex` method scrolls an item into view. Its options are those of the native `scrollIntoView`: `block` (`start`, `center`, `end`, or `nearest`), `inline` for a horizontal list, and `behavior` (`auto` or `smooth`). Items that have not rendered only have an estimated size, so the component measures the items where it lands and corrects the position; the returned promise resolves on the final position.
+
+```ts
+private readonly virtualScroll = viewChild.required(IgxVirtualScrollComponent);
+
+public async goTo(index: number): Promise {
+ await this.virtualScroll().scrollToIndex(index, { block: 'center' });
+}
+```
+
+```typescript
+import { Component, signal, viewChild } from '@angular/core';
+import { FormsModule } from '@angular/forms';
+import { IgxAvatarComponent } from 'igniteui-angular/avatar';
+import { IgxButtonDirective } from 'igniteui-angular/directives';
+import { IgxChipComponent } from 'igniteui-angular/chips';
+import { IgxInputDirective, IgxInputGroupComponent, IgxLabelDirective } from 'igniteui-angular/input-group';
+import {
+ IgxListActionDirective,
+ IgxListComponent,
+ IgxListItemComponent,
+ IgxListLineSubTitleDirective,
+ IgxListLineTitleDirective,
+ IgxListThumbnailDirective
+} from 'igniteui-angular/list';
+import { IgxRadioComponent, IgxRadioGroupDirective } from 'igniteui-angular/radio';
+import { IgxVirtualItemDirective, IgxVirtualScrollComponent } from 'igniteui-angular/virtual-scroll';
+import { Employee, generateEmployees } from '../employees';
+
+@Component({
+ selector: 'app-virtual-scroll-scroll-to-index',
+ styleUrls: ['./virtual-scroll-scroll-to-index.component.scss'],
+ templateUrl: './virtual-scroll-scroll-to-index.component.html',
+ imports: [
+ FormsModule,
+ IgxVirtualScrollComponent,
+ IgxVirtualItemDirective,
+ IgxInputGroupComponent,
+ IgxInputDirective,
+ IgxLabelDirective,
+ IgxRadioGroupDirective,
+ IgxRadioComponent,
+ IgxButtonDirective,
+ IgxListComponent,
+ IgxListItemComponent,
+ IgxListThumbnailDirective,
+ IgxListLineTitleDirective,
+ IgxListLineSubTitleDirective,
+ IgxListActionDirective,
+ IgxAvatarComponent,
+ IgxChipComponent
+ ]
+})
+export class VirtualScrollScrollToIndexComponent {
+ public readonly employees: Employee[] = generateEmployees(100_000);
+ public readonly alignments: ScrollLogicalPosition[] = ['start', 'center', 'end', 'nearest'];
+
+ public readonly targetIndex = signal(50_000);
+ public readonly alignment = signal('start');
+ public readonly highlightedIndex = signal(null);
+
+ private readonly virtualScroll = viewChild.required>('virtualScroll');
+
+ public async goTo(index: number): Promise {
+ const target = Math.min(Math.max(Math.trunc(index) || 0, 0), this.employees.length - 1);
+ this.targetIndex.set(target);
+ this.highlightedIndex.set(null);
+
+ // Items that have not been rendered only have an estimated size, so the
+ // first jump lands near the target. The promise resolves once the
+ // component has measured the landing area and corrected the offset.
+ await this.virtualScroll().scrollToIndex(target, { block: this.alignment() });
+ this.highlightedIndex.set(target);
+ }
+
+ public goToRandom(): void {
+ this.goTo(Math.floor(Math.random() * this.employees.length));
+ }
+}
+```
+```html
+
+
+
+ Employees ({{ employees.length }})
+
+
+
+
+ #{{ index }} {{ employee.name }}
+ {{ employee.email }}
+ {{ employee.department }}
+
+
+
+
+```
+```scss
+:host {
+ display: block;
+ padding: 16px;
+}
+
+.toolbar {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ gap: 16px;
+ margin-block-end: 16px;
+}
+
+.toolbar__index {
+ inline-size: 140px;
+}
+
+.toolbar__actions {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 8px;
+}
+
+.employees__viewport {
+ block-size: 400px;
+}
+
+.employees__item--highlighted {
+ animation: highlight 1.5s ease-out;
+}
+
+@keyframes highlight {
+ from {
+ box-shadow: inset 0 0 0 3px var(--ig-warn-500);
+ }
+
+ to {
+ box-shadow: inset 0 0 0 3px transparent;
+ }
+}
+```
+
+With `block: 'nearest'`, the position does not change when the item is already fully visible. Indices outside the collection are clamped to the first or last item.
+
+### Infinite Scroll
+
+The Virtual Scroll `dataRequest` output supports append-only loading from remote data. It is emitted when the rendered window nears the end of `data`, and on the first render when the loaded items do not fill the viewport. Append the requested items as a new array:
+
+```html
+
+ ...
+
+```
+
+```ts
+public readonly employees = signal(firstPage);
+
+public loadMore(request: VirtualScrollDataRequest): void {
+ this.service.fetch(request.startIndex, request.count).subscribe(page => {
+ this.employees.update(current => [...current, ...page]);
+ });
+}
+```
+
+```typescript
+import { Component, signal } from '@angular/core';
+import { IgxAvatarComponent } from 'igniteui-angular/avatar';
+import { IgxChipComponent } from 'igniteui-angular/chips';
+import {
+ IgxListActionDirective,
+ IgxListComponent,
+ IgxListItemComponent,
+ IgxListLineSubTitleDirective,
+ IgxListLineTitleDirective,
+ IgxListThumbnailDirective
+} from 'igniteui-angular/list';
+import { IgxLinearProgressBarComponent } from 'igniteui-angular/progressbar';
+import { IgxVirtualItemDirective, IgxVirtualScrollComponent, VirtualScrollDataRequest } from 'igniteui-angular/virtual-scroll';
+import { Employee, generateEmployees } from '../employees';
+
+/** The size of the whole remote collection. */
+const TOTAL_COUNT = 1_000;
+const PAGE_SIZE = 50;
+
+@Component({
+ selector: 'app-virtual-scroll-infinite-scroll',
+ styleUrls: ['./virtual-scroll-infinite-scroll.component.scss'],
+ templateUrl: './virtual-scroll-infinite-scroll.component.html',
+ imports: [
+ IgxVirtualScrollComponent,
+ IgxVirtualItemDirective,
+ IgxListComponent,
+ IgxListItemComponent,
+ IgxListThumbnailDirective,
+ IgxListLineTitleDirective,
+ IgxListLineSubTitleDirective,
+ IgxListActionDirective,
+ IgxAvatarComponent,
+ IgxChipComponent,
+ IgxLinearProgressBarComponent
+ ]
+})
+export class VirtualScrollInfiniteScrollComponent {
+ public readonly totalCount = TOTAL_COUNT;
+ public readonly employees = signal(generateEmployees(PAGE_SIZE));
+ public readonly loading = signal(false);
+
+ /**
+ * `dataRequest` is emitted when the rendered window nears the end of `data`.
+ * Only one request is emitted at a time: the next one follows the next `data` change.
+ */
+ public loadMore(request: VirtualScrollDataRequest): void {
+ if (this.loading() || request.startIndex >= TOTAL_COUNT) {
+ return;
+ }
+
+ this.loading.set(true);
+ const count = Math.min(Math.max(request.count, PAGE_SIZE), TOTAL_COUNT - request.startIndex);
+
+ // Simulates a request to a remote service.
+ setTimeout(() => {
+ // Assign a new array: `data` is compared by reference.
+ this.employees.update(current => [...current, ...generateEmployees(count, request.startIndex)]);
+ this.loading.set(false);
+ }, 800);
+ }
+}
+```
+```html
+
+ Loaded {{ employees().length }} of {{ totalCount }} employees
+
+
+
+
+ #{{ employee.id }} {{ employee.name }}
+ {{ employee.email }}
+ {{ employee.department }}
+
+
+
+
+ @if (loading()) {
+
+ }
+
+
+```
+```scss
+:host {
+ display: block;
+ padding: 16px;
+}
+
+.employees__viewport {
+ block-size: 440px;
+}
+
+.employees__status {
+ block-size: 4px;
+}
+```
+
+Only one data request is pending at a time; the next one follows the next `data` change. An empty `data` emits no request, so load the first page yourself. When the source has no more items, stop appending: the component does not request the same start index again.
+
+### Paged Data
+
+The Angular Virtual Scroll `dataWindow` input binds a page of a larger collection instead of `data`. The list is as long as `totalCount`, so the scrollbar spans the whole collection while only the page is in memory, and indices that the page does not cover render nothing.
+
+```ts
+interface VirtualDataWindow {
+ readonly items: readonly T[]; // the loaded page
+ readonly startIndex: number; // the index of items[0] in the whole collection
+ readonly totalCount: number; // the size of the whole collection
+}
+```
+
+Load the next page from the range that `stateChange` reports. Cancel the previous request, so a slow response cannot replace a newer page:
+
+```html
+
+ ...
+
+```
+
+```ts
+public readonly page = signal>({ items: [], startIndex: 0, totalCount: 100_000 });
+private pending?: Subscription;
+
+public onStateChange(state: VirtualScrollState): void {
+ const page = this.page();
+ if (state.startIndex >= page.startIndex && state.endIndex < page.startIndex + page.items.length) {
+ return; // The loaded page already covers the range.
+ }
+
+ const startIndex = Math.max(0, state.startIndex - 30);
+ const count = state.endIndex + 30 - startIndex + 1;
+
+ this.pending?.unsubscribe();
+ this.pending = this.service.fetch(startIndex, count).subscribe(result => {
+ this.page.set({ items: result.items, startIndex, totalCount: result.total });
+ });
+}
+```
+
+```typescript
+import { Component, signal } from '@angular/core';
+import { IgxAvatarComponent } from 'igniteui-angular/avatar';
+import { IgxChipComponent } from 'igniteui-angular/chips';
+import {
+ IgxListActionDirective,
+ IgxListComponent,
+ IgxListItemComponent,
+ IgxListLineSubTitleDirective,
+ IgxListLineTitleDirective,
+ IgxListThumbnailDirective
+} from 'igniteui-angular/list';
+import { IgxLinearProgressBarComponent } from 'igniteui-angular/progressbar';
+import { IgxVirtualItemDirective, IgxVirtualScrollComponent, VirtualDataWindow, VirtualScrollState } from 'igniteui-angular/virtual-scroll';
+import { Employee, generateEmployees } from '../employees';
+
+/** The size of the whole remote collection. */
+const TOTAL_COUNT = 100_000;
+/** Extra records requested on each side of the range the viewport wants. */
+const BUFFER = 30;
+
+@Component({
+ selector: 'app-virtual-scroll-paged-data',
+ styleUrls: ['./virtual-scroll-paged-data.component.scss'],
+ templateUrl: './virtual-scroll-paged-data.component.html',
+ imports: [
+ IgxVirtualScrollComponent,
+ IgxVirtualItemDirective,
+ IgxListComponent,
+ IgxListItemComponent,
+ IgxListThumbnailDirective,
+ IgxListLineTitleDirective,
+ IgxListLineSubTitleDirective,
+ IgxListActionDirective,
+ IgxAvatarComponent,
+ IgxChipComponent,
+ IgxLinearProgressBarComponent
+ ]
+})
+export class VirtualScrollPagedDataComponent {
+ /** Only this page is in memory, while the scrollbar spans `totalCount` records. */
+ public readonly page = signal>({
+ items: generateEmployees(2 * BUFFER),
+ startIndex: 0,
+ totalCount: TOTAL_COUNT
+ });
+ public readonly loading = signal(false);
+
+ private wantedRange: VirtualScrollState | null = null;
+
+ /** `stateChange` reports the range the viewport wants, which the next page is loaded from. */
+ public onStateChange(state: VirtualScrollState): void {
+ this.wantedRange = state;
+ this.loadPageIfNeeded();
+ }
+
+ private loadPageIfNeeded(): void {
+ const wanted = this.wantedRange;
+ if (!wanted || wanted.endIndex < wanted.startIndex || this.loading()) {
+ return;
+ }
+
+ const page = this.page();
+ const pageEnd = page.startIndex + page.items.length - 1;
+ if (wanted.startIndex >= page.startIndex && wanted.endIndex <= pageEnd) {
+ return;
+ }
+
+ const startIndex = Math.max(0, wanted.startIndex - BUFFER);
+ const endIndex = Math.min(TOTAL_COUNT - 1, wanted.endIndex + BUFFER);
+
+ this.loading.set(true);
+ this.fetchPage(startIndex, endIndex - startIndex + 1).then(({ items, totalCount }) => {
+ this.page.set({ items, startIndex, totalCount });
+ this.loading.set(false);
+ // The user may have scrolled further while the request was in flight.
+ this.loadPageIfNeeded();
+ });
+ }
+
+ /** Simulates a request to a remote service that supports skip/take paging. */
+ private fetchPage(skip: number, take: number): Promise<{ items: Employee[]; totalCount: number }> {
+ return new Promise(resolve => {
+ setTimeout(() => resolve({ items: generateEmployees(take, skip), totalCount: TOTAL_COUNT }), 300);
+ });
+ }
+}
+```
+```html
+
+
+ Records {{ page().startIndex + 1 }}–{{ page().startIndex + page().items.length }} of {{ page().totalCount }} in memory
+
+
+
+
+
+ #{{ employee.id }} {{ employee.name }}
+ {{ employee.email }}
+ {{ employee.department }}
+
+
+
+
+ @if (loading()) {
+
+ }
+
+
+```
+```scss
+:host {
+ display: block;
+ padding: 16px;
+}
+
+.employees__viewport {
+ block-size: 440px;
+}
+
+.employees__status {
+ block-size: 4px;
+}
+```
+
+Measured sizes are kept per index while `totalCount` stays the same; a page with a different `totalCount`, such as a filtered result, is measured again. `dataRequest` is not emitted while `dataWindow` is bound. The component stores one size entry per index, so its memory grows with `totalCount`: roughly 17 MB for a million items.
+
+### Layout Complete
+
+The Virtual Scroll `layoutComplete` property is a promise that resolves when the current render, the measurements it triggers, and the renders they schedule are complete. Await it before you read rendered items after a `data` change, a scroll, or a resize.
+
+```ts
+this.employees = await firstValueFrom(this.service.fetchAll());
+await this.virtualScroll().layoutComplete;
+```
+
+### Do/Don't
+
+The Virtual Scroll usually works as the scroll container of a long list, keeping only the items in its viewport, plus a small buffer, in the DOM. Avoid it for a list short enough to render at once, and as you write the item template, keep each item state in the data rather than in its elements: item elements are reused, so DOM state the template does not bind shows on whichever item takes the element.
+
+
+
+
+
+
+
+
+
+Do
+
+Use the Virtual Scroll for a long list that is too large to render at once, such as a directory, a feed, a log, or a strip of cards, including lists that load remote data while scrolling.
+
+
+
+
+
+
+
+
+Don't
+
+Render a short list directly with the [List](../list.md) and `@for`. Use the [Angular Data Grid](../grid/grid.md) for tabular data with columns, sorting, or filtering. Show a small set of rich items as [Card](../card.md) elements without virtualization.
+
+
+
+
+
+## Properties
+
+| Name | Type | Default | Description |
+| --- | --- | --- | --- |
+| `data` | `T[]` | `[]` | The collection to virtualize. Compared by reference. |
+| `dataWindow` | `VirtualDataWindow \| null` | `null` | A page of a larger collection, used instead of `data` while it is set. |
+| `orientation` | `'vertical' \| 'horizontal'` | `'vertical'` | The scroll axis. |
+| `overScan` | `number` | `2` | Extra items rendered beyond each edge of the viewport. |
+| `estimatedItemSize` | `number` | `50` | The size in pixels of an item until it is measured. A non-positive value uses `50`. |
+| `itemTemplate` | `TemplateRef> \| null` | `null` | The item template. Takes precedence over a projected `ng-template[igxVirtualItem]`. |
+| `layoutComplete` | `Promise` (read-only) | — | Resolves when rendering and item measurement have settled. |
+
+## Methods
+
+| Name | Returns | Description |
+| --- | --- | --- |
+| `scrollToIndex(index: number, options?: ScrollIntoViewOptions)` | `Promise` | Scrolls the item at `index` into view and resolves when the corrected position is stable. |
+
+## Events
+
+| Name | Payload | Description |
+| --- | --- | --- |
+| `stateChange` | `VirtualScrollState` | Emitted when the rendered window changes: `startIndex`, `endIndex`, `viewportSize`, `totalSize`. |
+| `dataRequest` | `VirtualScrollDataRequest` | Emitted when the rendered window nears the end of `data`: `startIndex`, `count`. Not emitted while `dataWindow` is bound. |
+
+## Styling
+
+The Angular Virtual Scroll has no theme of its own: it lays out the viewport, and the rendered items take their styles from the elements and components in the item template.
+
+Size the host and target the rendered items with the classes from the [Anatomy](#anatomy):
+
+```scss
+.employees igx-virtual-scroll {
+ block-size: 480px;
+}
+
+.employees .igx-virtual-item:nth-child(even) {
+ background: var(--ig-gray-100);
+}
+```
+
+## Accessibility
+
+The Angular Virtual Scroll keeps only the rendered window in the DOM, so the item template has to expose each item's position in the whole collection.
+
+### Keyboard Interaction
+
+The Angular Virtual Scroll adds no key handlers. The host is a native scroll container, and a focused scroll container scrolls with the browser's keys:
+
+| Key | Action |
+| --- | --- |
+| Arrow Up / Arrow Down | Scrolls a vertical list. |
+| Arrow Left / Arrow Right | Scrolls a horizontal list. |
+| Page Up / Page Down | Scrolls by about one viewport. |
+| Home / End | Scrolls to the start or the end of the collection. |
+
+The host has no `tabindex`. Browsers differ in whether a scroll container without focusable content can receive focus, so set `tabindex="0"` on the host when the items contain nothing focusable. Focus inside an item does not survive that item leaving the rendered window, so move focus deliberately before it does.
+
+### Screen Readers / ARIA
+
+- The host has `role="list"`; the track, the content element, and the item wrappers have `role="presentation"`. Items that render `role="listitem"`, such as `igx-list-item`, are exposed as items of that list.
+- Inside a container that already provides list semantics, such as `igx-list`, set `role="presentation"` on the host so that the items are not nested in a second list.
+- Map the `index` and `count` template variables to `aria-posinset` and `aria-setsize`.
+- Give a focusable host an accessible name with `aria-label` or `aria-labelledby`.
+
+### Accessibility Compliance
+
+Infragistics documents the accessibility standards that Ignite UI for Angular targets in the [Accessibility Compliance](../interactivity/accessibility-compliance.md) topic. This topic makes no conformance claim for the Virtual Scroll: the table lists what the component provides, and the list after it covers what the application must add.
+
+| Criterion | How the component supports the requirement |
+| --- | --- |
+| [1.3.1 Info and Relationships](https://www.w3.org/WAI/WCAG21/Understanding/info-and-relationships) | The wrappers are presentational, so the list structure comes from the host and the item template, which can expose each item's position with `aria-posinset` and `aria-setsize`. |
+| [2.1.1 Keyboard](https://www.w3.org/WAI/WCAG21/Understanding/keyboard) | The host is a native scroll container that scrolls with the keyboard once it has focus. Reaching it with the keyboard depends on the application; see the list below. |
+
+Your responsibilities:
+
+- Make the host keyboard-reachable with `tabindex="0"` when the items contain nothing focusable, and give it an accessible name.
+- Expose the item position with `aria-posinset` and `aria-setsize` from the item template.
+- Provide list semantics that fit the item template (see [Screen Readers / ARIA](#screen-readers--aria)).
+- Keep application state, such as a selection, in the data rather than in the rendered item elements.
+
+## Troubleshooting
+
+### Why does the Virtual Scroll render no items?
+
+The host has no size on the scroll axis, the item template is missing, or `data` is empty. Give the host a fixed height (vertical) or width (horizontal), set the item template, and check the bound collection.
+
+### Why does the list not update when I add an item?
+
+The Virtual Scroll compares `data` by reference, so a change in place is not detected. Assign a new array, for example `[...items, newItem]`.
+
+### Why does the scrollbar change size while I scroll?
+
+Items that have not rendered use `estimatedItemSize`, and the total size is corrected as items are measured.
+
+Set `estimatedItemSize` close to the average item size.
+
+### Why do items drift out of place further down the list?
+
+Margins are not part of an item's measured size. Replace item margins with padding, or with a `gap` inside the item.
+
+### Why does a list inside a drop-down or dialog show its items one frame late?
+
+A container that is hidden until it opens has no size in the change detection pass that reveals it, so the host is measured after that render and the items render in the next frame. Read the rendered items after `layoutComplete` resolves.
+
+### How do I replace an igxForOf list with the Virtual Scroll?
+
+The Virtual Scroll measures items at runtime and creates its own scroll container, so the container size and scroll container inputs of `igxForOf` have no equivalent. The `igxForOf` directive is deprecated in favor of the Virtual Scroll; existing lists keep working, but use the Virtual Scroll for new lists that virtualize a single axis.
+
+| igxForOf | Virtual Scroll |
+| --- | --- |
+| `*igxFor="let item of data"` | `[data]="data"` with an `ng-template igxVirtualItem` |
+| `igxForScrollOrientation` | `orientation` |
+| `igxForContainerSize` | The host's height or width, set with CSS |
+| `igxForItemSize` | `estimatedItemSize` (a starting estimate; items are measured) |
+| `igxForScrollContainer` | Not needed: the host is the scroll container |
+| `scrollTo(index)` | `scrollToIndex(index, options)`, which returns a promise |
+| `chunkLoad`, `chunkPreload` | `stateChange` |
+| `igxForTotalItemCount` for remote data | `dataWindow` with `totalCount`, or `data` with `dataRequest` for append-only loading |
+| `index`, `count`, `first`, `last`, `even`, `odd` | The same template variables |
+
+The grids keep their own row and column virtualization; see [Grid Virtualization](../grid/virtualization.md).
+
+## Known Limitations
+
+- The Angular Virtual Scroll virtualizes one axis. Rows and columns that are both virtualized require a grid.
+- Item elements are reused as the window moves, so DOM state that the item template does not bind, such as a checkbox without a bound `checked`, shows on whichever item takes the element. Bind all item state, and write user changes back to the item.
+
+- With `dataWindow`, a page that keeps `totalCount` but places different records at the same indices keeps the measured sizes of the previous records until those rows render again.
+
+## API References
+
+- `IgxVirtualScroll`
+
+## Dependencies
+
+The Angular Virtual Scroll has no dependencies on other components. Import `IgxVirtualScrollComponent` and `IgxVirtualItemDirective` from `igniteui-angular/virtual-scroll`; the structural styles ship with the component.
+
+## Additional Resources
+
+- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
+- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
+
+## Related Components
+
+- [List](../list.md) - Use the List for a short list, or as the container of a virtualized list.
+- [Data Grid](../grid/grid.md) - Use the Data Grid for tabular data with columns, sorting, or filtering.
+- [Card](../card.md) - Use cards for a small set of rich items, or as items of a horizontal Virtual Scroll.
+- [Virtual ForOf Directive](../for-of.md) - The directive-based virtualization used by existing lists.
+
+## FAQ
+
+ **Q: How many items can the Virtual Scroll handle?**
+
+ The Angular Virtual Scroll keeps only the items in its viewport and the over-scan buffer in the DOM, so the size of the collection does not change how many elements render. When the total size of a collection exceeds the browser's scroll limit, the Virtual Scroll maps the collection onto the scroll range the browser supports.
+
+ **Q: Do Virtual Scroll items need the same size?**
+
+ Items in the Angular Virtual Scroll can have different sizes, because each item is measured once it renders. Set `estimatedItemSize` close to the average item size so that the scrollbar is accurate before items are measured.
+
+
+ **Q: How do I scroll the Virtual Scroll to a specific item?**
+
+ Call the Angular Virtual Scroll `scrollToIndex` method with the item index and optional `block` and `behavior` options. The method returns a promise that resolves when the corrected position is stable.
+
+ **Q: How do I load remote data into the Virtual Scroll while the user scrolls?**
+
+ The Angular Virtual Scroll supports two models. For append-only loading, handle `dataRequest` and assign a new array that includes the requested items. For a collection read a page at a time, bind `dataWindow` and load the range that `stateChange` reports.
+
+
+
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-angular-events.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-angular-events.md
index 34493f8fc..7acf679b2 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-angular-events.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-angular-events.md
@@ -1,13 +1,15 @@
---
title: Handling Angular Events | Event Binding | WPF to Angular Guide | Infragistics
-_description: Learn about Angular event binding and how to create your own Angular custom events. See how Angular uses DOM events to do this and handles user inputs.
-_keywords: handling angular events, ignite ui for angular, infragistics
+description: Learn about Angular event binding and how to create your own Angular custom events. See how Angular uses DOM events to do this and handles user inputs.
+keywords: handling angular events, ignite ui for angular, infragistics
+llms:
+ description: "The Angular events are emitted as a response to user interactions."
_tocName: Angular Events
---
-
# Handling Angular Events
-> [!Video https://www.youtube.com/embed/V1Futz4W400]
+
The Angular events are emitted as a response to user interactions. When an Angular event is emitted, its event handling logic is executed. WPF provides routed events, CLR events, and commands. While in Angular, there are DOM events.
@@ -51,7 +53,7 @@ onClicked(event) {
Sometimes passing the event object might not be very useful. Instead, you may want to pass the value of an `input` on the page.
```html
-
+
Click Me
```
@@ -64,7 +66,7 @@ onClicked(message) {
Let's say that we want to print the value of an input on pressing Enter. You could do that in Angular like this:
```html
-
+
```
```typescript
@@ -78,7 +80,7 @@ onInputKeyup(event, message) {
Surprisingly, in Angular, there is an even easier way to do that. You could bind to the `keyup.enter` pseudo-event. Using this approach, the event handler will be called only when the user presses Enter.
```html
-
+
```
```typescript
@@ -145,7 +147,7 @@ this.taskCompleted.emit(new TaskEventArgs());
- [Angular User Input](https://angular.io/guide/user-input)
- [Component Interaction: Parent listens for child events](https://angular.io/guide/component-interaction#parent-listens-for-child-event)
-
+
Our community is active and always welcoming to new ideas.
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-angular-pipes.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-angular-pipes.md
index 9e0d6d3e2..984dd6430 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-angular-pipes.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-angular-pipes.md
@@ -1,13 +1,15 @@
---
title: Transform Data with Angular Pipes | WPF to Angular Guide | Infragistics
-_description: Learn how Angular pipes can transform data from one value to another like wpf converters. Angular provides predefined pipes for common data transformations.
-_keywords: transform data with angular pipes, ignite ui for angular, infragistics
+description: Learn how Angular pipes can transform data from one value to another like wpf converters. Angular provides predefined pipes for common data transformations.
+keywords: transform data with angular pipes, ignite ui for angular, infragistics
+llms:
+ description: "You can use the Angular pipes to transform data from one value to another."
_tocName: Transforming Data with Angular Pipes
---
-
# Transform Data with Angular Pipes
-> [!Video https://www.youtube.com/embed/Gmz5kio50FE]
+
You can use the Angular pipes to transform data from one value to another. This technic is similar to WPF converters.
@@ -83,10 +85,11 @@ export class ReplacePipe implements PipeTransform {
{{ name | replace:" ":"-" }}
```
-> [!NOTE]
-> Note that in order to be able to use the pipe in the component's html template, you have to add it to the module declarations.
-> [!NOTE]
-> An important difference between the Angular pipe and the WPF converter is that the Angular pipe works only for one-way binding unlike the WPF converter which has [ConvertBack](https://docs.microsoft.com/en-us/dotnet/api/system.windows.data.ivalueconverter.convertback?view=netframework-4.8) method.
+**Note:**
+Note that in order to be able to use the pipe in the component's html template, you have to add it to the module declarations.
+
+**Note:**
+An important difference between the Angular pipe and the WPF converter is that the Angular pipe works only for one-way binding unlike the WPF converter which has [ConvertBack](https://docs.microsoft.com/en-us/dotnet/api/system.windows.data.ivalueconverter.convertback?view=netframework-4.8) method.
## Additional Resources
@@ -94,7 +97,7 @@ export class ReplacePipe implements PipeTransform {
- [Angular Pipes](https://angular.io/guide/pipes)
- [List of Predefined Angular Pipes](https://angular.io/api?type=pipe)
-
+
Our community is active and always welcoming to new ideas.
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-create-first-angular-app.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-create-first-angular-app.md
index 5dc16dca5..474dc6492 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-create-first-angular-app.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-create-first-angular-app.md
@@ -1,13 +1,15 @@
---
title: Create Your First Angular Application | WPF to Angular Guide | Infragistics
-_description: Learn how to create your first Angular 9 application when you migrate from WPF to Angular. Read about the prerequisites, your first project & structure.
-_keywords: create angular application, ignite ui for angular, infragistics
+description: Learn how to create your first Angular 9 application when you migrate from WPF to Angular. Read about the prerequisites, your first project & structure.
+keywords: create angular application, ignite ui for angular, infragistics
+llms:
+ description: "Learn how to start creating an Angular application when you migrate from WPF to Angular."
_tocName: Create your first Angular app
---
-
# Create an Angular application
-> [!Video https://www.youtube.com/embed/dhjrAPPad54]
+
Learn how to start creating an Angular application when you migrate from WPF to Angular.
@@ -46,9 +48,6 @@ This is going to launch a new instance of Visual Studio Code that contains your
Let's go ahead and take a look at each of these files and see how they relate to a WPF application. The best way to do that is to compare each project side by side. On the left we have our WPF app. On the right we have our Angular app.
-
-
-
It is important to keep in mind that an Angular application is a single page application (SPA) which means there is only one page in the entire app, and that is your `index.html`. The `index.html` file could be compared to the `App.xaml` of the WPF application. They are both global and everything you put there will show up on every single page of your application. The `index.html` file contains a section `` which is similar to the `StartupUri` of the `App.xaml` file and specifies the first page we want to show when the app launches.
What happens technically is when you navigate to the `index.html`, the `main.ts` JavaScript file invokes which loads the `AppModule`. An Angular application is made up of modules and components. By default, you get a root module and a root component and those are going to be located under the `app` folder. when the `main.ts` file invokes, we're going to bootstrap the `AppModule`, which is in the `app.module.ts` file in the `app` folder.
@@ -101,14 +100,12 @@ You could find those scripts defined in the `package.json` file and modify the `
Your first Angular application should look like this:
-
-
## Additional Resources
- [Desktop to Web: Create your first Angular App](https://www.youtube.com/watch?v=dhjrAPPad54&list=PLG8rj6Rr0BU-AqcJMuwggKy0GMIkjkt3j)
- [Angular Application Shell](https://angular.io/tutorial/toh-pt0)
-
+
Our community is active and always welcoming to new ideas.
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-create-ui-with-components.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-create-ui-with-components.md
index c3b42b5ec..2797d2067 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-create-ui-with-components.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-create-ui-with-components.md
@@ -1,27 +1,25 @@
---
title: Create a User Interface with Angular Components | WPF to Angular Guide | Infragistics
-_description: Learn how to create a user interface in an Angular application with an Angular component. See how similar WPF components translate in Angular.
-_keywords: create user interface with an angular component, ignite ui for angular, infragistics
+description: Learn how to create a user interface in an Angular application with an Angular component. See how similar WPF components translate in Angular.
+keywords: create user interface with an angular component, ignite ui for angular, infragistics
+llms:
+ description: "When it comes to creating user interface in an Angular application you can use an Angular component to facilitate the process."
_tocName: Create your UI with Angular components
---
-
# Create User Interface with an Angular component
-> [!Video https://www.youtube.com/embed/z1SZUezpRXY]
+
When it comes to creating user interface in an Angular application you can use an Angular component to facilitate the process.
Creating a UI in Angular is very similar to how we would create one in WPF. We normally use user controls, represented by the UserControl class. A `UserControl` groups markup and code into a reusable container, allowing the same interface and functionality to be used in several different places. This user control will have a .xaml file for the UI markup and a C# file for the logic, and then it may even have a resource dictionary, which would contain any type of styling information for this user control. While in Angular, we use what's called a `Component`. A component has an html file, which is used for any UI markup. It has a typescript file, which is used for its properties and logic, and then it uses a CSS file for all its styling information. Let's go ahead and see just how similar these two are.
-
-
On the left side, we have a WPF application, with a user control called `Sample`. It also has a resource dictionary called `SampleResources` that contains styling information.
On the right side, we have an Angular application with an `AppComponent`. Let's go ahead and compare the Angular app component to that of the sample user control in the WPF application.
Start by opening up the app component typescript file. We can think of this file as the code behind of the component, and the reason we think that way is because if we come over to the WPF and open up the Sample.xaml.cs, the code behind of the `Sample` user control, we can see a lot of similarities.
-
-
First we can see that we have a class that we're exporting called `AppComponent`. Now, this AppComponent also has a property in it called title. So within this class we're going to define all the properties, methods and events required for our component to run. This is extremely similar if not the exact same of a user control. We can see that we have a class, in this case called `Sample`, and within this class, we're going to define all the properties, methods and events required for the user control to function.
Next, let’s move up a few lines in the typescript file and look at this little weird syntax with the little `@` symbol and then Component. This is actually called a decorator. This decorator is telling Angular how we're going to treat this class that we're exporting. In this case, we're going to treat it as a component and because we're treating it as a component, we have to provide some information in the decorator. Before we get to the information, let's first pay some attention to the very top line of the typescript file - `import { Component } from '@angular/core'`. You can think of this as a using statement. Essentially, we are importing the objects that are required for this component to function. In this case, we are importing the `Component` from the `@angular/core` module, so we can actually use the decorator for this component. That is extremely similar to a using statement inside of the code behind of our user control. We use `using` statements inside of C# to locate and use objects within our class that are required for the user control to function.
@@ -42,11 +40,9 @@ ng g c sample
When the command completes, you'll notice a number of things have happened. First, we have a new folder with the same name we have given to our component. We also have four new files - an html file, a SPEC file, a typescript file, and a CSS file. We also made an update to the `app.module.ts` file.
-
-
Look at the `sample` folder which contains our newly created component. We can see that all three files that are required for a component are there plus this extra SPEC file. This is actually a test file which we do not need for this article, so we're not going to bother with it now. We also made a modification to the app.module.ts, in which it added the sample component to the `declarations` section of our NgModule.
-> [!NOTE]
-> This is important - whenever a new component is created, it must be declared in the declarations section of the NG module. This section essentially says what components belong to this module.
+**Note:**
+This is important - whenever a new component is created, it must be declared in the declarations section of the NG module. This section essentially says what components belong to this module.
Let's go back to our `sample.component.ts` file. It looks very similar to the `app.component.ts` file we covered above. In this case we have our import statement where we're importing our component. We have our component decorator where we are defining our selector as `app-sample`. We have our template URL as `sample.component.html` and we have our style URL `sample.component.css`.
@@ -67,9 +63,7 @@ By typing `npm start` in the terminal, it will compile and build our application
Let's now change our sample component a little by changing the text to 'This sample works very well!'.
```html
-
This sample works very well!
-
```
Once we save and check the browser, we will see that we are indeed editing the html that is responsible for rendering the sample component.
@@ -88,9 +82,8 @@ Once we save that and open up the browser, we should see that the styling in the
- [Desktop to Web: Create your UI with Angular components](https://www.youtube.com/watch?v=z1SZUezpRXY&t)
- [Angular Introduction to Components](https://angular.io/guide/architecture-components)
-
+
Our community is active and always welcoming to new ideas.
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
-
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-layout.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-layout.md
index 8f737e283..9da558048 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-layout.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-layout.md
@@ -1,10 +1,11 @@
---
title: Angular Page Layout Elements | WPF to Angular Guide | Infragistics
-_description: Learn how to customize the page layout of your Angular application with our in-depth tutorial of using CSS features like Flexbox & Grid.
-_keywords: angular page layout elements, ignite ui for angular, infragistics
+description: Learn how to customize the page layout of your Angular application with our in-depth tutorial of using CSS features like Flexbox & Grid.
+keywords: angular page layout elements, ignite ui for angular, infragistics
+llms:
+ description: "In WPF, in order to layout the elements in your application, you need to put them inside a Panel."
_tocName: Layout Elements
---
-
# Page Layout
In WPF, in order to layout the elements in your application, you need to put them inside a [`Panel`](https://docs.microsoft.com/en-us/dotnet/api/system.windows.controls.panel?view=netframework-4.8). The panel is a container element that controls the arrangement of its child elements. In Angular, in order to customize the page layout and its child elements, you have to use CSS. Let us go through some of the most popular panels in WPF and see how we can achieve similar layout with CSS.
@@ -23,12 +24,12 @@ The [`StackPanel`](https://docs.microsoft.com/en-us/dotnet/api/system.windows.co
```
-
If we want to achieve similar layout in Angular, we may use CSS Flexbox layout. The Flexible Box Layout Module is a powerful mechanism which allows designing a flexible responsive layout structure. In order to use the Flexbox layout, we have to define a container which has its [`display`](https://www.w3schools.com/cssref/pr_class_display.asp) property set to `flex`. Also in order to stack the items vertically, we have to set the [`flex-direction`](https://www.w3schools.com/cssref/css3_pr_flex-direction.asp) property to `column`.
```html
+
123
@@ -46,8 +47,6 @@ If we want to achieve similar layout in Angular, we may use CSS Flexbox layout.
Here is the final result in the browser:
-
-
The default value of the [`flex-direction`](https://www.w3schools.com/cssref/css3_pr_flex-direction.asp) property is `row`, which is equivalent to a StackPanel with Horizontal orientation in WPF. The flexbox also supports `row-reverse` and `column-reverse` directions which stack the items right to left and bottom to top respectively.
## WrapPanel
@@ -69,12 +68,12 @@ The [`WrapPanel`](https://docs.microsoft.com/en-us/dotnet/api/system.windows.con
```
-
In order to achieve similar result in Angular, we will use the Flexbox layout again. As in the case with StackPanel, we have to set the [`display`](https://www.w3schools.com/cssref/pr_class_display.asp) property to `flex`, but we also have to set the [`flex-wrap`](https://www.w3schools.com/cssref/css3_pr_flex-wrap.asp) property to `wrap`.
```html
+
123
@@ -96,8 +95,6 @@ button {
Here is the final result in the browser:
-
-
If you want to achieve a result similar to a WrapPanel with Orientation="Vertical", you have to set the [`flex-direction`](https://www.w3schools.com/cssref/css3_pr_flex-direction.asp) property to `column`. The [`flex-flow`](https://www.w3schools.com/cssref/css3_pr_flex-flow.asp) property is a shorthand property for setting both the `flex-direction` and `flex-wrap` properties.
```css
@@ -136,12 +133,12 @@ The [`Grid`](https://docs.microsoft.com/en-us/dotnet/api/system.windows.controls
```
-
In Angular, we could use the CSS Grid Layout Module, which offers a grid-based layout system, with rows and columns. In order to use the Grid layout, we have to define a container which has its [`display`](https://www.w3schools.com/cssref/pr_class_display.asp) property set to `grid` or `inline-grid`.
```html
+
123
@@ -158,8 +155,8 @@ In Angular, we could use the CSS Grid Layout Module, which offers a grid-based l
}
```
-> [!NOTE]
-> The CSS Grid Layout is [not supported](https://caniuse.com/#feat=css-grid) in older browsers like Internet Explorer 11.
+**Note:**
+The CSS Grid Layout is [not supported](https://caniuse.com/#feat=css-grid) in older browsers like Internet Explorer 11.
Now let us define the columns of the grid using the [`grid-template-columns`](https://www.w3schools.com/cssref/pr_grid-template-columns.asp) property.
@@ -191,8 +188,6 @@ Now we will add the rows with height of 50px each using the [`grid-template-rows
If we open the application now it looks like this:
-
-
You could see one important difference between the WPF and CSS grids. In WPF the default value of Grid.Row and Grid.Column is 0, while the CSS grid layout automatically assigns the next available row and column to its children.
Now let us apply the column and row spans to the first and seventh buttons. We will use the [`grid-row`](https://www.w3schools.com/cssref/pr_grid-row.asp) and [`grid-column`](https://www.w3schools.com/cssref/pr_grid-column.asp) properties for that purpose.
@@ -229,7 +224,6 @@ Here is the full CSS and the final result in the browser:
}
```
-
The `grid-row` and `grid-column` properties are shorthand properties for the [`grid-row-start`](https://www.w3schools.com/cssref/pr_grid-row-start.asp), [`grid-row-end`](https://www.w3schools.com/cssref/pr_grid-row-end.asp), [`grid-column-start`](https://www.w3schools.com/cssref/pr_grid-column-start.asp) and [`grid-column-end`](https://www.w3schools.com/cssref/pr_grid-column-end.asp) properties. You could learn more about the CSS Grid container and item properties in the tutorials in the **Additional Resources** section.
@@ -240,7 +234,7 @@ The `grid-row` and `grid-column` properties are shorthand properties for the [`g
- [CSS Grid Container](https://www.w3schools.com/css/css_grid_container.asp)
- [CSS Grid Item](https://www.w3schools.com/css/css_grid_item.asp)
-
+
Our community is active and always welcoming to new ideas.
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-one-way-binding.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-one-way-binding.md
index 5af4051c8..c147c7788 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-one-way-binding.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-one-way-binding.md
@@ -1,15 +1,17 @@
---
title: One-Way Data Binding in Angular | WPF to Angular Guide | Infragistics
-_description: Learn about one-way data binding in Angular & how it's used to show information to the end user while staying synchronized with changes to the underlying data.
-_keywords: one-way data binding in angular, ignite ui for angular, infragistics
+description: Learn about one-way data binding in Angular & how it's used to show information to the end user while staying synchronized with changes to the underlying data.
+keywords: one-way data binding in angular, ignite ui for angular, infragistics
+llms:
+ description: "One-way data binding in Angular (i.e. unidirectional binding) is a way to bind data from the component to the view (DOM) or vice versa - from view to the component."
_tocName: One-Way Binding
---
-
# What is one-way data binding in Angular
One-way data binding in Angular (i.e. unidirectional binding) is a way to bind data from the component to the view (DOM) or vice versa - from view to the component. It is used to display information to the end-user which automatically stays synchronized with each change of the underlying data. This is similar to the one-way binding in WPF.
-> [!Video https://www.youtube.com/embed/fP7iVhFNTOk]
+
## What is Angular data binding?
@@ -120,7 +122,7 @@ export class SampleComponent implements OnInit {
We will now create a simple `input` of type text and bind the `isDisabled` property to the input's `disabled` property:
```html
-
+
```
The expected result is that the `input` should be enabled, but it's disabled. This is because the `interpolation` returns a string, but the input's disabled property is of boolean type and it requires a boolean value.
@@ -131,21 +133,21 @@ In order for this to work correctly, Angular provides `property binding`.
Property binding in Angular is used to bind values for target properties of HTML elements or directives. The syntax here is a bit different than that of interpolation. With property binding, the property name is wrapped into square brackets, and its value does not contain curly braces - just the name of the property that it is bound to.
```html
-
+
```
By using property binding, the input's `disabled` property is bound to a boolean result, **not** a string. The `isDisabled` value is false and running the app would display the input as enabled.
-> [!NOTE]
-> It is very important to remember that when a binding relies on the data type result, then a `property binding` should be used! If the binding simply relies on a string value, then `interpolation` should be used.
+**Note:**
+It is very important to remember that when a binding relies on the data type result, then a `property binding` should be used! If the binding simply relies on a string value, then `interpolation` should be used.
## Additional Resources
- [Desktop to Web: One-way data binding with Angular interpolation and property binding](https://www.youtube.com/watch?v=fP7iVhFNTOk&list=PLG8rj6Rr0BU-AqcJMuwggKy0GMIkjkt3j)
-- [Two-way binding in Angular](two-way-binding.md)
+- [Two-way binding in Angular](/general/wpf-to-angular-guide/two-way-binding)
- [Angular Displaying Data](https://angular.io/guide/displaying-data#displaying-data)
-
+
Our community is active and always welcoming to new ideas.
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-structural-directives.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-structural-directives.md
index 2dbd5420c..3ba0258ca 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-structural-directives.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-structural-directives.md
@@ -1,13 +1,15 @@
---
title: Angular Structural Directives | ngIf, ngswitch | WPF to Angular Guide | Infragistics
-_description: Learn how to use structural directives in Angular 9 like ngIf, ngswitch & ngFor to add and remove elements to your view in your Angular application
-_keywords: angular structural directives, ignite ui for angular, infragistics
+description: Learn how to use structural directives in Angular 9 like ngIf, ngswitch & ngFor to add and remove elements to your view in your Angular application
+keywords: angular structural directives, ignite ui for angular, infragistics
+llms:
+ description: "When it comes to control the appearance of the visual tree elements’ appearance in WPF, the most common way is to use binding and visibility converter, which requires some extra logic and static resources."
_tocName: Structural Directives in Angular
---
-
# Angular Structural Directives
-> [!Video https://www.youtube.com/embed/vQe7R78Od8k]
+
When it comes to control the appearance of the visual tree elements’ appearance in WPF, the most common way is to use binding and visibility converter, which requires some extra logic and static resources. Angular also has a similar technique, which changes the appearance or behavior of a DOM element - the Angular directives. One of the Angular `directives` type is the `structural directives` – they change the DOM layout by adding or removing DOM elements.
@@ -166,7 +168,7 @@ That's how easy it is to add and remove elements to your view in your angular ap
- [Desktop to Web: Structural Directives in Angular](https://www.youtube.com/watch?v=vQe7R78Od8k&t)
- [Angular Structural Directives](https://angular.io/guide/structural-directives)
-
+
Our community is active and always welcoming to new ideas.
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-two-way-binding.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-two-way-binding.md
index 761c00acb..c28337180 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-two-way-binding.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-two-way-binding.md
@@ -1,15 +1,17 @@
---
title: Two-Way Data Binding in Angular with ngModel | WPF to Angular Guide | Infragistics
-_description: Learn how two-way data binding in Angular is used to display information to the end user and allows them to make changes to the underlying data using the UI.
-_keywords: two-way data binding in Angular, ignite ui for angular, infragistics
+description: Learn how two-way data binding in Angular is used to display information to the end user and allows them to make changes to the underlying data using the UI.
+keywords: two-way data binding in Angular, ignite ui for angular, infragistics
+llms:
+ description: "The two-way data binding in Angular enables data to flow from the component to the view and the other way round."
_tocName: Two-Way Binding
---
-
# What is two-way data binding in Angular
The two-way data binding in Angular enables data to flow from the component to the view and the other way round. It is used to display information to the end-user and allows them to make changes to the underlying data using the UI. This makes a two-way connection between the view (the template) and the component class that we already mentioned. The process is similar to the two-way binding in WPF.
-> [!Video https://www.youtube.com/embed/MrjTTDEj7cA]
+
## How does data binding work in Angular?
@@ -19,7 +21,7 @@ The two-way data binding in Angular is used to display information to the end us
A one-way binding is taking the state from our component class and displaying it in our view. Let's look at this code:
```html
-
+
{{ text }}
```
@@ -34,7 +36,7 @@ keyup(value) {
...
```
-Here we are simply using `interpolation` to bind the text property to the HTML. This will display the value of the text property in the UI. The `input` element handles the user interaction and updates the underlying `text` property through the UI by using the [event binding](angular-events.md). Essentially, the input does the opposite of the one-way binding, it takes the information from the UI and updates the property in the component class. The method which is hooked up to the input's keyup event updates the text property each time the event occurs. Once the text property value is changed by the event method, that change is reflected in the UI by the one-way binding using `interpolation` of the h2 element. So if the user types something into the input element, that will immediately update the h2 text - this behavior is basically a simulation of a two-way binding. The same can also be achieved in WPF by using a one-way binding and a keyup event handler, but the two-way binding is way more convenient to use.
+Here we are simply using `interpolation` to bind the text property to the HTML. This will display the value of the text property in the UI. The `input` element handles the user interaction and updates the underlying `text` property through the UI by using the [event binding](/general/wpf-to-angular-guide/angular-events). Essentially, the input does the opposite of the one-way binding, it takes the information from the UI and updates the property in the component class. The method which is hooked up to the input's keyup event updates the text property each time the event occurs. Once the text property value is changed by the event method, that change is reflected in the UI by the one-way binding using `interpolation` of the h2 element. So if the user types something into the input element, that will immediately update the h2 text - this behavior is basically a simulation of a two-way binding. The same can also be achieved in WPF by using a one-way binding and a keyup event handler, but the two-way binding is way more convenient to use.
## How to implement two-way data binding in Angular
@@ -43,7 +45,7 @@ Fortunately, we can implement the logic of the sample from above in a much easie
The direction of a two-way binding is not just **component class to UI**, but **UI to component class** as well. To achieve this, we are going to use a [directive](https://angular.io/api/core/Directive) called [`ngModel`](https://angular.io/api/forms/NgModel). Let's update the sample from above with the `ngModel` directive. The syntax for that is - an open bracket followed by an open parenthesis, and of course the corresponding closing parenthesis and bracket. This is called a **banana in the box**, so let's see it in action!
```html
-
+
{{ text }}
```
@@ -74,19 +76,18 @@ If we run the sample, the initial input's value would be equal to **default valu
Another equivalent way to achieve this is:
```html
-
+
```
This is actually similar to the first sample, which used a property binding and an event binding.
-
## Additional Resources
- [Desktop to Web: Desktop to Web: Angular Two-Way Binding with ngModel](https://www.youtube.com/watch?v=MrjTTDEj7cA&list=PLG8rj6Rr0BU-AqcJMuwggKy0GMIkjkt3j)
-- [One-way binding in Angular](one-way-binding.md)
+- [One-way binding in Angular](/general/wpf-to-angular-guide/one-way-binding)
- [Angular NgModel](https://angular.io/api/forms/NgModel)
-
+
Our community is active and always welcoming to new ideas.
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-wpf-to-angular-guide.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-wpf-to-angular-guide.md
index 1cb5e59be..a34862c17 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-wpf-to-angular-guide.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/wpf-to-angular-guide-wpf-to-angular-guide.md
@@ -1,54 +1,54 @@
---
title: WPF to Angular Tutorial & Guide for Developers | Desktop to Web | Infragistics
-_description: Read our WPF to Angular tutorial that guides developers on making a smooth transition from a desktop to web framework. Learn more about Angular today!
-_keywords: wpf to angular tutorial, igniteui for angular, infragistics
+description: Read our WPF to Angular tutorial that guides developers on making a smooth transition from a desktop to web framework. Learn more about Angular today!
+keywords: wpf to angular tutorial, igniteui for angular, infragistics
+llms:
+ description: "WPF to Angular tutorial is the first step that you should take in order to make a smooth transition from a desktop to web framework transition."
_tocName: WPF to Angular guide
---
-
# Migrating from Desktop to Web: A WPF to Angular Tutorial
WPF to Angular tutorial is the first step that you should take in order to make a smooth transition from a `desktop` to `web` framework transition. The tutorial targets WPF developers, who make their first steps to web development and it examines some differences and similarities of both frameworks - applications structure, data binding, events, components, etc.
-
+
The guide is divided into the following topics and has included video tutorials:
-## [Create your first Angular application](create-first-angular-app.md)
+## [Create your first Angular application](/general/wpf-to-angular-guide/create-first-angular-app)
Before you begin on your path of learning Angular, you’ll need to install the prerequisites for modern web app dev with Angular. This section covers using the Node.js package manager, installing the Visual Studio Code IDE, and a few of the basic concepts that are necessary for modern web development. Check out the [video tutorial](https://youtu.be/dhjrAPPad54) for this topic.
-## [Create your UI with Angular components](create-ui-with-components.md)
+## [Create your UI with Angular components](/general/wpf-to-angular-guide/create-ui-with-components)
Creating a UI in Angular is very similar to how we would create one in WPF. We normally use user controls, represented by the UserControl class. A UserControl groups markup and code into a reusable container, allowing the same interface and functionality to be used in several different places. Understanding components in Angular is key to the rest of this series – so let’s get started by understanding how WPF components translate to components in Angular. Check out the [video tutorial](https://youtu.be/z1SZUezpRXY) for this topic.
-## [One-way data binding in Angular](one-way-binding.md)
+## [One-way data binding in Angular](/general/wpf-to-angular-guide/one-way-binding)
One of the most powerful and widely used features in WPF is data binding. It makes a developers' life much easier, by synchronizing the business logic with the view and vice versa, without having to write a single extra line of code. Without the power of it, WPF would just be a better-looking Windows Forms. Luckily, Angular supports data binding! There are two types of data binding - one-way binding and two-way binding. This section shows you how to accomplish one-way data binding and how it compares to WPF. Check out the [video tutorial](https://youtu.be/fP7iVhFNTOk) for this topic.
-## [Angular Events](angular-events.md)
+## [Angular Events](/general/wpf-to-angular-guide/angular-events)
Binding to user input events is core to every app. It’s hard to imagine writing a new app that doesn’t respond to some type of user interaction one way or another. The most common way to do that is with some type of event system. WPF provides routed events, CLR events, and commands. While in Angular, there are DOM events. This section you’ll learn about DOM events and how to handle user inputs. Check out the [video tutorial](https://youtu.be/V1Futz4W400) for this topic.
-## [Two-way data binding in Angular](two-way-binding.md)
+## [Two-way data binding in Angular](/general/wpf-to-angular-guide/two-way-binding)
In Angular, one-way binding updates the view with data coming from the component class. Like WPF, we can do the opposite operation - update the component class from the view. In that case we need to use a two-way binding. This section compares two-way binding in WPF and shows how easy it is to get started. Check out the [video tutorial](https://youtu.be/MrjTTDEj7cA) for this topic.
-## [Transforming Data with Angular Pipes](angular-pipes.md)
+## [Transforming Data with Angular Pipes](/general/wpf-to-angular-guide/angular-pipes)
In WPF we use a IValueConverter to transform data, in an Angular application, we use Angular Pipes. The pipe is very similar to the WPF converter. It takes data as an input and then transforms that data into a desired output for display. This section shows some of the pre-defined Angular Pipes, and how to use them in an app. Check out the [video tutorial](https://youtu.be/Gmz5kio50FE) for this topic.
-## [Structural Directives in Angular](structural-directives.md)
+## [Structural Directives in Angular](/general/wpf-to-angular-guide/structural-directives)
As WPF developers, anytime we want to add or remove an element from the visual tree we have to jump into some code-behind and write some C# or we can use a combination of binding and a visibility converter, which again requires some custom logic and static resources. That's the way we have always done it in WPF, but Angular makes it so much easier. This section demonstrates how structural directives enable the manipulation of elements in an Angular app. Check out the [video tutorial](https://youtu.be/vQe7R78Od8k) for this topic.
-## [Layout Elements](layout.md)
+## [Layout Elements](/general/wpf-to-angular-guide/layout)
In WPF, in order to layout the elements in your application, you need to put them inside a Panel. In Angular, we use CSS. This topic discusses Layout, and how to use CSS features like Flexbox and CSS Grid.
-
-
+
Our community is active and always welcoming to new ideas.
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/zoomslider-overview.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/zoomslider-overview.md
index 5d9aae18b..c28b3b5b2 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/zoomslider-overview.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/angular/zoomslider-overview.md
@@ -1,19 +1,20 @@
---
-title: Angular ZoomSlider | Data Visualization Tools | Navigation | Zooming | DataChart | Data Binding | Infragistics
-_description: Use Infragistics' Angular zoom slider control to easily display a subset of data with two handles representing minimum and maximum values. Improve your data visualization with Ignite UI for Angular zoom slider!
-_keywords: zoom slider, Ignite UI for Angular, Infragistics, data chart
-_license: commercial
-mentionedTypes: ["ZoomSlider", "XamDataChart"]
+title: "Angular ZoomSlider | Data Visualization Tools | Navigation | Zooming | DataChart | Data Binding | Infragistics"
+description: Use Infragistics' Angular zoom slider control to easily display a subset of data with two handles representing minimum and maximum values. Improve your data visualization with Ignite UI for Angular zoom slider!
+keywords: zoom slider, Ignite UI for Angular, Infragistics, data chart
+license: commercial
+mentionedTypes: ["ZoomSlider", "DataChart"]
+llms:
+ description: "The Angular ZoomSlider control provides zooming functionality to range-enabled controls."
_tocName: Zoom Slider
---
-
# Angular Zoom Slider Overview
The Angular ZoomSlider control provides zooming functionality to range-enabled controls. The ZoomSlider features a horizontal scroll bar, a thumbnail of the whole range, and a resizable zoom-range window. The ZoomSlider cannot work as a standalone control and it acts as an enhancement for range-based controls like the DataChart or CategoryChart.
## Angular Zoom Slider Example
-The following sample demonstrates how to use [`IgxZoomSliderComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxzoomslidercomponent.html) to navigate content in [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html).
+The following sample demonstrates how to use `IgxZoomSlider` to navigate content in `IgxDataChart`.
```typescript
import { NgModule } from "@angular/core";
@@ -456,8 +457,6 @@ export class AppComponent implements AfterViewInit {
}
```
-
-
## Usage
| Feature Name | Description |
@@ -480,7 +479,7 @@ npm install --save igniteui-angular-charts
## Component Modules
-The [`IgxZoomSliderComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxzoomslidercomponent.html) requires the following modules:
+The `IgxZoomSlider` requires the following modules:
```ts
import { IgxZoomSliderModule } from 'igniteui-angular-charts';
@@ -507,15 +506,10 @@ The following code demonstrates how to setup the ZoomSlider.
```
-
-
## Additional Resources
-You can find more information about charts in [Chart Features](charts/chart-features.md) topic.
+You can find more information about charts in [Chart Features](./charts/chart-features.md) topic.
## API References
-
-The following is a list of API members mentioned in the above sections:
-
-- [`IgxZoomSliderComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxzoomslidercomponent.html)
-- [`IgxDataChartComponent`](https://www.infragistics.com/products/ignite-ui-angular/api/docs/typescript/latest/classes/igniteui_angular_charts.igxdatachartcomponent.html)
+`IgxZoomSlider`
+`IgxDataChart`
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/accessibility-compliance.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/accessibility-compliance.md
index 4cf4b77d6..f6c145b1f 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/accessibility-compliance.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/accessibility-compliance.md
@@ -1,193 +1,184 @@
---
-title: Ignite UI for Blazor Accessibility Compliance | Ignite UI for Blazor | Infragistics
-_description: Ignite UI for Blazor Accessibility Support and Compliance - Section 508 Compliance, WCAG and ARIA .
-_keywords: accessibility, Blazor, ignite ui for Blazor, infragistics
-_license: MIT
+title: "Blazor Accessibility Compliance | Ignite UI for Blazor | Infragistics"
+description: "Accessibility support in Ignite UI for Blazor - the standards we target, per-component keyboard and screen reader status, and how to report an accessibility issue."
+keywords: "Ignite UI for Blazor, Infragistics, Accessibility, WCAG, Section 508, EN 301 549, ARIA, Keyboard"
+license: MIT
+last_updated: "2026-08-27"
mentionedTypes: []
+llms:
+ description: "Accessibility support in Ignite UI for Blazor: the conformance standards targeted, the per-component keyboard and screen-reader documentation index, required configuration, and the channel for reporting accessibility issues."
_tocName: Accessibility Compliance
---
+# Accessibility Compliance
-
+Accessibility support is delivered by two layers — the components themselves and the theming engine that styles them. Use this page to find the status of a specific component; use [Theming Accessibility](../themes/accessibility.md) for contrast, text scaling, and chart color behavior.
-# Accessibility Compliance
+**Note:**
+**Scope of this page.** The information below reflects the **Default theme** and the current documented behavior of each component. It is a support summary, not a formal conformance statement. Custom themes, typography changes, and animation or color overrides can change the result.
-As the leading global provider of UI and UX tools for developers, our Blazor team at Infragistics is committed to providing components and tools that make it easier for you to create the best possible user experience. Our goal is to enable you to focus on crafting the best applications and the best user experience for all users.
-
-Here you can find specific information regarding the accessibility support and compliance for our Blazor grids, charts, and UI components and controls within Ignite UI for Blazor.
-
-## Section 508 Compliance
-
-[Section 508](http://www.section508.gov/) of the Rehabilitation Act was amended in 1998 by Congress to require all Federal agencies to make their electronic and information technology accessible to people with disabilities. Since then, Section 508 compliance has not only been a requirement in government agencies, but it's also important when providing software solutions and designing Web pages.
-
-Section 1194.22 of the Section 508 law specifically targets Web-based intranet and internet information and systems, and contains a set of 16 rules to follow. In order to enable you to keep your Web applications and Web sites compatible with these rules with minimal effort on your part, Infragistics has taken steps to ensure that the Ignite UI for Blazor controls and components are compliant with the relevant accessibility rules.
-
-The matrix below provides a high-level outline of the accessibility support provided by our visual controls (and related components). To learn more about an individual control/component's accessibility compliance, click the name of the control/component.
-
-### Ignite UI for Blazor Compliance with Section 508
-
-|**Component/Principle**| (a) |(b) |(c) |(d) |(e) |(f) |(g) |(h) |(i) |(j) |(k) |(l) |(m) |(n) |(o) |(p) |
-|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|
-|**Grids**|||||||||||||||||
-| - Grid||||||||||_|||||||
-| - HierarchicalGrid||||||||||_|||||||
-| - TreeGrid||||||||||_|||||||
-|**Other**||||||||||_|||||||
-| - Avatar|||||||||||||||||
-| - Badge|||||||||||||||||
-| - Bottom navigation||||||||||_|||||||
-| - Button||||||||||_|||||||
-| - Button group||||||||||_|||||||
-| - Calendar||||||||||_|||||||
-| - Card|||||||||||||||||
-| - Carousel||||||||||_|||||||
-| - Checkbox|||||||||||||||||
-| - Chip||||||||||_|||||||
-| - Circular progress||||||||||_|||||||
-| - Combo||||||||||_|||||||
-| - Date time input||||||||||_|||||||
-| - Date picker||||||||||_|||||||
-| - Divider|||||||||||||||||
-| - Dialog||||||||||_|||||||
-| - Drop down||||||||||_|||||||
-| - Expansion panel||||||||||_|||||||
-| - Icon|||||||||||||||||
-| - Input|||||||||||||||||
-| - Input group||||||||||_|||||||
-| - Linear progress||||||||||_|||||||
-| - List|||||||||||||||||
-| - Navbar||||||||||_|||||||
-| - Navigation drawer||||||||||_|||||||
-| - Radio group|||||||||||||||||
-| - Radio|||||||||||||||||
-| - Select||||||||||_|||||||
-| - Slider||||||||||_|||||||
-| - Snackbar||||||||||_|||||||
-| - Switch||||||||||_|||||||
-| - Tabs||||||||||_|||||||
-| - Time picker||||||||||_|||||||
-| - Toast||||||||||_|||||||
-
-**LEGEND**
-
-||||
+## Standards We Target
+
+| Standard | Region | What it requires |
+|---|---|---|
+| WCAG 2.1 Level AA | International | The success criteria listed below. The baseline referenced by the other two. |
+| Section 508 (Revised) | United States | Federal procurement. Since the Revised Section 508 Standards (published 2017, compliance date January 2018) it incorporates WCAG 2.0 Level AA by reference, so it is satisfied by the same work. |
+| EN 301 549 | Europe | The European standard referenced for ICT accessibility, built on WCAG. The European Accessibility Act, which builds on it, applies from 28 June 2025. |
+
+**Note:**
+Section 508 previously defined its own 16 rules under §1194.22. Those were superseded by the Revised Standards, which adopt WCAG directly. Targeting WCAG 2.1 Level AA therefore addresses all three frameworks above.
+
+### Success criteria that apply to UI components
+
+WCAG conformance is claimed against individual **success criteria**, not against the broader guidelines. These are the criteria that a UI component library can affect:
+
+| Criterion | Level | What it means for a component |
+|---|:--:|---|
+| 1.1.1 Non-text Content | A | Icons and images carry a text alternative. |
+| 1.3.1 Info and Relationships | A | Structure conveyed visually is also conveyed in markup. |
+| 1.3.2 Meaningful Sequence | A | Reading order matches visual order. |
+| 1.4.3 Contrast (Minimum) | AA | Text meets 4.5:1 against its background. |
+| 1.4.4 Resize Text | AA | Text scales to 200% without loss of content. |
+| 1.4.11 Non-text Contrast | AA | Control boundaries and states meet 3:1. |
+| 1.4.13 Content on Hover or Focus | AA | Tooltips and popovers are dismissible and persistent. |
+| 2.1.1 Keyboard | A | All functionality is reachable by keyboard. |
+| 2.1.2 No Keyboard Trap | A | Focus can always move back out. |
+| 2.4.3 Focus Order | A | Tab order follows a meaningful sequence. |
+| 2.4.7 Focus Visible | AA | The focused control is visibly indicated. |
+| 2.5.3 Label in Name | A | The accessible name contains the visible label. |
+| 3.2.1 On Focus | A | Focus alone does not trigger a change of context. |
+| 3.2.2 On Input | A | Changing a value alone does not trigger a change of context. |
+| 3.3.2 Labels or Instructions | A | Inputs carry labels or instructions. |
+| 4.1.2 Name, Role, Value | A | Every control exposes a name, a role, and its current state. |
+
+## How Accessibility Is Delivered
+
+| Layer | Responsible for | Where it is documented |
|---|---|---|
-||The control/component is completely accessible in this particular area.||
-|\*|The control/component is accessible in this particular area after implementing certain configurations| Example: Use **NoopAnimationsModule**utility module to allow disabling of animations|
-||The control/component is not entirely accessible unless you perform some sort of action.||
-|'white space'|this particular rule does not apply to the control||
-
-> [!WARNING]
-> The table above is relevant only to the **Default theme**of Ignite UI for Blazor theming library. The checklist compliance might be different when it comes to custom themes, typography and any visual changes related to animations and colors.
-
-### Compliance Information
-
-- **a** - A text equivalent for every non-text element shall be provided (e.g., via "alt", "longdesc", or in element content).
-- **b** - Equivalent alternatives for any multimedia presentation shall be synchronized with the presentation.
-- **c** - Web pages shall be designed so that all information conveyed with color is also available without color, for example from context or markup.
-- **d** - Documents shall be organized so they are readable without requiring an associated style sheet.
-- **e** - Redundant text links shall be provided for each active region of a server-side image map.
-- **f** - Client-side image maps shall be provided instead of server-side image maps except where the regions cannot be defined with an available geometric shape.
-- **g** - Row and column headers shall be identified for data tables.
-- **h** - Markup shall be used to associate data cells and header cells for data tables that have two or more logical levels of row or column headers.
-- **i** - Frames shall be titled with text that facilitates frame identification and navigation.
-- **j** - Pages shall be designed to avoid causing the screen to flicker with a frequency greater than 2 Hz and lower than 55 Hz.
-- **k** - A text-only page, with equivalent information or functionality, shall be provided to make a web site comply with the provisions of this part, when compliance cannot be accomplished in any other way. The content of the text-only page shall be updated whenever the primary page changes.
-- **l** - When pages utilize scripting languages to display content, or to create interface elements, the information provided by the script shall be identified with functional text that can be read by assistive technology.
-- **m** - When a web page requires that an applet, plug-in or other application be present on the client system to interpret page content, the page must provide a link to a plug-in or applet that complies with §1194.21(a) through l.
-- **n** - When electronic forms are designed to be completed on-line, the form shall allow people using assistive technology to access the information, field elements, and functionality required for completion and submission of the form, including all directions and cues.
-- **o** - A method shall be provided that permits users to skip repetitive navigation links.
-- **p** - When a timed response is required, the user shall be alerted and given sufficient time to indicate more time is required.
-
-## WCAG compliance
-
-[WCAG](https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=111) is simply a set of formal guidelines on how to develop accessible web content. These standards represent a higher level of accessibility than 508 standards, although they are identical or very similar. WCAG focuses primarily on HTML accessibility.
-
-|**Component/Guideline**|1.1 |1.2 |1.3 |1.4 |2.1 |2.2 |2.3 |2.4 |2.5 |3.1 |3.2 |3.3 |4.1 |
-|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|
-|**Grids**||||||||||||||
-| - Grid|||||||_||||_|||
-| - HierarchicalGrid|||||||_||||_|||
-| - TreeGrid|||||||_||||_|||
-|**Other**|||||||_|||||||
-| - Avatar|||||||||||_|||
-| - Badge|||||||||||_|||
-| - Banner||||||_|_||||_|||
-| - Bottom navigation|||||||_||||_|||
-| - Button|||||||_||||_|||
-| - Button group|||||||_||||_|||
-| - Calendar||||||_|_||||_|||
-| - Card|||||||||||_|||
-| - Carousel||||||_|_||||_|||
-| - Checkbox|||||||||||_|||
-| - Chip|||||||_||||_|||
-| - Circular progress||||||_|_||||_|||
-| - Combo||||||_|_||||_|||
-| - Date time editor||||||_|_||||_|||
-| - Date picker||||||_|_||||_|||
-| - Divider|||||||||||_|||
-| - Dialog||||||_|_||||_|||
-| - Drop down||||||_|_||||_|||
-| - Expansion panel||||||_|_||||_|||
-| - Icon|||||||||||_|||
-| - Input|||||||||||_|||
-| - Input group|||||||_||||_|||
-| - Label|||||||||||_|||
-| - Linear progress||||||_|_||||_|||
-| - List|||||||||||_|||
-| - Month picker||||||_|_||||_|||
-| - Navbar|||||||_||||_|||
-| - Navigation drawer||||||_|_||||_|||
-| - Radio group|||||||||||_|||
-| - Radio|||||||||||_|||
-| - Select||||||_|_||||_|||
-| - Slider|||||||_||||_|||
-| - Snackbar||||||_|_||||_|||
-| - Switch|||||||_||||_|||
-| - Tabs|||||||_||||_|||
-| - Time picker||||||_|_||||_|||
-| - Toast||||||_|_||||_|||
-| - Tooltip||||||_|_||||_|||
-
-**Legend**
-
-||||
+| **Component library** (`igniteui-angular` on Angular) | Keyboard operability, focus movement, ARIA roles and states, screen-reader announcements. | The index below, and each component topic. |
+| **Theming engine** (`igniteui-theming`) | Color contrast, text sizing, chart color palettes, styling utilities for custom controls. | [Theming Accessibility](../themes/accessibility.md) |
+
+## Component Support
+
+This index records what each component's documentation covers today. **Not documented yet** means the component's own documentation does not describe this behavior — it is a statement about the documentation, not about the component.
+
+| Status | Meaning |
+|---|---|
+| **Documented** | The behavior is described in the component's own documentation, linked in the row. |
+| **Requires configuration** | Available once the setting named in [Configuration Required](#configuration-required) is applied. |
+| **Not documented yet** | The component's documentation does not yet describe this behavior. |
+
+| Component | Keyboard interaction | Screen reader / ARIA | Reference |
+|---|---|---|---|
+| [Grid](../grids/data-grid.md#keyboard-navigation) | Documented | Not documented yet | [Keyboard navigation](../grids/data-grid.md#keyboard-navigation) |
+| [Hierarchical Grid](../grids/hierarchical-grid/overview.md) | Documented | Not documented yet | [Keyboard navigation](../grids/data-grid.md#keyboard-navigation) |
+| [Tree Grid](../grids/tree-grid/overview.md) | Documented | Not documented yet | [Keyboard navigation](../grids/data-grid.md#keyboard-navigation) |
+| [Tree](../grids/tree.md#keyboard-navigation) | Documented | Not documented yet | [Keyboard navigation](../grids/tree.md#keyboard-navigation) |
+| [List](../grids/list.md) | Not documented yet | Not documented yet | — |
+| [Avatar](../layouts/avatar.md#accessibility) | Documented | Documented | [Accessibility](../layouts/avatar.md#accessibility) |
+| [Badge](../inputs/badge.md#accessibility) | Documented | Documented | [Accessibility](../inputs/badge.md#accessibility) |
+| [Banner](../notifications/banner.md) | Not documented yet | Not documented yet | — |
+| [Button](../inputs/button.md) | Not documented yet | Not documented yet | — |
+| [Button Group](../inputs/button-group.md) | Not documented yet | Not documented yet | — |
+| [Calendar](../scheduling/calendar.md#keyboard-navigation) | Documented | Not documented yet | [Keyboard navigation](../scheduling/calendar.md#keyboard-navigation) |
+| [Card](../layouts/card.md) | Not documented yet | Not documented yet | — |
+| [Carousel](../layouts/carousel.md#accessibility) | Documented | Documented | [Accessibility](../layouts/carousel.md#accessibility) |
+| [Checkbox](../inputs/checkbox.md) | Not documented yet | Not documented yet | — |
+| [Chip](../inputs/chip.md) | Not documented yet | Not documented yet | — |
+| [Circular Progress](../inputs/circular-progress.md) | Not documented yet | Not documented yet | — |
+| [Combo](../inputs/combo/overview.md#keyboard-navigation) | Documented | Not documented yet | [Keyboard navigation](../inputs/combo/overview.md#keyboard-navigation) |
+| [Date Time Input](../inputs/date-time-input.md#keyboard-navigation) | Documented | Not documented yet | [Keyboard navigation](../inputs/date-time-input.md#keyboard-navigation) |
+| [Date Picker](../scheduling/date-picker.md#keyboard-navigation) | Documented | Not documented yet | [Keyboard navigation](../scheduling/date-picker.md#keyboard-navigation) |
+| [Dialog](../notifications/dialog.md) | Not documented yet | Not documented yet | — |
+| [Divider](../layouts/divider.md) | Not documented yet | Not documented yet | — |
+| [Dock Manager](../layouts/dock-manager.md#keyboard-navigation) | Documented | Not documented yet | [Keyboard navigation](../layouts/dock-manager.md#keyboard-navigation) |
+| [Dropdown](../inputs/dropdown.md) | Not documented yet | Not documented yet | — |
+| [Expansion Panel](../layouts/expansion-panel.md#keyboard-navigation) | Documented | Not documented yet | [Keyboard navigation](../layouts/expansion-panel.md#keyboard-navigation) |
+| [Icon](../layouts/icon.md) | Not documented yet | Not documented yet | — |
+| [Icon Button](../inputs/icon-button.md) | Not documented yet | Not documented yet | — |
+| [Input](../inputs/input.md) | Not documented yet | Not documented yet | — |
+| [Linear Progress](../inputs/linear-progress.md) | Not documented yet | Not documented yet | — |
+| [Navbar](../menus/navbar.md) | Not documented yet | Not documented yet | — |
+| [Navigation Drawer](../menus/navigation-drawer.md) | Not documented yet | Not documented yet | — |
+| [Radio](../inputs/radio.md) | Not documented yet | Not documented yet | — |
+| [Rating](../inputs/rating.md) | Not documented yet | Not documented yet | — |
+| [Select](../inputs/select.md#keyboard-navigation) | Documented | Not documented yet | [Keyboard navigation](../inputs/select.md#keyboard-navigation) |
+| [Slider](../inputs/slider.md) | Not documented yet | Not documented yet | — |
+| [Snackbar](../notifications/snackbar.md) | Not documented yet | Not documented yet | — |
+| [Stepper](../layouts/stepper.md#keyboard-navigation) | Documented | Not documented yet | [Keyboard navigation](../layouts/stepper.md#keyboard-navigation) |
+| [Switch](../inputs/switch.md) | Not documented yet | Not documented yet | — |
+| [Tabs](../layouts/tabs.md#keyboard-navigation) | Documented | Not documented yet | [Keyboard navigation](../layouts/tabs.md#keyboard-navigation) |
+| [Text Area](../inputs/text-area.md) | Not documented yet | Not documented yet | — |
+| [Toast](../notifications/toast.md) | Not documented yet | Not documented yet | — |
+| [Tooltip](../inputs/tooltip.md#accessibility--aria-support) | Documented | Documented | [Accessibility](../inputs/tooltip.md#accessibility--aria-support) |
+
+**Warning:**
+Rows marked **Not documented yet** are a gap in this documentation, not a known defect. If you need a conformance answer for a specific component before the next review cycle, [open an issue](#reporting-an-accessibility-issue) and ask.
+
+## Configuration Required
+
+Some accessibility outcomes depend on how you configure the application rather than on the component alone.
+
+| Concern | Criterion | What to configure |
+|---|---|---|
+| Animation and motion | 2.3.1 Three Flashes or Below | No configuration required. The animation player reads the operating system's `prefers-reduced-motion: reduce` setting and plays animations with a duration of `0` when it is set. |
+
+The remaining items apply to every platform.
+
+| Concern | Criterion | What to configure |
|---|---|---|
-||The control/component is completely accessible in this particular area.||
-|\*|The control/component is accessible in this particular area after implementing certain configurations|Example 1: Guideline 2.2. For certain components additional actions and time parameters should be set; Example 2: Guideline 2.3. Use **NoopAnimationsModule**utility module to allow disabling of animations;|
-||The control/component is not entirely accessible unless you perform some sort of action.||
-|'white space'|this particular rule does not apply to the control||
-
-> [!WARNING]
-> The table above is relevant only to the **Default theme**of Ignite UI for Blazor theming library. The checklist compliance might be different when it comes to custom themes, typography and any visual changes related to animations and colors.
-
-### Compliance Information
-
-- **Principle 1 - Perceivable** - Information and user interface components must be presentable to users in ways they can perceive
- - Guideline 1.1 – **Text Alternatives** - Provide text alternatives for any non-text content so that it can be changed into other forms people need, such as large print, braille, speech, symbols or simpler language.
- - Guideline 1.2 – **Time-based Media** - Provide alternatives for time-based media.
- - Guideline 1.3 – **Adaptable** - Create content that can be presented in different ways (for example simpler layout) without losing information or structure.
- - Guideline 1.4 – **Distinguishable** - Make it easier for users to see and hear content including separating foreground from background.
-- **Principle 2 – Operable** - User interface components and navigation must be operable.
- - Guideline 2.1 – **Keyboard Accessible** - Make all functionality available from a keyboard.
- - Guideline 2.2 – **Enough Time** - Provide users enough time to read and use content.
- - Guideline 2.3 – **Seizures and Physical Reactions** - Do not design content in a way that is known to cause seizures or physical reactions.
- - Guideline 2.4 – **Navigable** - Provide ways to help users navigate, find content, and determine where they are.
- - Guideline 2.5 – **Input Modalities** - Make it easier for users to operate functionality through various inputs beyond keyboard.
-- **Principle 3 – Understandable** - Information and the operation of the user interface must be understandable.
- - Guideline 3.1 – **Readable** - Make text content readable and understandable.
- - Guideline 3.2 – **Predictable** - Make Web pages appear and operate in predictable ways.
- - Guideline 3.3 – **Input Assistance** - Help users avoid and correct mistakes.
-- **Principle 4 – Robust** - Content must be robust enough that it can be interpreted by a wide variety of user agents, including assistive technologies.
- - Guideline 4.1 – **Compatible** - Maximize compatibility with current and future user agents, including assistive technologies
-
-## WAI-ARIA Support
-
-In 2014 the W3C finalized their [WAI-ARIA specification](http://www.w3.org/TR/wai-aria/) which defined how to design Web content and Web applications to be more accessible to users with disabilities.
+| Time limits on transient messages | 2.2.1 Timing Adjustable | Components that auto-dismiss — such as Snackbar and Toast — expose a display-duration setting. Extend it, or disable auto-dismiss, so a user has time to read the message. |
+| Color contrast after theming | 1.4.3 Contrast (Minimum) | Set foreground colors with `contrast-color()` or `adaptive-contrast()` rather than fixed values. See [Theming Accessibility](../themes/accessibility.md). |
+| Accessible names on icon-only controls | 4.1.2 Name, Role, Value | Supply an accessible name in your own markup. A control showing only an icon has no name until you give it one. |
+
+## Formal Conformance Documentation
+
+This page is a documentation index, not a conformance claim. It records what our own documentation covers; it does not certify any component against a standard.
+
+For procurement, contract, or audit purposes — where a traceable, per-criterion conformance statement is required — request the current accessibility conformance report (VPAT) through your account manager or Infragistics support. Cite the product, version, and the standard the report must address (WCAG 2.1 Level AA, Section 508, or EN 301 549).
+
+**Note:**
+Earlier revisions of this page carried per-component conformance matrices. Those tables asserted a level of conformance that was not backed by a traceable, per-criterion assessment, and have been removed rather than restated. The conformance report is the authoritative source for that information.
+
+## Reporting an Accessibility Issue
+
+If you find an accessibility problem in a component, report it on the Ignite UI for Blazor issue tracker.
+
+Include the component, the assistive technology and browser you used, the expected behavior, and the WCAG success criterion you believe is affected. Accessibility reports are triaged against the criteria listed above.
+
+## Additional Resources
+
+- [Theming Accessibility](../themes/accessibility.md) — contrast, text scaling, and chart palettes.
+- WCAG 2.1 Quick Reference — all success criteria with techniques.
+- WAI-ARIA Authoring Practices — expected keyboard and ARIA behavior per interaction pattern.
+- Section 508 — United States federal procurement requirements.
+- [Formal Conformance Documentation](#formal-conformance-documentation) — how to request a conformance report (VPAT) for procurement.
+
+## FAQ
+
+ **Q: Is Ignite UI for Blazor WCAG compliant?**
+
+ Conformance is a property of a finished application, not of a component library on its own. Ignite UI for Blazor targets WCAG 2.1 Level AA and documents per-component behavior in the index above, but the markup, content, and configuration you add determine the result. Use the index above to check the components you rely on, and report anything that does not behave as documented.
+
+
+ **Q: Why do some components say "Not documented yet"?**
+
+ That status means the component's own documentation does not yet describe the behavior. It is not a statement that the component fails a criterion - it records what the documentation covers, so you can tell the difference between a behavior that is documented and one that is not.
+
+
+ **Q: Does Section 508 still have its own separate rules?**
+
+ No. The Revised Section 508 Standards (published 2017, compliance date January 2018) replaced the earlier §1194.22 rules and adopt WCAG Level AA by reference, so meeting WCAG also addresses Section 508.
+
+
+ **Q: Does the compliance information apply to custom themes?**
+
+ Partly. Keyboard and ARIA behavior is unaffected by theming. Color contrast is not — overriding colors can move text below the required ratio. Verify custom palettes as described in Theming Accessibility.
+
+
+ **Q: Where do I find the keyboard shortcuts for a component?**
+
+ On the component's own topic, linked from the Reference column above. The grid family shares a dedicated keyboard navigation topic.
+
+
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/accessibility.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/accessibility.md
new file mode 100644
index 000000000..4340efc95
--- /dev/null
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/accessibility.md
@@ -0,0 +1,276 @@
+---
+title: "Blazor Styling and Themes | Blazor Accessibility | Infragistics"
+description: "How the Ignite UI for Blazor theming engine supports accessibility - automatic text contrast, relative text scaling, and a color-vision-deficiency chart palette."
+keywords: "Ignite UI for Blazor, Infragistics, Accessibility, Contrast, WCAG, Styling, Themes"
+license: MIT
+last_updated: "2026-08-31"
+mentionedTypes: []
+llms:
+ description: "Ignite UI for Blazor calculates text colors against a WCAG contrast threshold at runtime, keeps every type scale relative, and ships an opt-in color-vision-deficiency chart palette."
+_tocName: Accessibility
+---
+import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
+import Faq from 'igniteui-astro-components/components/mdx/Faq.astro';
+import FaqItem from 'igniteui-astro-components/components/mdx/FaqItem.astro';
+
+# Accessibility in Ignite UI for Blazor
+
+The Ignite UI for Blazor theming engine builds accessibility into the styling layer: it calculates a text color for any background color at runtime and measures it against a WCAG contrast threshold, expresses every type scale in relative units so text scales with the user's settings, and ships an opt-in color palette for readers with color-vision deficiency.
+
+## Overview
+
+Accessibility in Ignite UI for Blazor is delivered by two layers that you configure independently:
+
+| Layer | What it is responsible for | Where it is documented |
+|---|---|---|
+| **Theming engine** (`igniteui-theming`) | Color contrast, text sizing, chart color palettes, and the styling utilities that keep custom controls reachable by assistive technology. | This page. |
+| **Component library** (`IgniteUI.Blazor`) | Keyboard operability, focus movement, ARIA roles and states, and screen-reader announcements. | [Accessibility Compliance](../interactivity/accessibility-compliance.md) and each component topic. |
+
+This page covers the first layer. It describes capabilities that apply to every component you style with the theming engine, including components you build yourself on top of it.
+
+The table below summarizes what the theming engine does for the person ultimately using your application. Each row is an input your application builds on, not a conformance outcome: you supply the colors, the engine generates pairings measured against a WCAG threshold, and verifying that the finished product conforms remains your responsibility.
+
+| A person who… | What the theming engine provides |
+|---|---|
+| Needs readable text on colored buttons, chips, and badges | A foreground color is calculated in the browser for every generated palette color — including brand colors you supply — and measured against the WCAG contrast level you configure (AA by default). |
+| Enlarges their default browser font size | Every type scale is expressed in relative units, and the library never pins the page font size. |
+| Has a color-vision deficiency and reads charts | An opt-in chart palette chosen to stay distinguishable under common forms of color-vision deficiency. |
+| Prefers a dark interface for light sensitivity | A complete dark palette for each of the four shipped themes. |
+| Uses a screen reader with a custom-styled form control | A styling utility that hides a native input visually while keeping it in the accessibility tree. |
+
+## Before You Start
+
+Three boundaries determine what you can rely on from this page.
+
+**The theming engine styles; it does not add semantics.** ARIA roles, keyboard handling, and focus management come from the component library, not from the theme. Applying a theme does not make a custom control accessible on its own.
+
+**The contrast calculation applies to generated palette colors.** The engine calculates foreground colors for palettes produced by the `palette()` generator. Individual component themes may also pair a specific foreground token with a specific background token by hand; those pairings are set per theme and are not produced by the contrast calculation described below. When you override component tokens directly, verify the result with [`contrast()`](#check-a-contrast-ratio-yourself).
+
+**Conformance of the finished product is yours to verify.** The engine controls its inputs — palettes, calculated pairings, type scales — not how your application uses them. A palette built from your brand colors can reach full conformance, but the engine cannot claim that outcome for you; confirm the rendered result before stating conformance.
+
+**Note:**
+The capabilities on this page describe the theming engine's behavior. They are not a conformance statement for Ignite UI for Blazor as a product. For per-component conformance information, see [Accessibility Compliance](../interactivity/accessibility-compliance.md).
+
+## Next Steps
+
+- Use [`contrast-color()`](#keep-text-readable-on-a-brand-color) wherever you place text on a palette color, instead of hard-coding a foreground.
+- Turn on the [color-vision-deficiency chart palette](#enable-the-color-vision-deficiency-chart-palette) if your application renders charts.
+- Run any custom color pairing you introduce through [`contrast()`](#check-a-contrast-ratio-yourself) before shipping it.
+- If you generate palettes with the [Theming MCP server](../ai/theming-mcp.md), it checks surface and gray contrast against WCAG thresholds as it builds them.
+
+## Available Tools
+
+The theming engine exposes these Sass functions and mixins for the accessibility behavior described on this page.
+
+**Note:**
+These are Sass APIs: they need a Sass build with `igniteui-theming` resolvable from your load paths, as described in [Customizing with Sass](overview.md#customizing-with-sass). If you use the prebuilt theme CSS instead, you still get calculated contrast colors - pair each palette color with its `-contrast` variable, for example `var(--ig-primary-500-contrast)`, and set the threshold with `--ig-contrast-level`. The chart palette, `hide-default()`, and the `contrast()` and `luminance()` functions have no CSS-only equivalent.
+
+| Tool | Signature | What it does |
+|---|---|---|
+| `contrast-color()` | `contrast-color($palette: null, $color: primary, $variant: 500, $opacity: null)` | Returns a readable foreground color for a palette color. Every argument is optional; omit `$palette` to resolve the shade through its CSS variable. |
+| `adaptive-contrast()` | `adaptive-contrast($color)` | Returns a readable foreground color for any color you pass, including one held in a CSS variable. |
+| `contrast()` | `contrast($background, $foreground)` | Returns the WCAG contrast ratio between two colors. |
+| `luminance()` | `luminance($color)` | Returns a color's relative luminance, from `0` (black) to `1` (white). |
+| `configure-colors()` | `configure-colors($enhanced-accessibility: null)` | Switches chart themes to the color-vision-deficiency palette. |
+| `hide-default()` | `@include hide-default()` | Hides a native input visually while keeping it in the accessibility tree. |
+
+## Common Workflows
+
+### Keep text readable on a brand color
+
+Pair every background drawn from the palette with `contrast-color()` rather than a hard-coded `black` or `white`:
+
+```scss
+.my-component {
+ background: color($color: 'primary', $variant: 500);
+ color: contrast-color($color: 'primary', $variant: 500);
+}
+```
+
+The same pairing in plain CSS, using the variables the theme already emits:
+
+```css
+.my-component {
+ background: var(--ig-primary-500);
+ color: var(--ig-primary-500-contrast);
+}
+```
+
+For a color that does not come from the palette — a tenant color, a user preference, a value set at runtime — use `adaptive-contrast()`:
+
+```scss
+.my-component {
+ --bg: #09f;
+
+ background: var(--bg);
+ color: adaptive-contrast(var(--bg));
+}
+```
+
+`adaptive-contrast()` is a thin wrapper over a relative-color expression, so the same result is available without Sass. `--y-contrast` is defined by the theme:
+
+```css
+.my-component {
+ --bg: #09f;
+
+ background: var(--bg);
+ color: hsla(from color(from var(--bg) var(--y-contrast)) h 0 l / 1);
+}
+```
+
+The calculation happens in the browser rather than at build time. If the background color changes after the stylesheet is compiled, the foreground color is recalculated to match, so the pairing survives runtime theme switching and per-tenant branding.
+
+**Note:**
+`adaptive-contrast()` selects between black and white. Because those are the two available outcomes, the ratio the mechanism can achieve against a mid-tone background is bounded at roughly 4.6:1. That satisfies the WCAG AA threshold of 4.5:1 for normal text, which is the default the engine is configured for. Do not rely on this mechanism alone to reach the 7:1 AAA threshold; reaching AAA requires choosing background colors that are light or dark enough to allow it.
+
+### Set the contrast level
+
+The calculated foreground is measured against a WCAG threshold held in the `--ig-contrast-level` CSS variable, which defaults to `var(--ig-wcag-aa)`. Three levels are predefined: `a`, `aa`, and `aaa`.
+
+Set the level for the whole application when you generate the palette:
+
+```scss
+@include palette($palette, $contrast-level: 'aaa');
+```
+
+To raise the level for one part of the page only, override the variable on that scope:
+
+```css
+.high-contrast-panel {
+ --ig-contrast-level: var(--ig-wcag-aaa);
+}
+```
+
+The contrast level moves the luminance threshold at which the calculated foreground switches between black and white; it does not change which two colors can be chosen, and setting `aaa` does not by itself make a pairing conform — that depends on the background colors you chose. Verify with [`contrast()`](#check-a-contrast-ratio-yourself). See [Palettes](palettes.md) for the generated contrast variables.
+
+### Scale text with the user's browser settings
+
+No configuration is required. Every type scale in the four shipped themes expresses `font-size`, `line-height`, `letter-spacing`, and margins through the `rem()` function, so all emitted values are relative to the root font size.
+
+The library records the base size as a value you can read:
+
+```css
+--ig-base-font-size: 16px;
+```
+
+It never emits a `html { font-size: … }` rule. This matters because writing that rule is the most common way a theming system overrides a user who has enlarged their default text. Because the library only reads the base size, a user who sets a larger default in their browser gets larger Ignite UI for Blazor text.
+
+This addresses WCAG 2.1 1.4.4 Resize Text (Level AA) at the styling layer.
+
+### Raise or lower the contrast threshold
+
+The level at which the calculated foreground flips from black to white is held in a CSS variable, so it can be changed without Sass. It defaults to AA:
+
+```css
+:root {
+ --ig-contrast-level: var(--ig-wcag-aaa);
+}
+```
+
+From Sass, the `palette()` and `adaptive-contrast()` mixins take `a`, `aa`, or `aaa` directly.
+
+### Enable the color-vision-deficiency chart palette
+
+Charts commonly distinguish series by hue alone, which does not work for readers with a color-vision deficiency. The theming engine ships a second chart palette whose colors stay distinguishable under the common forms of that condition.
+
+The palette is **off by default**. Turn it on with `configure-colors()`:
+
+```scss
+// Include at the top level, before your theme includes.
+@include configure-colors($enhanced-accessibility: true);
+```
+
+Every chart theme then draws from the accessible set. The chart brushes are set when the theme is generated, so this one requires Sass; the prebuilt theme CSS exposes no variables for them.
+
+**Note:**
+Color alone should not be the only way a chart conveys meaning. Pair this palette with direct labels, distinct markers, or dash patterns so the chart also works in grayscale.
+
+### Check a contrast ratio yourself
+
+The engine implements the WCAG relative-luminance formula and exposes it, so you can check your own color choices against the same implementation the library uses:
+
+```scss
+$ratio: contrast(#09f, #000); // 7
+$lum: luminance(#09f); // 0.3
+```
+
+Use this whenever you override a component token directly, or introduce a color pairing the palette generator did not produce. These two run at compile time and have no CSS equivalent - a stylesheet cannot compute a ratio.
+
+### Hide an input without hiding it from screen readers
+
+Custom-styled checkboxes, radios, and switches usually keep a native input underneath for semantics and keyboard behavior. Hide it with `hide-default()`:
+
+```scss
+.my-checkbox input {
+ @include hide-default();
+}
+```
+
+The mixin expands to a fixed set of declarations, so it can be written directly in CSS:
+
+```css
+.my-checkbox input {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ margin: -1px;
+ border: none;
+ clip: rect(0, 0, 0, 0);
+ outline: 0;
+ pointer-events: none;
+ overflow: hidden;
+ appearance: none;
+}
+```
+
+The mixin moves the input out of view while leaving it in the accessibility tree, so it keeps its role, its keyboard behavior, and its screen-reader announcements. Using `display: none` or `visibility: hidden` instead removes the control from assistive technology entirely and breaks the component for anyone not using their eyes.
+
+### Use a dark theme
+
+Each of the four shipped themes — Material, Bootstrap, Fluent, and Indigo — provides a complete dark palette alongside its light one. Dark presentation is an accessibility need for some users, including those with light sensitivity, so treat it as a supported configuration rather than a cosmetic preference. See [Palettes](palettes.md) for how to select one.
+
+## Troubleshooting
+
+**Text on a component I restyled is hard to read.** You have likely replaced a background token without replacing its paired foreground token. Set the foreground with `contrast-color()` or `adaptive-contrast()` rather than a fixed value, then confirm the result with `contrast()`.
+
+**I set `$contrast-level: 'aaa'` but my colors did not change much.** The contrast level moves the luminance threshold at which the calculated foreground switches between black and white. It does not tint the foreground, so it cannot raise the achievable ratio past the bound described above. To reach AAA, change the background colors themselves.
+
+**My chart colors did not change after enabling the accessible palette.** `configure-colors()` must be included before the chart themes are generated. Move the include above your theme includes.
+
+**Text does not grow when I increase the browser font size.** Check your own application styles for an `html { font-size: … }` rule or `font-size` values in `px`. The theming engine does not emit either.
+
+## Additional Resources
+
+- [Palettes](palettes.md) — how palette colors and their contrast companions are generated.
+- [Typography](typography.md) — the type scales and how to customize them.
+- [Accessibility Compliance](../interactivity/accessibility-compliance.md) — per-component conformance information.
+- WCAG 2.1 Quick Reference — the success criteria referenced on this page.
+- WAI-ARIA Authoring Practices — expected keyboard and ARIA behavior per interaction pattern.
+
+## FAQ
+
+ **Q: Does applying an Ignite UI theme make my application accessible?**
+
+ No. The theming engine handles color contrast, text sizing, and chart palettes. Keyboard operability, ARIA semantics, and screen-reader support come from the component library and from your own markup.
+
+
+ **Q: Do I still get readable text if I supply my own brand color?**
+
+ Yes — for colors used through the palette, measured against the configured level (AA by default). The foreground is recalculated in the browser whenever the background changes, including at runtime. Pairings you set by hand are outside the calculation; verify them with contrast().
+
+
+ **Q: What does the contrast level setting actually change?**
+
+ It moves the luminance threshold at which the calculated foreground switches from black to white. It does not change the two colors that can be chosen, so it does not raise the maximum ratio the mechanism can reach.
+
+
+ **Q: Is the color-vision-deficiency chart palette on by default?**
+
+ No. Enable it with configure-colors($enhanced-accessibility: true).
+
+
+ **Q: Do I need to configure anything for text scaling?**
+
+ No. Every type scale is already relative, and the library never sets the page font size. Check your own application styles if text does not scale.
+
+
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/accordion.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/accordion.md
index 1faffc9d0..8c0add923 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/accordion.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/accordion.md
@@ -1,77 +1,51 @@
---
-title: Blazor Accordion | Accordion | Infragistics
-_description: Accordion is used to build vertical expandable panels in accordion menu.
-_keywords: Blazor Accordion, Ignite UI for Blazor, Infragistics
-_license: MIT
-mentionedTypes: ["Accordion", "Infragistics.Controls.Layouts.Implementation.ExpansionPanel"]
+title: "Blazor Accordion Component | Layouts | Infragistics"
+description: "Blazor Accordion is a layout component for organizing expandable and collapsible content panels in a vertical container."
+keywords: "Blazor Accordion, accordion component, expandable panels, Ignite UI for Blazor, Infragistics"
+license: MIT
+last_updated: "2026-07-30"
+mentionedTypes: ["Accordion", "ExpansionPanel"]
namespace: Infragistics.Controls
+relatedComponents: ["ExpansionPanel"]
+llms:
+ description: "The Ignite UI for Blazor Accordion helps developers group related content into expandable and collapsible panels inside a vertical layout."
_tocName: Accordion
---
+# Accordion Component
-# Blazor Accordion Overview
+The Ignite UI for Blazor Accordion is a layout component for organizing expandable content panels in a single vertical container.
-The Ignite UI for Blazor Accordion is a GUI component for building vertical expandable panels with clickable headers and associated content sections, displayed in a single container. The accordion is commonly used to reduce the need of scrolling across multiple sections of content on a single page. It offers keyboard navigation and API to control the underlying panels' expansion state.
-
-Users are enabled to interact and navigate among a list of items, such as thumbnails or labels. Each one of those items can be toggled (expanded or collapsed) in order to reveal the containing information. Depending on the configuration, there can be a single or multiple expanded items at a time.
-
-## Blazor Accordion Example
-
-The following is a basic Ignite UI for Blazor Accordion example of a FAQ section. It operates as an accordion, with individually working sections. You can toggle each text block with a single click, while expanding multiple panels at the same time. This way you can read information more easily, without having to go back and forth between an automatically expanding and collapsing panel, which conceals the previously opened section every time.
-
-In it, you can see how to define an accordion and its expansion panels. The sample also demonstrates the two types of expansion behavior. The switch button sets the [`SingleExpand`](mcp:get_api_reference?platform=blazor&component=IgbAccordion&member=SingleExpand) property to toggle between single and multiple branches to be expanded at a time.
+## Live Demo
```razor
@using IgniteUI.Blazor.Controls
+
+
+
+
+ Single Expand
+
+
-
- Single Expand
-
-
- What has changed about subscription and pricing model?
-
- We have moved to a subscription-based pricing model for all our developer tools. This makes it easier
- for you to manage your license subscriptions and allows us to provide a better level of service for you. We
- updated our pricing and packages to provide you with flexible options and the best value. This includes Ignite UI
- (formerly Ignite UI for JavaScript) which includes all of our JavaScript framework components for web development,
- including: Angular, ASP.NET (Core and MVC), Blazor, JQuery, React and Web Components), as well as Infragistics Professional,
- Infragistics Ultimate, our Ultimate UI products. We also offer multi-year subscriptions options with a built-in discount,
- so you can see the value up front. With these updates we are confident that we are providing the best platforms and the best
- price.
-
-
-
- Who will the updated changes impact?
-
- The license updates will impact all new and current customers using Ignite UI, Infragistics Professional and
- Infragistics Ultimate. Specifically, we have also made updates to our product and packaging for Ignite UI for JavaScript,
- Ignite UI for Angular, Ignite UI for React and Ignite UI for Web components. For more information, please refer to this
- blog: Announcement: Changes to Ignite UI Product & Packaging The pricing has been updated for all products and packages.
- So, all new or additional licenses will be sold based on our new pricing and packages. All existing license agreements will
- be honored and renewed based upon the current agreement.
-
-
-
- What is the difference between your old model and your current subscription model for Ignite UI?
-
- For Ignite UI customers, we are moving away from NPM for licensed packages. The current NPM packages will be replaced with
- packages that include a “Trial Version” watermark. Licensed packages for Ignite UI will be available from our cloud hosted ProGet
- server. For more information, please refer to this article: Moving from Trial to Licensed Ignite UI NPM Packages
-
-
-
- What happens if I don't renew my subscription?
- Any unlicensed or trial versions of Ignite UI for Angular, React and Web Components will now include this watermark.
-
-
- If I don't renew my subscription will I still have access to previous versions of Infragistics products?
-
- Any version of Infragistics software which you have downloaded can continue to be used perpetually. Access to download any new or
- previous versions through our customer portal and package feeds will require maintaining an active subscription by continuing
- to renew it.
-
-
-
+
+
+ Account
+ Profile and security settings
+
Update your profile details, password, and sign-in preferences.
+
+
+ Notifications
+ Email and product updates
+
Choose which notifications you receive and how often they are delivered.
+
+
+ Billing
+ Payment and invoice settings
+
Manage payment methods, billing contacts, and invoice delivery options.
+
+
+
@code {
@@ -84,364 +58,625 @@ In it, you can see how to define an accordion and its expansion panels. The samp
}
```
-
+## Anatomy
-## Getting Started with Blazor Accordion
+The accordion structure consists of an accordion container with one or more expansion panel children.
-Before using the [`IgbAccordion`](mcp:get_api_reference?platform=blazor&component=IgbAccordion), you need to register it as follows:
+**Blazor Accordion anatomy anatomy:** The accordion anatomy labels the accordion host and child expansion panel structure.
-```razor
-// in Program.cs file
+1. Header: displays the section title and description and can be clicked to reveal or hide the panel's content
+2. Icon: indicates if the panel is open or closed. Could be placed on the left or on the right side of the header
+3. Panel: the section of content linked to an accordion header
-builder.Services.AddIgniteUIBlazor(typeof(IgbAccordionModule));
+
+
+```text
+igc-accordion // host - manages a set of expansion panels
+└─ igc-expansion-panel // child panel
+ ├─ [slot="title"] // panel header title
+ ├─ [slot="subtitle"] // optional header subtitle
+ ├─ [slot="indicator"] // custom collapsed/default indicator
+ ├─ [slot="indicator-expanded"] // optional custom expanded-state indicator
+ └─ default slot // expandable panel content
```
-You will also need to link an additional CSS file to apply the styling to the [`IgbAccordion`](mcp:get_api_reference?platform=blazor&component=IgbAccordion) component. The following needs to be placed in the **wwwroot/index.html** file in a **Blazor Web Assembly** project or the **Pages/\_Host.cshtml** file in a **Blazor Server** project:
+## Getting Started
+
+Use the accordion with the Ignite UI for Blazor version installed in your application. Complete the shared [Getting Started](../general-getting-started.md) topic before adding framework-specific imports or registration.
+
+Register the accordion module in `Program.cs` and add the theme stylesheet to your host page.
+
+```csharp
+builder.Services.AddIgniteUIBlazor(typeof(IgbAccordionModule));
+```
```razor
```
-Now you can start with a basic configuration of the [`IgbAccordion`](mcp:get_api_reference?platform=blazor&component=IgbAccordion) and its panels.
-
## Usage
-Each section in the Blazor Accordion Component is defined using an Blazor Expansion Panel.
-Panels provide `Disabled` and `Open` properties, which give you the ability to configure the states of the panel as per your requirement.
+Build the accordion by placing one or more [`IgbExpansionPanel`](mcp:get_api_reference?platform=blazor&component=IgbExpansionPanel) components inside an [`IgbAccordion`](mcp:get_api_reference?platform=blazor&component=IgbAccordion) container.
-### Declaring an Accordion
+### Single Expansion
-The accordion wraps all expansion panels declared inside it.
+Set [`SingleExpand`](mcp:get_api_reference?platform=blazor&component=IgbAccordion&member=singleExpand) to switch between one-open-panel behavior and multiple-open-panel behavior.
```razor
-
-
Title Panel 1
-
- Content Panel 1
-
-
-
-
Title Panel 2
-
- Content Panel 2
-
-
+
+ Title Panel 1
+
Content Panel 1
+
+
+ Title Panel 2
+
Content Panel 2
+
```
-As demonstrated above, the [`SingleExpand`](mcp:get_api_reference?platform=blazor&component=IgbAccordion&member=SingleExpand)property gives you the ability to set whether single or multiple panels can be expanded at a time.
+### Programmatic Expansion
+
+Use [`HideAll`](mcp:get_api_reference?platform=blazor&component=IgbAccordion&member=hideAll) and [`ShowAll`](mcp:get_api_reference?platform=blazor&component=IgbAccordion&member=showAll) to collapse or expand all available panels programmatically.
+
+**Note:**
+Calling [`ShowAll`](mcp:get_api_reference?platform=blazor&component=IgbAccordion&member=showAll) expands all panels, even when [`SingleExpand`](mcp:get_api_reference?platform=blazor&component=IgbAccordion&member=singleExpand) is `true`.
-By using the [`HideAll`](mcp:get_api_reference?platform=blazor&component=IgbAccordion&member=HideAll) and [`ShowAll`](mcp:get_api_reference?platform=blazor&component=IgbAccordion&member=ShowAll) methods you can respectively collapse and expand all [`IgbExpansionPanel`](mcp:get_api_reference?platform=blazor&component=IgbExpansionPanel)s of the [`IgbAccordion`](mcp:get_api_reference?platform=blazor&component=IgbAccordion) programmatically.
-> [!Note]
-> If [`SingleExpand`](mcp:get_api_reference?platform=blazor&component=IgbAccordion&member=SingleExpand) property is set to **true** calling [`ShowAll`](mcp:get_api_reference?platform=blazor&component=IgbAccordion&member=ShowAll) method would expand only the focused panel.
+```razor
+Show All
+Hide All
+
+
+
+ Title Panel 1
+
Content Panel 1
+
+
+ Title Panel 2
+
Content Panel 2
+
+
-### Blazor Accordion Customization Example
+@code {
+ private IgbAccordion accordion;
-With the Blazor Accordion, you can customize the header and content panel's appearance.
+ private async Task ShowAll() => await accordion.ShowAllAsync();
-The sample below demonstrates how elaborate filtering options can be implemented using the built-in slots of the [`IgbExpansionPanel`](mcp:get_api_reference?platform=blazor&component=IgbExpansionPanel).
+ private async Task HideAll() => await accordion.HideAllAsync();
+}
+```
```razor
@using IgniteUI.Blazor.Controls
+
- Single Expand
-
-
- Common questions about renewal.
-
-
- What happens if I don't renew my subscription?
- Any unlicensed or trial versions of Ignite UI for Angular, React and Web Components will now include this watermark.
-
-
- If I don't renew my subscription will I still have access to previous versions of Infragistics products?
-
- Any version of Infragistics software which you have downloaded can continue to be used perpetually. Access to download any new or
- previous versions through our customer portal and package feeds will require maintaining an active subscription by continuing
- to renew it.
-
-
-
- Will I be automatically charged for my renewal/ Can I be automatically charged for renewal?
-
- Any new subscriptions purchased online, via our eCommerce system, will renew automatically. Subscription renewal can be canceled,
- at any time, before the next automatic renewal date. Subscriptions purchased directly from Infragistics or Infragistics' partners are
- subject to the renewal terms that were agreed upon as part of that purchase.
-
-
-
-
-
- What has changed about subscription and pricing model?
-
- We have moved to a subscription-based pricing model for all our developer tools. This makes it easier
- for you to manage your license subscriptions and allows us to provide a better level of service for you. We
- updated our pricing and packages to provide you with flexible options and the best value. This includes Ignite UI
- (formerly Ignite UI for JavaScript) which includes all of our JavaScript framework components for web development,
- including: Angular, ASP.NET (Core and MVC), Blazor, JQuery, React and Web Components), as well as Infragistics Professional,
- Infragistics Ultimate, our Ultimate UI products. We also offer multi-year subscriptions options with a built-in discount,
- so you can see the value up front. With these updates we are confident that we are providing the best platforms and the best
- price.
-
-
-
- Who will the updated changes impact?
-
- The license updates will impact all new and current customers using Ignite UI, Infragistics Professional and
- Infragistics Ultimate. Specifically, we have also made updates to our product and packaging for Ignite UI for JavaScript,
- Ignite UI for Angular, Ignite UI for React and Ignite UI for Web components. For more information, please refer to this
- blog: Announcement: Changes to Ignite UI Product & Packaging The pricing has been updated for all products and packages.
- So, all new or additional licenses will be sold based on our new pricing and packages. All existing license agreements will
- be honored and renewed based upon the current agreement.
-
-
-
+
+
+ Workspace Settings
+ Nested account, access, and billing options
+
+
+
+ Profile
+ Name, photo, and contact details
+
Update the public information shown to other workspace members.
Manage subscription details, billing contacts, and invoice delivery.
+
+
+
@code {
- public bool SingleExpand { get; set; }
+ private bool SingleExpand { get; set; }
- public void OnSwitchChange(IgbCheckboxChangeEventArgs args)
+ private void OnSwitchChange(IgbCheckboxChangeEventArgs args)
{
SingleExpand = args.Detail.Checked;
}
}
```
-
+### Do/Don't
+
+**When to use:** Use the accordion when you need to organize secondary content, FAQ entries, settings groups, or other related vertical sections that users expand on demand. Keep panel titles short and descriptive, and enable single-expansion behavior when users should focus on one section at a time.
+
+**When not to use:** Use the [Expansion Panel](./expansion-panel.md) when you need a single standalone expandable section instead of a coordinated container that manages multiple panels together. Do not use an accordion to hide essential primary content or to group unrelated sections.
+
+
+
+
+
+
Do
+
Don't
+
+
+
+
+
+
+
+
+
+
+
+## Properties
+
+The accordion exposes container-level controls; panel-specific state is configured on each [`IgbExpansionPanel`](mcp:get_api_reference?platform=blazor&component=IgbExpansionPanel).
+
+| Name | Type | Default | Description |
+| -- | -- | -- | -- |
+| [`SingleExpand`](mcp:get_api_reference?platform=blazor&component=IgbAccordion&member=singleExpand) | `boolean` | `false` | Controls whether one or multiple panels can stay expanded at the same time. |
+| [`Panels`](mcp:get_api_reference?platform=blazor&component=IgbAccordion&member=panels) | [`ExpansionPanel[]`](mcp:get_api_reference?platform=blazor&component=IgbExpansionPanel) | n/a | Returns the collection of child expansion panels in the accordion. |
+
+## Methods
+
+Use the accordion methods when you need to change panel state from your code.
+
+| Name | Description |
+| -- | -- |
+| [`ShowAll`](mcp:get_api_reference?platform=blazor&component=IgbAccordion&member=showAll) | Expands all available panels. |
+| [`HideAll`](mcp:get_api_reference?platform=blazor&component=IgbAccordion&member=hideAll) | Collapses the available panels. |
+
+## Styling
+
+Style the Blazor accordion with CSS parts and Ignite UI theme variables.
+
+```razor
+@using IgniteUI.Blazor.Controls
+
+
+
+
+
+ Getting Started
+ Setup and onboarding
+
Find installation steps, project setup guidance, and resources for building your first application.
+
+
+
+ Billing
+ Invoices and payment methods
+
Review invoices, update payment methods, and manage billing contacts for your account.
+
+
+
+ Security
+ Access and authentication
+
Configure password rules, multi-factor authentication, and recovery options for your team.
+
+
+
+
+```
+
+Style the accordion by targeting the parts exposed by its child [`IgbExpansionPanel`](mcp:get_api_reference?platform=blazor&component=IgbExpansionPanel) components.
+
+### Styling Variables
+
+Use Ignite UI for Blazor theme CSS variables as values when styling the expansion panel parts.
+
+| Variable | What it changes |
+| -- | -- |
+| `--ig-secondary-900` | Supplies the dark background color used by the panel and header in the example below. |
+| `--ig-secondary-900-contrast` | Supplies a readable foreground color for content on `--ig-secondary-900`. |
+| `--ig-warn-500` | Supplies the accent color used by the indicator, title, and subtitle in the example below. |
+
+```css
+igc-expansion-panel {
+ background-color: var(--ig-secondary-900);
+ color: var(--ig-secondary-900-contrast);
+}
+
+igc-expansion-panel::part(header) {
+ background-color: var(--ig-secondary-900);
+}
+
+igc-expansion-panel::part(indicator),
+igc-expansion-panel::part(title),
+igc-expansion-panel::part(subtitle) {
+ color: var(--ig-warn-500);
+}
+```
+
+### CSS Parts
+
+| Part | What it changes |
+| -- | -- |
+| `header` | The container for the expansion indicator, title, and subtitle. |
+| `title` | The title container. |
+| `subtitle` | The subtitle container. |
+| `indicator` | The indicator container. |
+| `content` | The expansion panel content wrapper. |
+
+### Styling with Tailwind
+
+Use Tailwind utility classes with CSS part selectors when you want to keep the styling close to the component markup.
+
+```css
+@tailwind utilities;
+
+.accordion-tailwind-sample {
+ width: 100%;
+ height: 100%;
+ overflow-y: auto;
+}
+```
+
+## Accessibility
+
+The accordion supports keyboard interaction for moving focus between panels and changing their expanded state.
+
+### Keyboard Interaction
+
+Use the keyboard shortcuts below to move through the accordion and open or close panels.
+
+| Key | Action |
+| -- | -- |
+| Down Arrow | Moves focus to the panel below. |
+| Up Arrow | Moves focus to the panel above. |
+| Alt + Down Arrow | Opens the focused panel. |
+| Alt + Up Arrow | Closes the focused panel. |
+| Shift + Alt + Down Arrow | Opens all enabled panels. If [`SingleExpand`](mcp:get_api_reference?platform=blazor&component=IgbAccordion&member=singleExpand) is `true`, opens only the focused panel. |
+| Shift + Alt + Up Arrow | Closes all enabled panels. |
+| Home | Moves focus to the first enabled panel. |
+| End | Moves focus to the last enabled panel. |
-## Keyboard Navigation
+### Screen Readers / ARIA
-Keyboard navigation in the Blazor Accordion provides a rich variety of keyboard interactions to the end-user. This functionality is enabled by default and allows end-users to easily navigate through the panels.
+The accordion's accessibility semantics are provided through its child expansion panels and their headers.
-The Accordion navigation is compliant with W3C accessibility standards and convenient to use.
+- Each panel header exposes `role="button"`, `aria-expanded`, and `aria-controls`.
+- Each panel body exposes `role="region"` and a label through `aria-labelledby` or `aria-label`.
+- Use clear title text for each panel so assistive technologies can announce a meaningful label.
+- Keep interactive content inside panel bodies in a logical tab order.
-**Key Combinations**
+### Accessibility Compliance
-- ↓ - moves the focus to the panel below
-- ↑ - moves the focus to the panel above
-- ALT + ↓ - opens the focused panel in the accordion
-- ALT + ↑ - closes the focused panel in the accordion
-- SHIFT + ALT + ↓ - opens all enabled panels (if singleExpand is set to true opens the focused panel)
-- SHIFT + ALT + ↑ - closes all enabled panels
-- HOME - navigates to the FIRST enabled panel in the accordion
-- END - navigates to the LAST enabled panel in the accordion
+Infragistics documents Ignite UI for Blazor accessibility support for Section 508 and WCAG 2.1 guideline areas in the [Accessibility Compliance](../interactivity/accessibility-compliance.md) topic. The accordion's compliance evidence comes from the child [`IgbExpansionPanel`](mcp:get_api_reference?platform=blazor&component=IgbExpansionPanel) components that provide the interactive headers and regions.
-
+| Criterion | How the component complies |
+| -- | -- |
+| [2.1.1 Keyboard](https://www.w3.org/WAI/WCAG21/Understanding/keyboard) | The accordion supports keyboard commands for moving focus and opening or closing panels. |
+| [2.4.3 Focus Order](https://www.w3.org/WAI/WCAG21/Understanding/focus-order) | Focus moves through enabled panels in sequence, with shortcuts for jumping to the first and last panel. |
+
+Your responsibilities:
+
+- Provide panel titles that describe the content behind each disclosure area.
+- Preserve a logical focus order in the surrounding page layout.
+- Validate any custom styling against your application's contrast and focus-indicator requirements.
## API References
-- [`IgbAccordion`](mcp:get_api_reference?platform=blazor&component=IgbAccordion)
-- [`IgbExpansionPanel`](mcp:get_api_reference?platform=blazor&component=IgbExpansionPanel)
+[`IgbAccordion`](mcp:get_api_reference?platform=blazor&component=IgbAccordion)
+[`IgbExpansionPanel`](mcp:get_api_reference?platform=blazor&component=IgbExpansionPanel)
+
+## Dependencies
+
+The accordion depends on [`IgbExpansionPanel`](mcp:get_api_reference?platform=blazor&component=IgbExpansionPanel) for its visible sections.
+
+The accordion also depends on the shared theme stylesheet for its default appearance.
## Additional Resources
+Use these resources to continue with Ignite UI for Blazor Accordion support, source, and related layout guidance.
+
- [Ignite UI for Blazor **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-blazor)
- [Ignite UI for Blazor **GitHub**](https://github.com/IgniteUI/igniteui-blazor)
+
+## Related Components
+
+- [Expansion Panel](./expansion-panel.md) - The collapsible section the accordion is built from. See it for configuring individual panels.
+
+## FAQ
+
+ **Q: Should multiple accordion panels be open at the same time?**
+
+ Allow multiple panels to stay open when users need to compare or cross-reference their content. Use single-expansion behavior when the workflow is clearer with one active section at a time.
+
+ **Q: When should I avoid using an accordion?**
+
+ Avoid using an accordion for essential, long, or comparison-heavy content that users need to read at once. Use clear headings, a separate page, or another layout when hiding the content would make it harder to find or compare.
+
+ **Q: How should I write accordion headers?**
+
+ Use short, descriptive headers that clearly identify the content revealed by each panel. Users should be able to scan the headers and decide which section to open.
+
+ **Q: Can an accordion header contain other buttons or links?**
+
+ Avoid placing other interactive controls inside an accordion header. Keep secondary actions outside the header so the panel trigger remains clear and does not contain nested interactive elements.
+
+
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/ai-assisted-development-overview.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/ai-assisted-development-overview.md
index e0b671c19..30bd7e973 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/ai-assisted-development-overview.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/ai-assisted-development-overview.md
@@ -1,18 +1,15 @@
---
-title: AI-Assisted Development with Ignite UI - Ignite UI for Blazor
-_description: Configure Agent Skills, the Ignite UI MCP server, and the Theming MCP server in your Angular, React, Blazor, or Web Components project with a single command - npx igniteui-cli@latest ai-config. Grounds GitHub Copilot, Cursor, Claude Desktop, Claude Code, and JetBrains AI Assistant in correct Ignite UI APIs.
-_keywords: Blazor, Ignite UI for Blazor, Infragistics, MCP, Model Context Protocol, Ignite UI MCP server, Ignite UI Theming MCP, Agent Skills, AI, agent, Copilot, Cursor, Claude Code, ai-config
-_language: en
-_license: MIT
-_canonicalLink: "{environment:dvUrl}/components/ai-assisted-development-overview"
+title: "AI-Assisted Development with Ignite UI - Ignite UI for Blazor"
+description: "Configure Agent Skills, the Ignite UI MCP server, and the Theming MCP server in your Angular, React, Blazor, or Web Components project with a single command - npx igniteui-cli@latest ai-config. Grounds GitHub Copilot, Cursor, Claude Desktop, Claude Code, and JetBrains AI Assistant in correct Ignite UI APIs."
+keywords: "Blazor, Ignite UI for Blazor, Infragistics, MCP, Model Context Protocol, Ignite UI MCP server, Ignite UI Theming MCP, Agent Skills, AI, agent, Copilot, Cursor, Claude Code, ai-config"
+license: MIT
+_canonicalLink: "/components/ai-assisted-development-overview"
last_updated: "2026-05-03"
-namespace: Infragistics.Controls
mentionedTypes: []
+llms:
+ description: "Ignite UI for Blazor provides a complete AI toolchain - Agent Skills, the Ignite UI CLI MCP server, the Ignite UI Theming MCP server and the MAKER MCP server - that grounds AI coding assistants in correct component APIs, import paths, and design tokens."
_tocName: Agent Workflow
---
-
-
-
# AI-Assisted Development with Ignite UI
Ignite UI for Blazor provides a complete AI toolchain - Agent Skills, the Ignite UI CLI MCP server, the Ignite UI Theming MCP server and the MAKER MCP server - that grounds AI coding assistants in correct component APIs, import paths, and design tokens. Agent Skills are developer-owned instruction packages that define how AI agents use Ignite UI in a specific project. The CLI MCP server (`igniteui-cli`) exposes Ignite UI CLI scaffolding, component management, and documentation tools to the active AI agent session via the Model Context Protocol. The Theming MCP server (`igniteui-theming`) exposes the Ignite UI Theming Engine as queryable agent context. The MAKER MCP (`@igniteui/maker-mcp`) is a multi-agent AI orchestration MCP server from Infragistics that decomposes complex tasks into validated, executable step plans using a consensus-based voting algorithm across multiple AI agents. Skills, CLI MCP and Theming MCP - all three are configured by a single command: `npx igniteui-cli ai-config`
@@ -37,11 +34,12 @@ Run this command from the root of your existing Angular, React, Blazor, or Web C
npx igniteui-cli ai-config
```
-> [!IMPORTANT]
-> Without a version pin, `npx` may pull an older CLI version that does not recognize the `ai-config` subcommand and will instead launch an interactive project-creation prompt, scaffolding a new project inside your existing one. Make sure that you have installed CLI version 16.x.
+**Warning: Important**
-> [!NOTE]
-> For Blazor, `ai-config` detects your project by looking for a `.csproj` or `.sln` file. The `IgniteUI.Blazor` NuGet package does not need to be installed.
+Without a version pin, `npx` may pull an older CLI version that does not recognize the `ai-config` subcommand and will instead launch an interactive project-creation prompt, scaffolding a new project inside your existing one. Make sure that you have installed CLI version 16.x.
+
+**Note:**
+For Blazor, `ai-config` detects your project by looking for a `.csproj` or `.sln` file. The `IgniteUI.Blazor` NuGet package does not need to be installed.
If `ai-config` cannot detect the framework from your project files, it prompts you to select one - so the command works even from a project where no Ignite UI package is installed yet.
@@ -51,16 +49,16 @@ After the command finishes, start the MCP servers in your AI client. The servers
If Ignite UI is **not** installed in the project:
-> [!NOTE]
-> Ignite UI MCP servers configured for your selected clients
+**Note:**
+Ignite UI MCP servers configured for your selected clients
The MCP servers are ready to use. Skills will be added automatically the next time you run `ai-config` after installing Ignite UI.
If Ignite UI **is** installed in the project:
-> [!NOTE]
-> Ignite UI MCP servers configured for your selected clients
-> Agent Skills copied to your selected agents' skills directories
+**Note:**
+Ignite UI MCP servers configured for your selected clients
+Agent Skills copied to your selected agents' skills directories
Both the MCP servers and Skills are configured.
@@ -155,7 +153,7 @@ The CLI MCP server and Theming MCP server work with any editor or AI client that
| Claude Desktop (macOS) | `~/Library/Application Support/Claude/claude_desktop_config.json` |
| Claude Desktop (Windows) | `%APPDATA%\Claude\claude_desktop_config.json` |
| Claude Code | `.mcp.json` or the Claude Code MCP CLI command |
-| JetBrains AI Assistant | **Tools → AI Assistant → Model Context Protocol (MCP)*- |
+| JetBrains AI Assistant | **Tools → AI Assistant → Model Context Protocol (MCP)** |
Agent Skills are compatible with GitHub Copilot via `.github/copilot-instructions.md`, Cursor via `.cursorrules` or `.cursor/rules/`, Windsurf via `.windsurfrules`, and JetBrains AI Assistant via project-level prompt settings.
@@ -175,8 +173,8 @@ If you have the Ignite UI CLI installed globally, use the shorter form:
ig ai-config
```
-> [!NOTE]
-> For Blazor, `ai-config` detects your project via `.csproj` or `.sln`. If no project file is found, the command prompts you to select a framework.
+**Note:**
+For Blazor, `ai-config` detects your project via `.csproj` or `.sln`. If no project file is found, the command prompts you to select a framework.
### Step 1 - Load Agent Skills
@@ -258,8 +256,6 @@ For configuration details and theming workflows, see [Theming MCP](theming-mcp.m
- [Ignite UI CLI MCP](./cli-mcp.md)
- [Ignite UI Theming MCP](./theming-mcp.md)
-
-
Our community is active and always welcoming to new ideas.
- [Ignite UI for Blazor **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-blazor)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/area-chart.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/area-chart.md
index a891c7062..712b62d28 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/area-chart.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/area-chart.md
@@ -1,21 +1,22 @@
---
-title: Blazor Area Chart | Data Visualization | Infragistics
-_description: Infragistics' Blazor Area Chart
-_keywords: Blazor Charts, Area Chart, Infragistics
-_license: commercial
-mentionedTypes: ["DomainChart", "CategoryChart", "XamDataChart", "CategoryChartType"]
+title: "Blazor Area Chart | Data Visualization | Infragistics"
+description: Infragistics' Blazor Area Chart
+keywords: "Blazor Charts, Area Chart, Infragistics"
+license: commercial
+mentionedTypes: ["DomainChart", "CategoryChart", "DataChart", "CategoryChartType"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Blazor Area Chart renders as a collection of points connected by straight line segments with the area below the line filled in."
_tocName: Area Chart
_premium: true
---
-
# Blazor Area Chart
-The Ignite UI for Blazor Area Chart renders as a collection of points connected by straight line segments with the area below the line filled in. Values are represented on the y-axis (labels on the left side) and categories are displayed on the x-axis (bottom labels). This chart emphasize the amount of change over a period of time or compare multiple items as well as the relationship of parts of a whole by displaying the total of the plotted values. Therefore, they are often chronological, showing a change of quantity e.g. accumulation of a commodity over time.
+The Ignite UI for Blazor Area Chart renders as a collection of points connected by straight line segments with the area below the line filled in. Values are represented on the y-axis (labels on the left side) and categories are displayed on the x-axis (bottom labels). This chart emphasize the amount of change over a period of time or compare multiple items as well as the relationship of parts of a whole by displaying the total of the plotted values. Therefore, they are often chronological, showing a change of quantity e.g. accumulation of a commodity over time.
## Blazor Area Chart Example
-You can create Blazor Category Area Chart in the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) control by binding your data to [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=DataSource) property and setting [`ChartType`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=ChartType) property to **Area** enum, as shown in the example below.
+You can create Blazor Category Area Chart in the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) control by binding your data to [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=dataSource) property and setting [`CategoryChart.ChartType`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=chartType) property to **Area** enum, as shown in the example below.
```razor
@using IgniteUI.Blazor.Controls
@@ -109,8 +110,6 @@ public class CountryRenewableElectricity
}
```
-
-
## Area Chart Recommendations
### Area Chart Use Cases
@@ -145,7 +144,7 @@ There are several common use cases for choosing an Area Chart:
## Blazor Area Chart with Single Series
-Blazor Area Chart is often used to show the change of value over time such as the amount of renewable electricity produced. You can create this type of chart in [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) control by binding your data and setting [`ChartType`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=ChartType) property to `Area` value, as shown in the example below.
+Blazor Area Chart is often used to show the change of value over time such as the amount of renewable electricity produced. You can create this type of chart in [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) control by binding your data and setting [`CategoryChart.ChartType`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=chartType) property to [`Area`](mcp:get_api_reference?platform=blazor&component=CategoryChartType&member=Area) value, as shown in the example below.
```razor
@using IgniteUI.Blazor.Controls
@@ -222,11 +221,9 @@ public class CountryRenewableElectricity
}
```
-
-
## Blazor Area Chart with Multiple Series
-Similarly to how you can show multiple [Line Chart](line-chart.md) and [Spline Chart](spline-chart.md), you may also combine multiple Area Charts in the same control. This is accomplished by binding multiple data source to [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=DataSource) property of the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) control.
+Similarly to how you can show multiple [Line Chart](line-chart.md) and [Spline Chart](spline-chart.md), you may also combine multiple Area Charts in the same control. This is accomplished by binding multiple data source to [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=dataSource) property of the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) control.
```razor
@using IgniteUI.Blazor.Controls
@@ -320,11 +317,9 @@ public class CountryRenewableElectricity
}
```
-
-
## Blazor Area Chart Styling
-Area charts often have semi-transparent fill for their areas, thicker lines and slightly larger markers than usual. Below is an example showing how you can style the Area Chart from earlier accordingly.
+Area charts often have semi-transparent fill for their areas, thicker lines and slightly larger markers than usual. Below is an example showing how you can style the Area Chart from earlier accordingly.
```razor
@using IgniteUI.Blazor.Controls
@@ -423,15 +418,13 @@ public class CountryRenewableElectricity
}
```
-
-
## Advanced Types of Area Charts
The following sections explain more advanced types of Blazor Area Charts that can be created using the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control instead of [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) control with simplified API.
## Blazor Step Area Chart
-The Blazor Step Area Chart belongs to a group of category charts and it is rendered using a collection of points connected by continuous vertical and horizontal lines with the area below lines filled in. Values are represented on the y-axis and categories are displayed on the x-axis. The step area chart emphasizes the amount of change over a period of time or compares multiple items. You can create this type of chart in [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) control by binding your data and setting [`ChartType`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=ChartType) property to `StepArea` value, as shown in the example below.
+The Blazor Step Area Chart belongs to a group of category charts and it is rendered using a collection of points connected by continuous vertical and horizontal lines with the area below lines filled in. Values are represented on the y-axis and categories are displayed on the x-axis. The step area chart emphasizes the amount of change over a period of time or compares multiple items. You can create this type of chart in [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) control by binding your data and setting [`CategoryChart.ChartType`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=chartType) property to [`StepArea`](mcp:get_api_reference?platform=blazor&component=CategoryChartType&member=StepArea) value, as shown in the example below.
```razor
@using IgniteUI.Blazor.Controls
@@ -528,13 +521,11 @@ public class CountryRenewableElectricity
}
```
-
-
The following sections explain more advanced types of Blazor Area Charts that can be created using the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control instead of [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) control with simplified API.
## Blazor Range Area Chart
-The Blazor Range Area Chart allows you show the area as a range between two values over time. You can create this type of chart in [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control by binding your data to [`IgbRangeAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbRangeAreaSeries), as shown in the example below.
+The Blazor Range Area Chart allows you show the area as a range between two values over time. You can create this type of chart in [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control by binding your data to [`IgbRangeAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbRangeAreaSeries), as shown in the example below.
```razor
@using IgniteUI.Blazor.Controls
@@ -676,8 +667,6 @@ public class TemperatureRangeData
}
```
-
-
## Blazor Stacked Area Chart
The Blazor Stacked Area Chars is rendered using a collection of points connected by line segments, with the area below the line filled in and stacked on top of each other. Stacked Area Charts follow all the same requirements as Area Charts, with the only difference being that visually, the shaded areas are stacked on top of each other. You can create this type of chart in [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control by binding your data to [`IgbStackedAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbStackedAreaSeries), as shown in the example below.
@@ -856,11 +845,9 @@ public class ContinentsBirthRate
}
```
-
-
## Blazor Stacked 100% Area Chart
-The Blazor Stacked 100% Area Chart allows you represent your data as part of a whole being changed over time e.g. a country's energy consumption related to the sources from which it is produced. In such cases representing all stacked elements equally may be a better idea. You can create this type of chart in [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control by binding your data to [`IgbStacked100AreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbStacked100AreaSeries), as shown in the example below.
+The Blazor Stacked 100% Area Chart allows you represent your data as part of a whole being changed over time e.g. a country's energy consumption related to the sources from which it is produced. In such cases representing all stacked elements equally may be a better idea. You can create this type of chart in [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control by binding your data to [`IgbStacked100AreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbStacked100AreaSeries), as shown in the example below.
```razor
@using IgniteUI.Blazor.Controls
@@ -1033,8 +1020,6 @@ public class ContinentsBirthRate
}
```
-
-
## Blazor Stacked Spline Area Chart
The Blazor Stacked Spline Area Chart is rendered using a collection of points connected by curved spline segments, with the area below the curved spline fill in and stacked on top of each other. Stacked Spline Area Chart follows all of the same requirements as area charts, with the only difference being that the visually shaded areas are stacked on top of each other. You can create this type of chart in [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control by binding your data to [`IgbStackedSplineAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbStackedSplineAreaSeries), as shown in the example below.
@@ -1213,8 +1198,6 @@ public class ContinentsBirthRate
}
```
-
-
## Blazor Stacked 100% Spline Area Chart
The Blazor Stacked 100% Spline Area Chart is identical to the Stacked Spline Area Chart in all aspects except for the treatment of the values on the y-axis. Instead of presenting a direct representation of the data, the Stacked 100% Spline Area Chart presents the data in terms of a percent of the sum of all values in a particular data point. Sometimes the chart represents part of a whole being changed over time. For example, a country's energy consumption related to the sources from which it is produced. In such cases, representing all stacked elements equally may be a better idea. You can create this type of chart in [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control by binding your data to [`IgbStacked100SplineAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbStacked100SplineAreaSeries), as shown in the example below.
@@ -1389,8 +1372,6 @@ public class ContinentsBirthRate
}
```
-
-
## Blazor Radial Area Chart
The Blazor Radial Area Chart belongs to a group of [Radial Chart](radial-chart.md) and has a shape of a filled polygon that is bound by a collection of straight lines connecting data points. This chart type uses the same concept of data plotting as the Area Chart, but wraps the data points around a circular axis rather than stretching them horizontally. You can create this type of chart in [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control by binding your data to [`IgbRadialAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbRadialAreaSeries), as shown in the example below.
@@ -1537,8 +1518,6 @@ public class FootballPlayerStats
}
```
-
-
## Blazor Polar Area Chart
The Blazor Polar Area Chart belongs to a group of [Polar Chart](polar-chart.md) and have a shape of a filled polygon, where vertices or corners are located at the polar (angle/radius) coordinates of data points and are connected by a straight line and then filling the area represented by the connected points. The Polar Area Chart uses the same concepts of data plotting as the Scatter Marker Chart, but instead wraps the points around a circle and fills in the area that is drawn, rather than stretching the points and area filled along a horizontal line. You can create this type of chart in [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control by binding your data to [`IgbPolarAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbPolarAreaSeries), as shown in the example below.
@@ -1690,8 +1669,6 @@ public class BoatSailingData
}
```
-
-
## Blazor Polar Spline Area Chart
The Blazor Polar Spline Area Chart belongs to a group of [Polar Chart](polar-chart.md) and have a shape of a filled polygon, where vertices or corners are located at the polar (angle/radius) coordinates of data points and are connected by a curved spline and then filling the area represented by the connected points. The Polar Spline Area Chart uses the same concepts of data plotting as the Scatter Marker Chart, but instead wraps the points around a circle and fills in the area that is drawn, rather than stretching the points and area filled along a horizontal line. You can create this type of chart in [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control by binding your data to [`IgbPolarSplineAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbPolarSplineAreaSeries), as shown in the example below.
@@ -1826,8 +1803,6 @@ public class BoatSailingData
}
```
-
-
## Additional Resources
You can find more information about related chart types in these topics:
@@ -1845,8 +1820,8 @@ The following table lists API members mentioned in above sections:
| Chart Type | Control Name | API Members |
| -------------------------|-----------------|-----------------------|
-| Area | [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) | [`ChartType`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=ChartType) = `Area` |
-| Step Area | [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) | [`ChartType`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=ChartType) = `StepArea` |
+| Area | [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) | [`CategoryChart.ChartType`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=chartType) = [`Area`](mcp:get_api_reference?platform=blazor&component=CategoryChartType&member=Area) |
+| Step Area | [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) | [`CategoryChart.ChartType`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=chartType) = [`StepArea`](mcp:get_api_reference?platform=blazor&component=CategoryChartType&member=StepArea) |
| Range Area | [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) | [`IgbRangeAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbRangeAreaSeries) |
| Radial Area | [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) | [`IgbRadialAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbRadialAreaSeries) |
| Polar Area | [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) | [`IgbPolarAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbPolarAreaSeries) |
@@ -1855,3 +1830,16 @@ The following table lists API members mentioned in above sections:
| Stacked Spline Area | [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) | [`IgbStackedSplineAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbStackedSplineAreaSeries) |
| Stacked 100% Area | [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) | [`IgbStacked100AreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbStacked100AreaSeries) |
| Stacked 100% Spline Area | [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) | [`IgbStacked100SplineAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbStacked100SplineAreaSeries) |
+
+## API References
+
+[`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart)
+[`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart)
+[`IgbRangeAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbRangeAreaSeries)
+[`IgbRadialAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbRadialAreaSeries)
+[`IgbPolarAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbPolarAreaSeries)
+[`IgbPolarSplineAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbPolarSplineAreaSeries)
+[`IgbStackedAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbStackedAreaSeries)
+[`IgbStackedSplineAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbStackedSplineAreaSeries)
+[`IgbStacked100AreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbStacked100AreaSeries)
+[`IgbStacked100SplineAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbStacked100SplineAreaSeries)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/avatar.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/avatar.md
index e4d7d406a..7dd5a807b 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/avatar.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/avatar.md
@@ -1,76 +1,126 @@
---
-title: Blazor Avatar | Layout Controls | Infragistics
-_description: Use Infragistics' Blazor avatar component to display an image, icon, or initials.
-_keywords: avatar, layout, Ignite UI for Blazor, Infragistics
-_license: MIT
-mentionedTypes: ["Avatar"]
+title: "Blazor Avatar Component | Layouts | Infragistics"
+description: "Use the Blazor Avatar component to represent users, entities, or objects with images, initials, icons, or custom content."
+keywords: "Blazor Avatar, avatar component, profile image, initials, Ignite UI for Blazor, Infragistics"
+last_updated: "2026-07-29"
+license: MIT
+mentionedTypes: ["Avatar", "Badge", "Icon"]
+relatedComponents: ["Badge"]
+llms:
+ description: "The Ignite UI for Blazor Avatar topic shows how to render user, entity, or object identity with images, initials, icons, custom content, shape, size, styling, and accessibility guidance."
_tocName: Avatar
---
+# Avatar Component
-# Blazor Avatar
+The Ignite UI for Blazor Avatar represents a user, entity, or object with an image, initials, or custom content.
-The Ignite UI for Blazor Avatar helps to display initials, images, or icons in your application.
+Use the avatar to provide a compact visual identity in lists, cards, profile menus, and activity feeds.
-## Blazor Icon Avatar Example
+## Live Demo
+```razor
+@using IgniteUI.Blazor.Controls
-
-
-## Usage
-
-Before using the [`IgbAvatar`](mcp:get_api_reference?platform=blazor&component=IgbAvatar), you need to register it as follows:
+
```
-You will also need to link an additional CSS file to apply the styling to the [`IgbAvatar`](mcp:get_api_reference?platform=blazor&component=IgbAvatar) component. The following needs to be placed in the **wwwroot/index.html** file in a **Blazor Web Assembly** project or the **Pages/\_Host.cshtml** file in a **Blazor Server** project:
+## Anatomy
-```razor
-
-```
+The avatar is a single host element that applies image semantics and renders one of the supported content patterns.
-For a complete introduction to the Ignite UI for Blazor, read the [**Getting Started**](../general-getting-started.md) topic.
+**Blazor Avatar anatomy anatomy:** The avatar anatomy labels the image, icon, and initials containers.
-The [`IgbAvatar`](mcp:get_api_reference?platform=blazor&component=IgbAvatar) is capable of displaying images, initials, or any other content, including icons. Declaring an [`IgbAvatar`](mcp:get_api_reference?platform=blazor&component=IgbAvatar) is as simple as:
+
-The avatar has several attributes that allow rendering different content based on the context. The most basic way to display content in the boundaries of the avatar is to provide content between the opening and closing tags.
+1. Image container: Displays image content type.
+2. Icon container: Displays icon content type.
+3. Initials container: Displays text content type.
-```razor
-
-
-
+```text
+igc-avatar[role="img"] // host - exposes the avatar
+└─ div[part="base"] // avatar wrapper
+ ├─ span[part="initials"] // rendered when `initials` is set
+ ├─ slot // rendered when `initials` is not set
+ └─ img[part="image"] // rendered while `src` is set and loads
```
-### Initials
+## Getting Started
-If the [`Initials`](mcp:get_api_reference?platform=blazor&component=IgbAvatar&member=Initials) attribute is set all children elements of the avatar will be ignored and the string passed to this attribute will be displayed.
+Register the avatar module in `Program.cs` and add the theme stylesheet to your host page. If you have not set up Ignite UI for Blazor yet, complete the shared [Getting Started](../general-getting-started.md) topic first.
-```razor
-
+```csharp
+builder.Services.AddIgniteUIBlazor(typeof(IgbAvatarModule));
+```
-
-
-
+```razor
+
```
+## Usage
+Render an avatar with an image source, initials, or custom content in the default slot.
-### Image
+### Variants
-The avatar can also display an image when the [`Src`](mcp:get_api_reference?platform=blazor&component=IgbAvatar&member=Src) attribute is assigned a valid URL to a static asset. In that case the [`Initials`](mcp:get_api_reference?platform=blazor&component=IgbAvatar&member=Initials) value will be ignored and children elements will not be rendered.
+Set only the content source you intend to show. The avatar renders [`Initials`](mcp:get_api_reference?platform=blazor&component=IgbAvatar&member=initials) when they are set, otherwise it renders default slot content, and it also renders an image element while [`Src`](mcp:get_api_reference?platform=blazor&component=IgbAvatar&member=src) is set and loads successfully.
```razor
-
+
+
+
+
+
```
@@ -78,19 +128,78 @@ The avatar can also display an image when the [`Src`](mcp:get_api_reference?plat
```razor
@using IgniteUI.Blazor.Controls
+
+
+
+ Image
+
+
+
+
+
+ 2
+
+ Icon
-
-
+
+
+
+
+ Initials
@code {
+ private const string MailIcon =
+ "";
+ private const string CheckIcon =
+ "";
+
+ public IgbIcon MailIconRef { get; set; }
+ public IgbIcon CheckIconRef { get; set; }
+
+ protected override async Task OnAfterRenderAsync(bool firstRender)
+ {
+ if (firstRender)
+ {
+ if (MailIconRef != null)
+ {
+ await MailIconRef.EnsureReady();
+ await MailIconRef.RegisterIconFromTextAsync("mail", MailIcon, "material");
+ }
+
+ if (CheckIconRef != null)
+ {
+ await CheckIconRef.EnsureReady();
+ await CheckIconRef.RegisterIconFromTextAsync("check", CheckIcon, "material");
+ }
+ }
+ }
}
```
### Shape
-The avatar supports three shapes - `circle`, `rounded`, and `square`. The default shape of the avatar is `square` and it can be changed via the `shape` attribute.
+Set [`Shape`](mcp:get_api_reference?platform=blazor&component=IgbAvatar&member=shape) to `square`, `rounded`, or `circle`.
+
+```razor
+
+```
```razor
@using IgniteUI.Blazor.Controls
@@ -162,7 +271,7 @@ The avatar supports three shapes - `circle`, `rounded`, and `square`. The defaul
### Size
-Apart from the shape, the size of the avatar can also be changed by utilizing the `--ig-size` CSS variable. The supported sizes are `small` (default), `medium`, and `large`. The following code snippet shows how to use a different component size:
+Set `--ig-size` to one of the shared size tokens when you need a preset avatar size.
```css
igc-avatar {
@@ -206,25 +315,41 @@ igc-avatar {
```
-### Styling
+### Do/Don't
+
+**When to use:** Use the avatar when a UI needs a small representation of a person, organization, object, or account, such as a profile image, initials, or an icon. Keep a consistent avatar strategy within the same UI region so repeated identities are easy to scan.
+
+**When not to use:** Use the [Badge](../inputs/badge.md) component when you need to show a count, status, or notification indicator instead of representing an entity. Badges can also decorate avatars when both identity and status need to appear together.
+
+
+
+
+
+
Do
+
Don't
+
+
+
+
+
+
+
+
+
+
-The [`IgbAvatar`](mcp:get_api_reference?platform=blazor&component=IgbAvatar) component exposes several CSS parts, giving you full control over its style:
+## Properties
-|Name|Description|
-|--|--|
-| `base` | The base wrapper of the avatar. |
-| `initials` | The initials wrapper of the avatar. |
-| `image` | The image wrapper of the avatar. |
-| `icon` | The icon wrapper of the avatar. |
+The avatar exposes a small set of inputs for its content and shape.
-```css
-igc-avatar::part(base) {
- --size: 60px;
- color: var(--ig-success-500-contrast);
- background: var(--ig-success-500);;
- border-radius: 20px;
-}
-```
+| Name | Type | Default | Description |
+| -- | -- | -- | -- |
+| [`Alt`](mcp:get_api_reference?platform=blazor&component=IgbAvatar&member=alt) | `string` | n/a | Sets alternative text for the image avatar. |
+| [`Initials`](mcp:get_api_reference?platform=blazor&component=IgbAvatar&member=initials) | `string` | n/a | Sets text initials rendered when no image is displayed. |
+| [`Shape`](mcp:get_api_reference?platform=blazor&component=IgbAvatar&member=shape) | `"square" \| "rounded" \| "circle"` | `"square"` | Sets the avatar shape. |
+| [`Src`](mcp:get_api_reference?platform=blazor&component=IgbAvatar&member=src) | `string` | n/a | Sets the image source URL. |
+
+## Styling
```razor
@using IgniteUI.Blazor.Controls
@@ -425,14 +550,209 @@ igc-avatar::part(base) {
}
```
-
+The avatar appearance is controlled through theme variables and platform-specific styling hooks.
+
+Use the avatar CSS variables for token-level changes and CSS parts when you need to target the rendered wrapper, image, icon, or initials.
+
+| Variable | What it changes |
+| -- | -- |
+| `--ig-avatar-background` | Avatar background color. |
+| `--ig-avatar-color` | Text and initials color. |
+| `--ig-avatar-icon-color` | Slotted icon color. |
+| `--ig-avatar-border-radius` | Border radius used by rounded avatars. |
+| `--ig-avatar-size` | Avatar width and height. |
+| `--ig-size` | Shared component size token used to derive preset avatar sizes. |
+
+| CSS Part | Description |
+| -- | -- |
+| `base` | The avatar wrapper. |
+| `icon` | The icon wrapper. |
+| `initials` | The initials wrapper. |
+| `image` | The image element. |
+
+### Sass Theming
+
+Use the `avatar-theme` function when your application customizes Ignite UI themes through Sass.
+
+```scss
+@use "igniteui-theming/sass/themes" as *;
+
+$custom-avatar-theme: avatar-theme(
+ $background: #72da67,
+ $border-radius: 16px,
+ $size: 3rem
+);
+
+:root {
+ @include tokens($custom-avatar-theme);
+}
+```
+
+### CSS Variables
+
+Set component CSS variables directly when you need local styling without a Sass build step.
+
+```css
+igc-avatar {
+ --ig-avatar-background: var(--ig-success-500);
+ --ig-avatar-color: var(--ig-success-500-contrast);
+ --ig-avatar-border-radius: 20px;
+}
+
+igc-avatar::part(base) {
+ border: 2px solid var(--ig-success-700);
+}
+```
+
+### Styling with Tailwind
+
+Use Tailwind utility classes with the Ignite UI for Blazor Avatar when you need utility-first layout styling together with Ignite UI component tokens.
+
+```css
+@tailwind utilities;
+
+.sample {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, 21.5rem);
+ gap: 2.5rem;
+ place-content: center;
+ height: 100vh;
+}
+
+igc-card:nth-of-type(2) {
+ align-self: center;
+}
+
+igc-card-header {
+ display: flex;
+ flex-flow: row wrap;
+ align-items: center;
+ width: 100%;
+ padding: 1rem;
+}
+
+igc-card-header::part(header) {
+ display: flex;
+ flex-flow: column nowrap;
+ overflow: hidden;
+ flex: 1 1 auto;
+ justify-content: center;
+}
+
+igc-card-header [slot="thumbnail"] {
+ margin-inline-end: 1rem;
+}
+
+.card-sample-custom-subtitle {
+ display: block;
+ color: var(--ig-gray-700);
+ font-size: 0.875rem;
+ line-height: 1.25rem;
+ margin: 0 1rem 0.5rem;
+}
+
+.stats-title {
+ color: var(--ig-gray-900);
+ font-size: 1rem;
+ font-weight: 600;
+ line-height: 1.5rem;
+}
+
+.stats-subtitle {
+ color: var(--ig-gray-500);
+ font-size: 0.875rem;
+ line-height: 1.25rem;
+}
+```
+
+## Accessibility
+
+The avatar is a non-interactive identity visual with accessible image semantics.
+
+### Keyboard Interaction
+
+The avatar does not receive focus and has no keyboard interaction.
+
+| Key | Action |
+| -- | -- |
+| n/a | The avatar is not keyboard interactive. |
+
+### Screen Readers / ARIA
+
+The avatar initializes with image semantics and a default accessible label of `avatar`.
+
+- Set `alt` when a `src` image represents a specific person, entity, or object.
+- Add an explicit `aria-label` when projected custom content needs a different accessible name.
+- Treat decorative avatars as redundant when adjacent text already identifies the same entity.
+
+### Accessibility Compliance
+
+Infragistics documents Ignite UI for Blazor accessibility support for Section 508 and WCAG 2.1 guideline areas in the [Accessibility Compliance](../interactivity/accessibility-compliance.md) topic.
+
+| Criterion | How the component complies |
+| -- | -- |
+| [1.1.1 Non-text Content](https://www.w3.org/WAI/WCAG21/Understanding/non-text-content) | The avatar has an accessible label, and image avatars can receive specific alternative text through `alt`. |
+| [4.1.2 Name, Role, Value](https://www.w3.org/WAI/WCAG21/Understanding/name-role-value) | The component initializes with image semantics and exposes content-related ARIA information. |
+
+Your responsibilities:
+
+- Keep sufficient contrast between the avatar background and text or icon color when overriding styles.
+- Avoid duplicating the same identity announcement when adjacent text already names the person or entity.
+
+- Provide a descriptive label or `alt` text when the avatar conveys identity.
+
+## Troubleshooting
+
+Use this section to check boundaries and common decisions before treating Avatar as an interactive or status component.
+
+### Known Limitations
+
+The avatar is a visual identity primitive and does not add interaction, status, or notification behavior by itself.
+
+- Use an interactive container, such as a button or list item, when the represented entity must be clickable.
+- Use a badge with the avatar when you need to show status, counts, or notification indicators.
## API References
-- [`IgbAvatar`](mcp:get_api_reference?platform=blazor&component=IgbAvatar)
-- [`Styling & Themes`](../themes/overview.md)
+Use these API references for the complete avatar API surface.
+
+[`IgbAvatar`](mcp:get_api_reference?platform=blazor&component=IgbAvatar)
+[`IgbIcon`](mcp:get_api_reference?platform=blazor&component=IgbIcon)
+[`IgbBadge`](mcp:get_api_reference?platform=blazor&component=IgbBadge)
+
+## Dependencies
+
+Slotted icons require the [`IgbIcon`](mcp:get_api_reference?platform=blazor&component=IgbIcon) component to be registered or imported.
+
+The avatar also uses the shared theme stylesheet for its default appearance.
## Additional Resources
+Use these resources for support and related Ignite UI documentation.
+
- [Ignite UI for Blazor **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-blazor)
- [Ignite UI for Blazor **GitHub**](https://github.com/IgniteUI/igniteui-blazor)
+
+## Related Components
+
+Use these related components when identity needs to be combined with status, actions, or richer layout.
+
+- [Badge](../inputs/badge.md) - Use Badge to show counts, status, or notification indicators. Badge can decorate Avatar when the UI needs both identity and status.
+
+## FAQ
+
+ **Q: When should I use Avatar instead of Badge?**
+
+ Use Avatar when the UI needs to represent a person, account, organization, or object. Use Badge when the UI needs to show a count, status, or notification indicator.
+
+
+ **Q: Does Avatar add keyboard interaction?**
+
+ No. Avatar is non-interactive and does not receive focus by itself. Put it inside an interactive component when the represented entity needs an action.
+
+
+ **Q: How should I label image avatars for screen readers?**
+
+ Provide meaningful alternative text when the avatar image identifies a specific entity. Avoid repeating the same identity when adjacent text already names that entity.
+
+
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/badge.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/badge.md
index 16eb2559d..6c99199a5 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/badge.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/badge.md
@@ -1,62 +1,57 @@
---
-title: Blazor Badge | Infragistics
-_description: Infragistics' Blazor Badge component allows you to display content in a predefined style to decorate other components anywhere in an application.
-_keywords: Blazor, UI controls, web widgets, UI widgets, Web Components, Blazor Badge Components, Infragistics
-_license: MIT
+title: "Badge"
+description: "The Ignite UI for Blazor Badge displays a short status, category, count, or notification indicator alongside avatars, navigation menus, and other components."
+keywords: "Blazor Badge, Ignite UI for Blazor, badge indicator"
+license: MIT
mentionedTypes: ["Badge"]
+last_updated: "2026-07-24"
+llms:
+ description: "The Ignite UI for Blazor Badge component displays a short status, category, count, or notification indicator alongside avatars, navigation menus, and other components."
_tocName: Badge
---
+# Badge Component
-# Blazor Badge Overview
+The Blazor Badge component is provided by the platform-specific Ignite UI for Blazor package and is used in conjunction with avatars, navigation menus, or other components in an application when a visual notification is needed. Badges are usually designed with predefined styles to communicate information, success, warnings, or errors.
-The Ignite UI for Blazor Badge is a component used in conjunction with avatars, navigation menus, or other components in an application when a visual notification is needed. Badges are usually designed with predefined styles to communicate information, success, warnings, or errors.
+## Live Demo
-## Blazor Badge Example
+The Blazor Badge demo shows how the component can communicate a compact status or notification next to another interface element.
```razor
@using IgniteUI.Blazor.Controls
-
-
-
-
-
- 23
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+ 2
-
-
-
- 1
-
- Orders
-
-
-
-
- 2
-
-
- Payment
-
-
-
-
- 3
-
- Shipping
-
+
+ Events
+
+ new
+
+
+
+
+
@code {
- private const string FavoriteBorderIcon = "";
- private const string CloseIcon = "";
+ private const string CheckIcon = "";
+ private const string MailIcon = "";
+ private const string NotificationsIcon = "";
private IgbIcon iconRef;
@@ -66,27 +61,58 @@ The Ignite UI for Blazor Badge is a component used in conjunction with avatars,
{
iconRef.EnsureReady().ContinueWith(_ =>
{
- iconRef.RegisterIconFromText("favorite_border", FavoriteBorderIcon, "material");
- iconRef.RegisterIconFromText("close", CloseIcon, "material");
+ iconRef.RegisterIconFromText("check", CheckIcon, "material");
+ iconRef.RegisterIconFromText("mail", MailIcon, "material");
+ iconRef.RegisterIconFromText("notifications", NotificationsIcon, "material");
});
}
}
}
```
-
+## Anatomy
-## Usage
+The Blazor Badge presents a compact label or dot indicator that decorates another interface element.
-Before using the [`IgbBadge`](mcp:get_api_reference?platform=blazor&component=IgbBadge), you need to register it as follows:
+**Badge anatomy:** The Badge component is a compact label or dot indicator that decorates another interface element.
-```razor
+
+
+1. Dot indicator: A small badge dot used to show a status or a new update.
+2. Icon: Represents the type of status or action.
+3. Container: The badge shape that holds and styles the icon or label.
+4. Label: Text or a number displayed inside the badge.
+
+The component renders its content inside the `base` CSS part. Use the component's default slot for text or other inline content; when `dot` is enabled, the badge renders as an indicator without content.
+
+```text
+
+└── ::part(base)
+ └── default slot content
+
+```
+
+## Getting Started
+
+To use the Blazor Badge, follow the [Ignite UI for Blazor Getting Started](../general-getting-started.md) topic for the basic project setup, then register the component for your target platform.
+
+For Blazor using the **IgniteUI.Blazor** package, register the Badge module as follows:
+
+```csharp
// in Program.cs file
builder.Services.AddIgniteUIBlazor(typeof(IgbBadgeModule));
```
-You will also need to link an additional CSS file to apply the styling to the [`IgbBadge`](mcp:get_api_reference?platform=blazor&component=IgbBadge) component. The following needs to be placed in the **wwwroot/index.html** file in a **Blazor Web Assembly** project or the **Pages/\_Host.cshtml** file in a **Blazor Server** project:
+You will also need to link an additional CSS file to apply the styling to the [`IgbBadge`](mcp:get_api_reference?platform=blazor&component=IgbBadge) component. The following needs to be placed in the **wwwroot/index.html** file in a **Blazor Web Assembly** project or the **Pages/_Host.cshtml** file in a **Blazor Server** project:
```razor
@@ -98,154 +124,219 @@ The simplest way to start using the [`IgbBadge`](mcp:get_api_reference?platform=
```
-To display a subtle border around the badge, you can set the [`Outlined`](mcp:get_api_reference?platform=blazor&component=IgbBadge&member=Outlined) attribute of the badge.
+## Usage
+
+Use the Blazor Badge to display a short status, category, count, or notification indicator alongside another component.
+
+The following example shows a success Badge displayed on an Avatar. Import the Badge and Avatar components from the platform-specific package, then place the Badge inside a relatively positioned wrapper.
+
+Register the Avatar and Badge modules in `Program.cs`:
+
+```csharp
+builder.Services.AddIgniteUIBlazor(typeof(IgbAvatarModule), typeof(IgbBadgeModule));
+```
+
+Add the components to your Razor markup:
```razor
-
+
+
+
+
```
-## Examples
+Use a relatively positioned wrapper to place the Badge over the Avatar:
-### Variants
+```css
+.wrapper {
+ position: relative;
+ margin-top: 15px;
+}
+```
+
+### Type
+
+The Ignite UI for Blazor Badge can carry different types of content, such as a number or an icon.
-The Ignite UI for Blazor badge supports several pre-defined stylistic variants. You can change the variant by assigning one of the supported values - `primary`(default), `info`, `success`, `warning`, or `danger` to the [`Variant`](mcp:get_api_reference?platform=blazor&component=IgbBadge&member=Variant) attribute.
+Use the [`value`](mcp:get_api_reference?platform=blazor&component=IgbBadge&member=value) property to display text or a numeric count inside the Badge:
```razor
-
+12
+```
+
+You can also project content directly. When projecting both an icon and text, wrap the text to keep the correct padding.
+
+```razor
+
+
+ Bluetooth
+
```
```razor
@using IgniteUI.Blazor.Controls
-
@code {
private const string CheckIcon = "";
- private const string CloseIcon = "";
- private const string MailIcon = "";
- private const string NotificationsIcon = "";
- private IgbIcon iconRef;
+ private IgbIcon checkIconRef;
protected override void OnAfterRender(bool firstRender)
{
- if (firstRender && iconRef != null)
+ if (firstRender && checkIconRef != null)
{
- iconRef.EnsureReady().ContinueWith(_ =>
+ checkIconRef.EnsureReady().ContinueWith(_ =>
{
- iconRef.RegisterIconFromText("check", CheckIcon, "material");
- iconRef.RegisterIconFromText("close", CloseIcon, "material");
- iconRef.RegisterIconFromText("mail", MailIcon, "material");
- iconRef.RegisterIconFromText("notifications", NotificationsIcon, "material");
+ checkIconRef.RegisterIconFromText("check", CheckIcon, "material");
});
}
}
}
```
-### Shape
+#### Icon
-The badge component supports `rounded`(default) and `square` shapes. These values can be assigned to the [`Shape`](mcp:get_api_reference?platform=blazor&component=IgbBadge&member=Shape) attribute.
+Add an icon as child content inside the Badge:
```razor
-
+
+
+
+```
+
+For custom icons, register the icon with the platform's icon service and render it as child content inside the Badge.
+
+For example, register an SVG icon before using it in the Badge:
+
+```razor
+@code {
+ private IgbIcon icon;
+
+ protected override async Task OnAfterRenderAsync(bool firstRender)
+ {
+ if (firstRender && icon != null)
+ {
+ await icon.EnsureReady();
+ await icon.RegisterIconFromTextAsync(
+ "heart-monitor",
+ "",
+ "custom");
+ }
+ }
+}
```
```razor
@using IgniteUI.Blazor.Controls
-
-
- Rounded
-
-
-
- 2
-
-
-
-
-
- Square
-
-
-
- 2
-
-
-
+
+
+ @foreach (var item in Badges)
+ {
+
+
+
+
+
+
+ @item.Label
+
+ }
+
+
+
+
+
+
+
+ on avatar
@code {
private const string CheckIcon = "";
+ private const string FavoriteBorderIcon = "";
+ private const string NotificationsIcon = "";
+ private const string StarBorderIcon = "";
+ private const string SettingsIcon = "";
+ private const string CloseIcon = "";
- private IgbIcon checkIconRef;
+ private IgbIcon iconRef;
+
+ private class BadgeItem
+ {
+ public string Icon { get; set; }
+ public StyleVariant Variant { get; set; }
+ public string Label { get; set; }
+ }
+
+ private static readonly BadgeItem[] Badges = new[]
+ {
+ new BadgeItem { Icon = "check", Variant = StyleVariant.Success, Label = "check" },
+ new BadgeItem { Icon = "favorite_border", Variant = StyleVariant.Danger, Label = "favorite" },
+ new BadgeItem { Icon = "notifications", Variant = StyleVariant.Info, Label = "notification" },
+ new BadgeItem { Icon = "star_border", Variant = StyleVariant.Warning, Label = "star" },
+ new BadgeItem { Icon = "settings", Variant = StyleVariant.Info, Label = "settings" }
+ };
protected override void OnAfterRender(bool firstRender)
{
- if (firstRender && checkIconRef != null)
+ if (firstRender && iconRef != null)
{
- checkIconRef.EnsureReady().ContinueWith(_ =>
+ iconRef.EnsureReady().ContinueWith(_ =>
{
- checkIconRef.RegisterIconFromText("check", CheckIcon, "material");
+ iconRef.RegisterIconFromText("check", CheckIcon, "material");
+ iconRef.RegisterIconFromText("favorite_border", FavoriteBorderIcon, "material");
+ iconRef.RegisterIconFromText("notifications", NotificationsIcon, "material");
+ iconRef.RegisterIconFromText("star_border", StarBorderIcon, "material");
+ iconRef.RegisterIconFromText("settings", SettingsIcon, "material");
+ iconRef.RegisterIconFromText("close", CloseIcon, "material");
});
}
}
}
```
-### Dot
+#### Dot
-The Ignite UI for Blazor badge component can also render as a minimal dot indicator for notifications by setting its `dot` attribute. Dot badges do not support content, but they can be outlined and can use any of the available dot types (e.g., primary, success, info, etc.).
+The Ignite UI for Blazor Badge can also render as a minimal dot indicator for notifications by setting its [`dot`](mcp:get_api_reference?platform=blazor&component=IgbBadge&member=dot) attribute. Dot badges do not support content, but they can be outlined and can use any of the available dot types (for example, `primary`, `success`, or `info`).
+
+Set the [`dot`](mcp:get_api_reference?platform=blazor&component=IgbBadge&member=dot) attribute to render a minimal notification indicator without content:
```razor
@@ -254,6 +345,7 @@ The Ignite UI for Blazor badge component can also render as a minimal dot indica
```razor
@using IgniteUI.Blazor.Controls
+
@@ -332,20 +424,348 @@ The Ignite UI for Blazor badge component can also render as a minimal dot indica
}
```
+### Size
+
+Control the Badge size with the `--size` CSS variable. For text badges smaller than `16px`, also adjust the font size and line height:
+
+```css
+igc-badge {
+ --size: 12px;
+
+ font-size: calc(var(--size) / 2);
+ line-height: normal;
+}
+```
+
+```razor
+@using IgniteUI.Blazor.Controls
+
+
+
+
+@code {
+ private const string FavoriteBorderIcon = "";
+ private const string CloseIcon = "";
+
+ private IgbIcon iconRef;
+ protected override void OnAfterRender(bool firstRender)
+ {
+ if (firstRender)
+ {
+ if (iconRef != null)
+ {
+ iconRef.EnsureReady().ContinueWith(_ =>
+ {
+ iconRef.RegisterIconFromText("favorite_border", FavoriteBorderIcon, "material");
+ iconRef.RegisterIconFromText("close", CloseIcon, "material");
+ });
+ }
+ }
+ }
+}
+```
+
+The border color of the outlined badge can also be customized using the `--border-color` CSS variable.
+
+### Do/Don't
+
+**When to use:** Use a Badge to communicate a short status, category, count, or notification state alongside another component. Use `dot` when the indicator does not need visible text.
+
+**When not to use:** Do not use a Badge as the primary control for an action, as a replacement for a form validation message, or when the status cannot be understood from the badge content, surrounding context, or accessible labeling.
+
+
+
+
+
+
Do
+
Don't
+
+
+
+
+
+
+
+
+
+
+
+## Properties
+
+The Blazor Badge exposes platform-specific properties for controlling its content, appearance, and indicator behavior.
+
+The Blazor Badge exposes the following properties.
+
+| name | type | default | description |
+| --- | --- | --- | --- |
+| [`dot`](mcp:get_api_reference?platform=blazor&component=IgbBadge&member=dot) | boolean | `false` | Renders the Badge as a dot indicator. |
+| [`outlined`](mcp:get_api_reference?platform=blazor&component=IgbBadge&member=outlined) | boolean | `false` | Displays an outline around the Badge. |
+| [`shape`](mcp:get_api_reference?platform=blazor&component=IgbBadge&member=shape) | BadgeShape | `rounded` | Sets the Badge shape. |
+| [`variant`](mcp:get_api_reference?platform=blazor&component=IgbBadge&member=variant) | StyleVariant | `primary` | Sets the Badge stylistic variant. |
+
## Styling
-The [`IgbBadge`](mcp:get_api_reference?platform=blazor&component=IgbBadge) component exposes a `base` CSS part that can be used to change all of its style properties.
+The Blazor Badge uses the [`IgbBadge`](mcp:get_api_reference?platform=blazor&component=IgbBadge) component's `base` CSS part and documented styling variables to customize its appearance.
+
+### Sass Theming
+
+Use the Ignite UI for Blazor theme system to style the Badge consistently with the rest of your application.
+
+### CSS Variables
+
+| variable | what it changes |
+| --- | --- |
+| `--background-color` | The badge background color. |
+| `--border-color` | The badge border color. |
+| `--border-radius` | The badge corner radius. |
+| `--elevation` | The badge shadow. |
+| `--icon-color` | The badge icon color. |
+| `--text-color` | The badge text color. |
+| `--size` | The badge size. |
+| `--dot-size` | The size of the dot-type badge. |
+
+### Style Parts
+
+| part | what it styles |
+| --- | --- |
+| `base` | The Badge root element. |
```css
igc-badge::part(base) {
- --background-color: var(--ig-error-A100);
- --border-radius: 2px;
+ --background-color: var(--ig-error-A100);
+ --border-radius: 2px;
}
```
```razor
@using IgniteUI.Blazor.Controls
+
@@ -399,14 +819,164 @@ igc-badge::part(base) {
}
```
-
+### Styling with Tailwind
+
+You can style the Badge with the custom Tailwind utility classes from `igniteui-theming`. Make sure to [set up Tailwind](/themes/tailwind) first, then import the Ignite UI utilities in your global stylesheet:
+
+```css
+@import "tailwindcss";
+@import "igniteui-theming/tailwind/utilities/material.css";
+```
+
+```razor
+
+```
+
+The exclamation mark (`!`) gives the Tailwind utility precedence over the Badge's default theme styles.
+
+```razor
+@using IgniteUI.Blazor.Controls
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@code {
+ private const string PersonIcon = "";
+ private const string CloseIcon = "";
+ private const string VolumeOffIcon = "";
+ private const string RemoveIcon = "";
+ private const string CheckIcon = "";
+ private IgbIcon iconRef;
+
+ protected override void OnAfterRender(bool firstRender)
+ {
+ if (firstRender && iconRef != null)
+ {
+ iconRef.EnsureReady().ContinueWith(_ =>
+ {
+ iconRef.RegisterIconFromText("person", PersonIcon, "material");
+ iconRef.RegisterIconFromText("close", CloseIcon, "material");
+ iconRef.RegisterIconFromText("volume_off", VolumeOffIcon, "material");
+ iconRef.RegisterIconFromText("remove", RemoveIcon, "material");
+ iconRef.RegisterIconFromText("check", CheckIcon, "material");
+ });
+ }
+ }
+}
+```
+
+## Accessibility
+
+The Blazor Badge is a non-interactive status visual that communicates a short count, state, or notification.
+
+### Keyboard Interaction
+
+The Badge does not receive focus, handle keyboard input, or expose component interaction events.
+
+| Key | Action |
+| -- | -- |
+| n/a | The Badge is not keyboard interactive. |
+
+### Screen Readers / ARIA
+
+The Badge host uses `role="status"` to expose its content as status information.
+
+- The component sets `aria-roledescription` to identify the Badge and its current `variant`.
+- Add an `aria-label` when a Badge without text, including a `dot` Badge, communicates status that is not otherwise available to assistive technology.
+- Keep the Badge content or accessible label specific to the decorated item, such as `3 unread messages` rather than only `3`.
+
+### Accessibility Compliance
+
+Infragistics documents Ignite UI for Blazor accessibility support for Section 508 and WCAG 2.1 guideline areas in the [Accessibility Compliance](../interactivity/accessibility-compliance.md) topic.
+
+| Criterion | How the component complies |
+| -- | -- |
+| [4.1.2 Name, Role, Value](https://www.w3.org/WAI/WCAG21/Understanding/name-role-value.html) | The Badge exposes the semantic `status` role. The xplat implementation also exposes a role description based on the current variant; Angular exposes an accessible label and a role description based on its type and content. |
+
+Your responsibilities:
+
+- Provide an accessible name that explains the status when the Badge has no meaningful text, especially for `dot` Badges.
+- Do not use Badge color as the only indication of status; pair it with text, an icon, or another accessible cue.
+- Keep sufficient contrast between the Badge foreground and background when overriding theme styles.
+
+## Troubleshooting
+
+Use this section to check boundaries and common decisions before treating Badge as an interactive control or the only indication of status.
+
+### Why does my custom background color not change the Badge?
+
+The selected `variant` takes precedence over the `--background-color` CSS variable. To use a custom background color, avoid setting a variant that applies its own background color.
+
+### Why is my dot Badge not displaying content?
+
+The `dot` property renders the Badge as a minimal indicator and does not support content. Use a regular Badge when you need to display text or other inline content.
+
+### Known Limitations
+
+The Blazor Badge has the following platform-independent limitations.
+
+- A dot Badge is an indicator only and cannot display text or an icon.
+- Badge styling and variant/type names differ between Angular and the other supported frameworks. Use the platform-specific examples and API links on this page rather than copying an attribute between frameworks.
+- The Badge is a visual status indicator and does not provide keyboard interaction of its own.
## API References
-- [`IgbBadge`](mcp:get_api_reference?platform=blazor&component=IgbBadge)
-- [`Styling & Themes`](../themes/overview.md)
+The Blazor Badge API reference lists the complete verified API surface for the target platform.
+[`IgbBadge`](mcp:get_api_reference?platform=blazor&component=IgbBadge)
+
+## Dependencies
+
+The Blazor Badge requires a theme stylesheet to apply its visual styling. See the framework-specific setup in **Getting Started**.
## Additional Resources
+The following resources provide additional Blazor Badge guidance and project support.
+
- [Ignite UI for Blazor **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-blazor)
- [Ignite UI for Blazor **GitHub**](https://github.com/IgniteUI/igniteui-blazor)
+
+## Related Components
+
+The Blazor Badge is commonly used with related components such as Avatar when a status indicator belongs to another visual element.
+
+- [Avatar](../layouts/avatar.md) — combine an Avatar with a Badge to show a status indicator.
+
+## FAQ
+
+ **Q: Can a Badge display both an icon and text?**
+
+ Yes. Use the Badge's content area for the text and the supported icon content for the visual indicator. Keep the combination short so it remains a compact status or category label.
+
+
+ **Q: How do I display a notification dot without content?**
+
+ Set the platform-specific `dot` property or attribute. A dot Badge intentionally renders without text or other content.
+
+
+ **Q: When should I use a dot Badge instead of a text Badge?**
+
+ Use a dot Badge when the status is communicated by presence alone. Use a text Badge when users need the status, category, or count to be understandable without relying on color or position.
+
+
+ **Q: Which package should I install for Badge?**
+
+ Use `igniteui-angular` for Angular, `igniteui-react` for React, `igniteui-webcomponents` for Web Components, and `IgniteUI.Blazor` for Blazor. Keep related Ignite UI packages on the same release version.
+
+
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/banner.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/banner.md
index 434df242f..480e1516b 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/banner.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/banner.md
@@ -1,12 +1,13 @@
---
-title: Blazor Banner | Infragistics
-_description: With Ignite UI for Blazor Banner component, developers can easily integrate a short, non-intrusive message (along with optional actions) within mobile and desktop applications.
-_keywords: Ignite UI for Blazor, UI controls, Blazor widgets, web widgets, UI widgets, Blazor, Native Blazor Components Suite, Native Blazor Controls, Native Blazor Components Library, Blazor Banner components
-_license: MIT
+title: "Blazor Banner | Infragistics"
+description: With Ignite UI for Blazor Banner component, developers can easily integrate a short, non-intrusive message (along with optional actions) within mobile and desktop applications.
+keywords: "Ignite UI for Blazor, UI controls, Blazor widgets, web widgets, UI widgets, Blazor, Native Blazor Components Suite, Native Blazor Controls, Native Blazor Components Library, Blazor Banner components"
+license: MIT
mentionedTypes: ["Banner"]
+llms:
+ description: "The Ignite UI for Blazor Banner component provides a way to easily display a prominent message to your application's users in a way that is less transient than a snackbar and less obtrusive than a dialog."
_tocName: Banner
---
-
# Blazor Banner Overview
The Ignite UI for Blazor Banner component provides a way to easily display a prominent message to your application's users in a way that is less transient than a snackbar and less obtrusive than a dialog. It can also indicate actions to take based on the context of the message.
@@ -110,13 +111,13 @@ The Ignite UI for Blazor Banner component provides a way to easily display a pro
Before using the [`IgbBanner`](mcp:get_api_reference?platform=blazor&component=IgbBanner), you need to register it as follows:
-```razor
+```csharp
// in Program.cs file
builder.Services.AddIgniteUIBlazor(typeof(IgbBannerModule));
```
-You will also need to link an additional CSS file to apply the styling to the [`IgbBanner`](mcp:get_api_reference?platform=blazor&component=IgbBanner) component. The following needs to be placed in the **wwwroot/index.html** file in a **Blazor Web Assembly** project or the **Pages/\_Host.cshtml** file in a **Blazor Server** project:
+You will also need to link an additional CSS file to apply the styling to the [`IgbBanner`](mcp:get_api_reference?platform=blazor&component=IgbBanner) component. The following needs to be placed in the **wwwroot/index.html** file in a **Blazor Web Assembly** project or the **Pages/_Host.cshtml** file in a **Blazor Server** project:
```razor
@@ -126,7 +127,7 @@ For a complete introduction to the Ignite UI for Blazor, read the [**Getting Sta
### Show Banner
-In order to display the banner component, use its [`Show`](mcp:get_api_reference?platform=blazor&component=IgbBanner&member=Show) method and call it on a button click. The banner appears relative to where the element was inserted in the page template, moving all other content. It typically shows some non-intrusive content that requires minimal user interaction to be dismissed.
+In order to display the banner component, use its [`Show`](mcp:get_api_reference?platform=blazor&component=IgbBanner&member=show) method and call it on a button click. The banner appears relative to where the element was inserted in the page template, moving all other content. It typically shows some non-intrusive content that requires minimal user interaction to be dismissed.
```razor
Show Banner
@@ -145,8 +146,8 @@ In order to display the banner component, use its [`Show`](mcp:get_api_reference
}
```
-> [!NOTE]
-> The [`IgbBanner`](mcp:get_api_reference?platform=blazor&component=IgbBanner) includes a default action button `OK`, which closes the banner.
+**Note:**
+The [`IgbBanner`](mcp:get_api_reference?platform=blazor&component=IgbBanner) includes a default action button `OK`, which closes the banner.
## Examples
@@ -154,7 +155,7 @@ The [`IgbBanner`](mcp:get_api_reference?platform=blazor&component=IgbBanner) com
### Changing the banner message
-Configuring the message displayed in the banner is easy - just change the content you are passing to the [`IgbBanner`](mcp:get_api_reference?platform=blazor&component=IgbBanner) tag. The text will show up in the specified banner area and the banner will use its default template when displaying it. Below, we will change the content of our sample banner to be a bit more descriptive:
+Configuring the message displayed in the banner is easy - just change the content you are passing to the `IgbBanner` tag. The text will show up in the specified banner area and the banner will use its default template when displaying it. Below, we will change the content of our sample banner to be a bit more descriptive:
```razor
@@ -166,8 +167,8 @@ Configuring the message displayed in the banner is easy - just change the conten
An [`IgbIcon`](mcp:get_api_reference?platform=blazor&component=IgbIcon) can be displayed in the banner by using the banner's `prefix` slot. The icon will always be positioned at the beginning of the banner message.
-> [!NOTE]
-> If several [`IgbIcon`](mcp:get_api_reference?platform=blazor&component=IgbIcon) elements are inserted, the banner will try to position all of them at the beginning. It is strongly advised to pass only one [`IgbIcon`](mcp:get_api_reference?platform=blazor&component=IgbIcon) directly to the banner.
+**Note:**
+If several [`IgbIcon`](mcp:get_api_reference?platform=blazor&component=IgbIcon) elements are inserted, the banner will try to position all of them at the beginning. It is strongly advised to pass only one [`IgbIcon`](mcp:get_api_reference?platform=blazor&component=IgbIcon) directly to the banner.
To pass an [`IgbIcon`](mcp:get_api_reference?platform=blazor&component=IgbIcon) to your banner, use the `prefix` slot:
@@ -342,7 +343,7 @@ To cancel the closing event, call the [`preventDefault`](https://developer.mozil
}
```
-```razor
+```javascript
//In JavaScript:
function handleClosing() {
const banner = document.getElementById('banner');
@@ -353,8 +354,8 @@ function handleClosing() {
}
```
-> [!NOTE]
-> If the changes above are applied, the banner will never close, as the closing event is always cancelled.
+**Note:**
+If the changes above are applied, the banner will never close, as the closing event is always cancelled.
## Advanced Example
@@ -388,7 +389,7 @@ Let's create a banner with two custom buttons - one for dismissing the notificat
> According to Google's [Material Design](https://material.io/design/components/banners.html#anatomy) guidelines, a banner should have a maximum of 2 buttons present. The [`IgbBanner`](mcp:get_api_reference?platform=blazor&component=IgbBanner) does not explicitly limit the number of elements under the `actions` slot, but it is strongly recommended to use up to 2 if you want to adhere to the material design guidelines.
-The dismiss option (**Continue Offline**) doesn't need any further logic, so it can just call the [`Hide`](mcp:get_api_reference?platform=blazor&component=IgbBanner&member=Hide) method. The confirm action (**Turn On Wifi**), however, requires some additional logic, so we have to define it in the component. Then, we will add an event listener for the `click` event. The last step is to call the `refreshBanner()` method on each change, which will toggle the banner depending on the `wifiState`.
+The dismiss option (**Continue Offline**) doesn't need any further logic, so it can just call the [`Hide`](mcp:get_api_reference?platform=blazor&component=IgbBanner&member=hide) method. The confirm action (**Turn On Wifi**), however, requires some additional logic, so we have to define it in the component. Then, we will add an event listener for the `click` event. The last step is to call the `refreshBanner()` method on each change, which will toggle the banner depending on the `wifiState`.
The navbar will have a Wifi icon and we will add an event listener for its `click` event as well. As the `refreshBanner()` method is called on each change, the icon will not only toggle the banner, but change according to the state of the connection:
@@ -743,13 +744,12 @@ igc-banner::part(content) {
## API References
-- [`IgbBanner`](mcp:get_api_reference?platform=blazor&component=IgbBanner)
-- [`IgbCard`](mcp:get_api_reference?platform=blazor&component=IgbCard)
-- [`IgbIcon`](mcp:get_api_reference?platform=blazor&component=IgbIcon)
-- [`IgbNavbar`](mcp:get_api_reference?platform=blazor&component=IgbNavbar)
-- [`IgbToast`](mcp:get_api_reference?platform=blazor&component=IgbToast)
-- [`IgbRipple`](mcp:get_api_reference?platform=blazor&component=IgbRipple)
-- [`Styling & Themes`](../themes/overview.md)
+[`IgbBanner`](mcp:get_api_reference?platform=blazor&component=IgbBanner)
+[`IgbCard`](mcp:get_api_reference?platform=blazor&component=IgbCard)
+[`IgbIcon`](mcp:get_api_reference?platform=blazor&component=IgbIcon)
+[`IgbNavbar`](mcp:get_api_reference?platform=blazor&component=IgbNavbar)
+[`IgbToast`](mcp:get_api_reference?platform=blazor&component=IgbToast)
+[`IgbRipple`](mcp:get_api_reference?platform=blazor&component=IgbRipple)
## Additional Resources
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/bar-chart.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/bar-chart.md
index 0d33b623f..c892330a7 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/bar-chart.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/bar-chart.md
@@ -1,20 +1,19 @@
---
-title: Blazor Bar Chart and Graph | Ignite UI for Blazor
-_description: Blazor Bar Chart is among the most common category chart types used to quickly compare frequency, count, total, or average of data in different categories. Try for FREE.
-_keywords: Blazor Charts, Bar Chart, Bar Graph, Horizontal Chart, Infragistics
-_license: commercial
-mentionedTypes: ["XamDataChart", "BarSeries", "StackedBarSeries", "Stacked100BarSeries", "RangeBarSeries", "Series"]
+title: "Blazor Bar Chart and Graph | Ignite UI for Blazor"
+description: "Blazor Bar Chart is among the most common category chart types used to quickly compare frequency, count, total, or average of data in different categories. Try for FREE."
+keywords: "Blazor Charts, Bar Chart, Bar Graph, Horizontal Chart, Infragistics"
+license: commercial
+mentionedTypes: ["DataChart", "BarSeries", "StackedBarSeries", "Stacked100BarSeries", "RangeBarSeries", "Series"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Blazor Bar Chart, Bar Graph, or Horizontal Bar Chart, is among the most common category chart types used to quickly compare frequency, count, total, or average of data in different categories with data encoded by horizontal bars with equal heights but different."
_tocName: Bar Chart
_premium: true
---
-
# Blazor Bar Chart
-
-The Ignite UI for Blazor Bar Chart, Bar Graph, or Horizontal Bar Chart, is among the most common category chart types used to quickly compare frequency, count, total, or average of data in different categories with data encoded by horizontal bars with equal heights but different lengths. This chart is ideal for showing variations in the value of an item over time. Data is represented using a collection of rectangles that extend from the left to right of the chart towards the values of data points. Bar Chart is very similar to [Column Chart](column-chart.md) except that Bar Chart renders with 90 degrees clockwise rotation and therefore it has horizontal orientation (left to right) while [Column Chart](column-chart.md) has vertical orientation (up and down)
+The Ignite UI for Blazor Bar Chart, Bar Graph, or Horizontal Bar Chart, is among the most common category chart types used to quickly compare frequency, count, total, or average of data in different categories with data encoded by horizontal bars with equal heights but different lengths. This chart is ideal for showing variations in the value of an item over time. Data is represented using a collection of rectangles that extend from the left to right of the chart towards the values of data points. Bar Chart is very similar to [Column Chart](column-chart.md) except that Bar Chart renders with 90 degrees clockwise rotation and therefore it has horizontal orientation (left to right) while [Column Chart](column-chart.md) has vertical orientation (up and down)
## Blazor Bar Chart Example
-
You can create Blazor Bar Chart in the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control by binding your data sources to multiple [`IgbBarSeries`](mcp:get_api_reference?platform=blazor&component=IgbBarSeries), as shown in the example below:
```razor
@@ -164,12 +163,9 @@ public class HighestGrossingMovies
}
```
-
-
## Bar Chart Recommendations
### Are Blazor Bar Charts right for your project?
-
Blazor Bar Chart includes several variants based on your data or how you want to tell the correct story with your data. These include:
- Grouped Bar Chart
@@ -178,7 +174,6 @@ Blazor Bar Chart includes several variants based on your data or how you want to
- Stacked 100 Bar Chart
### Bar Chart Use Cases
-
There are several common use cases for choosing a Bar Chart:
- You need to show trends over time or a numeric value change in a category of data.
@@ -195,7 +190,6 @@ These use cases are commonly used for the following scenarios:
- Any String Value Comparing a Numeric Value or Time-Series Value.
### Bar Chart Best Practices
-
- Start you numeric Axis at 0.
- Use a single color for the bars.
- Be sure the space separating each bar is 1/2 the width of the bar itself.
@@ -203,21 +197,16 @@ These use cases are commonly used for the following scenarios:
- Right-align category values on the Y-Axis (left side labels of chart) for readability.
### When Not to Use Bar Chart
-
- You have too much data so the Y-Axis can't fit in the space or is not legible.
- You need a detailed Time-Series analysis - consider a [Line Chart](line-chart.md) with a Time-Series for this type of data.
### Bar Chart Data Structure
-
- The data source must be an array or a list of data items.
- The data source must contain at least one data item.
- The list must contain at least one data column (string or date time).
- The list must contain at least one numeric data column.
-
-
## Blazor Bar Chart with Single Series
-
Bar Chart belongs to a group of Category Series and it is rendered using a collection of rectangles that extend from the left to right of the chart towards the values of data points. You can create this type of chart in the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control by binding your data to a [`IgbBarSeries`](mcp:get_api_reference?platform=blazor&component=IgbBarSeries), as shown in the example below:
```razor
@@ -338,8 +327,6 @@ public class OnlineShoppingSearches
}
```
-
-
## Blazor Bar Chart with Multiple Series
The Bar Chart is able to render multiple bars per category for comparison purposes. In this example, the Bar Chart is comparing box office revenue amongst popular movie franchises. You can create this type of chart in the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control by binding your data to multiple [`IgbBarSeries`](mcp:get_api_reference?platform=blazor&component=IgbBarSeries), as shown in the example below:
@@ -491,8 +478,6 @@ public class HighestGrossingMovies
}
```
-
-
## Blazor Bar Chart Styling
The Bar Chart can be styled, and allows for the ability to use [annotation values](../features/chart-annotations.md) for each bar, for example, to demonstrate percent comparisons. You can create this type of chart in the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control by binding your data to a [`IgbBarSeries`](mcp:get_api_reference?platform=blazor&component=IgbBarSeries) and adding a [`IgbCalloutLayer`](mcp:get_api_reference?platform=blazor&component=IgbCalloutLayer), as shown in the example below:
@@ -632,8 +617,6 @@ public class OnlineShoppingSearches
}
```
-
-
## Blazor Stacked Bar Chart
A Stacked Bar Chart, or Stacked Bar Graph, is a type of category chart that is used to compare the composition of different categories of data by displaying different sized fragments in the horizontal bars of the chart. The length of each bar, or stack of fragments, is proportionate to its overall value.
@@ -803,8 +786,6 @@ public class EnergyRenewableConsumption
}
```
-
-
## Blazor Stacked 100% Bar Chart
The Blazor Stacked 100% Bar Chart is identical to the Blazor Stacked Bar Chart in all aspects except in their treatment of the values on X-Axis (bottom labels of the chart). Instead of presenting a direct representation of the data, the stacked 100 bar chart presents the data in terms of percent of the sum of all values in a data point.
@@ -971,8 +952,6 @@ public class EnergyRenewableConsumption
}
```
-
-
## Blazor Range Bar Chart
The Blazor Range Bar Chart belongs to a group of range charts and is rendered using horizontal rectangles that can appear in the middle of the plot area of the chart, rather than stretching from the left like the traditional [Category Bar Chart](bar-chart.md#blazor-bar-chart-example). This type of series emphasizes the amount of change between low values and high values in the same data point over a period of time or compares multiple items.
@@ -981,7 +960,7 @@ Range values are represented on the X-Axis and categories are displayed on the Y
The Range Bar Chart is identical to the [Range Column Chart](column-chart.md#blazor-range-column-chart) in all aspects except that the ranges are represented as a set of horizontal bars rather than vertical columns.
-You can create this type of chart in the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control by binding your data to a `RangeBarSeries`. The series reads low and high values from `LowMemberPath` and `HighMemberPath`, and it typically uses a [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) with a [`IgbCategoryYAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryYAxis), as shown in the example below:
+You can create this type of chart in the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control by binding your data to a `IgbRangeBarSeries`. The series reads low and high values from `LowMemberPath` and `HighMemberPath`, and it typically uses a `NumericXAxis` with a `CategoryYAxis`, as shown in the example below:
```razor
@using IgniteUI.Blazor.Controls
@@ -1123,8 +1102,6 @@ public class TemperatureRangeData
}
```
-
-
## Additional Resources
You can find more information about related chart types in these topics:
@@ -1136,13 +1113,10 @@ You can find more information about related chart types in these topics:
- [Stacked Chart](stacked-chart.md)
## API References
-
-The following table lists API members mentioned in the above sections:
-
-- [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart)
-- [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbBarSeries&member=DataSource)
-- [`IgbBarSeries`](mcp:get_api_reference?platform=blazor&component=IgbBarSeries)
-- [`IgbCalloutLayer`](mcp:get_api_reference?platform=blazor&component=IgbCalloutLayer)
-- [`IgbStackedBarSeries`](mcp:get_api_reference?platform=blazor&component=IgbStackedBarSeries)
-- [`IgbStacked100BarSeries`](mcp:get_api_reference?platform=blazor&component=IgbStacked100BarSeries)
-- `RangeBarSeries`
+[`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart)
+[`IgbBarSeries`](mcp:get_api_reference?platform=blazor&component=IgbBarSeries)
+[`IgbCalloutLayer`](mcp:get_api_reference?platform=blazor&component=IgbCalloutLayer)
+[`IgbStackedBarSeries`](mcp:get_api_reference?platform=blazor&component=IgbStackedBarSeries)
+[`IgbStacked100BarSeries`](mcp:get_api_reference?platform=blazor&component=IgbStacked100BarSeries)
+`IgbRangeBarSeries`
+[`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbBarSeries&member=dataSource)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/bubble-chart.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/bubble-chart.md
index 3455a443d..88c3a2390 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/bubble-chart.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/bubble-chart.md
@@ -1,20 +1,19 @@
---
title: Blazor Bubble Chart | Data Visualization | Infragistics
-_description: Infragistics' Blazor Bubble Chart
-_keywords: Blazor Charts, Bubble Chart, Infragistics
-_license: commercial
-mentionedTypes: ["Series", "BubbleSeries", "ScatterSeries", "MarkerType"]
+description: Infragistics' Blazor Bubble Chart
+keywords: Blazor Charts, Bubble Chart, Infragistics
+license: commercial
+
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Blazor Bubble Chart is a type of Scatter Chart that show markers with variable scaling to represent the relationship among items in several distinct series of data or to plot data items using x and y coordinates."
_tocName: Bubble Chart
_premium: true
---
-
# Blazor Bubble Chart
-
The Ignite UI for Blazor Bubble Chart is a type of [Scatter Chart](scatter-chart.md) that show markers with variable scaling to represent the relationship among items in several distinct series of data or to plot data items using x and y coordinates. These coordinates of the data point are determined by two numeric data columns. The Bubble Chart draws attention to uneven intervals or clusters of data. This chart is often used to plot scientific data, and can highlight the deviation of collected data from predicted results. The Bubble Chart has many of the characteristics of the [Scatter Marker Chart](scatter-chart.md#blazor-scatter-marker-chart) but with the option to have various radius scale sizes.
## Blazor Bubble Chart Example
-
You can create Ignite UI for Blazor Bubble Chart in [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control using the [`IgbBubbleSeries`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries) and two numeric axes, as shown in the example below.
```razor
@@ -250,11 +249,8 @@ public class CountryStatsEurope
}
```
-
-
## Blazor Bubble Chart with Single Series
-
-You can bind your data to [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=DataSource) property of [`IgbBubbleSeries`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries) and map data columns using its [`XMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=XMemberPath), [`YMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=YMemberPath), [`RadiusMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=RadiusMemberPath) properties, as shown in the example below:
+You can bind your data to [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=dataSource) property of [`IgbBubbleSeries`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries) and map data columns using its [`XMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=xMemberPath), [`YMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=yMemberPath), [`RadiusMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=radiusMemberPath) properties, as shown in the example below:
```razor
@using IgniteUI.Blazor.Controls
@@ -420,11 +416,8 @@ public class WorldStats
}
```
-
-
## Blazor Bubble Chart with Multiple Series
-
-In Blazor Bubble Chart, binding multiple data sources works by setting each new data source to [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=DataSource) property of a additional [`IgbBubbleSeries`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries), as shown in the example below:
+In Blazor Bubble Chart, binding multiple data sources works by setting each new data source to [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=dataSource) property of a additional [`IgbBubbleSeries`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries), as shown in the example below:
```razor
@using IgniteUI.Blazor.Controls
@@ -659,11 +652,8 @@ public class CountryStatsEurope
}
```
-
-
## Blazor Bubble Chart Styling
-
-In Blazor Bubble Chart, you can customize shape of bubble markers using [`MarkerType`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=MarkerType) property, their size with [`RadiusScale`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=RadiusScale) property, and their appearance using [`MarkerBrush`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=MarkerBrush), [`MarkerOutline`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=MarkerOutline), [`MarkerThickness`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=MarkerThickness) properties. In addition, you can also color bubble markers based on a data column using [`FillMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=FillMemberPath) and [`FillScale`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=FillScale) properties. In this example, usage of above properties is demonstrated.
+In Blazor Bubble Chart, you can customize shape of bubble markers using [`MarkerType`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=markerType) property, their size with [`RadiusScale`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=radiusScale) property, and their appearance using [`MarkerBrush`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=markerBrush), [`MarkerOutline`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=markerOutline), [`MarkerThickness`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=markerThickness) properties. In addition, you can also color bubble markers based on a data column using [`FillMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=fillMemberPath) and [`FillScale`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=fillScale) properties. In this example, usage of above properties is demonstrated.
```razor
@using IgniteUI.Blazor.Controls
@@ -834,28 +824,12 @@ public class WorldStats
}
```
-
-
## Additional Resources
- [Scatter Chart](scatter-chart.md)
- [Shape Chart](shape-chart.md)
## API References
-
-The following table lists API members mentioned in the above sections:
-
-- [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart)
-- [`IgbBubbleSeries`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries)
-- [`IgbScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbScatterSeries)
-- [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=DataSource)
-- [`FillMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=FillMemberPath)
-- [`FillScale`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=FillScale)
-- [`MarkerType`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=MarkerType)
-- [`MarkerBrush`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=MarkerBrush)
-- [`MarkerOutline`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=MarkerOutline)
-- [`MarkerThickness`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=MarkerThickness)
-- [`RadiusScale`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=RadiusScale)
-- [`RadiusMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=RadiusMemberPath)
-- [`XMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=XMemberPath)
-- [`YMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=YMemberPath)
+[`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart)
+[`IgbBubbleSeries`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries)
+[`IgbScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbScatterSeries)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/bullet-graph.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/bullet-graph.md
index c7c264c8c..b273392f2 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/bullet-graph.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/bullet-graph.md
@@ -1,14 +1,15 @@
---
-title: Blazor Bullet Graph | Data Visualization Tools | Infragistics
-_description: Infragistics' Blazor bullet graph control allows you to create dashboards displaying ranges or comparing multiple measurements. View our data visualization tools!
-_keywords: Blazor Bullet Graph, animation, labels, needle, scales, ranges, tick marks, Infragistics
-_license: commercial
-mentionedTypes: ["XamBulletGraph"]
+title: "Blazor Bullet Graph | Data Visualization Tools | Infragistics"
+description: Infragistics' Blazor bullet graph control allows you to create dashboards displaying ranges or comparing multiple measurements. View our data visualization tools!
+keywords: "Blazor Bullet Graph, animation, labels, needle, scales, ranges, tick marks, Infragistics"
+license: commercial
+mentionedTypes: ["BulletGraph"]
namespace: Infragistics.Controls.Gauges
+llms:
+ description: "The Blazor bullet graph component allows for a linear and concise view of measures compared against a scale."
_tocName: Bullet Graph
_premium: true
---
-
# Blazor Bullet Graph Overview
The Blazor bullet graph component allows for a linear and concise view of measures compared against a scale.
@@ -379,23 +380,19 @@ The following sample demonstrates how setting multiple properties on the same [`
}
```
-
-
-The bullet graph supports one scale, one set of tick marks and one set of labels. The bullet graph component also has built-in support for animated transitions. This animation is easily customizable by setting the [`TransitionDuration`](mcp:get_api_reference?platform=blazor&component=IgbBulletGraph&member=TransitionDuration) property.
+The bullet graph supports one scale, one set of tick marks and one set of labels. The bullet graph component also has built-in support for animated transitions. This animation is easily customizable by setting the [`TransitionDuration`](mcp:get_api_reference?platform=blazor&component=IgbBulletGraph&member=transitionDuration) property.
The features of the bullet graph include configurable orientation and direction, configurable visual elements such as the needle, and more.
## Component Modules
The [`IgbBulletGraph`](mcp:get_api_reference?platform=blazor&component=IgbBulletGraph) requires the following modules:
-```razor
+```csharp
// in Program.cs file
builder.Services.AddIgniteUIBlazor(typeof(IgbBulletGraphModule));
```
-
-
## Usage
The following code walks through creating a bullet graph component, and configuring a performance bar, comparative measure marker, and three comparative ranges on the scale.
@@ -416,10 +413,7 @@ MaximumValue="55" TargetValue="43">
```
-
-
## Comparative Measures
-
The bullet graph can show two measures: performance value and target value.
Performance value is the primary measure displayed by the component and it is visualized as a bar that stretches along the length of the whole graph. The target value is a measure which the performance value compares against. It is displayed as a small block that runs perpendicular to the orientation of the performance bar.
@@ -484,7 +478,7 @@ Performance value is the primary measure displayed by the component and it is vi
## Highlight Value
-The bullet graph's performance value can be further modified to show progress represented as a highlighted value. This will make the [`Value`](mcp:get_api_reference?platform=blazor&component=IgbBulletGraph&member=Value) appear with a lower opacity. A good example is if [`Value`](mcp:get_api_reference?platform=blazor&component=IgbBulletGraph&member=Value) is 50 and [`HighlightValue`](mcp:get_api_reference?platform=blazor&component=IgbBulletGraph&member=HighlightValue) is set to 25. This would represent a performance of 50% regardless of what the value of [`TargetValue`](mcp:get_api_reference?platform=blazor&component=IgbBulletGraph&member=TargetValue) is set to. To enable this first set [`HighlightValueDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbBulletGraph&member=HighlightValueDisplayMode) to Overlay and then apply a [`HighlightValue`](mcp:get_api_reference?platform=blazor&component=IgbBulletGraph&member=HighlightValue) to something lower than [`Value`](mcp:get_api_reference?platform=blazor&component=IgbBulletGraph&member=Value).
+The bullet graph's performance value can be further modified to show progress represented as a highlighted value. This will make the [`Value`](mcp:get_api_reference?platform=blazor&component=IgbBulletGraph&member=value) appear with a lower opacity. A good example is if [`Value`](mcp:get_api_reference?platform=blazor&component=IgbBulletGraph&member=value) is 50 and [`HighlightValue`](mcp:get_api_reference?platform=blazor&component=IgbBulletGraph&member=highlightValue) is set to 25. This would represent a performance of 50% regardless of what the value of [`TargetValue`](mcp:get_api_reference?platform=blazor&component=IgbBulletGraph&member=targetValue) is set to. To enable this first set [`HighlightValueDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbBulletGraph&member=highlightValueDisplayMode) to Overlay and then apply a [`HighlightValue`](mcp:get_api_reference?platform=blazor&component=IgbBulletGraph&member=highlightValue) to something lower than [`Value`](mcp:get_api_reference?platform=blazor&component=IgbBulletGraph&member=value).
```razor
+ OuterStartExtent="0.9" OuterEndExtent="0.9">
```
## API References
-
-The following is a list of API members mentioned in the above sections:
-
-- [`IgbBulletGraph`](mcp:get_api_reference?platform=blazor&component=IgbBulletGraph)
-- [`IgbLinearGraphRange`](mcp:get_api_reference?platform=blazor&component=IgbLinearGraphRange)
-
+[`IgbBulletGraph`](mcp:get_api_reference?platform=blazor&component=IgbBulletGraph)
+[`IgbLinearGraphRange`](mcp:get_api_reference?platform=blazor&component=IgbLinearGraphRange)
## Additional Resources
You can find more information about other types of gauges in these topics:
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/button-group.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/button-group.md
index 4b529e5d2..da092858a 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/button-group.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/button-group.md
@@ -1,36 +1,39 @@
---
-title: Blazor Button Group Component | Ignite UI for Blazor
-_description: Get started with the Blazor Button Group Component - series of Blazor Toggle Buttons, exposing features such as layout and selection.
-_keywords: Blazor, UI controls, web widgets, UI widgets, Blazor Button Group Components, Infragistics
+title: "Button Group"
+description: The Ignite UI for Blazor Button Group component organizes related toggle buttons and supports horizontal or vertical alignment, single or multiple selection, and toggling.
+keywords: "Blazor, UI controls, web widgets, UI widgets, Blazor Button Group Components, Infragistics"
mentionedTypes: ["ToggleButton", "ButtonGroup"]
-_license: MIT
+relatedComponents: [ToggleButton]
+license: MIT
+last_updated: "2026-07-28"
+llms:
+ description: "The Ignite UI for Blazor Button Group organizes related toggle buttons into a group with horizontal or vertical alignment, single or multiple selection, and toggling."
_tocName: Button Group
---
-
-# Blazor Button Group Overview
+# Button Group Component
The Blazor Button Group component is used to organize [`IgbToggleButton`](mcp:get_api_reference?platform=blazor&component=IgbToggleButton)'s into styled button groups with horizontal/vertical alignment, single/multiple selection and toggling.
-## Blazor Button Example
+## Live Demo
```razor
@using IgniteUI.Blazor.Controls
-
-
-
-
- Device
- Cloud
-
+
+
+
+ Device
+ Cloud
+
-
- Trip around the world
-
- @foreach (var photo in Photos)
- {
-
- }
+
+
Trip around the world
+
+ @foreach (var photo in Photos)
+ {
+
+ }
+
@@ -59,27 +62,62 @@ The Blazor Button Group component is used to organize [`IgbToggleButton`](mcp:ge
}
```
-## Usage
+## Anatomy
-Before using the [`IgbButtonGroup`](mcp:get_api_reference?platform=blazor&component=IgbButtonGroup), you need to register it as follows:
+The Blazor Button Group organizes related Toggle Buttons into a single group with a shared container and individual button items.
-```razor
+**Button Group anatomy:** The Button Group component organizes related Toggle Buttons within a shared container, allowing users to make single or multiple selections.
+
+
+
+1. Container: Wraps the button's contents.
+2. Icon: Adds context to the button. Could be left, right, left and right or only icon.
+3. Label: The textual content that describes the button’s action to the user.
+
+The Blazor Button Group contains Toggle Buttons, and each button can contain an icon and a label.
+
+```text
+Button Group
+└── Toggle Button
+ ├── Icon
+ └── Label
+```
+
+## Getting Started
+
+To use the Blazor Button Group, follow the [Ignite UI for Blazor Getting Started](../general-getting-started.md) topic for the basic project setup, then register the component for your target platform.
+
+For Blazor using the **IgniteUI.Blazor** package, register the Button Group module as follows:
+
+```csharp
// in Program.cs file
builder.Services.AddIgniteUIBlazor(typeof(IgbButtonGroupModule));
```
-You will also need to link an additional CSS file to apply the styling to the [`IgbButtonGroup`](mcp:get_api_reference?platform=blazor&component=IgbButtonGroup) component. The following needs to be placed in the **wwwroot/index.html** file in a **Blazor Web Assembly** project or the **Pages/\_Host.cshtml** file in a **Blazor Server** project:
+Then link the additional CSS file in the **wwwroot/index.html** file for a **Blazor WebAssembly** project or in the **Pages/_Host.cshtml** file for a **Blazor Server** project:
```razor
```
-For a complete introduction to the Ignite UI for Blazor, read the [**Getting Started**](../general-getting-started.md) topic.
+The simplest way to start using the [`IgbButtonGroup`](mcp:get_api_reference?platform=blazor&component=IgbButtonGroup) is as follows:
+
+```razor
+
+```
-Now that you have the Ignite UI for Blazor Button Group imported, you can start with a basic configuration of the [`IgbButtonGroup`](mcp:get_api_reference?platform=blazor&component=IgbButtonGroup) and its buttons.
+## Usage
-Use the [`IgbButtonGroup`](mcp:get_api_reference?platform=blazor&component=IgbButtonGroup) selector to wrap your [`IgbToggleButton`](mcp:get_api_reference?platform=blazor&component=IgbToggleButton)s and display them into a button group. If you want a button to be selected by default, use the [`Selected`](mcp:get_api_reference?platform=blazor&component=IgbToggleButton&member=Selected) attribute:
+Use the [`IgbButtonGroup`](mcp:get_api_reference?platform=blazor&component=IgbButtonGroup) to wrap your [`IgbToggleButton`](mcp:get_api_reference?platform=blazor&component=IgbToggleButton) components. To select a button by default, use the [`Selected`](mcp:get_api_reference?platform=blazor&component=IgbToggleButton&member=selected) attribute:
```razor
@@ -102,21 +140,17 @@ Use the [`IgbButtonGroup`](mcp:get_api_reference?platform=blazor&component=IgbBu
```
-## Examples
-
### Alignment
-Use the [`Alignment`](mcp:get_api_reference?platform=blazor&component=IgbButtonGroup&member=Alignment) property to set the orientation of the buttons in the button group.
+The Button Group supports horizontal and vertical layouts. Use the [`Alignment`](mcp:get_api_reference?platform=blazor&component=IgbButtonGroup&member=alignment) property to set the orientation of the buttons in the group.
```razor
@using IgniteUI.Blazor.Controls
-
-
-
+
@foreach (var alignment in Alignments)
{
-
+
@(alignment == ContentOrientation.Horizontal ? "Horizontal" : "Vertical")
@foreach (var city in Cities)
@@ -139,8 +173,9 @@ Use the [`Alignment`](mcp:get_api_reference?platform=blazor&component=IgbButtonG
```
### Selection
+In order to configure the Ignite UI for Blazor Button Group selection, use its platform-specific selection property.
-In order to configure the Ignite UI for Blazor [`IgbButtonGroup`](mcp:get_api_reference?platform=blazor&component=IgbButtonGroup) selection, you could use its [`Selection`](mcp:get_api_reference?platform=blazor&component=IgbButtonGroup&member=Selection) property. This property accepts the following three modes:
+For Blazor, use the [`selection`](mcp:get_api_reference?platform=blazor&component=IgbButtonGroup&member=selection) property. The available modes are:
- **single** - default selection mode of the button group. A single button can be selected/deselected by the user.
- **single-required** - mimics a radio group behavior. Only one button can be selected and once initial selection is made, deselection is not possible through user interaction.
@@ -151,62 +186,24 @@ The sample below demonstrates the exposed [`IgbButtonGroup`](mcp:get_api_referen
```razor
@using IgniteUI.Blazor.Controls
-
-
-
-
-
@@ -234,7 +231,7 @@ The sample below demonstrates the exposed [`IgbButtonGroup`](mcp:get_api_referen
}
```
-A [`IgbToggleButton`](mcp:get_api_reference?platform=blazor&component=IgbToggleButton) could be marked as selected via its [`Selected`](mcp:get_api_reference?platform=blazor&component=IgbToggleButton&member=Selected) attribute or through the [`IgbButtonGroup`](mcp:get_api_reference?platform=blazor&component=IgbButtonGroup) [`SelectedItems`](mcp:get_api_reference?platform=blazor&component=IgbButtonGroup&member=SelectedItems) attribute:
+A [`IgbToggleButton`](mcp:get_api_reference?platform=blazor&component=IgbToggleButton) could be marked as selected via its [`Selected`](mcp:get_api_reference?platform=blazor&component=IgbToggleButton&member=selected) attribute or through the [`IgbButtonGroup`](mcp:get_api_reference?platform=blazor&component=IgbButtonGroup) [`SelectedItems`](mcp:get_api_reference?platform=blazor&component=IgbButtonGroup&member=selectedItems) attribute:
```razor
@@ -253,47 +250,393 @@ A [`IgbToggleButton`](mcp:get_api_reference?platform=blazor&component=IgbToggleB
```
-> [!Note]
-> Setting [`IgbToggleButton`](mcp:get_api_reference?platform=blazor&component=IgbToggleButton) [`Value`](mcp:get_api_reference?platform=blazor&component=IgbToggleButton&member=Value) attribute is mandatory for using the [`SelectedItems`](mcp:get_api_reference?platform=blazor&component=IgbButtonGroup&member=SelectedItems) property of the [`IgbButtonGroup`](mcp:get_api_reference?platform=blazor&component=IgbButtonGroup).
+**Note:**
-### Size
+Setting the [`IgbToggleButton`](mcp:get_api_reference?platform=blazor&component=IgbToggleButton) [`Value`](mcp:get_api_reference?platform=blazor&component=IgbToggleButton&member=value) attribute is mandatory for using the [`SelectedItems`](mcp:get_api_reference?platform=blazor&component=IgbButtonGroup&member=selectedItems) property of the [`IgbButtonGroup`](mcp:get_api_reference?platform=blazor&component=IgbButtonGroup).
-The `--ig-size` CSS custom property can be used to control the size of the button group.
+### States
+
+Each button in the group supports enabled and disabled variants, which can also be selected or not selected. Use the state behavior provided by the contained [`IgbToggleButton`](mcp:get_api_reference?platform=blazor&component=IgbToggleButton) components.
```razor
@using IgniteUI.Blazor.Controls
-
+
- @(char.ToUpperInvariant(size[0]) + size.Substring(1))
-
- @foreach (var city in Cities)
- {
-
- @city
+ new StateRow("Selected / Off", false),
+ new StateRow("Selected / On", true)
+ };
+}
+```
+
+### Interaction States
+
+The enabled buttons in the group support idle, hover, and focused interaction states. Use the state behavior provided by the contained [`IgbToggleButton`](mcp:get_api_reference?platform=blazor&component=IgbToggleButton) components.
+
+```razor
+@using IgniteUI.Blazor.Controls
+
+
+
+
+ @foreach (var state in States)
+ {
+ @(char.ToUpperInvariant(state[0]) + state.Substring(1))
+ }
+
+ @foreach (var row in Rows)
+ {
+
+ @row.Label
+ @foreach (var state in States)
+ {
+
+
+@code {
+ private IgbIcon iconRef;
+
+ protected override void OnAfterRender(bool firstRender)
+ {
+ if (firstRender && iconRef != null)
+ {
+ iconRef.EnsureReady().ContinueWith(_ =>
+ {
+ iconRef.RegisterIconFromText("border_top", "", "material");
+ iconRef.RegisterIconFromText("border_right", "", "material");
+ iconRef.RegisterIconFromText("border_bottom", "", "material");
+ iconRef.RegisterIconFromText("border_left", "", "material");
+ });
+ }
+ }
+}
+```
+
+### Size
+The `--ig-size` CSS custom property can be used to control the size of the button group.
+
+```razor
+
+```
+
+```razor
+@using IgniteUI.Blazor.Controls
+
+
+
+ Small
+
+ Sofia
+ London
+ New York
+
+ Medium
+
+ Sofia
+ London
+ New York
+
+ Large
+
+ Sofia
+ London
+ New York
+
+
+
+
+@code {
+}
+```
+
+### Do/Don't
+
+**When to use:** Use a Button Group to organize related toggle actions where users may select one or more options.
+
+**When not to use:** Do not use a Button Group for unrelated actions or for a single toggle action; use a standalone [`IgbToggleButton`](mcp:get_api_reference?platform=blazor&component=IgbToggleButton) instead.
+
+
+
+
+
+
Do
+
Don't
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Properties
+
+The Blazor Button Group exposes the following properties.
+
+| Name | Type | Default | Description |
+| --- | --- | --- | --- |
+| [`alignment`](mcp:get_api_reference?platform=blazor&component=IgbButtonGroup&member=alignment) | `ButtonGroupAlignment` | `horizontal` | Sets the orientation of the buttons in the group. |
+| [`selection`](mcp:get_api_reference?platform=blazor&component=IgbButtonGroup&member=selection) | `ButtonGroupSelection` | `single` | Sets the selection mode for the buttons in the group. |
+| [`selectedItems`](mcp:get_api_reference?platform=blazor&component=IgbButtonGroup&member=selectedItems) | `string[]` | `[]` | Gets or sets the values of the selected buttons. |
+
## Styling
-The [`IgbButtonGroup`](mcp:get_api_reference?platform=blazor&component=IgbButtonGroup) component exposes `group` CSS part that allows us to style the button group container.
-Also, the [`IgbToggleButton`](mcp:get_api_reference?platform=blazor&component=IgbToggleButton)s provide `toggle` CSS part that could be used to style the button element.
+The Blazor Button Group uses CSS parts to style the group container and the individual Toggle Buttons. Use the `group` part on the Button Group and the `toggle` part on each Toggle Button to customize their appearance.
+
+### Sass Theming
+
+Use the Ignite UI for Blazor theme system to style the Button Group consistently with the rest of your application.
+
+Import the theming functions before creating a custom Button Group theme:
+
+```scss
+@use "igniteui-theming" as *;
+```
+
+Create a theme with `button-group-theme` and include it in the global stylesheet. The `$item-background` parameter is used as the base for the related interaction-state colors. Override additional parameters when you need more control over the Button Group appearance:
+
+```scss
+$custom-button-group: button-group-theme(
+ $item-background: #57a5cd,
+);
+
+igc-button-group {
+ @include button-group($custom-button-group);
+}
+```
+
+The same theme applies to Web Components directly and to the underlying `igc-button-group` element rendered by the React and Blazor wrappers.
+
+### CSS Variables
+
+Use the following CSS variables to customize the Button Group item colors and interaction states. Set them on the Button Group element to apply the styles to its contained Toggle Buttons:
+
+| Primary property | Dependent property | Description |
+| --- | --- | --- |
+| `$item-background` | `$item-hover-background` | Hover background for items. |
+| | `$item-selected-background` | Selected item background. |
+| | `$item-focused-background` | Focused item background. |
+| | `$disabled-background-color` | Disabled item background. |
+| | `$item-border-color` | Default item border color. |
+| | `$item-text-color` | Default item text color. |
+| | `$idle-shadow-color` | Idle item shadow color. |
+| `$item-hover-background` | `$item-selected-hover-background` | Selected item hover background. |
+| | `$item-focused-hover-background` | Focused hover background. |
+| | `$item-hover-text-color` | Hovered item text color. |
+| | `$item-hover-icon-color` | Hovered item icon color. |
+| `$item-selected-background` | `$item-selected-focus-background` | Selected item focus background. |
+| | `$disabled-selected-background` | Disabled selected background. |
+| | `$item-selected-text-color` | Selected item text color. |
+| | `$item-selected-icon-color` | Selected item icon color. |
+| | `$item-selected-hover-text-color` | Selected hovered item text color. |
+| | `$item-selected-hover-icon-color` | Selected hovered item icon color. |
+| `$item-border-color` | `$item-hover-border-color` | Hovered item border color. |
+| | `$item-focused-border-color` | Focused item border color. |
+| | `$item-selected-border-color` | Selected item border color. |
+| | `$item-selected-hover-border-color` | Selected hovered item border color. |
+| | `$item-disabled-border` | Disabled item border color. |
+| | `$disabled-selected-border-color` | Disabled selected border color. |
+
+### Style Parts
+
+Use the following CSS parts to target the Button Group and its contained Toggle Buttons:
+
+| Part | Component | What it styles |
+| --- | --- | --- |
+| `group` | [`IgbButtonGroup`](mcp:get_api_reference?platform=blazor&component=IgbButtonGroup) | The Button Group container. |
+| `toggle` | [`IgbToggleButton`](mcp:get_api_reference?platform=blazor&component=IgbToggleButton) | An individual Toggle Button. |
+
+### Custom Styling
+
+The following example changes the group background and padding, and changes the text color of the contained Toggle Buttons:
+
+| Selector | Declaration | Effect |
+| --- | --- | --- |
+| `igc-button-group::part(group)` | `background-color`, `padding` | Changes the Button Group container background and spacing. |
+| `igc-toggle-button::part(toggle)` | `color` | Changes the text color of an individual Toggle Button. |
```css
igc-button-group::part(group) {
@@ -309,9 +652,7 @@ igc-toggle-button::part(toggle) {
```razor
@using IgniteUI.Blazor.Controls
-
-
-
+
@foreach (var alignmentOption in Layouts)
{
@@ -328,15 +669,131 @@ igc-toggle-button::part(toggle) {
}
```
-## API Reference
+### Styling with Tailwind
+
+You can style the Blazor Button Group with the custom Tailwind utility classes from `igniteui-theming`. Make sure to [set up Tailwind](/themes/tailwind) first, then import the Ignite UI utilities in your global stylesheet:
+
+```css
+@import "tailwindcss";
+@import "igniteui-theming/tailwind/utilities/material.css";
+```
+
+```razor
+
+```
+
+The exclamation mark (`!`) gives the Tailwind utility precedence over the Button Group's default theme styles.
+
+```razor
+@using IgniteUI.Blazor.Controls
+
+
+
+@code {
+ private static readonly string[] Views = { "Day", "Week", "Month" };
+}
+```
+
+## Accessibility
+
+The Blazor Button Group organizes related Toggle Buttons while exposing each button's selected and disabled state.
+
+### Keyboard Interaction
+
+The Button Group delegates keyboard interaction to its contained Toggle Buttons. Each Toggle Button renders a native button, so standard button keyboard behavior activates the focused item and updates its selection according to the configured selection mode.
-- [`IgbButtonGroup`](mcp:get_api_reference?platform=blazor&component=IgbButtonGroup)
-- [`IgbToggleButton`](mcp:get_api_reference?platform=blazor&component=IgbToggleButton)
-- [`IgbRipple`](mcp:get_api_reference?platform=blazor&component=IgbRipple)
-- [`IgbIcon`](mcp:get_api_reference?platform=blazor&component=IgbIcon)
-- [`Styling & Themes`](../themes/overview.md)
+| Key | Action |
+| --- | --- |
+| Tab / Shift+Tab | Moves focus to the next or previous enabled Toggle Button in the group. |
+| Enter / Space | Activates the focused Toggle Button and selects or deselects it according to the configured selection mode. |
+
+When the Button Group is disabled, it disables its contained Toggle Buttons so they are not keyboard interactive.
+
+### Screen Readers / ARIA
+
+The Button Group exposes a group relationship and each Toggle Button exposes its state through native button semantics.
+
+- The group container uses `role="group"` and reflects the group disabled state through `aria-disabled`.
+- Each Toggle Button renders a native `button` with `aria-pressed` for selection state and `aria-disabled` for disabled state.
+- The group emits `igcSelect` and `igcDeselect` after user interaction changes a Toggle Button selection. The event detail is the Toggle Button `value`.
+- Provide visible text or an `aria-label` for every Toggle Button, especially for icon-only controls.
+
+### Accessibility Compliance
+
+Infragistics documents Ignite UI for Blazor accessibility support for Section 508 and WCAG 2.1 guideline areas in the [Accessibility Compliance](../interactivity/accessibility-compliance.md) topic.
+
+| Criterion | How the component complies |
+| -- | -- |
+| [2.1.1 Keyboard](https://www.w3.org/WAI/WCAG21/Understanding/keyboard) | Each Toggle Button uses a native button, so the group selection behavior is available through standard button keyboard activation. |
+| [4.1.2 Name, Role, Value](https://www.w3.org/WAI/WCAG21/Understanding/name-role-value) | The group exposes `role="group"`. Toggle Buttons expose native button semantics and update `aria-pressed` when selection changes; xplat Toggle Buttons also expose `aria-disabled`. |
+
+Your responsibilities:
+
+- Give each Toggle Button a clear visible label or accessible name, especially when it contains only an icon.
+- Keep the group selection mode aligned with the control purpose, so users can understand whether one or multiple options may be selected.
+- Preserve the logical button order and sufficient color contrast when customizing the group or its selected state.
+
+## Troubleshooting
+
+Use this section to check boundaries and common decisions before treating Button Group as a single toggle, form field, or action group.
+
+### Why does selectedItems not select a button?
+
+Ensure every Toggle Button has a unique `value` attribute. The `selectedItems` property depends on those values.
+
+### Known Limitations
+
+The Blazor Button Group coordinates Toggle Buttons but does not replace their individual labels or accessible names.
+
+- Selection behavior depends on the configured `selection` mode.
+- The `selectedItems` property depends on unique `value` attributes on the contained Toggle Buttons.
+- The Button Group does not provide labels or icons for its buttons; define the content of each Toggle Button separately.
+
+## API References
+
+The Blazor Button Group API reference provides the complete API surface for the component and its related button functionality.
+
+[`IgbButtonGroup`](mcp:get_api_reference?platform=blazor&component=IgbButtonGroup)
+[`IgbToggleButton`](mcp:get_api_reference?platform=blazor&component=IgbToggleButton)
+[`IgbRipple`](mcp:get_api_reference?platform=blazor&component=IgbRipple)
+[`IgbIcon`](mcp:get_api_reference?platform=blazor&component=IgbIcon)
+
+## Dependencies
+
+The Blazor Button Group requires the Blazor package and its theme stylesheet. The examples also use the [`IgbToggleButton`](mcp:get_api_reference?platform=blazor&component=IgbToggleButton), [`IgbIcon`](mcp:get_api_reference?platform=blazor&component=IgbIcon), and [`IgbRipple`](mcp:get_api_reference?platform=blazor&component=IgbRipple) components.
## Additional Resources
+Use the following Blazor resources for API details and project support:
+
- [Ignite UI for Blazor **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-blazor)
- [Ignite UI for Blazor **GitHub**](https://github.com/IgniteUI/igniteui-blazor)
+
+## Related Components
+
+- [Button](./button.md) - Use Button when you need an individual action instead of a selectable group.
+
+## FAQ
+
+**Q: How do I set the selected buttons in a Button Group?**
+
+Give every button item a unique value, then use the platform-specific selected-items setting to identify the items that should start selected. Unique values allow the group to track selection consistently across all supported platforms.
+
+**Q: Can I use icons and labels in a Button Group?**
+
+Yes. Each button item can contain an icon, a label, or both. Keep the content pattern consistent across the group and provide a visible label or accessible name when an icon alone does not explain the option.
+
+**Q: Can I display a Button Group vertically?**
+
+Yes. Set the platform-specific alignment property to the vertical option. Use horizontal alignment when the related choices should be presented in a single row.
+
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/button.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/button.md
index d089657bb..c16585e15 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/button.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/button.md
@@ -1,36 +1,36 @@
---
-title: Blazor Button Component | Ignite UI for Blazor
-_description: Get started with the Blazor Button Component. Select button variants, configure sizes, define styling, and gain flexibility through the Blazor Button OnClick event.
-_keywords: Blazor, UI controls, web widgets, UI widgets, Blazor Button Components, Infragistics
+title: "Button Component"
+description: Get started with the Blazor Button Component. Select button variants, configure sizes, define styling, and gain flexibility through the Blazor Button OnClick event.
+keywords: "Blazor, UI controls, web widgets, UI widgets, Blazor Button Components, Infragistics"
mentionedTypes: ["Button", "ButtonBase"]
-_license: MIT
+license: MIT
+last_updated: 2026-08-13
+relatedComponents: ["IconButton"]
+llms:
+ description: "The Blazor Button Component lets you enable clickable elements that trigger actions in your Blazor app."
_tocName: Button
---
+# Button Component
-# Blazor Button Overview
+The Blazor Button component lets you enable clickable elements that trigger actions in your Blazor app. You get full control over button variants, styling, and sizes. The Button component also lets you handle clicks, toggle the button, and disable it when needed.
-The Blazor Button Component lets you enable clickable elements that trigger actions in your Blazor app. You get full control over how you set button variants, configure styles for the wrapped element, and define sizes. The Button Component also gives flexibility through the Blazor Button OnClick event, toggle the Blazor button, disable the Blazor button, and more.
-
-## Blazor Button Example
+## Live Demo
```razor
@using IgniteUI.Blazor.Controls
-
-
-
-
- Flat
- Contained
- Outlined
+
+
+
+
+
+
+
+ Cancel
+ Save
+
+
@@ -39,17 +39,105 @@ The Blazor Button Component lets you enable clickable elements that trigger acti
}
```
-## Usage
+## Anatomy
-Before using the [`IgbButton`](mcp:get_api_reference?platform=blazor&component=IgbButton), you need to register it as follows:
+The Blazor Button renders its label and optional prefix and suffix content in the component shadow DOM.
-```razor
+**Button anatomy:** The Button component renders an actionable control with optional prefix and suffix content.
+
+
+
+
|
## Blazor Data Chart API
@@ -35,84 +36,83 @@ The Blazor [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbD
| Chart Properties | Axis Classes |
|------------------|--------------|
-| - [`ChartTitle`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=ChartTitle) - [`Subtitle`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=Subtitle) - [`IsHorizontalZoomEnabled`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=IsHorizontalZoomEnabled) - [`IsVerticalZoomEnabled`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=IsVerticalZoomEnabled) - [`Brushes`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=Brushes) - [`Outlines`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=Outlines) - [`MarkerBrushes`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=MarkerBrushes) - [`MarkerOutlines`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=MarkerOutlines) - [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) - [`Series`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=Series) | - [`IgbAxis`](mcp:get_api_reference?platform=blazor&component=IgbAxis) is base class for all axis types - [`IgbCategoryXAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryXAxis) used with [Category Series](types/column-chart.md), [Stacked Series](types/stacked-chart.md), and [Financial Series](types/stock-chart.md) - [`IgbCategoryYAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryYAxis) used with [Category Series](types/column-chart.md), [Stacked Series](types/stacked-chart.md) - [`IgbCategoryAngleAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryAngleAxis) used with [Radial Series](types/radial-chart.md) - [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) used with [Scatter Series](types/scatter-chart.md) and [Bar Series](types/bar-chart.md) - [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) used with [Scatter Series](types/scatter-chart.md), [Category Series](types/column-chart.md), [Stacked Series](types/stacked-chart.md), and [Financial Series](types/stock-chart.md) - [`IgbNumericAngleAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericAngleAxis) used with [Polar Series](types/polar-chart.md) - [`IgbNumericRadiusAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericRadiusAxis) used with [Polar Series](types/polar-chart.md) and [Radial Series](types/radial-chart.md) - [`IgbTimeXAxis`](mcp:get_api_reference?platform=blazor&component=IgbTimeXAxis) used with [Category Series](types/column-chart.md) and [Financial Series](types/stock-chart.md)
|
+| - [`Title`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=title) - [`Subtitle`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=subtitle) - [`IsHorizontalZoomEnabled`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=isHorizontalZoomEnabled) - [`IsVerticalZoomEnabled`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=isVerticalZoomEnabled) - [`Brushes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=brushes) - [`Outlines`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=outlines) - [`MarkerBrushes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=markerBrushes) - [`MarkerOutlines`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=markerOutlines) - [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=axes) - [`Series`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=series) | - [`IgbAxis`](mcp:get_api_reference?platform=blazor&component=IgbAxis) is base class for all axis types - [`IgbCategoryXAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryXAxis) used with [Category Series](types/column-chart.md), [Stacked Series](types/stacked-chart.md), and [Financial Series](types/stock-chart.md) - [`IgbCategoryYAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryYAxis) used with [Category Series](types/column-chart.md), [Stacked Series](types/stacked-chart.md) - [`IgbCategoryAngleAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryAngleAxis) used with [Radial Series](types/radial-chart.md) - [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) used with [Scatter Series](types/scatter-chart.md) and [Bar Series](types/bar-chart.md) - [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) used with [Scatter Series](types/scatter-chart.md), [Category Series](types/column-chart.md), [Stacked Series](types/stacked-chart.md), and [Financial Series](types/stock-chart.md) - [`IgbNumericAngleAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericAngleAxis) used with [Polar Series](types/polar-chart.md) - [`IgbNumericRadiusAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericRadiusAxis) used with [Polar Series](types/polar-chart.md) and [Radial Series](types/radial-chart.md) - [`IgbTimeXAxis`](mcp:get_api_reference?platform=blazor&component=IgbTimeXAxis) used with [Category Series](types/column-chart.md) and [Financial Series](types/stock-chart.md)
|
The Blazor [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) can use the following type of series that inherit from [`Series`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Series):
| Category Series | Stacked Series |
|------------------|----------------|
-| - [`IgbAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbAreaSeries) - [`IgbBarSeries`](mcp:get_api_reference?platform=blazor&component=IgbBarSeries) - [`IgbColumnSeries`](mcp:get_api_reference?platform=blazor&component=IgbColumnSeries) - [`IgbLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbLineSeries) - [`IgbPointSeries`](mcp:get_api_reference?platform=blazor&component=IgbPointSeries) - [`IgbSplineSeries`](mcp:get_api_reference?platform=blazor&component=IgbSplineSeries) - [`IgbSplineAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbSplineAreaSeries) - [`IgbStepLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbStepLineSeries) - [`IgbStepAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbStepAreaSeries) - [`IgbRangeAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbRangeAreaSeries) - [`IgbRangeColumnSeries`](mcp:get_api_reference?platform=blazor&component=IgbRangeColumnSeries) - `RangeBarSeries` - [`IgbWaterfallSeries`](mcp:get_api_reference?platform=blazor&component=IgbWaterfallSeries) | - [`IgbStackedAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbStackedAreaSeries) - [`IgbStackedBarSeries`](mcp:get_api_reference?platform=blazor&component=IgbStackedBarSeries) - [`IgbStackedColumnSeries`](mcp:get_api_reference?platform=blazor&component=IgbStackedColumnSeries) - [`IgbStackedLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbStackedLineSeries) - [`IgbStackedSplineSeries`](mcp:get_api_reference?platform=blazor&component=IgbStackedSplineSeries) - [`IgbStacked100AreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbStacked100AreaSeries) - [`IgbStacked100BarSeries`](mcp:get_api_reference?platform=blazor&component=IgbStacked100BarSeries) - [`IgbStacked100ColumnSeries`](mcp:get_api_reference?platform=blazor&component=IgbStacked100ColumnSeries) - [`IgbStacked100LineSeries`](mcp:get_api_reference?platform=blazor&component=IgbStacked100LineSeries) - [`IgbStacked100SplineSeries`](mcp:get_api_reference?platform=blazor&component=IgbStacked100SplineSeries)
| - [`IgbPolarScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbPolarScatterSeries) - [`IgbPolarLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbPolarLineSeries) - [`IgbPolarAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbPolarAreaSeries) - [`IgbPolarSplineSeries`](mcp:get_api_reference?platform=blazor&component=IgbPolarSplineSeries) - [`IgbPolarSplineAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbPolarSplineAreaSeries) |
## Blazor Data Legend API
The Blazor [`IgbDataLegend`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend) has the following API members:
-- [`IncludedColumns`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=IncludedColumns)
-- [`ExcludedColumns`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=ExcludedColumns)
-- [`IncludedSeries`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=IncludedSeries)
-- [`ExcludedSeries`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=ExcludedSeries)
-- [`ValueFormatAbbreviation`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=ValueFormatAbbreviation)
-- [`ValueFormatMode`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=ValueFormatMode)
-- [`ValueFormatCulture`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=ValueFormatCulture)
-- [`ValueFormatMinFractions`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=ValueFormatMinFractions)
-- [`ValueFormatMaxFractions`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=ValueFormatMaxFractions)
-- [`ValueTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=ValueTextColor)
-- [`TitleTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=TitleTextColor)
-- [`LabelTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=LabelTextColor)
-- [`UnitsTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=UnitsTextColor)
-- [`SummaryType`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=SummaryType)
-- [`HeaderTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=HeaderTextColor)
-- [`BadgeShape`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=BadgeShape)
+- [`IncludedColumns`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=includedColumns)
+- [`ExcludedColumns`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=excludedColumns)
+- [`IncludedSeries`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=includedSeries)
+- [`ExcludedSeries`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=excludedSeries)
+- [`ValueFormatAbbreviation`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=valueFormatAbbreviation)
+- [`ValueFormatMode`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=valueFormatMode)
+- [`ValueFormatCulture`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=valueFormatCulture)
+- [`ValueFormatMinFractions`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=valueFormatMinFractions)
+- [`ValueFormatMaxFractions`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=valueFormatMaxFractions)
+- [`ValueTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=valueTextColor)
+- [`TitleTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=titleTextColor)
+- [`LabelTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=labelTextColor)
+- [`UnitsTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=unitsTextColor)
+- [`SummaryType`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=summaryType)
+- [`HeaderTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=headerTextColor)
+- [`BadgeShape`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=badgeShape)
## Blazor Donut Chart API
The Blazor [`IgbDoughnutChart`](mcp:get_api_reference?platform=blazor&component=IgbDoughnutChart) has the following API members:
-- [`AllowSliceExplosion`](mcp:get_api_reference?platform=blazor&component=IgbDoughnutChart&member=AllowSliceExplosion)
-- [`AllowSliceSelection`](mcp:get_api_reference?platform=blazor&component=IgbDoughnutChart&member=AllowSliceSelection)
-- [`InnerExtent`](mcp:get_api_reference?platform=blazor&component=IgbDoughnutChart&member=InnerExtent)
+- [`AllowSliceExplosion`](mcp:get_api_reference?platform=blazor&component=IgbDoughnutChart&member=allowSliceExplosion)
+- [`AllowSliceSelection`](mcp:get_api_reference?platform=blazor&component=IgbDoughnutChart&member=allowSliceSelection)
+- [`InnerExtent`](mcp:get_api_reference?platform=blazor&component=IgbDoughnutChart&member=innerExtent)
## Blazor Data Pie Chart API
The Blazor [`IgbDataPieChart`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart) has the following API members:
-- [`ChartType`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=ChartType)
-- [`HighlightingBehavior`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=HighlightingBehavior)
-- [`OthersCategoryThreshold`](mcp:get_api_reference?platform=blazor&component=IgbPieChart&member=OthersCategoryThreshold)
-- [`OthersCategoryType`](mcp:get_api_reference?platform=blazor&component=IgbPieChart&member=OthersCategoryType)
-- [`SelectionMode`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=SelectionMode)
-- [`SelectionBehavior`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=SelectionBehavior)
+- [`HighlightingBehavior`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=highlightingBehavior)
+- [`OthersCategoryThreshold`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=othersCategoryThreshold)
+- [`OthersCategoryType`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=othersCategoryType)
+- [`SelectionMode`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=selectionMode)
+- [`SelectionBehavior`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=selectionBehavior)
## Blazor Pie Chart API
The Blazor [`IgbPieChart`](mcp:get_api_reference?platform=blazor&component=IgbPieChart) has the following API members:
-- [`LegendItemBadgeTemplate`](mcp:get_api_reference?platform=blazor&component=IgbPieChart&member=LegendItemBadgeTemplate)
-- [`LegendItemTemplate`](mcp:get_api_reference?platform=blazor&component=IgbPieChart&member=LegendItemTemplate)
-- [`LegendLabelMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbPieChart&member=LegendLabelMemberPath)
-- [`OthersCategoryThreshold`](mcp:get_api_reference?platform=blazor&component=IgbPieChart&member=OthersCategoryThreshold)
-- [`OthersCategoryType`](mcp:get_api_reference?platform=blazor&component=IgbPieChart&member=OthersCategoryType)
-- [`SelectionMode`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=SelectionMode)
+- [`LegendItemBadgeTemplate`](mcp:get_api_reference?platform=blazor&component=IgbPieChart&member=legendItemBadgeTemplate)
+- [`LegendItemTemplate`](mcp:get_api_reference?platform=blazor&component=IgbPieChart&member=legendItemTemplate)
+- [`LegendLabelMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbPieChart&member=legendLabelMemberPath)
+- [`OthersCategoryThreshold`](mcp:get_api_reference?platform=blazor&component=IgbPieChart&member=othersCategoryThreshold)
+- [`OthersCategoryType`](mcp:get_api_reference?platform=blazor&component=IgbPieChart&member=othersCategoryType)
+- [`SelectionMode`](mcp:get_api_reference?platform=blazor&component=IgbPieChart&member=selectionMode)
## Blazor Sparkline Chart API
The Blazor [`IgbSparkline`](mcp:get_api_reference?platform=blazor&component=IgbSparkline) has the following API members:
-- [`DisplayNormalRangeInFront`](mcp:get_api_reference?platform=blazor&component=IgbSparkline&member=DisplayNormalRangeInFront)
-- [`DisplayType`](mcp:get_api_reference?platform=blazor&component=IgbSparkline&member=DisplayType)
-- [`LowMarkerBrush`](mcp:get_api_reference?platform=blazor&component=IgbSparkline&member=LowMarkerBrush)
-- [`LowMarkerSize`](mcp:get_api_reference?platform=blazor&component=IgbSparkline&member=LowMarkerSize)
-- [`LowMarkerVisibility`](mcp:get_api_reference?platform=blazor&component=IgbSparkline&member=LowMarkerVisibility)
-- [`NormalRangeFill`](mcp:get_api_reference?platform=blazor&component=IgbSparkline&member=NormalRangeFill)
-- [`UnknownValuePlotting`](mcp:get_api_reference?platform=blazor&component=IgbSparkline&member=UnknownValuePlotting)
+- [`DisplayNormalRangeInFront`](mcp:get_api_reference?platform=blazor&component=IgbSparkline&member=displayNormalRangeInFront)
+- [`DisplayType`](mcp:get_api_reference?platform=blazor&component=IgbSparkline&member=displayType)
+- [`LowMarkerBrush`](mcp:get_api_reference?platform=blazor&component=IgbSparkline&member=lowMarkerBrush)
+- [`LowMarkerSize`](mcp:get_api_reference?platform=blazor&component=IgbSparkline&member=lowMarkerSize)
+- [`LowMarkerVisibility`](mcp:get_api_reference?platform=blazor&component=IgbSparkline&member=lowMarkerVisibility)
+- [`NormalRangeFill`](mcp:get_api_reference?platform=blazor&component=IgbSparkline&member=normalRangeFill)
+- [`UnknownValuePlotting`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=unknownValuePlotting)
## Additional Resources
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-axis-gridlines.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-axis-gridlines.md
index 6b95d1ad9..4d8e2088d 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-axis-gridlines.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-axis-gridlines.md
@@ -1,20 +1,21 @@
---
-title: Blazor Axis Gridlines | Data Visualization | Infragistics
-_description: Infragistics' Blazor Axis Gridlines
-_keywords: Blazor Axis, Gridlines, Infragistics
-_license: commercial
-mentionedTypes: ["DomainChart", "CategoryChart", "XYChart", "DomainChart", "XamDataChart", "NumericXAxis", "NumericYAxis", "NumericAxisBase" ]
+title: "Blazor Axis Gridlines | Data Visualization | Infragistics"
+description: Infragistics' Blazor Axis Gridlines
+keywords: "Blazor Axis, Gridlines, Infragistics"
+license: commercial
+mentionedTypes: ["DomainChart", "CategoryChart", "XYChart", "DomainChart", "DataChart", "NumericXAxis", "NumericYAxis", "NumericAxisBase" ]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "All Ignite UI for Blazor charts include built-in capability to modify appearance of axis lines as well as frequency of major/minor gridlines and tickmarks that are rendered on the X-Axis and Y-Axis."
_tocName: Axis Gridlines
_premium: true
---
-
# Blazor Axis Gridlines
All Ignite UI for Blazor charts include built-in capability to modify appearance of axis lines as well as frequency of major/minor gridlines and tickmarks that are rendered on the X-Axis and Y-Axis.
-> [!Note]
-> the following examples can be applied to [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) as well as [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart) controls.
+**Note:**
+the following examples can be applied to [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) as well as [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart) controls.
Axis major gridlines are long lines that extend horizontally along the Y-Axis or vertically along the X-Axis from locations of axis labels, and they render through the plot area of the chart. Axis minor gridlines are lines that render between axis major gridlines.
@@ -210,26 +211,24 @@ public class CountryRenewableElectricity
}
```
-
-
## Blazor Axis Gridlines Properties
Setting the axis interval property specifies how often major gridlines and axis labels are rendered on an axis. Similarly, the axis minor interval property specifies how frequent minor gridlines are rendered on an axis.
-In order to display minor gridlines that correspond to minor interval, you need to set [`XAxisMinorStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisMinorStroke) and [`XAxisMinorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisMinorStrokeThickness) properties on the axis. This is because minor gridlines do not have a default color or thickness and they will not be displayed without first assigning them.
+In order to display minor gridlines that correspond to minor interval, you need to set [`XAxisMinorStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisMinorStroke) and [`XAxisMinorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisMinorStrokeThickness) properties on the axis. This is because minor gridlines do not have a default color or thickness and they will not be displayed without first assigning them.
You can customize how the gridlines are displayed in your Blazor chart by setting the following properties:
| Axis Visuals | Type | Property Names | Description |
| -----------------------|---------|--------------------------------------------------------------|---------------- |
-| Major Stroke Color | string | [`XAxisMajorStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisMajorStroke) [`YAxisMajorStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisMajorStroke) | These properties set the color of axis major gridlines. |
-| Minor Stroke Color | string | [`XAxisMinorStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisMinorStroke) [`YAxisMinorStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisMinorStroke) | These properties set the color of axis minor gridlines. |
-| Major Stroke Thickness | number | [`XAxisMajorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisMajorStrokeThickness) [`YAxisMajorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisMajorStrokeThickness) | These properties set the thickness in pixels of the axis major gridlines. |
-| Minor Stroke Thickness | number | [`XAxisMinorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisMinorStrokeThickness) [`YAxisMinorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisMinorStrokeThickness) | These properties set the thickness in pixels of the axis minor gridlines. |
-| Major Interval | number | [`XAxisInterval`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisInterval) [`YAxisInterval`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart&member=YAxisInterval) | These properties set interval between axis major gridlines and labels. |
-| Minor Interval | number | [`XAxisMinorInterval`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisMinorInterval) [`YAxisMinorInterval`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart&member=YAxisMinorInterval) | These properties set interval between axis minor gridlines, if used. |
-| Axis Line Stroke Color | string | [`XAxisStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisStroke) [`YAxisStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisStroke) | These properties set the color of an axis line. |
-| Axis Stroke Thickness | number | [`XAxisStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisStrokeThickness) [`YAxisStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisStrokeThickness) | These properties set the thickness in pixels of an axis line. |
+| Major Stroke Color | string | [`XAxisMajorStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisMajorStroke) [`YAxisMajorStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisMajorStroke) | These properties set the color of axis major gridlines. |
+| Minor Stroke Color | string | [`XAxisMinorStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisMinorStroke) [`YAxisMinorStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisMinorStroke) | These properties set the color of axis minor gridlines. |
+| Major Stroke Thickness | number | [`XAxisMajorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisMajorStrokeThickness) [`YAxisMajorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisMajorStrokeThickness) | These properties set the thickness in pixels of the axis major gridlines. |
+| Minor Stroke Thickness | number | [`XAxisMinorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisMinorStrokeThickness) [`YAxisMinorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisMinorStrokeThickness) | These properties set the thickness in pixels of the axis minor gridlines. |
+| Major Interval | number | [`XAxisInterval`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisInterval) [`YAxisInterval`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisInterval) | These properties set interval between axis major gridlines and labels. |
+| Minor Interval | number | [`XAxisMinorInterval`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisMinorInterval) [`YAxisMinorInterval`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisMinorInterval) | These properties set interval between axis minor gridlines, if used. |
+| Axis Line Stroke Color | string | [`XAxisStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisStroke) [`YAxisStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisStroke) | These properties set the color of an axis line. |
+| Axis Stroke Thickness | number | [`XAxisStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisStrokeThickness) [`YAxisStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisStrokeThickness) | These properties set the thickness in pixels of an axis line. |
Regarding the Major and Minor Interval in the table above, it is important to note that the major interval for axis labels will also be set by this value, displaying one label at the point on the axis associated with the interval. The minor interval gridlines are always rendered between the major gridlines, and as such, the minor interval properties should always be set to something much smaller (usually 2-5 times smaller) than the value of the major Interval properties.
@@ -427,7 +426,7 @@ public class CountryRenewableElectricity
}
```
-The axes of the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) also have the ability to place a dash array on the major and minor gridlines by utilizing the [`MajorStrokeDashArray`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=MajorStrokeDashArray) and [`MinorStrokeDashArray`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=MinorStrokeDashArray) properties, respectively. The actual axis line can be dashed as well by setting the [`StrokeDashArray`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=StrokeDashArray) property of the corresponding axis. These properties take an array of numbers that will describe the length of the dashes for the corresponding grid lines.
+The axes of the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) also have the ability to place a dash array on the major and minor gridlines by utilizing the [`MajorStrokeDashArray`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=majorStrokeDashArray) and [`MinorStrokeDashArray`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=minorStrokeDashArray) properties, respectively. The actual axis line can be dashed as well by setting the [`StrokeDashArray`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=strokeDashArray) property of the corresponding axis. These properties take an array of numbers that will describe the length of the dashes for the corresponding grid lines.
The following example demonstrates a [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) with the above dash array properties set:
@@ -592,13 +591,11 @@ public class CountryRenewableElectricity
}
```
-
-
## Blazor Axis Tickmarks Example
-Axis tick marks are enabled by setting the [`XAxisTickLength`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisTickLength) and [`YAxisTickLength`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisTickLength) properties to a value greater than 0. These properties specifies the length of the line segments forming the tick marks.
+Axis tick marks are enabled by setting the [`XAxisTickLength`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisTickLength) and [`YAxisTickLength`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisTickLength) properties to a value greater than 0. These properties specifies the length of the line segments forming the tick marks.
-Tick marks are always extend from the axis line and point to the direction of the labels. Labels are offset by the value of the length of tickmarks to avoid overlapping. For example, with the [`YAxisTickLength`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisTickLength) property is set to 5, axis labels will be shifted left by that amount.
+Tick marks are always extend from the axis line and point to the direction of the labels. Labels are offset by the value of the length of tickmarks to avoid overlapping. For example, with the [`YAxisTickLength`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisTickLength) property is set to 5, axis labels will be shifted left by that amount.
The following example demonstrates how to customize the tickmarks by setting the properties above:
@@ -724,17 +721,15 @@ public class CountryRenewableElectricity
}
```
-
-
## Blazor Axis Tickmarks Properties
You can customize how the axis tickmarks are displayed in our Blazor chats by setting the following properties:
| Axis Visuals | Type | Property Names | Description |
| -----------------------|---------|------------------------------------------------------------|------------------------- |
-| Tick Stroke Color | string | [`XAxisTickStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisTickStroke) [`YAxisTickStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisTickStroke) | These properties set the color of the tickmarks. |
-| Tick Stroke Thickness | number | [`XAxisTickStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisTickStrokeThickness) [`YAxisTickStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisTickStrokeThickness) | These properties set the thickness of the axis tick marks. |
-| Tick Stroke Length | number | [`XAxisTickLength`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisTickLength) [`YAxisTickLength`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisTickLength) | These properties set the length of the axis tick marks. |
+| Tick Stroke Color | string | [`XAxisTickStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisTickStroke) [`YAxisTickStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisTickStroke) | These properties set the color of the tickmarks. |
+| Tick Stroke Thickness | number | [`XAxisTickStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisTickStrokeThickness) [`YAxisTickStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisTickStrokeThickness) | These properties set the thickness of the axis tick marks. |
+| Tick Stroke Length | number | [`XAxisTickLength`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisTickLength) [`YAxisTickLength`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisTickLength) | These properties set the length of the axis tick marks. |
## Additional Resources
@@ -749,23 +744,23 @@ The following is a list of API members mentioned in the above sections:
| [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) | [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) or [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart) |
| -------------------------------------------------- | ----------------------------------- |
-| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) ➔ [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) ➔ [`Interval`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=Interval) | [`XAxisInterval`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisInterval) (Major Interval) |
-| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) ➔ [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) ➔ [`Interval`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=Interval) | [`YAxisInterval`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisInterval) (Major Interval) |
-| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) ➔ [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) ➔ [`MinorInterval`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=MinorInterval) | [`XAxisMinorInterval`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisMinorInterval) |
-| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) ➔ [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) ➔ [`MinorInterval`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=MinorInterval) | [`YAxisMinorInterval`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisMinorInterval) |
-| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) ➔ [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) ➔ [`MajorStroke`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=MajorStroke) | [`XAxisMajorStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisMajorStroke) |
-| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) ➔ [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) ➔ [`MajorStroke`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=MajorStroke) | [`YAxisMajorStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisMajorStroke) |
-| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) ➔ [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) ➔ [`MajorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=MajorStrokeThickness) | [`XAxisMajorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisMajorStrokeThickness) |
-| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) ➔ [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) ➔ [`MajorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=MajorStrokeThickness) | [`YAxisMajorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisMajorStrokeThickness) |
-| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) ➔ [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) ➔ [`MinorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=MinorStrokeThickness) | [`XAxisMinorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisMinorStrokeThickness) |
-| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) ➔ [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) ➔ [`MinorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=MinorStrokeThickness) | [`YAxisMinorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisMinorStrokeThickness) |
-| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) ➔ [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) ➔ [`StrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=StrokeThickness) | [`XAxisStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisStrokeThickness) |
-| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) ➔ [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) ➔ [`StrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=StrokeThickness) | [`YAxisStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisStrokeThickness) |
-| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) ➔ [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) ➔ [`Stroke`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=Stroke) | [`XAxisStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisStroke) (Axis Line Color) |
-| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) ➔ [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) ➔ [`Stroke`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=Stroke) | [`YAxisStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisStroke) (Axis Line Color) |
-| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) ➔ [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) ➔ [`TickLength`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=TickLength) | [`XAxisTickLength`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisTickLength) |
-| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) ➔ [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) ➔ [`TickLength`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=TickLength) | [`YAxisTickLength`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisTickLength) |
-| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) ➔ [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) ➔ [`TickStroke`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=TickStroke) | [`XAxisTickStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisTickStroke) |
-| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) ➔ [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) ➔ [`TickStroke`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=TickStroke) | [`YAxisTickStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisTickStroke) |
-| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) ➔ [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) ➔ [`Strip`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=Strip) | [`XAxisStrip`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisStrip) (Space between Major Gridlines) |
-| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) ➔ [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) ➔ [`Strip`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=Strip) | [`YAxisStrip`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisStrip) (Space between Major Gridlines) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) -> [`Interval`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=interval) | [`XAxisInterval`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisInterval) (Major Interval) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) -> [`Interval`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=interval) | [`YAxisInterval`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisInterval) (Major Interval) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) -> [`MinorInterval`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=minorInterval) | [`XAxisMinorInterval`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisMinorInterval) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) -> [`MinorInterval`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=minorInterval) | [`YAxisMinorInterval`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisMinorInterval) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) -> [`MajorStroke`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=majorStroke) | [`XAxisMajorStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisMajorStroke) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) -> [`MajorStroke`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=majorStroke) | [`YAxisMajorStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisMajorStroke) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) -> [`MajorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=majorStrokeThickness) | [`XAxisMajorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisMajorStrokeThickness) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) -> [`MajorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=majorStrokeThickness) | [`YAxisMajorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisMajorStrokeThickness) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) -> [`MinorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=minorStrokeThickness) | [`XAxisMinorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisMinorStrokeThickness) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) -> [`MinorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=minorStrokeThickness) | [`YAxisMinorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisMinorStrokeThickness) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) -> [`StrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=strokeThickness) | [`XAxisStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisStrokeThickness) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) -> [`StrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=strokeThickness) | [`YAxisStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisStrokeThickness) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) -> [`Stroke`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=stroke) | [`XAxisStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisStroke) (Axis Line Color) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) -> [`Stroke`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=stroke) | [`YAxisStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisStroke) (Axis Line Color) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) -> [`TickLength`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=tickLength) | [`XAxisTickLength`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisTickLength) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) -> [`TickLength`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=tickLength) | [`YAxisTickLength`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisTickLength) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) -> [`TickStroke`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=tickStroke) | [`XAxisTickStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisTickStroke) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) -> [`TickStroke`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=tickStroke) | [`YAxisTickStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisTickStroke) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) -> [`Strip`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=strip) | [`XAxisStrip`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisStrip) (Space between Major Gridlines) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) -> [`Strip`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=strip) | [`YAxisStrip`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisStrip) (Space between Major Gridlines) |
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-axis-layouts.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-axis-layouts.md
index 52e64503b..12471b23d 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-axis-layouts.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-axis-layouts.md
@@ -1,25 +1,26 @@
---
-title: Blazor Axis Layouts | Data Visualization | Infragistics
-_description: Infragistics' Blazor Axis Layouts
-_keywords: Blazor Axis, Layouts, Location, Position, Share, Multiple, Crossing, Infragistics
-_license: commercial
-mentionedTypes: [ "DomainChart", "CategoryChart", "XYChart", "DomainChart", "XamDataChart", "Axis", "AxisLabelSettings", "ScatterSplineSeries", "TimeXAxis" ]
+title: "Blazor Axis Layouts | Data Visualization | Infragistics"
+description: Infragistics' Blazor Axis Layouts
+keywords: "Blazor Axis, Layouts, Location, Position, Share, Multiple, Crossing, Infragistics"
+license: commercial
+mentionedTypes: [ "DomainChart", "CategoryChart", "XYChart", "DomainChart", "DataChart", "Axis", "AxisLabelSettings", "ScatterSplineSeries", "TimeXAxis" ]
+llms:
+ description: "All Ignite UI for Blazor charts include options to configure many axis layout options such as location as well as having the ability to share axis between series or have multiple axes in the same chart."
_tocName: Axis Layouts
_premium: true
---
-
# Blazor Axis Layouts
All Ignite UI for Blazor charts include options to configure many axis layout options such as location as well as having the ability to share axis between series or have multiple axes in the same chart. These features are demonstrated in the examples given below.
-> [!Note]
-> the following examples can be applied to [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) as well as [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart) controls.
+**Note:**
+the following examples can be applied to [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) as well as [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart) controls.
## Axis Locations Example
-For all axes, you can specify axis location in relationship to chart plot area. The [`XAxisLabelLocation`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisLabelLocation) property of the Blazor charts, allows you to position x-axis line and its labels on above or below plot area. Similarly, you can use the [`YAxisLabelLocation`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisLabelLocation) property to position y-axis on left side or right side of plot area.
+For all axes, you can specify axis location in relationship to chart plot area. The [`XAxisLabelLocation`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisLabelLocation) property of the Blazor charts, allows you to position x-axis line and its labels on above or below plot area. Similarly, you can use the [`YAxisLabelLocation`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisLabelLocation) property to position y-axis on left side or right side of plot area.
-The following example depicts the amount of renewable electricity produced since 2009, represented by a [Line Chart](../types/line-chart.md). There is a drop-down that lets you configure the [`YAxisLabelLocation`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisLabelLocation) so that you can visualize what the axes look like when the labels are placed on the left or right side on the inside or outside of the chart's plot area.
+The following example depicts the amount of renewable electricity produced since 2009, represented by a [Line Chart](../types/line-chart.md). There is a drop-down that lets you configure the [`YAxisLabelLocation`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisLabelLocation) so that you can visualize what the axes look like when the labels are placed on the left or right side on the inside or outside of the chart's plot area.
```razor
@using IgniteUI.Blazor.Controls
@@ -136,12 +137,6 @@ public class CountryRenewableElectricity
}
```
-
-
## Axis Advanced Scenarios
For more advanced axis layout scenarios, you can use Blazor Data Chart to share axis, add multiple y-axis and/or x-axis in the same plot area, or even cross axes at specific values. The following examples show how to use these features of the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart).
@@ -207,11 +202,9 @@ The following example depicts a stock price and trade volume chart with a [Stock
}
```
-
-
### Axis Crossing Example
-In addition to placing axes outside plot area, the Blazor [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) also provides options to position axes inside of plot area and make them cross at specific values. For example, you can create trigonometric chart by setting [`CrossingAxis`](mcp:get_api_reference?platform=blazor&component=IgbAxis&member=CrossingAxis) and [`CrossingValue`](mcp:get_api_reference?platform=blazor&component=IgbAxis&member=CrossingValue) properties on both x-axis and y-axis to render axis lines and axis labels such that they are crossing at (0, 0) origin point.
+In addition to placing axes outside plot area, the Blazor [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) also provides options to position axes inside of plot area and make them cross at specific values. For example, you can create trigonometric chart by setting [`CrossingAxis`](mcp:get_api_reference?platform=blazor&component=IgbAxis&member=crossingAxis) and [`CrossingValue`](mcp:get_api_reference?platform=blazor&component=IgbAxis&member=crossingValue) properties on both x-axis and y-axis to render axis lines and axis labels such that they are crossing at (0, 0) origin point.
The following example shows a Sin and Cos wave represented by a [Scatter Spline Chart](../types/scatter-chart.md) with the X and Y axes crossing each other at the (0, 0) origin point.
@@ -295,8 +288,6 @@ The following example shows a Sin and Cos wave represented by a [Scatter Spline
}
```
-
-
### Axis Timeline Example
The following example demonstrates how to style the data chart using the [`IgbTimeXAxis`](mcp:get_api_reference?platform=blazor&component=IgbTimeXAxis) as a timeline:
@@ -416,23 +407,14 @@ d in the above sections:
| [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) | [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) |
| ------------------------------------------------------ | ------------------------------- |
-| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) ➔ [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) ➔ [`CrossingAxis`](mcp:get_api_reference?platform=blazor&component=IgbAxis&member=CrossingAxis) | None |
-| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) ➔ [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) ➔ [`CrossingValue`](mcp:get_api_reference?platform=blazor&component=IgbAxis&member=CrossingValue) | None |
-| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) ➔ [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) ➔ [`IsInverted`](mcp:get_api_reference?platform=blazor&component=IgbAxis&member=IsInverted) | [`XAxisInverted`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisInverted) |
-| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) ➔ [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) ➔ [`IsInverted`](mcp:get_api_reference?platform=blazor&component=IgbAxis&member=IsInverted) | [`YAxisInverted`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisInverted) |
-| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) ➔ [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) ➔ `LabelLocation` | [`YAxisLabelLocation`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisLabelLocation) |
-| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) ➔ [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) ➔ `LabelLocation` | [`XAxisLabelLocation`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisLabelLocation) |
-| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) ➔ [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) ➔ `LabelHorizontalAlignment` | [`YAxisLabelHorizontalAlignment`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisLabelHorizontalAlignment) |
-| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) ➔ [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) ➔ `LabelVerticalAlignment` | [`XAxisLabelVerticalAlignment`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisLabelVerticalAlignment) |
-| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) ➔ [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) ➔ `LabelVisibility` | [`YAxisLabelVisibility`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisLabelVisibility) |
-| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) ➔ [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) ➔ `LabelVisibility` | [`XAxisLabelVisibility`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisLabelVisibility) |
-
-
-
-
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) -> [`CrossingAxis`](mcp:get_api_reference?platform=blazor&component=IgbAxis&member=crossingAxis) | None |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) -> [`CrossingValue`](mcp:get_api_reference?platform=blazor&component=IgbAxis&member=crossingValue) | None |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) -> [`IsInverted`](mcp:get_api_reference?platform=blazor&component=IgbAxis&member=isInverted) | [`XAxisInverted`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisInverted) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) -> [`IsInverted`](mcp:get_api_reference?platform=blazor&component=IgbAxis&member=isInverted) | [`YAxisInverted`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisInverted) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) -> [`LabelLocation`](mcp:get_api_reference?platform=blazor&component=IgbAxis&member=labelLocation) | [`YAxisLabelLocation`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisLabelLocation) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) -> [`LabelLocation`](mcp:get_api_reference?platform=blazor&component=IgbAxis&member=labelLocation) | [`XAxisLabelLocation`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisLabelLocation) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) -> [`LabelHorizontalAlignment`](mcp:get_api_reference?platform=blazor&component=IgbAxis&member=labelHorizontalAlignment) | [`YAxisLabelHorizontalAlignment`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisLabelHorizontalAlignment) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) -> [`LabelVerticalAlignment`](mcp:get_api_reference?platform=blazor&component=IgbAxis&member=labelVerticalAlignment) | [`XAxisLabelVerticalAlignment`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisLabelVerticalAlignment) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) -> [`LabelVisibility`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis&member=labelVisibility) | [`YAxisLabelVisibility`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisLabelVisibility) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) -> [`LabelVisibility`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=labelVisibility) | [`XAxisLabelVisibility`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisLabelVisibility) |
+
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-axis-options.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-axis-options.md
index a11bcbc96..08d81ec58 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-axis-options.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-axis-options.md
@@ -1,14 +1,15 @@
---
title: Blazor Axis Options | Data Visualization | Infragistics
-_description: Infragistics' Blazor Axis Options
-_keywords: Blazor Axis, Options, Title, Labels, Gap, Overlap, Range, Scale, Mode, Infragistics
-_license: commercial
-mentionedTypes: ["DomainChart", "CategoryChart", "FinancialChart", "FinancialChartYAxisMode", "FinancialChartXAxisMode", "NumericYAxis", "CategoryXAxis"]
+description: Infragistics' Blazor Axis Options
+keywords: Blazor Axis, Options, Title, Labels, Gap, Overlap, Range, Scale, Mode, Infragistics
+license: commercial
+
namespace: Infragistics.Controls.Charts
+llms:
+ description: "In all Ignite UI for Blazor charts, the axes provide properties for visual configurations such as titles, labels, and ranges."
_tocName: Axis Options
_premium: true
---
-
# Blazor Axis Options
In all Ignite UI for Blazor charts, the axes provide properties for visual configurations such as titles, labels, and ranges. These features are demonstrated in the examples provided below.
@@ -114,8 +115,6 @@ public class CountryRenewableElectricity
}
```
-
-
## Axis Labels Example
The Blazor Charts allows you full control over configuring, formatting, and styling the font of the labels displayed on an axis in your chart. You can change the rotation angle, margin, horizontal and vertical alignment, color, padding, and visibility of axis labels. The following example shows how to use these features of axes.
@@ -275,19 +274,17 @@ public class CountryRenewableElectricity
}
```
-
-
## Axis Labels Management & Formatting
The axes of the chart have the ability to perform an enhanced calculation regarding the amount of space available to the labels of the owning axis. This enhanced calculation allows the axis to optimize the amount of space given to it in order to display more labels for the given axis.
-This enhanced calculation is something that you need to opt-in to, which you can do by setting the [`UseEnhancedIntervalManagement`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis&member=UseEnhancedIntervalManagement) property to true. Then, if you prefer to display as many labels as can fit in the dimensions of the axis without manually setting the [`Interval`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis&member=Interval) property of the axis, you can set the [`EnhancedIntervalPreferMoreCategoryLabels`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis&member=EnhancedIntervalPreferMoreCategoryLabels) property on the axis to true.
+This enhanced calculation is something that you need to opt-in to, which you can do by setting the [`UseEnhancedIntervalManagement`](mcp:get_api_reference?platform=blazor&component=IgbAxis&member=useEnhancedIntervalManagement) property to true. Then, if you prefer to display as many labels as can fit in the dimensions of the axis without manually setting the [`XAxisInterval`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisInterval) property of the axis, you can set the [`EnhancedIntervalPreferMoreCategoryLabels`](mcp:get_api_reference?platform=blazor&component=IgbAxis&member=enhancedIntervalPreferMoreCategoryLabels) property on the axis to true.
-The chart also has the ability to consider auto-rotation of the labels if they will not fit in the allotted space as well as the ability to apply an automatic margin to the plot area to ensure the labels can fit. This is something that can be opted into initially by first setting the [`AutoMarginAndAngleUpdateMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=AutoMarginAndAngleUpdateMode) property on the chart to either `SizeChanging` or `SizeChangingAndZoom`. This will tell the chart when to re-evaluate the auto margin and angle applied to the labels, if desired.
+The chart also has the ability to consider auto-rotation of the labels if they will not fit in the allotted space as well as the ability to apply an automatic margin to the plot area to ensure the labels can fit. This is something that can be opted into initially by first setting the [`AutoMarginAndAngleUpdateMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=autoMarginAndAngleUpdateMode) property on the chart to either `SizeChanging` or `SizeChangingAndZoom`. This will tell the chart when to re-evaluate the auto margin and angle applied to the labels, if desired.
-After setting the [`AutoMarginAndAngleUpdateMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=AutoMarginAndAngleUpdateMode), you can set the [`ShouldAutoExpandMarginForInitialLabels`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=ShouldAutoExpandMarginForInitialLabels) property to true to opt into the automatic margin or set the [`ShouldConsiderAutoRotationForInitialLabels`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=ShouldConsiderAutoRotationForInitialLabels) property to true for the auto-rotation. You can also further customize the automatic margin that is applied by setting the [`AutoExpandMarginExtraPadding`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=AutoExpandMarginExtraPadding) and [`AutoExpandMarginMaximumValue`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=AutoExpandMarginMaximumValue) to provide extra space or a maximum possible margin, respectively.
+After setting the [`AutoMarginAndAngleUpdateMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=autoMarginAndAngleUpdateMode), you can set the [`ShouldAutoExpandMarginForInitialLabels`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=shouldAutoExpandMarginForInitialLabels) property to true to opt into the automatic margin or set the [`ShouldConsiderAutoRotationForInitialLabels`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=shouldConsiderAutoRotationForInitialLabels) property to true for the auto-rotation. You can also further customize the automatic margin that is applied by setting the [`AutoExpandMarginExtraPadding`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=autoExpandMarginExtraPadding) and [`AutoExpandMarginMaximumValue`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=autoExpandMarginMaximumValue) to provide extra space or a maximum possible margin, respectively.
-Custom label formats such as [`IgbNumberFormatSpecifier`](mcp:get_api_reference?platform=blazor&component=IgbNumberFormatSpecifier) and [`IgbDateTimeFormatSpecifier`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeFormatSpecifier) can be added to each axis via the `XAxisLabelFormatSpecifier` and `YAxisLabelFormatSpecifier` collections. Commonly used for applying Intl.NumberFormat and Intl.DateTimeFormat language sensitive number, date and time formatting. In order for a custom format to be applied to the labels, the [`YAxisLabelFormat`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisLabelFormat) or [`XAxisLabelFormat`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisLabelFormat) need to be set to data item's property name on the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart), eg. `{Date}`. For the [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart) the number is the context because it uses a numeric axis, therefore this needs to be set to `{0}`.
+Custom label formats such as [`IgbNumberFormatSpecifier`](mcp:get_api_reference?platform=blazor&component=IgbNumberFormatSpecifier) and [`IgbDateTimeFormatSpecifier`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeFormatSpecifier) can be added to each axis via the [`XAxisLabelFormatSpecifiers`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisLabelFormatSpecifiers) and [`YAxisLabelFormatSpecifiers`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisLabelFormatSpecifiers) collections. Commonly used for applying Intl.NumberFormat and Intl.DateTimeFormat language sensitive number, date and time formatting. In order for a custom format to be applied to the labels, the [`YAxisLabelFormat`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisLabelFormat) or [`XAxisLabelFormat`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisLabelFormat) need to be set to data item's property name on the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart), eg. `{Date}`. For the [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart) the number is the context because it uses a numeric axis, therefore this needs to be set to `{0}`.
The following example formats the yAxis with a [`IgbNumberFormatSpecifier`](mcp:get_api_reference?platform=blazor&component=IgbNumberFormatSpecifier) to represent $USD prices for top box office movies in the United States.
@@ -441,13 +438,11 @@ public class HighestGrossingMovies
}
```
-
-
## Axis Range Example
-In the Blazor charts, you can define a range minimum and range maximum value of a numeric or time axis. The range minimum is the lowest value of the axis and the range maximum is the highest value of the axis. These are set by setting the [`YAxisMinimumValue`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisMinimumValue) and [`YAxisMaximumValue`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisMaximumValue) options.
+In the Blazor charts, you can define a range minimum and range maximum value of a numeric or time axis. The range minimum is the lowest value of the axis and the range maximum is the highest value of the axis. These are set by setting the [`YAxisMinimumValue`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisMinimumValue) and [`YAxisMaximumValue`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisMaximumValue) options.
-By default, charts will calculate the minimum and maximum values for the numeric and time axis range based on the lowest and highest corresponding value points in your data, but this automatic calculation may not be appropriate for your set of data points in all cases. For example, if your data has a minimum value of 850, you may want to set the [`YAxisMinimumValue`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisMinimumValue) to 800 so that there will be a space value of 50 between the axis minimum and the lowest value of data points. The same idea can be applied to the axis minimum value and the highest value of data points using the [`YAxisMaximumValue`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisMaximumValue) property.
+By default, charts will calculate the minimum and maximum values for the numeric and time axis range based on the lowest and highest corresponding value points in your data, but this automatic calculation may not be appropriate for your set of data points in all cases. For example, if your data has a minimum value of 850, you may want to set the [`YAxisMinimumValue`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisMinimumValue) to 800 so that there will be a space value of 50 between the axis minimum and the lowest value of data points. The same idea can be applied to the axis minimum value and the highest value of data points using the [`YAxisMaximumValue`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisMaximumValue) property.
```razor
@using IgniteUI.Blazor.Controls
@@ -599,15 +594,13 @@ public class CountryRenewableElectricity
}
```
-
-
## Axis Modes & Scale
-In the [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart) and [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) controls, you can choose if your data is plotted on logarithmic scale along the y-axis when the [`YAxisIsLogarithmic`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisIsLogarithmic) property is set to true or on linear scale when this property is set to false (default value). With the [`YAxisLogarithmBase`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisLogarithmBase) property, you can change base of logarithmic scale from default value of 10 to other integer value.
+In the [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart) and [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) controls, you can choose if your data is plotted on logarithmic scale along the y-axis when the [`YAxisIsLogarithmic`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisIsLogarithmic) property is set to true or on linear scale when this property is set to false (default value). With the [`YAxisLogarithmBase`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisLogarithmBase) property, you can change base of logarithmic scale from default value of 10 to other integer value.
-The [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart) and control allows you to choose how your data is represented along the y-axis using [`YAxisMode`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart&member=YAxisMode) property that provides `Numeric` and `PercentChange` modes. The `Numeric` mode will plot data with the exact values while the `PercentChange` mode will display the data as percentage change relative to the first data point provided. The default value is `Numeric` mode.
+The [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart) and control allows you to choose how your data is represented along the y-axis using [`YAxisMode`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart&member=yAxisMode) property that provides [`Numeric`](mcp:get_api_reference?platform=blazor&component=FinancialChartYAxisMode&member=Numeric) and [`PercentChange`](mcp:get_api_reference?platform=blazor&component=FinancialChartYAxisMode&member=PercentChange) modes. The [`Numeric`](mcp:get_api_reference?platform=blazor&component=FinancialChartYAxisMode&member=Numeric) mode will plot data with the exact values while the [`PercentChange`](mcp:get_api_reference?platform=blazor&component=FinancialChartYAxisMode&member=PercentChange) mode will display the data as percentage change relative to the first data point provided. The default value is [`Numeric`](mcp:get_api_reference?platform=blazor&component=FinancialChartYAxisMode&member=Numeric) mode.
-In addition to [`YAxisMode`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart&member=YAxisMode) property, the [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart) control has [`XAxisMode`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart&member=XAxisMode) property that provides `Time` and `Ordinal` modes for the x-axis. The `Time` mode will render space along the x-axis for gaps in data (e.g. no stock trading on weekends or holidays). The `Ordinal` mode will collapse date areas where data does not exist. The default value is `Ordinal` mode.
+In addition to [`YAxisMode`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart&member=yAxisMode) property, the [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart) control has [`XAxisMode`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart&member=xAxisMode) property that provides [`Time`](mcp:get_api_reference?platform=blazor&component=FinancialChartXAxisMode&member=Time) and [`Ordinal`](mcp:get_api_reference?platform=blazor&component=FinancialChartXAxisMode&member=Ordinal) modes for the x-axis. The [`Time`](mcp:get_api_reference?platform=blazor&component=FinancialChartXAxisMode&member=Time) mode will render space along the x-axis for gaps in data (e.g. no stock trading on weekends or holidays). The [`Ordinal`](mcp:get_api_reference?platform=blazor&component=FinancialChartXAxisMode&member=Ordinal) mode will collapse date areas where data does not exist. The default value is [`Ordinal`](mcp:get_api_reference?platform=blazor&component=FinancialChartXAxisMode&member=Ordinal) mode.
```razor
@using IgniteUI.Blazor.Controls
@@ -675,17 +668,15 @@ In addition to [`YAxisMode`](mcp:get_api_reference?platform=blazor&component=Igb
}
```
-
-
## Axis Gap Example
-The [`XAxisGap`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisGap) property of the Blazor charts, determines the amount of space between columns or bars of plotted series. This property accepts a numeric value between 0.0 and 1.0. The value represents a relative width of the gap out of the available number of pixels between the series. Setting this property to 0 would mean there is no gap rendered between the series, and setting it 1 would render the maximum available gap.
+The [`XAxisGap`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisGap) property of the Blazor charts, determines the amount of space between columns or bars of plotted series. This property accepts a numeric value between 0.0 and 1.0. The value represents a relative width of the gap out of the available number of pixels between the series. Setting this property to 0 would mean there is no gap rendered between the series, and setting it 1 would render the maximum available gap.
-The [`XAxisMaximumGap`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisMaximumGap) property of the Blazor charts, determines the maximum gap value to allow. This default is set to 1.0 but can be changed depending on what you set [`XAxisGap`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisGap) to.
+The [`XAxisMaximumGap`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisMaximumGap) property of the Blazor charts, determines the maximum gap value to allow. This default is set to 1.0 but can be changed depending on what you set [`XAxisGap`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisGap) to.
-The [`XAxisMinimumGapSize`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisMinimumGapSize) property of the Blazor charts, determines the minimum amount of pixels to use for the gap between the categories, if possible.
+The [`XAxisMinimumGapSize`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisMinimumGapSize) property of the Blazor charts, determines the minimum amount of pixels to use for the gap between the categories, if possible.
-The following example shows the average maximum temperature in Celsius in New York City's Central Park represented by a [Column Chart](../types/column-chart.md) with an [`XAxisGap`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisGap) initially set to 1, and so there will be a full category's width between the columns. There is a slider that allows you to configure the gap in this example so that you can see what the different values do.
+The following example shows the average maximum temperature in Celsius in New York City's Central Park represented by a [Column Chart](../types/column-chart.md) with an [`XAxisGap`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisGap) initially set to 1, and so there will be a full category's width between the columns. There is a slider that allows you to configure the gap in this example so that you can see what the different values do.
```razor
@using IgniteUI.Blazor.Controls
@@ -811,13 +802,11 @@ public class CountryRenewableElectricity
}
```
-
-
## Axis Overlap Example
-The [`XAxisOverlap`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisOverlap) property of the Blazor charts, allows setting the overlap of the rendered columns or bars of plotted series. This property accepts a numeric value between -1.0 and 1.0. The value represents a relative overlap out of the available number of pixels dedicated to each series. Setting this property to a negative value (down to -1.0) results in the categories being pushed away from each other, producing a gap between themselves. Conversely, setting this property to a positive value (up to 1.0) results in the categories overlapping each other. A value of 1 directs the chart to render the categories on top of each other.
+The [`XAxisOverlap`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisOverlap) property of the Blazor charts, allows setting the overlap of the rendered columns or bars of plotted series. This property accepts a numeric value between -1.0 and 1.0. The value represents a relative overlap out of the available number of pixels dedicated to each series. Setting this property to a negative value (down to -1.0) results in the categories being pushed away from each other, producing a gap between themselves. Conversely, setting this property to a positive value (up to 1.0) results in the categories overlapping each other. A value of 1 directs the chart to render the categories on top of each other.
-The following example shows a comparison of the highest grossing worldwide film franchises compared by the total world box office revenue of the franchise and the highest grossing movie in the series, represented by a [Column Chart](../types/column-chart.md) with an [`XAxisOverlap`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisOverlap) initially set to 1, and so the columns will completely overlap each other. There is a slider that allows you to configure the overlap in this example so that you can see what the different values do.
+The following example shows a comparison of the highest grossing worldwide film franchises compared by the total world box office revenue of the franchise and the highest grossing movie in the series, represented by a [Column Chart](../types/column-chart.md) with an [`XAxisOverlap`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisOverlap) initially set to 1, and so the columns will completely overlap each other. There is a slider that allows you to configure the overlap in this example so that you can see what the different values do.
```razor
@using IgniteUI.Blazor.Controls
@@ -935,8 +924,6 @@ public class HighestGrossingMovies
}
```
-
-
## Additional Resources
You can find more information about related chart features in these topics:
@@ -950,17 +937,17 @@ The following is a list of API members mentioned in the above sections:
| [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) | [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart) | [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) |
| ------------------------------------------------------ | ---------------------- | ---------------------- |
-| `Axes` ➔ [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) ➔ [`MaximumValue`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis&member=MaximumValue) | [`YAxisMaximumValue`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisMaximumValue) | [`YAxisMaximumValue`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisMaximumValue) |
-| `Axes` ➔ [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) ➔ [`MinimumValue`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis&member=MinimumValue) | [`YAxisMinimumValue`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisMinimumValue) | [`YAxisMinimumValue`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisMinimumValue) |
-| `Axes` ➔ [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) ➔ [`IsLogarithmic`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis&member=IsLogarithmic) | [`YAxisIsLogarithmic`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisIsLogarithmic) | [`YAxisIsLogarithmic`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisIsLogarithmic) |
-| `Axes` ➔ [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) ➔ [`LogarithmBase`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis&member=LogarithmBase) | [`YAxisLogarithmBase`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisLogarithmBase) | [`YAxisLogarithmBase`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisLogarithmBase) |
-| `Axes` ➔ [`IgbCategoryXAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryXAxis) ➔ [`Gap`](mcp:get_api_reference?platform=blazor&component=IgbCategoryXAxis&member=Gap) | None | [`XAxisGap`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisGap) |
-| `Axes` ➔ [`IgbCategoryXAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryXAxis) ➔ [`Overlap`](mcp:get_api_reference?platform=blazor&component=IgbCategoryXAxis&member=Overlap) | None | [`XAxisOverlap`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisOverlap) |
-| `Axes` ➔ [`IgbTimeXAxis`](mcp:get_api_reference?platform=blazor&component=IgbTimeXAxis) | [`XAxisMode`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart&member=XAxisMode) | None |
-| `Axes` ➔ [`IgbPercentChangeYAxis`](mcp:get_api_reference?platform=blazor&component=IgbPercentChangeYAxis) | [`YAxisMode`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart&member=YAxisMode) | None |
-| `Axes` ➔ [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) ➔ `labelSettings.angle` | [`YAxisLabelAngle`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisLabelAngle) | [`YAxisLabelAngle`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisLabelAngle) |
-| `Axes` ➔ [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) ➔ `labelSettings.angle` | [`XAxisLabelAngle`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisLabelAngle) | [`XAxisLabelAngle`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisLabelAngle) |
-| `Axes` ➔ [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) ➔ `labelSettings.textColor` | `YAxisLabelForeground` | `YAxisLabelForeground` |
-| `Axes` ➔ [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) ➔ `labelSettings.textColor` | `XAxisLabelForeground` | `XAxisLabelForeground` |
-| `Axes` ➔ [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) ➔ `labelSettings.visibility` | [`YAxisLabelVisibility`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisLabelVisibility) | [`YAxisLabelVisibility`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisLabelVisibility) |
-| `Axes` ➔ [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) ➔ `labelSettings.visibility` | [`XAxisLabelVisibility`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisLabelVisibility) | [`XAxisLabelVisibility`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisLabelVisibility) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) -> [`MaximumValue`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis&member=maximumValue) | [`YAxisMaximumValue`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisMaximumValue) | [`YAxisMaximumValue`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisMaximumValue) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) -> [`MinimumValue`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis&member=minimumValue) | [`YAxisMinimumValue`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisMinimumValue) | [`YAxisMinimumValue`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisMinimumValue) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) -> [`IsLogarithmic`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis&member=isLogarithmic) | [`YAxisIsLogarithmic`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisIsLogarithmic) | [`YAxisIsLogarithmic`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisIsLogarithmic) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) -> [`LogarithmBase`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis&member=logarithmBase) | [`YAxisLogarithmBase`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisLogarithmBase) | [`YAxisLogarithmBase`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisLogarithmBase) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbCategoryXAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryXAxis) -> [`Gap`](mcp:get_api_reference?platform=blazor&component=IgbCategoryXAxis&member=gap) | None | [`XAxisGap`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisGap) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbCategoryXAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryXAxis) -> [`Overlap`](mcp:get_api_reference?platform=blazor&component=IgbCategoryXAxis&member=overlap) | None | [`XAxisOverlap`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisOverlap) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbTimeXAxis`](mcp:get_api_reference?platform=blazor&component=IgbTimeXAxis) | [`XAxisMode`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart&member=xAxisMode) | None |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbPercentChangeYAxis`](mcp:get_api_reference?platform=blazor&component=IgbPercentChangeYAxis) | [`YAxisMode`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart&member=yAxisMode) | None |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) -> `labelSettings.angle` | [`YAxisLabelAngle`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisLabelAngle) | [`YAxisLabelAngle`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisLabelAngle) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) -> `labelSettings.angle` | [`XAxisLabelAngle`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisLabelAngle) | [`XAxisLabelAngle`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisLabelAngle) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) -> `labelSettings.textColor` | `YAxisLabelForeground` | `YAxisLabelForeground` |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) -> `labelSettings.textColor` | `XAxisLabelForeground` | `XAxisLabelForeground` |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) -> `labelSettings.visibility` | [`YAxisLabelVisibility`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisLabelVisibility) | [`YAxisLabelVisibility`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisLabelVisibility) |
+| [`Axes`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Axes) -> [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) -> `labelSettings.visibility` | [`XAxisLabelVisibility`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisLabelVisibility) | [`XAxisLabelVisibility`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisLabelVisibility) |
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-axis-types.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-axis-types.md
index 103b6a276..fe17df194 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-axis-types.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-axis-types.md
@@ -1,14 +1,15 @@
---
-title: Blazor Axis Types | Data Visualization | Infragistics
-_description: Infragistics' Blazor Axis Types
-_keywords: Blazor Axis, Options, Title, Labels, Gap, Overlap, Range, Scale, Mode, Infragistics
-_license: commercial
+title: "Blazor Axis Types | Data Visualization | Infragistics"
+description: Infragistics' Blazor Axis Types
+keywords: "Blazor Axis, Options, Title, Labels, Gap, Overlap, Range, Scale, Mode, Infragistics"
+license: commercial
mentionedTypes: ["DomainChart", "CategoryChart", "FinancialChart", "FinancialChartYAxisMode", "FinancialChartXAxisMode", "NumericYAxis", "CategoryXAxis"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Blazor Category Chart uses only one CategoryXAxis and one NumericYAxis type."
_tocName: Axis Types
_premium: true
---
-
# Blazor Axis Types
The Ignite UI for Blazor Category Chart uses only one [`IgbCategoryXAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryXAxis) and one [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) type. Similarly, Ignite UI for Blazor Financial Chart uses only one [`IgbTimeXAxis`](mcp:get_api_reference?platform=blazor&component=IgbTimeXAxis) and one [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) types. However, the Ignite UI for Blazor Data Chart provides support for multiple axis types that you can position on any side of the chart by setting [axis location](chart-axis-layouts.md#axis-locations-example) or even inside of the chart by using [axis crossing](chart-axis-layouts.md#axis-crossing-example) properties. This topic goes over each one, which axes and series are compatible with each other, and some specific properties to the unique axes.
@@ -22,15 +23,15 @@ The [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChar
The [`IgbCategoryXAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryXAxis) treats its data as a sequence of categorical data items. It can display almost any type of data including strings and numbers. If you are plotting numbers on this axis, it is important to keep in mind that this axis is a discrete axis and not continuous. This means that each categorical data item will be placed equidistant from the one before it. The items will also be plotted in the order that they appear in the axis' data source.
-The [`IgbCategoryXAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryXAxis) requires you to provide a `DataSource` and a `Label` in order to plot data with it. It is generally used with the [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) to plot the following type of series:
+The [`IgbCategoryXAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryXAxis) requires you to provide a [`IgbDataSource`](mcp:get_api_reference?platform=blazor&component=DataSource) and a [`Label`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis&member=label) in order to plot data with it. It is generally used with the [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) to plot the following type of series:
| Category Series | Stacked Series | Financial Series |
|------------------|----------------|--------------------|
-| - [`IgbAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbAreaSeries) - [`IgbColumnSeries`](mcp:get_api_reference?platform=blazor&component=IgbColumnSeries) - [`IgbLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbLineSeries) - [`IgbPointSeries`](mcp:get_api_reference?platform=blazor&component=IgbPointSeries) - [`IgbSplineSeries`](mcp:get_api_reference?platform=blazor&component=IgbSplineSeries) - [`IgbSplineAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbSplineAreaSeries) - [`IgbStepLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbStepLineSeries) - [`IgbStepAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbStepAreaSeries) - [`IgbRangeAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbRangeAreaSeries) - [`IgbRangeColumnSeries`](mcp:get_api_reference?platform=blazor&component=IgbRangeColumnSeries) - [`IgbWaterfallSeries`](mcp:get_api_reference?platform=blazor&component=IgbWaterfallSeries) | - [`IgbStackedAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbStackedAreaSeries) - [`IgbStackedColumnSeries`](mcp:get_api_reference?platform=blazor&component=IgbStackedColumnSeries) - [`IgbStackedLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbStackedLineSeries) - [`IgbStackedSplineSeries`](mcp:get_api_reference?platform=blazor&component=IgbStackedSplineSeries) - [`IgbStacked100AreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbStacked100AreaSeries) - [`IgbStacked100ColumnSeries`](mcp:get_api_reference?platform=blazor&component=IgbStacked100ColumnSeries) - [`IgbStacked100LineSeries`](mcp:get_api_reference?platform=blazor&component=IgbStacked100LineSeries) - [`IgbStacked100SplineSeries`](mcp:get_api_reference?platform=blazor&component=IgbStacked100SplineSeries)
|
-The following example demonstrates usage of the [`IgbCategoryXAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryXAxis) type:
+ The following example demonstrates usage of the [`IgbCategoryXAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryXAxis) type:
-```razor
+ ```razor
@using IgniteUI.Blazor.Controls
@@ -204,16 +205,16 @@ public class ContinentsBirthRate
### Category Y-Axis
-The [`IgbCategoryYAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryYAxis) works very similarly to the [`IgbCategoryXAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryXAxis) described above, but it is placed vertically rather than horizontally. Also, this axis requires you to provide a `DataSource` and a `Label` in order to plot data with it. The [`IgbCategoryYAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryYAxis) is generally used with the [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) to plot the following type of series:
+The [`IgbCategoryYAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryYAxis) works very similarly to the [`IgbCategoryXAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryXAxis) described above, but it is placed vertically rather than horizontally. Also, this axis requires you to provide a [`IgbDataSource`](mcp:get_api_reference?platform=blazor&component=DataSource) and a [`Label`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis&member=label) in order to plot data with it. The [`IgbCategoryYAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryYAxis) is generally used with the [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) to plot the following type of series:
- [`IgbBarSeries`](mcp:get_api_reference?platform=blazor&component=IgbBarSeries)
- `RangeBarSeries`
- [`IgbStackedBarSeries`](mcp:get_api_reference?platform=blazor&component=IgbStackedBarSeries)
- [`IgbStacked100BarSeries`](mcp:get_api_reference?platform=blazor&component=IgbStacked100BarSeries)
-The following example demonstrates usage of the [`IgbCategoryYAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryYAxis) type:
+ The following example demonstrates usage of the [`IgbCategoryYAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryYAxis) type:
-```razor
+ ```razor
@using IgniteUI.Blazor.Controls
@@ -362,7 +363,7 @@ public class HighestGrossingMovies
### Numeric X-Axis
-The [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) treats its data as continuously varying numerical data items. Labels on this axis are placed horizontally along the X-Axis. The location of the [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) labels depends on the `XMemberPath` property of the various [Scatter Series](../types/scatter-chart.md) that it supports if combined with a [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis). Alternatively, if combined with the [`IgbCategoryXAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryXAxis), these labels will be placed corresponding to the `ValueMemberPath` of the [`IgbBarSeries`](mcp:get_api_reference?platform=blazor&component=IgbBarSeries), `RangeBarSeries`, [`IgbStackedBarSeries`](mcp:get_api_reference?platform=blazor&component=IgbStackedBarSeries), and [`IgbStacked100BarSeries`](mcp:get_api_reference?platform=blazor&component=IgbStacked100BarSeries).
+The [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) treats its data as continuously varying numerical data items. Labels on this axis are placed horizontally along the X-Axis. The location of the [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) labels depends on the [`XMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=xMemberPath) property of the various [Scatter Series](../types/scatter-chart.md) that it supports if combined with a [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis). Alternatively, if combined with the [`IgbCategoryXAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryXAxis), these labels will be placed corresponding to the [`ValueMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbAreaSeries&member=valueMemberPath) of the [`IgbBarSeries`](mcp:get_api_reference?platform=blazor&component=IgbBarSeries), `RangeBarSeries`, [`IgbStackedBarSeries`](mcp:get_api_reference?platform=blazor&component=IgbStackedBarSeries), and [`IgbStacked100BarSeries`](mcp:get_api_reference?platform=blazor&component=IgbStacked100BarSeries).
The [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis) is compatible with the following type of series:
@@ -380,9 +381,9 @@ The [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumer
- [`IgbStackedBarSeries`](mcp:get_api_reference?platform=blazor&component=IgbStackedBarSeries)
- [`IgbStacked100BarSeries`](mcp:get_api_reference?platform=blazor&component=IgbStacked100BarSeries)
-The following example demonstrates usage of the [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis):
+ The following example demonstrates usage of the [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis):
-```razor
+ ```razor
@using IgniteUI.Blazor.Controls
@@ -441,17 +442,17 @@ The following example demonstrates usage of the [`IgbNumericXAxis`](mcp:get_api_
### Numeric Y-Axis
-The [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) treats its data as continuously varying numerical data items. Labels on this axis are placed vertically along the Y-Axis. The location of the [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) labels depends on the `YMemberPath` property of the various [ScatterSeries](../types/scatter-chart.md) that is supports if combined with a [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis). Alternatively, if combined with the [`IgbCategoryYAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryYAxis), these labels will be placed corresponding to the `ValueMemberPath` of the category or stacked series mentioned in the table above. If you are using one of the financial series, they will be placed corresponding to the Open/High/Low/Close paths and the series type that you are using.
+The [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) treats its data as continuously varying numerical data items. Labels on this axis are placed vertically along the Y-Axis. The location of the [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) labels depends on the [`YMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=yMemberPath) property of the various [ScatterSeries](../types/scatter-chart.md) that is supports if combined with a [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis). Alternatively, if combined with the [`IgbCategoryYAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryYAxis), these labels will be placed corresponding to the [`ValueMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbAreaSeries&member=valueMemberPath) of the category or stacked series mentioned in the table above. If you are using one of the financial series, they will be placed corresponding to the Open/High/Low/Close paths and the series type that you are using.
The [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis) is compatible with the following type of series:
| Category Series | Stacked Series | Financial Series | Scatter Series |
|------------------|----------------|------------------|----------------|
-| - [`IgbAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbAreaSeries) - [`IgbColumnSeries`](mcp:get_api_reference?platform=blazor&component=IgbColumnSeries) - [`IgbLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbLineSeries) - [`IgbPointSeries`](mcp:get_api_reference?platform=blazor&component=IgbPointSeries) - [`IgbSplineSeries`](mcp:get_api_reference?platform=blazor&component=IgbSplineSeries) - [`IgbSplineAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbSplineAreaSeries) - [`IgbStepLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbStepLineSeries) - [`IgbStepAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbStepAreaSeries) - [`IgbRangeAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbRangeAreaSeries) - [`IgbRangeColumnSeries`](mcp:get_api_reference?platform=blazor&component=IgbRangeColumnSeries) - [`IgbWaterfallSeries`](mcp:get_api_reference?platform=blazor&component=IgbWaterfallSeries) | - [`IgbStackedAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbStackedAreaSeries) - [`IgbStackedColumnSeries`](mcp:get_api_reference?platform=blazor&component=IgbStackedColumnSeries) - [`IgbStackedLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbStackedLineSeries) - [`IgbStackedSplineSeries`](mcp:get_api_reference?platform=blazor&component=IgbStackedSplineSeries) - [`IgbStacked100AreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbStacked100AreaSeries) - [`IgbStacked100ColumnSeries`](mcp:get_api_reference?platform=blazor&component=IgbStacked100ColumnSeries) - [`IgbStacked100LineSeries`](mcp:get_api_reference?platform=blazor&component=IgbStacked100LineSeries) - [`IgbStacked100SplineSeries`](mcp:get_api_reference?platform=blazor&component=IgbStacked100SplineSeries) | - [`IgbFinancialPriceSeries`](mcp:get_api_reference?platform=blazor&component=IgbFinancialPriceSeries) - [`IgbBollingerBandsOverlay`](mcp:get_api_reference?platform=blazor&component=IgbBollingerBandsOverlay) - [`IgbForceIndexIndicator`](mcp:get_api_reference?platform=blazor&component=IgbForceIndexIndicator) - [`IgbMedianPriceIndicator`](mcp:get_api_reference?platform=blazor&component=IgbMedianPriceIndicator) - [`IgbMassIndexIndicator`](mcp:get_api_reference?platform=blazor&component=IgbMassIndexIndicator) - [`IgbRelativeStrengthIndexIndicator`](mcp:get_api_reference?platform=blazor&component=IgbRelativeStrengthIndexIndicator) - [`IgbStandardDeviationIndicator`](mcp:get_api_reference?platform=blazor&component=IgbStandardDeviationIndicator) - [`IgbTypicalPriceIndicator`](mcp:get_api_reference?platform=blazor&component=IgbTypicalPriceIndicator) | - [`IgbBubbleSeries`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries) - [`IgbHighDensityScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbHighDensityScatterSeries) - [`IgbScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbScatterSeries) - [`IgbScatterLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbScatterLineSeries) - [`IgbScatterSplineSeries`](mcp:get_api_reference?platform=blazor&component=IgbScatterSplineSeries) - [`IgbScatterAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbScatterAreaSeries) - [`IgbScatterContourSeries`](mcp:get_api_reference?platform=blazor&component=IgbScatterContourSeries) - [`IgbScatterPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbScatterPolylineSeries) - [`IgbScatterPolygonSeries`](mcp:get_api_reference?platform=blazor&component=IgbScatterPolygonSeries) |
+| - [`IgbAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbAreaSeries) - [`IgbColumnSeries`](mcp:get_api_reference?platform=blazor&component=IgbColumnSeries) - [`IgbLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbLineSeries) - [`IgbPointSeries`](mcp:get_api_reference?platform=blazor&component=IgbPointSeries) - [`IgbSplineSeries`](mcp:get_api_reference?platform=blazor&component=IgbSplineSeries) - [`IgbSplineAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbSplineAreaSeries) - [`IgbStepLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbStepLineSeries) - [`IgbStepAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbStepAreaSeries) - [`IgbRangeAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbRangeAreaSeries) - [`IgbRangeColumnSeries`](mcp:get_api_reference?platform=blazor&component=IgbRangeColumnSeries) - [`IgbWaterfallSeries`](mcp:get_api_reference?platform=blazor&component=IgbWaterfallSeries) | - [`IgbStackedAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbStackedAreaSeries) - [`IgbStackedColumnSeries`](mcp:get_api_reference?platform=blazor&component=IgbStackedColumnSeries) - [`IgbStackedLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbStackedLineSeries) - [`IgbStackedSplineSeries`](mcp:get_api_reference?platform=blazor&component=IgbStackedSplineSeries) - [`IgbStacked100AreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbStacked100AreaSeries) - [`IgbStacked100ColumnSeries`](mcp:get_api_reference?platform=blazor&component=IgbStacked100ColumnSeries) - [`IgbStacked100LineSeries`](mcp:get_api_reference?platform=blazor&component=IgbStacked100LineSeries) - [`IgbStacked100SplineSeries`](mcp:get_api_reference?platform=blazor&component=IgbStacked100SplineSeries) | - [`IgbFinancialPriceSeries`](mcp:get_api_reference?platform=blazor&component=IgbFinancialPriceSeries) - [`IgbBollingerBandsOverlay`](mcp:get_api_reference?platform=blazor&component=IgbBollingerBandsOverlay) - [`IgbForceIndexIndicator`](mcp:get_api_reference?platform=blazor&component=IgbForceIndexIndicator) - [`IgbMedianPriceIndicator`](mcp:get_api_reference?platform=blazor&component=IgbMedianPriceIndicator) - [`IgbMassIndexIndicator`](mcp:get_api_reference?platform=blazor&component=IgbMassIndexIndicator) - [`IgbRelativeStrengthIndexIndicator`](mcp:get_api_reference?platform=blazor&component=IgbRelativeStrengthIndexIndicator) - [`IgbStandardDeviationIndicator`](mcp:get_api_reference?platform=blazor&component=IgbStandardDeviationIndicator) - [`IgbTypicalPriceIndicator`](mcp:get_api_reference?platform=blazor&component=IgbTypicalPriceIndicator) | - [`IgbBubbleSeries`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries) - [`IgbHighDensityScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbHighDensityScatterSeries) - [`IgbScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbScatterSeries) - [`IgbScatterLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbScatterLineSeries) - [`IgbScatterSplineSeries`](mcp:get_api_reference?platform=blazor&component=IgbScatterSplineSeries) - [`IgbScatterAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbScatterAreaSeries) - [`IgbScatterContourSeries`](mcp:get_api_reference?platform=blazor&component=IgbScatterContourSeries) - [`IgbScatterPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbScatterPolylineSeries) - [`IgbScatterPolygonSeries`](mcp:get_api_reference?platform=blazor&component=IgbScatterPolygonSeries) |
-The following example demonstrates usage of the [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis):
+ The following example demonstrates usage of the [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis):
-```razor
+ ```razor
@using IgniteUI.Blazor.Controls
@@ -631,27 +632,27 @@ public class HealthDataForGermany
### Time X Axis
-The [`IgbTimeXAxis`](mcp:get_api_reference?platform=blazor&component=IgbTimeXAxis) treats its data as a sequence of data items, sorted by date. Labels on this axis type are dates and can be formatted and arranged according to date intervals. The date range of this axis is determined by the date values in a data column that is mapped using its `DateTimeMemberPath`. This, along with a `DataSource` is required to plot data with this axis type.
+The [`IgbTimeXAxis`](mcp:get_api_reference?platform=blazor&component=IgbTimeXAxis) treats its data as a sequence of data items, sorted by date. Labels on this axis type are dates and can be formatted and arranged according to date intervals. The date range of this axis is determined by the date values in a data column that is mapped using its [`DateTimeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbTimeXAxis&member=dateTimeMemberPath). This, along with a [`IgbDataSource`](mcp:get_api_reference?platform=blazor&component=DataSource) is required to plot data with this axis type.
The [`IgbTimeXAxis`](mcp:get_api_reference?platform=blazor&component=IgbTimeXAxis) is the X-Axis type in the [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart) component.
#### Breaks in Time X Axis
-The [`IgbTimeXAxis`](mcp:get_api_reference?platform=blazor&component=IgbTimeXAxis) has the option to exclude intervals of data by using [`Breaks`](mcp:get_api_reference?platform=blazor&component=IgbTimeXAxis&member=Breaks). As a result, the labels and plotted data will not appear at the excluded interval. For example, working/non-working days, holidays, and/or weekends. An instance of [`IgbTimeAxisBreak`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisBreak) can be added to the `Breaks` collection of the axis and configured by using a unique [`Start`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisBreak&member=Start), [`End`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisBreak&member=End) and [`Interval`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisBreak&member=Interval).
+The [`IgbTimeXAxis`](mcp:get_api_reference?platform=blazor&component=IgbTimeXAxis) has the option to exclude intervals of data by using [`Breaks`](mcp:get_api_reference?platform=blazor&component=IgbTimeXAxis&member=breaks). As a result, the labels and plotted data will not appear at the excluded interval. For example, working/non-working days, holidays, and/or weekends. An instance of [`IgbTimeAxisBreak`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisBreak) can be added to the [`Breaks`](mcp:get_api_reference?platform=blazor&component=IgbTimeXAxis&member=breaks) collection of the axis and configured by using a unique [`Start`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisBreak&member=start), [`End`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisBreak&member=end) and [`Interval`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis&member=interval).
#### Formatting in Time X Axis
-The [`IgbTimeXAxis`](mcp:get_api_reference?platform=blazor&component=IgbTimeXAxis) has the [`LabelFormats`](mcp:get_api_reference?platform=blazor&component=IgbTimeXAxis&member=LabelFormats) property, which represents a collection of [`IgbTimeAxisLabelFormat`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisLabelFormat) objects. Each [`IgbTimeAxisLabelFormat`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisLabelFormat) added to the collection is responsible for assigning a unique [`Format`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisLabelFormat&member=Format) and [`Range`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisLabelFormat&member=Range). This can be especially useful for drilling down data from years to milliseconds and adjusting the labels depending on the range of time shown by the chart.
+The [`IgbTimeXAxis`](mcp:get_api_reference?platform=blazor&component=IgbTimeXAxis) has the [`LabelFormats`](mcp:get_api_reference?platform=blazor&component=IgbTimeXAxis&member=labelFormats) property, which represents a collection of [`IgbTimeAxisLabelFormat`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisLabelFormat) objects. Each [`IgbTimeAxisLabelFormat`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisLabelFormat) added to the collection is responsible for assigning a unique [`Format`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisLabelFormat&member=format) and [`Range`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisLabelFormat&member=range). This can be especially useful for drilling down data from years to milliseconds and adjusting the labels depending on the range of time shown by the chart.
-The [`Format`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisLabelFormat&member=Format) property of the [`IgbTimeAxisLabelFormat`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisLabelFormat) specifies what format to use for a particular visible range. The [`Range`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisLabelFormat&member=Range) property of the [`IgbTimeAxisLabelFormat`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisLabelFormat) specifies the visible range at which the axis label formats will switch to a different format. For example, if you have two [`IgbTimeAxisLabelFormat`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisLabelFormat) elements with a range set to 10 days and another set to 5 hours, then as soon as the visible range of the axis becomes less than 10 days, it will switch to 5-hour format.
+The [`Format`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisLabelFormat&member=format) property of the [`IgbTimeAxisLabelFormat`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisLabelFormat) specifies what format to use for a particular visible range. The [`Range`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisLabelFormat&member=range) property of the [`IgbTimeAxisLabelFormat`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisLabelFormat) specifies the visible range at which the axis label formats will switch to a different format. For example, if you have two [`IgbTimeAxisLabelFormat`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisLabelFormat) elements with a range set to 10 days and another set to 5 hours, then as soon as the visible range of the axis becomes less than 10 days, it will switch to 5-hour format.
#### Intervals in Time X Axis
-The [`IgbTimeXAxis`](mcp:get_api_reference?platform=blazor&component=IgbTimeXAxis) replaces the conventional [`Interval`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis&member=Interval) property of the category and numeric axes with an [`Intervals`](mcp:get_api_reference?platform=blazor&component=IgbTimeXAxis&member=Intervals) collection of type [`IgbTimeAxisInterval`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisInterval). Each [`IgbTimeAxisInterval`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisInterval) added to the collection is responsible for assigning a unique [`Interval`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisInterval&member=Interval), [`Range`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisInterval&member=Range) and [`IntervalType`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisInterval&member=IntervalType). This can be especially useful for drilling down data from years to milliseconds to provide unique spacing between labels depending on the range of time shown by the chart. A description of these properties is below:
+The [`IgbTimeXAxis`](mcp:get_api_reference?platform=blazor&component=IgbTimeXAxis) replaces the conventional [`Interval`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis&member=interval) property of the category and numeric axes with an [`Intervals`](mcp:get_api_reference?platform=blazor&component=IgbTimeXAxis&member=intervals) collection of type [`IgbTimeAxisInterval`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisInterval). Each [`IgbTimeAxisInterval`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisInterval) added to the collection is responsible for assigning a unique [`Interval`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis&member=interval), [`Range`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisLabelFormat&member=range) and [`IntervalType`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisInterval&member=intervalType). This can be especially useful for drilling down data from years to milliseconds to provide unique spacing between labels depending on the range of time shown by the chart. A description of these properties is below:
-- [`Interval`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisInterval&member=Interval): This specifies the interval to use. This is tied to the [`IntervalType`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisInterval&member=IntervalType) property. For example, if the [`IntervalType`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisInterval&member=IntervalType) is set to `Days`, then the numeric value specified in [`Interval`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisInterval&member=Interval) will be in days.
-- [`Range`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisInterval&member=Range): This specifies the visible range at which the axis interval will switch to a different interval. For example, if you have two TimeAxisInterval with a range set to 10 days and another set to 5 hours, as soon as the visible range in the axis becomes less than 10 days it will switch to the interval whose range is 5 hours.
-- [`IntervalType`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisInterval&member=IntervalType): This specifies the unit of time for the [`Interval`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisInterval&member=Interval) property.
+- [`Interval`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis&member=interval): This specifies the interval to use. This is tied to the [`IntervalType`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisInterval&member=intervalType) property. For example, if the [`IntervalType`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisInterval&member=intervalType) is set to `Days`, then the numeric value specified in [`Interval`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis&member=interval) will be in days.
+- [`Range`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisLabelFormat&member=range): This specifies the visible range at which the axis interval will switch to a different interval. For example, if you have two TimeAxisInterval with a range set to 10 days and another set to 5 hours, as soon as the visible range in the axis becomes less than 10 days it will switch to the interval whose range is 5 hours.
+- [`IntervalType`](mcp:get_api_reference?platform=blazor&component=IgbTimeAxisInterval&member=intervalType): This specifies the unit of time for the [`Interval`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis&member=interval) property.
## Polar Axes
@@ -665,7 +666,7 @@ The [`IgbCategoryAngleAxis`](mcp:get_api_reference?platform=blazor&component=Igb
The following example demonstrates usage of the [`IgbCategoryAngleAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryAngleAxis) type:
-```razor
+ ```razor
@using IgniteUI.Blazor.Controls
@@ -815,17 +816,17 @@ The [`IgbProportionalCategoryAngleAxis`](mcp:get_api_reference?platform=blazor&c
The following example demonstrates usage of the [`IgbProportionalCategoryAngleAxis`](mcp:get_api_reference?platform=blazor&component=IgbProportionalCategoryAngleAxis) type:
-
+
### Numeric Angle Axis
-The [`IgbNumericAngleAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericAngleAxis) treats its data as continuously varying numerical data items. The labels on this axis area placed along a radius line starting from the center of the circular plot. The location of the labels on the [`IgbNumericAngleAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericAngleAxis) varies according to the value in the data column mapped using the `RadiusMemberPath` property of the [Polar Series](../types/polar-chart.md) object or the `ValueMemberPath` property of the [Radial Series](../types/radial-chart.md) object.
+The [`IgbNumericAngleAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericAngleAxis) treats its data as continuously varying numerical data items. The labels on this axis area placed along a radius line starting from the center of the circular plot. The location of the labels on the [`IgbNumericAngleAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericAngleAxis) varies according to the value in the data column mapped using the [`RadiusMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=radiusMemberPath) property of the [Polar Series](../types/polar-chart.md) object or the [`ValueMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbAreaSeries&member=valueMemberPath) property of the [Radial Series](../types/radial-chart.md) object.
The The [`IgbNumericAngleAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericAngleAxis) can be used with either the [`IgbCategoryAngleAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryAngleAxis) to plot [Radial Series](../types/radial-chart.md) or with the [`IgbNumericRadiusAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericRadiusAxis) to plot [Polar Series](../types/polar-chart.md) respectively.
The following example demonstrates usage of the [`IgbNumericAngleAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericAngleAxis) type:
-```razor
+ ```razor
@using IgniteUI.Blazor.Controls
@@ -959,7 +960,7 @@ The [`IgbNumericRadiusAxis`](mcp:get_api_reference?platform=blazor&component=Igb
The following example demonstrates usage of the [`IgbNumericRadiusAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericRadiusAxis) type:
-```razor
+ ```razor
@using IgniteUI.Blazor.Controls
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-data-aggregations.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-data-aggregations.md
index 54569f688..818897314 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-data-aggregations.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-data-aggregations.md
@@ -1,23 +1,24 @@
---
title: Blazor Data Aggregations | Data Visualization | Infragistics
-_description: Infragistics' Blazor Data Aggregations
-_keywords: Blazor Charts, Markers, Infragistics
-_license: commercial
-mentionedTypes: ["DomainChart", "CategoryChart"]
+description: Infragistics' Blazor Data Aggregations
+keywords: Blazor Charts, Markers, Infragistics
+license: commercial
+
namespace: Infragistics.Controls.Charts
+llms:
+ description: "In the Ignite UI for Blazor CategoryChart control Data Aggregations feature allows you to group data in the chart by unique values on the XAxis and then sort those groups."
_tocName: Chart Data Aggregations
_premium: true
---
-
# Blazor Data Aggregations
-In the Ignite UI for Blazor [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) control Data Aggregations feature allows you to group data in the chart by unique values on the `XAxis` and then sort those groups. You may then apply summaries which will be reflected by the range of the `YAxis` and will be displayed in the tooltip when hovering the series.
+In the Ignite UI for Blazor [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) control Data Aggregations feature allows you to group data in the chart by unique values on the [`XAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisMemberPath) and then sort those groups. You may then apply summaries which will be reflected by the range of the [`YAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisMemberPath) and will be displayed in the tooltip when hovering the series.
## Blazor Data Aggregations Example
-The following example depicts a [Column Chart](../types/column-chart.md) that groups by the Country member of the `XAxis` and can be changed to other properties within each data item such as Product, MonthName, and Year to aggregate the sales data. Also a summary and sort option is available to get a desirable order for the grouped property.
+The following example depicts a [Column Chart](../types/column-chart.md) that groups by the Country member of the [`XAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisMemberPath) and can be changed to other properties within each data item such as Product, MonthName, and Year to aggregate the sales data. Also a summary and sort option is available to get a desirable order for the grouped property.
-Note, the abbreviated functions found within the dropdowns for [`InitialSummaries`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=InitialSummaries) and [`GroupSorts`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=GroupSorts) have be applied as shown to get a correct result based on the property you assign. eg. Sum(sales) as Sales | Sales Desc
+Note, the abbreviated functions found within the dropdowns for [`InitialSummaries`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=initialSummaries) and [`GroupSorts`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=groupSorts) have be applied as shown to get a correct result based on the property you assign. eg. Sum(sales) as Sales | Sales Desc
```razor
@using IgniteUI.Blazor.Controls
@@ -191,21 +192,4 @@ public class SalesData
```
## API References
-
-The following is a list of API members mentioned in the above sections:
-
-- [`InitialSortDescriptions`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=InitialSortDescriptions)
-- [`InitialSorts`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=InitialSorts)
-- [`SortDescriptions`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=SortDescriptions)
-- [`InitialGroups`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=InitialGroups)
-- [`InitialGroupDescriptions`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=InitialGroupDescriptions)
-- [`GroupDescriptions`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=GroupDescriptions)
-- [`InitialSummaries`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=InitialSummaries)
-- [`InitialSummaryDescriptions`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=InitialSummaryDescriptions)
-- [`SummaryDescriptions`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=SummaryDescriptions)
-- [`InitialGroupSortDescriptions`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=InitialGroupSortDescriptions)
-- [`GroupSorts`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=GroupSorts)
-- [`GroupSortDescriptions`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=GroupSortDescriptions)
-
-> [!Note]
-> Chart Aggregation will not work when using [`IncludedProperties`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=IncludedProperties) | [`ExcludedProperties`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=ExcludedProperties). These properties on the chart are meant for non-aggregated data. Once you attempt to aggregate data these properties should no longer be used. The reason it does not work is because aggregation replaces the collection that is passed to the chart for render. The include/exclude properties are designed to filter in/out properties of that data and those properties no longer exist in the new aggregated collection.
+[`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-data-annotations.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-data-annotations.md
index bdf74a963..2adcdc306 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-data-annotations.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-data-annotations.md
@@ -1,20 +1,21 @@
---
-title: Blazor Chart Data Annotations | Data Visualization | Infragistics
-_description: Infragistics' Blazor Chart Data Annotations
-_keywords: Blazor Charts, Data Annotations, Infragistics
-_license: commercial
+title: "Blazor Chart Data Annotations | Data Visualization | Infragistics"
+description: Infragistics' Blazor Chart Data Annotations
+keywords: "Blazor Charts, Data Annotations, Infragistics"
+license: commercial
mentionedTypes: ["DomainChart", "CategoryChart", "CrosshairLayer", "FinalValueLayer", "CalloutLayer"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "In the Blazor chart, the data annotation layers allow you to annotate data plotted in Data Chart with sloped lines, vertical/horizontal lines (aka axis slices), vertical/horizontal strips (targeting specific axis), rectangles, and even parallelograms (aka bands)."
_tocName: Chart Data Annotations
_premium: true
---
-
-# Blazor Chart Data Annotations
+# Blazor Chart Data Annotations
In the Blazor chart, the data annotation layers allow you to annotate data plotted in Data Chart with sloped lines, vertical/horizontal lines (aka axis slices), vertical/horizontal strips (targeting specific axis), rectangles, and even parallelograms (aka bands). With data-binding supported, you can create as many annotations as you want to customize your charts. Also, you can combine different annotation layers and you can overlay text inside of plot area to annotated important events, patterns, and regions in your data.
-> [!Note]
-> These features are designed to support cartesian axes and does not currently support radius or angle axes.
+**Note:**
+These features are designed to support cartesian axes and does not currently support radius or angle axes.
For example, you can annotates stock prices with stock events and patterns.
@@ -543,7 +544,7 @@ Like this sample? Get access to our complete Blazor toolkit and start building y
## Blazor Data Annotation Slice Layer Example
-In Blazor, the link:{DataChartLink}.DataAnnotationSliceLayer.html\[DataAnnotationSliceLayer] renders multiple vertical or horizontal lines that slice the chart at multiple values of an axis in the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) component. This data annotation layer is often used to annotate important events (e.g. company quarter reports) on x-axis or important values on y-axis. Setting the TargetAxis property to y-axis will render data annotation layer as horizontal slices or setting TargetAxis property to x-axis will render data annotation layer as vertical slices. Similarly to all series, the DataAnnotationSliceLayer also supports data binding via the `DataSource` property that can be set to a collection of data items which should have at least 1 numeric data column mapped to the `AnnotationValueMemberPath` property.
+In Blazor, the [`IgbDataAnnotationSliceLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationSliceLayer) renders multiple vertical or horizontal lines that slice the chart at multiple values of an axis in the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) component. This data annotation layer is often used to annotate important events (e.g. company quarter reports) on x-axis or important values on y-axis. Setting the TargetAxis property to y-axis will render data annotation layer as horizontal slices or setting TargetAxis property to x-axis will render data annotation layer as vertical slices. Similarly to all series, the DataAnnotationSliceLayer also supports data binding via the [`IgbDataSource`](mcp:get_api_reference?platform=blazor&component=DataSource) property that can be set to a collection of data items which should have at least 1 numeric data column mapped to the [`AnnotationValueMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationSliceLayer&member=annotationValueMemberPath) property.
For example, you can use DataAnnotationSliceLayer to annotate stock prices with important events such as stock split and outcome of earning reports.
@@ -870,11 +871,9 @@ public class StockTesla
}
```
-
-
## Blazor Data Annotation Strip Layer Example
-In Blazor, the [`IgbDataAnnotationStripLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationStripLayer) renders multiple vertical or horizontal strips between 2 values on an axis in the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) component. This data annotation layer can be used to annotate duration of events (e.g. stock market crash) on x-axis or important range of values on y-axis. Setting the TargetAxis property to y-axis will render data annotation layer as horizontal strips or setting TargetAxis property to x-axis will render data annotation layer as vertical strips. Similarly to all series, the [`IgbDataAnnotationStripLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationStripLayer) also supports data binding via the `DataSource` property that can be set to a collection of data items which should have at least 1 numeric data column mapped to the AnnotationValueMemberPath property.
+In Blazor, the [`IgbDataAnnotationStripLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationStripLayer) renders multiple vertical or horizontal strips between 2 values on an axis in the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) component. This data annotation layer can be used to annotate duration of events (e.g. stock market crash) on x-axis or important range of values on y-axis. Setting the TargetAxis property to y-axis will render data annotation layer as horizontal strips or setting TargetAxis property to x-axis will render data annotation layer as vertical strips. Similarly to all series, the [`IgbDataAnnotationStripLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationStripLayer) also supports data binding via the [`IgbDataSource`](mcp:get_api_reference?platform=blazor&component=DataSource) property that can be set to a collection of data items which should have at least 1 numeric data column mapped to the AnnotationValueMemberPath property.
For example, you can use [`IgbDataAnnotationStripLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationStripLayer) to annotate chart with stock market crashes and changes in federal interest rates.
@@ -1106,11 +1105,9 @@ public class StockTesla
}
```
-
-
## Blazor Data Annotation Line Layer Example
-In Blazor, [`IgbDataAnnotationLineLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationLineLayer) renders multiple lines between 2 points in plot area of the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) component. This data annotation layer can be used to annotate stock chart with growth and decline in stock prices. Similarly to all series, the DataAnnotationLineLayer also supports data binding via the `DataSource` property that can be set to a collection of data items which should have at least 4 numeric data columns representing x/y coordinates of starting point and ending point of the lines. The starting points should be mapped using using `StartValueXMemberPath` and `StartValueYMemberPath` properties and the ending points should be mapped using `EndValueXMemberPath` and `EndValueYMemberPath` properties.
+In Blazor, [`IgbDataAnnotationLineLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationLineLayer) renders multiple lines between 2 points in plot area of the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) component. This data annotation layer can be used to annotate stock chart with growth and decline in stock prices. Similarly to all series, the DataAnnotationLineLayer also supports data binding via the [`IgbDataSource`](mcp:get_api_reference?platform=blazor&component=DataSource) property that can be set to a collection of data items which should have at least 4 numeric data columns representing x/y coordinates of starting point and ending point of the lines. The starting points should be mapped using using [`StartValueXMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationLineLayer&member=startValueXMemberPath) and [`StartValueYMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationLineLayer&member=startValueYMemberPath) properties and the ending points should be mapped using [`EndValueXMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationLineLayer&member=endValueXMemberPath) and [`EndValueYMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationLineLayer&member=endValueYMemberPath) properties.
For example, you can use DataAnnotationLineLayer to annotate growth and decline patterns in stock prices and 52-week high and low of stock prices on y-axis.
@@ -1393,11 +1390,9 @@ public class StockTesla
}
```
-
-
## Blazor Data Annotation Rect Layer Example
-In Blazor, the [`IgbDataAnnotationRectLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationRectLayer) renders multiple rectangles defined by starting and ending points in plot area of the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) component. This data annotation layer can be used to annotate region of plot area such as bearish patterns in stock prices. Similarly to all series, the DataAnnotationRectLayer also supports data binding via the `DataSource` property that can be set to a collection of data items which should have at least 4 numeric data columns representing x/y coordinates of starting point and ending point of the rectangles. The starting points should be mapped using using `StartValueXMemberPath` and `StartValueYMemberPath` properties and the ending points should be mapped using `EndValueXMemberPath` and `EndValueYMemberPath` properties.
+In Blazor, the [`IgbDataAnnotationRectLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationRectLayer) renders multiple rectangles defined by starting and ending points in plot area of the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) component. This data annotation layer can be used to annotate region of plot area such as bearish patterns in stock prices. Similarly to all series, the DataAnnotationRectLayer also supports data binding via the [`IgbDataSource`](mcp:get_api_reference?platform=blazor&component=DataSource) property that can be set to a collection of data items which should have at least 4 numeric data columns representing x/y coordinates of starting point and ending point of the rectangles. The starting points should be mapped using using [`StartValueXMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationLineLayer&member=startValueXMemberPath) and [`StartValueYMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationLineLayer&member=startValueYMemberPath) properties and the ending points should be mapped using [`EndValueXMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationLineLayer&member=endValueXMemberPath) and [`EndValueYMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationLineLayer&member=endValueYMemberPath) properties.
For example, you can use DataAnnotationRectLayer to annotate bearish patterns and gaps in stock prices on y-axis.
@@ -1595,11 +1590,9 @@ public class StockTesla
}
```
-
-
## Blazor Data Annotation Band Layer Example
-In Blazor, the [`IgbDataAnnotationBandLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationBandLayer) renders multiple skewed rectangles (free-form parallelogram) between 2 points in plot area of the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) component. This data annotation layer can be used to annotate range of growth and decline in stock prices. Similarly to all series, the DataAnnotationBandLayer also supports data binding via the `DataSource` property that can be set to a collection of data items which should have at least 4 numeric data columns representing x/y coordinates of starting point and ending point of the lines. The starting points should be mapped using `StartValueXMemberPath` and `StartValueYMemberPath` properties and the ending points should be mapped using `EndValueXMemberPath` and `EndValueYMemberPath` properties. In addition, you can specify thickness/size of the skewed rectangle by binding numeric data column to the AnnotationBreadthMemberPath property.
+In Blazor, the [`IgbDataAnnotationBandLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationBandLayer) renders multiple skewed rectangles (free-form parallelogram) between 2 points in plot area of the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) component. This data annotation layer can be used to annotate range of growth and decline in stock prices. Similarly to all series, the DataAnnotationBandLayer also supports data binding via the [`IgbDataSource`](mcp:get_api_reference?platform=blazor&component=DataSource) property that can be set to a collection of data items which should have at least 4 numeric data columns representing x/y coordinates of starting point and ending point of the lines. The starting points should be mapped using [`StartValueXMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationLineLayer&member=startValueXMemberPath) and [`StartValueYMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationLineLayer&member=startValueYMemberPath) properties and the ending points should be mapped using [`EndValueXMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationLineLayer&member=endValueXMemberPath) and [`EndValueYMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationLineLayer&member=endValueYMemberPath) properties. In addition, you can specify thickness/size of the skewed rectangle by binding numeric data column to the AnnotationBreadthMemberPath property.
For example, you can use DataAnnotationBandLayer to annotate range of growth in stock prices.
@@ -1836,19 +1829,17 @@ public class StockTesla
}
```
-
-
## API References
The following is a list of API members mentioned in the above sections:
-- `TargetAxis`: This property specifies which axis should have an enabled DataAnnotationBandLayer, DataAnnotationLineLayer, DataAnnotationRectLayer.
-- `DataSource`: This property binds data to the annotation layer to provide the precise shape.
-- `StartValueXMemberPath`: This property is a mapping to the name of the data column with x-positions for the start of the DataAnnotationBandLayer, DataAnnotationLineLayer, DataAnnotationRectLayer.
-- `StartValueYMemberPath`: This property is a mapping to the name of data column with y-positions for the start of the DataAnnotationBandLayer, DataAnnotationLineLayer, DataAnnotationRectLayer.
-- `EndValueXMemberPath`: This property is a mapping to the data column with x-positions for the end of the DataAnnotationBandLayer, DataAnnotationLineLayer, DataAnnotationRectLayer.
-- `EndValueYMemberPath`: This property is a mapping to the data column with y-positions for end of the DataAnnotationBandLayer, DataAnnotationLineLayer, DataAnnotationRectLayer.
-- `StartLabelXMemberPath`: This property is a mapping to the data column representing the overlay label for the starting position of the xAxis along the axis.
-- `StartLabelXDisplayMode` | `StartLabelYDisplayMode` | `EndLabelXDisplayMode` | `EndLabelYDisplayMode` | `CenterLabelXDisplayMode`: These properties specify what should annotation labels display on starting, ending, or center of the annotation shape, e.g. mapped data value, mapped data label, axis value, or hide a given annotation label.
-- `StartLabelYMemberPath`: This property is a mapping to the data column representing the axis label for the starting position of [`IgbDataAnnotationBandLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationBandLayer), [`IgbDataAnnotationLineLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationLineLayer), [`IgbDataAnnotationRectLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationRectLayer) on the y-axis.
-- `EndLabelYMemberPath`: This property is a mapping to the data column representing the axis label for the ending position of [`IgbDataAnnotationBandLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationBandLayer), [`IgbDataAnnotationLineLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationLineLayer), [`IgbDataAnnotationRectLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationRectLayer) on the y-axis.
+- [`TargetAxis`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationSliceLayer&member=targetAxis): This property specifies which axis should have an enabled DataAnnotationBandLayer, DataAnnotationLineLayer, DataAnnotationRectLayer.
+- [`IgbDataSource`](mcp:get_api_reference?platform=blazor&component=DataSource): This property binds data to the annotation layer to provide the precise shape.
+- [`StartValueXMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationLineLayer&member=startValueXMemberPath): This property is a mapping to the name of the data column with x-positions for the start of the DataAnnotationBandLayer, DataAnnotationLineLayer, DataAnnotationRectLayer.
+- [`StartValueYMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationLineLayer&member=startValueYMemberPath): This property is a mapping to the name of data column with y-positions for the start of the DataAnnotationBandLayer, DataAnnotationLineLayer, DataAnnotationRectLayer.
+- [`EndValueXMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationLineLayer&member=endValueXMemberPath): This property is a mapping to the data column with x-positions for the end of the DataAnnotationBandLayer, DataAnnotationLineLayer, DataAnnotationRectLayer.
+- [`EndValueYMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationLineLayer&member=endValueYMemberPath): This property is a mapping to the data column with y-positions for end of the DataAnnotationBandLayer, DataAnnotationLineLayer, DataAnnotationRectLayer.
+- [`StartLabelXMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationLineLayer&member=startLabelXMemberPath): This property is a mapping to the data column representing the overlay label for the starting position of the xAxis along the axis.
+- [`StartLabelXDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationLineLayer&member=startLabelXDisplayMode) | [`StartLabelYDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationLineLayer&member=startLabelYDisplayMode) | [`EndLabelXDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationLineLayer&member=endLabelXDisplayMode) | [`EndLabelYDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationLineLayer&member=endLabelYDisplayMode) | [`CenterLabelXDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationLineLayer&member=centerLabelXDisplayMode): These properties specify what should annotation labels display on starting, ending, or center of the annotation shape, e.g. mapped data value, mapped data label, axis value, or hide a given annotation label.
+- [`StartLabelYMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationLineLayer&member=startLabelYMemberPath): This property is a mapping to the data column representing the axis label for the starting position of [`IgbDataAnnotationBandLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationBandLayer), [`IgbDataAnnotationLineLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationLineLayer), [`IgbDataAnnotationRectLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationRectLayer) on the y-axis.
+- [`EndLabelYMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationLineLayer&member=endLabelYMemberPath): This property is a mapping to the data column representing the axis label for the ending position of [`IgbDataAnnotationBandLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationBandLayer), [`IgbDataAnnotationLineLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationLineLayer), [`IgbDataAnnotationRectLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationRectLayer) on the y-axis.
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-data-filtering.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-data-filtering.md
index 68194ee8b..57ed962c2 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-data-filtering.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-data-filtering.md
@@ -1,14 +1,15 @@
---
-title: Blazor Chart Data Filtering | Data Visualization | Infragistics
-_description: Infragistics' Blazor Chart Data Filtering
-_keywords: Blazor Charts, Filtering, Infragistics
-_license: commercial
+title: "Blazor Chart Data Filtering | Data Visualization | Infragistics"
+description: Infragistics' Blazor Chart Data Filtering
+keywords: "Blazor Charts, Filtering, Infragistics"
+license: commercial
mentionedTypes: ["CategoryChart"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "Data Filtering allows you to query large data in order to analyze and plot small subset of data entries via filter expressions, all without having to manually modify the datasource bound to the chart."
_tocName: Chart Data Filtering
_premium: true
---
-
# Blazor Chart Data Filtering
Data Filtering allows you to query large data in order to analyze and plot small subset of data entries via filter expressions, all without having to manually modify the datasource bound to the chart.
@@ -21,7 +22,7 @@ A complete list of valid expressions and keywords to form a query string can be
## Blazor Chart Data Filter Example
-The following example depicts a [Column Chart](../types/column-chart.md) of annual birth rates across several decades. The drop-down allows you to select a decade, which inserts an expression via the [`InitialFilter`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=InitialFilter) property, to update the chart visual and thus filtering out the other decades out.
+The following example depicts a [Column Chart](../types/column-chart.md) of annual birth rates across several decades. The drop-down allows you to select a decade, which inserts an expression via the [`InitialFilter`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=initialFilter) property, to update the chart visual and thus filtering out the other decades out.
```razor
@using IgniteUI.Blazor.Controls
@@ -151,9 +152,7 @@ public class ContinentsBirthRate
}
```
-
-
-The [`InitialFilter`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=InitialFilter) property is a string that requires the following syntax in order to filter properly. The value requires sets of parentheses that include both the filter expression definition, column and value associated with the record(s) filtering in.
+The [`InitialFilter`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=initialFilter) property is a string that requires the following syntax in order to filter properly. The value requires sets of parentheses that include both the filter expression definition, column and value associated with the record(s) filtering in.
eg. To show all countries that start with the letter B:
@@ -172,10 +171,4 @@ You can find more information about related chart features in these topics:
- [Chart Tooltips](chart-tooltips.md)
## API References
-
-The following is a list of API members mentioned in the above sections:
-
-- [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart)
-- [`IsTransitionInEnabled`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=IsTransitionInEnabled)
-- [`TransitionInDuration`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=TransitionInDuration)
-- [`TransitionInMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=TransitionInMode)
+[`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-data-legend.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-data-legend.md
index 0dfd75e03..f69f07255 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-data-legend.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-data-legend.md
@@ -1,21 +1,22 @@
---
-title: Blazor Chart Data Legend | Data Visualization Tools | Infragistics
-_description: Use Infragistics Ignite UI for Blazor chart with the data legend!
-_keywords: Blazor charts, chart legend, legend, legend types, Ignite UI for Blazor, Infragistics
-_license: commercial
-mentionedTypes: ["XamCategoryChart", "XamDataLegend", "Series", "DataLegendSummaryType", "DataAbbreviationMode" ]
+title: "Blazor Chart Data Legend | Data Visualization Tools | Infragistics"
+description: Use Infragistics Ignite UI for Blazor chart with the data legend!
+keywords: "Blazor charts, chart legend, legend, legend types, Ignite UI for Blazor, Infragistics"
+license: commercial
+mentionedTypes: ["CategoryChart", "DataLegend", "Series", "DataLegendSummaryType", "DataAbbreviationMode" ]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "In Ignite UI for Blazor, the DataLegend is highly-customizable version of the Legend, that shows values of series and provides many configuration properties for filtering series rows and values columns, styling and formatting values."
_tocName: Chart Data Legend
_premium: true
---
-
# Blazor Data Legend
-In Ignite UI for Blazor, the [`IgbDataLegend`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend) is highly-customizable version of the [`Legend`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=Legend), that shows values of series and provides many configuration properties for filtering series rows and values columns, styling and formatting values. This legend updates when moving the mouse inside of the plot area of the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart), [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart), and [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart). Also, it has a persistent state that remembers the last hovered point when the user's mouse pointer exits the plot area. It displays this content using a set of three type of rows (header, series, summary) and four types of columns (title, label, value, unit).
+In Ignite UI for Blazor, the [`IgbDataLegend`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend) is highly-customizable version of the [`Legend`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=Legend), that shows values of series and provides many configuration properties for filtering series rows and values columns, styling and formatting values. This legend updates when moving the mouse inside of the plot area of the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart), [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart), and [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart). Also, it has a persistent state that remembers the last hovered point when the user's mouse pointer exits the plot area. It displays this content using a set of three type of rows (header, series, summary) and four types of columns (title, label, value, unit).
## Blazor Data Legend Rows
-The rows of the [`IgbDataLegend`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend) include the header row, series row(s), and the summary row. The header row displays the axis label of the point that is hovered, and can be changed using the [`HeaderText`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=HeaderText) property.
+The rows of the [`IgbDataLegend`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend) include the header row, series row(s), and the summary row. The header row displays the axis label of the point that is hovered, and can be changed using the [`HeaderText`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=headerText) property.
```razor
@using IgniteUI.Blazor.Controls
@@ -110,19 +111,19 @@ public class HighestGrossingMovies
### Header Row
-The header row displays the current label of x-axis when hovering mouse over category series and financial series. You can use [`HeaderFormatDate`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=HeaderFormatDate) and [`HeaderFormatTime`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=HeaderFormatTime) properties to format date and time in the [`IgbDataLegend`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend) if the x-axis shows dates. For other types of series, the [`IgbDataLegend`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend) does not render the header row.
+The header row displays the current label of x-axis when hovering mouse over category series and financial series. You can use [`HeaderFormatDate`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=headerFormatDate) and [`HeaderFormatTime`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=headerFormatTime) properties to format date and time in the [`IgbDataLegend`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend) if the x-axis shows dates. For other types of series, the [`IgbDataLegend`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend) does not render the header row.
### Series Row
-The series row represents each series plotted in the chart. These rows will display the legend badge, series title, actual/abbreviated value of the the series, and abbreviation symbol or unit of measurement, if specified. You can filter series rows by setting [`IncludedSeries`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=IncludedSeries) or [`ExcludedSeries`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=ExcludedSeries) properties to a collection of series' indexes (1, 2, 3) or series' titles (Tesla, Microsoft).
+The series row represents each series plotted in the chart. These rows will display the legend badge, series title, actual/abbreviated value of the the series, and abbreviation symbol or unit of measurement, if specified. You can filter series rows by setting [`IncludedSeries`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=includedSeries) or [`ExcludedSeries`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=excludedSeries) properties to a collection of series' indexes (1, 2, 3) or series' titles (Tesla, Microsoft).
### Summary Row
-Finally, there is a summary row that displays the total of all series values. The default summary title can be changed using the [`SummaryTitleText`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=SummaryTitleText) property of the legend. Also, you can use the [`SummaryType`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=SummaryType) property to customize whether you display the `Total`, `Min`, `Max`, or `Average` of series values in the summary row.
+Finally, there is a summary row that displays the total of all series values. The default summary title can be changed using the [`SummaryTitleText`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=summaryTitleText) property of the legend. Also, you can use the [`SummaryType`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=summaryType) property to customize whether you display the [`Total`](mcp:get_api_reference?platform=blazor&component=DataLegendSummaryType&member=Total), [`Min`](mcp:get_api_reference?platform=blazor&component=DataLegendSummaryType&member=Min), [`Max`](mcp:get_api_reference?platform=blazor&component=DataLegendSummaryType&member=Max), or [`Average`](mcp:get_api_reference?platform=blazor&component=DataLegendSummaryType&member=Average) of series values in the summary row.
## Blazor Data Legend Columns
-The columns of the [`IgbDataLegend`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend) include the series title, label, value of data column, and optional unit associated with the value. Some series in the chart can have multiple columns for label, value, and units. For example, financial price series has **High**, **Low**, **Open**, and **Close** data columns which can be filtered in the [`IgbDataLegend`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend) using the [`IncludedColumns`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=IncludedColumns) or [`ExcludedColumns`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=ExcludedColumns) properties.
+The columns of the [`IgbDataLegend`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend) include the series title, label, value of data column, and optional unit associated with the value. Some series in the chart can have multiple columns for label, value, and units. For example, financial price series has **High**, **Low**, **Open**, and **Close** data columns which can be filtered in the [`IgbDataLegend`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend) using the [`IncludedColumns`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=includedColumns) or [`ExcludedColumns`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=excludedColumns) properties.
```razor
@using IgniteUI.Blazor.Controls
@@ -299,7 +300,7 @@ The columns of the [`IgbDataLegend`](mcp:get_api_reference?platform=blazor&compo
//end async data
```
-Setting values on the [`IncludedColumns`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=IncludedColumns) and [`ExcludedColumns`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=ExcludedColumns) properties, depends on type of series and how many data columns they support. For example, you can set [`IncludedColumns`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=IncludedColumns) property to a collection of **Open** and **Close** strings and the legend will show only open and close values for stock prices when the chart is plotting financial series. The following table lists all column names that can be use to filter columns in data legend.
+Setting values on the [`IncludedColumns`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=includedColumns) and [`ExcludedColumns`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=excludedColumns) properties, depends on type of series and how many data columns they support. For example, you can set [`IncludedColumns`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=includedColumns) property to a collection of **Open** and **Close** strings and the legend will show only open and close values for stock prices when the chart is plotting financial series. The following table lists all column names that can be use to filter columns in data legend.
| Type of Series | Column Names |
| -----------------|-------------- |
@@ -315,19 +316,19 @@ Where the **TypicalPrice** and percentage **Change** of OHLC prices are automati
### Title Column
-The title column displays legend badges and series titles, which come from the `Title` property of the different [`IgbSeries`](mcp:get_api_reference?platform=blazor&component=IgbSeries) plotted in the chart.
+The title column displays legend badges and series titles, which come from the [`Title`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=chartTitle) property of the different [`IgbSeries`](mcp:get_api_reference?platform=blazor&component=IgbSeries) plotted in the chart.
### Label Column
-The label column displays short name on the left side of value column, e.g. "O" for **Open** stock price. You can toggle visibility of this column using the [`LabelDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=LabelDisplayMode) property.
+The label column displays short name on the left side of value column, e.g. "O" for **Open** stock price. You can toggle visibility of this column using the [`LabelDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=labelDisplayMode) property.
### Value Column
-The value column displays values of series as abbreviated text which can be formatted using the [`ValueFormatAbbreviation`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=ValueFormatAbbreviation) property to apply the same abbreviation for all numbers by setting this property to `Shared`. Alternatively, a user can select other abbreviations such as `Independent`, `Kilo`, `Million`, etc. Precision of abbreviated values is controlled using the [`ValueFormatMinFractions`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=ValueFormatMinFractions) and [`ValueFormatMaxFractions`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=ValueFormatMaxFractions) for minimum and maximum digits, respectively.
+The value column displays values of series as abbreviated text which can be formatted using the [`ValueFormatAbbreviation`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=valueFormatAbbreviation) property to apply the same abbreviation for all numbers by setting this property to [`Shared`](mcp:get_api_reference?platform=blazor&component=DataAbbreviationMode&member=Shared). Alternatively, a user can select other abbreviations such as [`Independent`](mcp:get_api_reference?platform=blazor&component=DataAbbreviationMode&member=Independent), [`Kilo`](mcp:get_api_reference?platform=blazor&component=DataAbbreviationMode&member=Kilo), [`Million`](mcp:get_api_reference?platform=blazor&component=DataAbbreviationMode&member=Million), etc. Precision of abbreviated values is controlled using the [`ValueFormatMinFractions`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=valueFormatMinFractions) and [`ValueFormatMaxFractions`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=valueFormatMaxFractions) for minimum and maximum digits, respectively.
### Unit Column
-The unit column displays an abbreviation symbol on the right side of value column. The unit symbol depends on the [`ValueFormatAbbreviation`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=ValueFormatAbbreviation) property, e.g. "M" for the `Million` abbreviation.
+The unit column displays an abbreviation symbol on the right side of value column. The unit symbol depends on the [`ValueFormatAbbreviation`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=valueFormatAbbreviation) property, e.g. "M" for the [`Million`](mcp:get_api_reference?platform=blazor&component=DataAbbreviationMode&member=Million) abbreviation.
### Customizing Columns
@@ -335,25 +336,23 @@ You can customize text displayed in the **Label** and **Unit** columns using pr
| Type of Series | Series Properties |
| ------|---- |
-| Category Series | ValueMemberAsLegendLabel="$" ValueMemberAsLegendUnit="M" |
-| Radial Series | ValueMemberAsLegendLabel="Distance:" ValueMemberAsLegendUnit="KM" |
-| Polar Series | RadiusMemberAsLegendLabel="Radius:" RadiusMemberAsLegendUnit="KM" AngleMemberAsLegendLabel="Angle:" AngleMemberAsLegendUnit="°" |
-| Range Series | HighMemberAsLegendLabel="H:" HighMemberAsLegendUnit="K" LowMemberAsLegendLabel="L:" LowMemberAsLegendUnit="K" |
-| Financial Series | OpenMemberAsLegendLabel="O:" OpenMemberAsLegendUnit="K" HighMemberAsLegendLabel="H:" HighMemberAsLegendUnit="K" LowMemberAsLegendLabel="L:" LowMemberAsLegendUnit="K" CloseMemberAsLegendLabel="C:" CloseMemberAsLegendUnit="K" |
+| Category Series | ValueMemberAsLegendLabel="$" ValueMemberAsLegendUnit="M" |
+| Radial Series | ValueMemberAsLegendLabel="Distance:" ValueMemberAsLegendUnit="KM" |
+| Polar Series | RadiusMemberAsLegendLabel="Radius:" RadiusMemberAsLegendUnit="KM" AngleMemberAsLegendLabel="Angle:" AngleMemberAsLegendUnit="°" |
+| Range Series | HighMemberAsLegendLabel="H:" HighMemberAsLegendUnit="K" LowMemberAsLegendLabel="L:" LowMemberAsLegendUnit="K" |
+| Financial Series | OpenMemberAsLegendLabel="O:" OpenMemberAsLegendUnit="K" HighMemberAsLegendLabel="H:" HighMemberAsLegendUnit="K" LowMemberAsLegendLabel="L:" LowMemberAsLegendUnit="K" CloseMemberAsLegendLabel="C:" CloseMemberAsLegendUnit="K" |
Also, you can use the `UnitText` property on the [`IgbDataLegend`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend) to change text displayed in all Unit columns.
## Layout Mode
-Legend items can be positioned in a vertical or table structure via the [`LayoutMode`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=LayoutMode) property. The default value is `Table`, which retains the same look and feel as seen in previous releases.
+Legend items can be positioned in a vertical or table structure via the [`LayoutMode`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=layoutMode) property. The default value is `Table`, which retains the same look and feel as seen in previous releases.
eg.
-
-
## Blazor Data Legend Styling
-The [`IgbDataLegend`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend) provides properties for styling each type of column. Each of these properties begins with **Title**, **Label**, **Value**, or **Units**. You can style the text's color, font, and margin. For example, if you wanted to set the text color of all columns, you would set the [`TitleTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=TitleTextColor), [`LabelTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=LabelTextColor), [`ValueTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=ValueTextColor), and [`UnitsTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=UnitsTextColor) properties. The following example demonstrates a utilization of the styling properties mentioned above:
+The [`IgbDataLegend`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend) provides properties for styling each type of column. Each of these properties begins with **Title**, **Label**, **Value**, or **Units**. You can style the text's color, font, and margin. For example, if you wanted to set the text color of all columns, you would set the [`TitleTextColor`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=titleTextColor), [`LabelTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=labelTextColor), [`ValueTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=valueTextColor), and [`UnitsTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=unitsTextColor) properties. The following example demonstrates a utilization of the styling properties mentioned above:
```razor
@using IgniteUI.Blazor.Controls
@@ -588,7 +587,7 @@ public class StockItem {
## Blazor Data Legend Value Formatting
-The [`IgbDataLegend`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend) provides automatic abbreviation of large numbers using its [`ValueFormatAbbreviation`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=ValueFormatAbbreviation) property. This adds a multiplier in the units column such as kilo, million, billion, etc. You can customize the number of fractional digits that are displayed by setting the [`ValueFormatMinFractions`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=ValueFormatMinFractions) and [`ValueFormatMaxFractions`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=ValueFormatMaxFractions). This will allow you to determine the minimum and maximum number of digits that appear after the decimal point, respectively.
+The [`IgbDataLegend`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend) provides automatic abbreviation of large numbers using its [`ValueFormatAbbreviation`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=valueFormatAbbreviation) property. This adds a multiplier in the units column such as kilo, million, billion, etc. You can customize the number of fractional digits that are displayed by setting the [`ValueFormatMinFractions`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=valueFormatMinFractions) and [`ValueFormatMaxFractions`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=valueFormatMaxFractions). This will allow you to determine the minimum and maximum number of digits that appear after the decimal point, respectively.
The following example demonstrates how to use those properties:
```razor
@@ -688,7 +687,7 @@ public class HighestGrossingMovies
## Blazor Data Legend Value Mode
-You have the ability to change the default decimal display of values within the [`IgbDataLegend`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend) to a currency by changing the [`ValueFormatMode`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=ValueFormatMode) property. Also, you can change the culture of the displayed currency symbol by setting the [`ValueFormatCulture`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=ValueFormatCulture) property a culture tag. For example, the following example data legend with the [`ValueFormatCulture`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=ValueFormatCulture) set to "en-GB" to display British Pounds (£) symbol:
+You have the ability to change the default decimal display of values within the [`IgbDataLegend`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend) to a currency by changing the [`ValueFormatMode`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=valueFormatMode) property. Also, you can change the culture of the displayed currency symbol by setting the [`ValueFormatCulture`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=valueFormatCulture) property a culture tag. For example, the following example data legend with the [`ValueFormatCulture`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=valueFormatCulture) set to "en-GB" to display British Pounds (£) symbol:
```razor
@using IgniteUI.Blazor.Controls
@@ -873,8 +872,8 @@ You have the ability to change the default decimal display of values within the
## Blazor Data Legend Grouping
-[`DataLegendGroup`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=DataLegendGroup) can be set, on all types of series, to a string that will categorize a group of series in Data Legend. Each group will have its own summary row displayed before another group of series is displayed:
-By default, DataLegend will hide names of groups, but you can display group names by setting the [`GroupRowVisible`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=GroupRowVisible) property to true.
+[`DataLegendGroup`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=dataLegendGroup) can be set, on all types of series, to a string that will categorize a group of series in Data Legend. Each group will have its own summary row displayed before another group of series is displayed:
+By default, DataLegend will hide names of groups, but you can display group names by setting the [`GroupRowVisible`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=groupRowVisible) property to true.
```razor
@using IgniteUI.Blazor.Controls
@@ -1018,30 +1017,30 @@ public class OlympicMedalsTopCountriesWithTotals
Several properties are exposed including grouping portions of the legend.
-- `GroupRowMargin`
-- `GroupTextMargin`
-- [`GroupTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=GroupTextColor)
-- `GroupTextFontSize`
-- `GroupTextFontFamily`
-- `GroupTextFontStyle`
-- `GroupTextFontStretch`
-- `GroupTextFontWeight`
-- `HeaderTextMargin`
-- [`HeaderTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=HeaderTextColor)
-- `HeaderTextFontSize`
-- `HeaderTextFontFamily`
-- `HeaderTextFontStyle`
-- `HeaderTextFontStretch`
-- `HeaderTextFontWeight`
+- [`GroupRowMargin`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=groupRowMargin)
+- [`GroupTextMargin`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=groupTextMargin)
+- [`GroupTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=groupTextColor)
+- [`GroupTextFontSize`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=groupTextFontSize)
+- [`GroupTextFontFamily`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=groupTextFontFamily)
+- [`GroupTextFontStyle`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=groupTextFontStyle)
+- [`GroupTextFontStretch`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=groupTextFontStretch)
+- [`GroupTextFontWeight`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=groupTextFontWeight)
+- [`HeaderTextMargin`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=headerTextMargin)
+- [`HeaderTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=headerTextColor)
+- [`HeaderTextFontSize`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=headerTextFontSize)
+- [`HeaderTextFontFamily`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=headerTextFontFamily)
+- [`HeaderTextFontStyle`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=headerTextFontStyle)
+- [`HeaderTextFontStretch`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=headerTextFontStretch)
+- [`HeaderTextFontWeight`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=headerTextFontWeight)
The [`IgbDataLegend`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend) has several events that fire when rendering their corresponding row, even during mouse interactions where the values are updating. These events are listed below with a description of what they are designed to be used for:
-- `StyleGroupRow`: This event fires for each group to style text displayed in group rows.
-- `StyleHeaderRow`: This event fires when rendering the header row.
-- `StyleSeriesRow`: This event fires once for each series row, which allows conditional styling of the values of the series.
-- `StyleSeriesColumn`: This event fires once for each series column, which allows conditional styling of the different columns for the series in the chart.
-- `StyleSummaryRow`: This event fires once when rendering the summary row.
-- `StyleSummaryColumn`: This event fires once when rendering the summary column.
+- [`StyleGroupRow`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=styleGroupRow): This event fires for each group to style text displayed in group rows.
+- [`StyleHeaderRow`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=styleHeaderRow): This event fires when rendering the header row.
+- [`StyleSeriesRow`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=styleSeriesRow): This event fires once for each series row, which allows conditional styling of the values of the series.
+- [`StyleSeriesColumn`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=styleSeriesColumn): This event fires once for each series column, which allows conditional styling of the different columns for the series in the chart.
+- [`StyleSummaryRow`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=styleSummaryRow): This event fires once when rendering the summary row.
+- [`StyleSummaryColumn`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=styleSummaryColumn): This event fires once when rendering the summary column.
Some of the events exposes a [`IgbDataLegendStylingRowEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbDataLegendStylingRowEventArgs) parameter as its arguments, which lets you customize each item's text, text color, and the overall visibility of the row. The event arguments also expose event-specific properties. For example, since the `StyleSeriesRow` event fires for each series, the event arguments will return the series index and series title for the row that represents the series.
@@ -1180,31 +1179,4 @@ public class OlympicMedalsTopCountriesWithTotals
```
## API References
-
-- [`ExcludedColumns`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=ExcludedColumns)
-- [`ExcludedSeries`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=ExcludedSeries)
-- [`HeaderFormatDate`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=HeaderFormatDate)
-- [`HeaderFormatTime`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=HeaderFormatTime)
-- [`HeaderText`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=HeaderText)
-- [`IncludedColumns`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=IncludedColumns)
-- [`IncludedSeries`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=IncludedSeries)
-- [`LabelDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=LabelDisplayMode)
-- [`LabelTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataLegendStylingColumnEventArgs&member=LabelTextColor)
-- `StyleHeaderRow`:
-- `StyleSeriesColumn`:
-- `StyleSeriesRow`
-- `StyleSeriesRow`:
-- `StyleSummaryColumn`:
-- `StyleSummaryRow`:
-- [`SummaryTitleText`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=SummaryTitleText)
-- [`SummaryType`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=SummaryType)
-- [`TitleTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=TitleTextColor)
-- `UnitText`
-- [`UnitsTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataLegendStylingColumnEventArgs&member=UnitsTextColor)
-- [`ValueFormatAbbreviation`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=ValueFormatAbbreviation)
-- [`ValueFormatCulture`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=ValueFormatCulture)
-- [`ValueFormatMaxFractions`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=ValueFormatMaxFractions)
-- [`ValueFormatMaxFractions`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=ValueFormatMaxFractions)
-- [`ValueFormatMinFractions`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=ValueFormatMinFractions)
-- [`ValueFormatMode`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=ValueFormatMode)
-- [`ValueTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataLegendStylingColumnEventArgs&member=ValueTextColor)
+[`IgbDataLegend`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-data-selection.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-data-selection.md
index 4ab908149..f645cbdc8 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-data-selection.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-data-selection.md
@@ -1,22 +1,23 @@
---
-title: Blazor Chart Data Selection | Data Visualization Tools | Infragistics
-_description: Use Infragistics Ignite UI for Blazor chart with the data selection!
-_keywords: Blazor charts, chart data, selection, data selection, Ignite UI for Blazor, Infragistics
-_license: commercial
+title: "Blazor Chart Data Selection | Data Visualization Tools | Infragistics"
+description: Use Infragistics Ignite UI for Blazor chart with the data selection!
+keywords: "Blazor charts, chart data, selection, data selection, Ignite UI for Blazor, Infragistics"
+license: commercial
_language: en
-mentionedTypes: ["XamDataChart", "Legend", "CategoryChart", "FinancialChart", "XamDataLegend", "DataToolTipLayer"]
+
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Blazor selection feature in Blazor Data Chart allows users to interactively select, highlight, outline and vice-versa deselect single or multiple series within a chart."
_tocName: Chart Data Selection
_premium: true
---
-
# Blazor Chart Selection
-The Ignite UI for Blazor selection feature in Blazor {ComponentTitle} allows users to interactively select, highlight, outline and vice-versa deselect single or multiple series within a chart. This provides many different possibilities with how users interact with the data presented in more meaningful ways.
+The Ignite UI for Blazor selection feature in Blazor Data Chart allows users to interactively select, highlight, outline and vice-versa deselect single or multiple series within a chart. This provides many different possibilities with how users interact with the data presented in more meaningful ways.
## Configuring Selection
-The default behavior [`SelectionMode`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=SelectionMode) turned off and requires opting into one of the following options. There are several selection modes available in the `{ComponentName}`:
+The default behavior [`SelectionMode`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=selectionMode) turned off and requires opting into one of the following options. There are several selection modes available in the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart):
- **Auto**
- **None**
@@ -32,10 +33,10 @@ The default behavior [`SelectionMode`](mcp:get_api_reference?platform=blazor&com
- **ThickOutline**
`Brighten` will fade the selected item while `FadeOthers` will cause the opposite effect occur.
-`GrayscaleOthers` will behave similarly to `FadeOthers` but instead show a gray color to the rest of the series. Note this will override any [`SelectionBrush`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=SelectionBrush) setting.
+`GrayscaleOthers` will behave similarly to `FadeOthers` but instead show a gray color to the rest of the series. Note this will override any [`SelectionBrush`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=selectionBrush) setting.
`SelectionColorOutline` and `SelectionColorThickOutline` will draw a border around the series.
-In conjunction, a [`SelectionBehavior`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=SelectionBehavior) is available to provide greater control on which items get selected. The default behavior for Auto is `PerSeriesAndDataItemMultiSelect`.
+In conjunction, a [`SelectionBehavior`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=selectionBehavior) is available to provide greater control on which items get selected. The default behavior for Auto is `PerSeriesAndDataItemMultiSelect`.
- **Auto**
- **PerDataItemMultiSelect**
@@ -129,7 +130,7 @@ public class TemperatureAverageData
## Configuring Multiple Selection
-Other selection modes offer various methods of selection. For example using [`SelectionBehavior`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=SelectionBehavior) with `PerDataItemMultiSelect` will affect all series in entire category when multiple series are present while allowing selection across categories. Compared to `PerDataItemSingleSelect`, only a single category of items can be selected at a time. This is useful if multiple series are bound to different datasources and provides greater control of selection between categories.
+Other selection modes offer various methods of selection. For example using [`SelectionBehavior`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=selectionBehavior) with `PerDataItemMultiSelect` will affect all series in entire category when multiple series are present while allowing selection across categories. Compared to `PerDataItemSingleSelect`, only a single category of items can be selected at a time. This is useful if multiple series are bound to different datasources and provides greater control of selection between categories.
`PerSeriesAndDataItemGlobalSingleSelect` allows single series selection across all categories at a time.
```razor
@@ -264,7 +265,7 @@ public class EnergyRenewableConsumption
## Configuring Outline Selection
-When [`FocusBrush`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=FocusBrush) is applied, selected series will appear with a border when the [`SelectionMode`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=SelectionMode) property is set to one of the focus options.
+When [`FocusBrush`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=focusBrush) is applied, selected series will appear with a border when the [`SelectionMode`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=selectionMode) property is set to one of the focus options.
## Radial Series Selection
@@ -408,14 +409,13 @@ public class FootballPlayerStats
```
## Programmatic Selection
+Chart Selection can also be configured in code where selected items in the chart can be seen on startup or runtime. This can be achieved by adding items to the `SelectedSeriesCollection` of the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart). The [`Matcher`](mcp:get_api_reference?platform=blazor&component=IgbChartSelection&member=matcher) property of the [`IgbChartSelection`](mcp:get_api_reference?platform=blazor&component=IgbChartSelection) object allows for selecting a series based on a "matcher", ideal when you do not have access to the actual series from the chart. If you know the properties that your datasource contains, you can use the `ValueMemberPath` that the series would be.
-Chart Selection can also be configured in code where selected items in the chart can be seen on startup or runtime. This can be achieved by adding items to the `SelectedSeriesCollection` of the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart). The `Matcher` property of the [`IgbChartSelection`](mcp:get_api_reference?platform=blazor&component=IgbChartSelection) object allows for selecting a series based on a "matcher", ideal when you do not have access to the actual series from the chart. If you know the properties that your datasource contains, you can use the `ValueMemberPath` that the series would be.
-
-The matcher is ideal for using in charts, such as the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) when you do not have access to the actual series, like the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart). In this case you if you know the properties that your datasource contained you can surmise the ValueMemberPaths that the series would have. For example, if you datasource has numeric properties Nuclear, Coal, Oil, Solar then you know there are series created for each of these properties. If you want to highlight the series bound to Solar values, you can add a ChartSelection object to the [`SelectedSeriesItems`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=SelectedSeriesItems) collection using a matcher with the following properties set
+The matcher is ideal for using in charts, such as the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) when you do not have access to the actual series, like the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart). In this case you if you know the properties that your datasource contained you can surmise the ValueMemberPaths that the series would have. For example, if you datasource has numeric properties Nuclear, Coal, Oil, Solar then you know there are series created for each of these properties. If you want to highlight the series bound to Solar values, you can add a ChartSelection object to the [`SelectedSeriesItems`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=selectedSeriesItems) collection using a matcher with the following properties set
For example, if you datasource has numeric properties Nuclear, Coal, Oil, Solar then you know there are series created for each of these properties. If you want to select the series bound to Solar values, you can add a ChartSelection object to the SelectedSeriesItems collection using a matcher with the following properties set.
-```razor
+ ```razor
@using IgniteUI.Blazor.Controls
@using System
@using System.Collections.Generic
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-data-tooltip.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-data-tooltip.md
index e4ab7cdee..bc1248890 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-data-tooltip.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-data-tooltip.md
@@ -1,14 +1,15 @@
---
title: Blazor Chart Data Tooltip | Data Visualization Tools | Infragistics
-_description: Use Infragistics Ignite UI for Blazor chart with the data tooltip layer!
-_keywords: Blazor charts, chart legend, legend, legend types, Ignite UI for Blazor, Infragistics
-_license: commercial
-mentionedTypes: ["XamDataChart", "Legend", "CategoryChart", "FinancialChart", "XamDataLegend", "DataToolTipLayer"]
+description: Use Infragistics Ignite UI for Blazor chart with the data tooltip layer!
+keywords: Blazor charts, chart legend, legend, legend types, Ignite UI for Blazor, Infragistics
+license: commercial
+
namespace: Infragistics.Controls.Charts
+llms:
+ description: "In Ignite UI for Blazor, the DataToolTip displays values and titles of series as well as legend badges of series in a tooltip."
_tocName: Chart Data Tooltip
_premium: true
---
-
# Blazor Chart Data Tooltip
In Ignite UI for Blazor, the **DataToolTip** displays values and titles of series as well as legend badges of series in a tooltip. In addition, it provides many configuration properties of the [`IgbDataLegend`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend) for filtering series rows and values columns, styling, and formatting values. This tooltip type updates while moving the mouse inside of the plot area of the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart), [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart), and [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) components.
@@ -25,11 +26,11 @@ The **DataToolTip** displays content using a set of three types of rows and four
The rows of the **DataToolTip** include the header row, series row(s), and the summary row.
-The header row displays the axis label of the point that is hovered, and can be changed using the [`DataToolTipHeaderText`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipHeaderText) property.
+The header row displays the axis label of the point that is hovered, and can be changed using the [`DataToolTipHeaderText`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=dataToolTipHeaderText) property.
The series row can actually be a set of rows corresponding to each series plotted in the chart. These rows will display the legend badge, series title, actual/abbreviated value of the the series, and abbreviation symbol and unit, if specified.
-Finally, there is a summary row that displays the total of all series values. The default summary title can be changed using the [`DataToolTipSummaryTitleText`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipSummaryTitleText) property of the legend. Also, you can use the [`DataToolTipSummaryType`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipSummaryType) property to customize whether you display the Total, Min, Max, or Average of series values in the summary row.
+Finally, there is a summary row that displays the total of all series values. The default summary title can be changed using the [`DataToolTipSummaryTitleText`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=dataToolTipSummaryTitleText) property of the legend. Also, you can use the [`DataToolTipSummaryType`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=dataToolTipSummaryType) property to customize whether you display the Total, Min, Max, or Average of series values in the summary row.
The following example demonstrates the data tooltip with a summary applied:
@@ -113,15 +114,15 @@ public class HighestGrossingMovies
### Blazor Data Tooltip Columns
-The columns of the [`IgbDataToolTipLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataToolTipLayer) include the title, label, value, and units columns. Each series in the chart can have multiple columns for label, value, and units depending on the [`DataToolTipIncludedColumns`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipIncludedColumns) or [`DataToolTipExcludedColumns`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipExcludedColumns) collections of the chart.
+The columns of the [`IgbDataToolTipLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataToolTipLayer) include the title, label, value, and units columns. Each series in the chart can have multiple columns for label, value, and units depending on the [`DataToolTipIncludedColumns`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=dataToolTipIncludedColumns) or [`DataToolTipExcludedColumns`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=dataToolTipExcludedColumns) collections of the chart.
-The title column displays legend badges and series titles, which come from the [`ChartTitle`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=ChartTitle) property of the different [`Series`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Series) plotted in the chart.
+The title column displays legend badges and series titles, which come from the [`Title`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=chartTitle) property of the different [`Series`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Series) plotted in the chart.
-The label column displays the name or abbreviation of the different property paths in the [`DataToolTipIncludedColumns`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipIncludedColumns) or [`DataToolTipExcludedColumns`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipExcludedColumns) collections of the tooltip.
+The label column displays the name or abbreviation of the different property paths in the [`DataToolTipIncludedColumns`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=dataToolTipIncludedColumns) or [`DataToolTipExcludedColumns`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=dataToolTipExcludedColumns) collections of the tooltip.
-The value column displays series values as abbreviated text which can be formatted using the [`DataToolTipValueFormatAbbreviation`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipValueFormatAbbreviation) property to apply the same abbreviation for all numbers by setting this property to `Auto` or `Shared`. Alternatively, a user can select other abbreviations such as `Independent`, `Kilo`, `Million`, etc. Precision of abbreviated values is controlled using the [`DataToolTipValueFormatMinFractions`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipValueFormatMinFractions) and [`DataToolTipValueFormatMaxFractions`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipValueFormatMaxFractions) for minimum and maximum digits, respectively.
+The value column displays series values as abbreviated text which can be formatted using the [`DataToolTipValueFormatAbbreviation`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=dataToolTipValueFormatAbbreviation) property to apply the same abbreviation for all numbers by setting this property to `Auto` or `Shared`. Alternatively, a user can select other abbreviations such as `Independent`, `Kilo`, `Million`, etc. Precision of abbreviated values is controlled using the [`DataToolTipValueFormatMinFractions`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=dataToolTipValueFormatMinFractions) and [`DataToolTipValueFormatMaxFractions`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=dataToolTipValueFormatMaxFractions) for minimum and maximum digits, respectively.
-The units column displays an abbreviation symbol and/or unit text, which can be set either on the **DataToolTip** by setting the [`DataToolTipUnitsText`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipUnitsText) for all columns or using the following properties on each series in the chart:
+The units column displays an abbreviation symbol and/or unit text, which can be set either on the **DataToolTip** by setting the [`DataToolTipUnitsText`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=dataToolTipUnitsText) for all columns or using the following properties on each series in the chart:
- Category Series (e.g. ColumnSeries)
- ValueMemberAsLegendUnit="K"
@@ -141,7 +142,7 @@ The units column displays an abbreviation symbol and/or unit text, which can be
For the above-listed properties, there are corresponding properties ending with **MemberAsLegendLabel** to determine the text in the label columns mentioned previously.
-The columns included in the [`DataToolTipIncludedColumns`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipIncludedColumns) and [`DataToolTipExcludedColumns`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipExcludedColumns) collections generally correspond to the value paths of your underlying data items, but the financial series has the option to include some special ones in addition to the `High`, `Low`, `Open`, and `Close` paths that are required for the financial series to plot correctly. You have the ability to show `TypicalPrice`, `Change`, and `Volume` options within the tooltip.
+The columns included in the [`DataToolTipIncludedColumns`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=dataToolTipIncludedColumns) and [`DataToolTipExcludedColumns`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=dataToolTipExcludedColumns) collections generally correspond to the value paths of your underlying data items, but the financial series has the option to include some special ones in addition to the `High`, `Low`, `Open`, and `Close` paths that are required for the financial series to plot correctly. You have the ability to show `TypicalPrice`, `Change`, and `Volume` options within the tooltip.
The following example demonstrates a data tooltip with the added columns of Open, High, Low, Close, and Change:
@@ -307,8 +308,8 @@ The following example demonstrates a data tooltip with the added columns of Open
## Blazor Data Tooltip Grouping for Data Chart
-[`DataLegendGroup`](mcp:get_api_reference?platform=blazor&component=IgbDataToolTipLayer&member=DataLegendGroup) can be set, on all types of series, to a string that will categorize a group of series in Data Legend. Each group will have its own summary row displayed before another group of series is displayed:
-By default, DataLegend will hide names of groups, but you can display group names by setting the [`GroupRowVisible`](mcp:get_api_reference?platform=blazor&component=IgbDataToolTipLayer&member=GroupRowVisible) property to true. [`GroupingMode`](mcp:get_api_reference?platform=blazor&component=IgbDataToolTipLayer&member=GroupingMode) should be set to "Grouped" and [`LabelDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbDataToolTipLayer&member=LabelDisplayMode) should be set to "Visible" on the Data Tooltip Layer.
+[`DataLegendGroup`](mcp:get_api_reference?platform=blazor&component=IgbDataToolTipLayer&member=dataLegendGroup) can be set, on all types of series, to a string that will categorize a group of series in Data Legend. Each group will have its own summary row displayed before another group of series is displayed:
+By default, DataLegend will hide names of groups, but you can display group names by setting the [`GroupRowVisible`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=groupRowVisible) property to true. [`GroupingMode`](mcp:get_api_reference?platform=blazor&component=IgbDataToolTipLayer&member=groupingMode) should be set to "Grouped" and [`LabelDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=labelDisplayMode) should be set to "Visible" on the Data Tooltip Layer.
```razor
@using IgniteUI.Blazor.Controls
@@ -444,7 +445,7 @@ public class OlympicMedalsTopCountriesWithTotals
## Blazor Data Tooltip Grouping & Positioning for Category Chart & Financial Chart
-You can set [`DataToolTipGroupingMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipGroupingMode) property to either `Grouped` or `Individual` to group content for multiple series into single tooltip or separate content for each series in multiple tooltips. In the `Grouped` mode, you can customize where the tooltip is shown by setting the [`DataToolTipGroupedPositionModeX`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipGroupedPositionModeX) and [`DataToolTipGroupedPositionModeY`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipGroupedPositionModeY) properties. This essentially allows you to customize the horizontal and vertical alignments of the tooltip and whether you want it to track to the closest series points to the mouse position or pin the tooltip to edge of plot area.
+You can set [`DataToolTipGroupingMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=dataToolTipGroupingMode) property to either `Grouped` or `Individual` to group content for multiple series into single tooltip or separate content for each series in multiple tooltips. In the `Grouped` mode, you can customize where the tooltip is shown by setting the [`DataToolTipGroupedPositionModeX`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=dataToolTipGroupedPositionModeX) and [`DataToolTipGroupedPositionModeY`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=dataToolTipGroupedPositionModeY) properties. This essentially allows you to customize the horizontal and vertical alignments of the tooltip and whether you want it to track to the closest series points to the mouse position or pin the tooltip to edge of plot area.
The following example demonstrates a data tooltip positioned to the top-right of the chart:
@@ -576,7 +577,7 @@ public class HighestGrossingMovies
## Blazor Data Tooltip Value Formatting
-The **DataToolTip** provides automatic abbreviation of large numbers using its [`DataToolTipValueFormatAbbreviation`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipValueFormatAbbreviation) property. This adds a multiplier in the units column such as kilo, million, billion, etc. You can customize the number of fractional digits that are displayed by setting the [`DataToolTipValueFormatMinFractions`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipValueFormatMinFractions) and [`DataToolTipValueFormatMaxFractions`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipValueFormatMaxFractions). This will allow you to determine the minimum and maximum number of digits that appear after the decimal point, respectively.
+The **DataToolTip** provides automatic abbreviation of large numbers using its [`DataToolTipValueFormatAbbreviation`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=dataToolTipValueFormatAbbreviation) property. This adds a multiplier in the units column such as kilo, million, billion, etc. You can customize the number of fractional digits that are displayed by setting the [`DataToolTipValueFormatMinFractions`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=dataToolTipValueFormatMinFractions) and [`DataToolTipValueFormatMaxFractions`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=dataToolTipValueFormatMaxFractions). This will allow you to determine the minimum and maximum number of digits that appear after the decimal point, respectively.
The following example demonstrates a **DataToolTip** with the minimum and maximum fractions set:
@@ -661,7 +662,7 @@ public class HighestGrossingMovies
## Blazor Data Tooltip Value Mode
-You can change the default decimal display of values within the **DataToolTip** to be currency by changing the [`DataToolTipValueFormatMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipValueFormatMode) property of the layer. The **DataToolTip** also exposes the ability to modify the culture of the displayed currency symbol by using its [`DataToolTipValueFormatCulture`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipValueFormatCulture) property and setting it to its corresponding culture tag. For example, the following sample demonstrates a chart with the [`DataToolTipValueFormatCulture`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipValueFormatCulture) set to "en-GB":
+You can change the default decimal display of values within the **DataToolTip** to be currency by changing the [`DataToolTipValueFormatMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=dataToolTipValueFormatMode) property of the layer. The **DataToolTip** also exposes the ability to modify the culture of the displayed currency symbol by using its [`DataToolTipValueFormatCulture`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=dataToolTipValueFormatCulture) property and setting it to its corresponding culture tag. For example, the following sample demonstrates a chart with the [`DataToolTipValueFormatCulture`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=dataToolTipValueFormatCulture) set to "en-GB":
```razor
@using IgniteUI.Blazor.Controls
@@ -827,15 +828,13 @@ You can change the default decimal display of values within the **DataToolTip**
## Layout Mode
-Legend items can be positioned in a vertical or table structure via the [`LayoutMode`](mcp:get_api_reference?platform=blazor&component=IgbDataToolTipLayer&member=LayoutMode) property. The default value is `Table`, which retains the same look and feel as seen in previous releases.
+Legend items can be positioned in a vertical or table structure via the [`LayoutMode`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=layoutMode) property. The default value is `Table`, which retains the same look and feel as seen in previous releases.
eg.
-
-
## Blazor Data Tooltip Styling
-The **DataToolTip** provides properties for styling each type of column. Each of these properties begins with Title, Label, Value, or Units, and you can style the text's color, font, and margin. For example, if you wanted to set the text color of each of these, you would set the [`DataToolTipTitleTextColor`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipTitleTextColor), [`DataToolTipLabelTextColor`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipLabelTextColor), [`DataToolTipValueTextColor`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipValueTextColor), and [`DataToolTipUnitsTextColor`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipUnitsTextColor) properties.
+The **DataToolTip** provides properties for styling each type of column. Each of these properties begins with Title, Label, Value, or Units, and you can style the text's color, font, and margin. For example, if you wanted to set the text color of each of these, you would set the [`DataToolTipTitleTextColor`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=dataToolTipTitleTextColor), [`DataToolTipLabelTextColor`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=dataToolTipLabelTextColor), [`DataToolTipValueTextColor`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=dataToolTipValueTextColor), and [`DataToolTipUnitsTextColor`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=dataToolTipUnitsTextColor) properties.
The following example demonstrates usage of the styling properties mentioned above:
@@ -1055,41 +1054,23 @@ public class StockItem {
Several properties are exposed including grouping portions of the tooltip.
-- `GroupTextMargin`
-- [`GroupTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataToolTipLayer&member=GroupTextColor)
-- `GroupTextFontSize`
-- `GroupTextFontFamily`
-- `GroupTextFontStyle`
-- `GroupTextFontStretch`
-- `GroupTextFontWeight`
-- `HeaderTextMargin`
-- [`HeaderTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataToolTipLayer&member=HeaderTextColor)
-- `HeaderTextFontSize`
-- `HeaderTextFontFamily`
-- `HeaderTextFontStyle`
-- `HeaderTextFontStretch`
-- `HeaderTextFontWeight`
+- [`GroupTextMargin`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=groupTextMargin)
+- [`GroupTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=groupTextColor)
+- [`GroupTextFontSize`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=groupTextFontSize)
+- [`GroupTextFontFamily`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=groupTextFontFamily)
+- [`GroupTextFontStyle`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=groupTextFontStyle)
+- [`GroupTextFontStretch`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=groupTextFontStretch)
+- [`GroupTextFontWeight`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=groupTextFontWeight)
+- [`HeaderTextMargin`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=headerTextMargin)
+- [`HeaderTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=headerTextColor)
+- [`HeaderTextFontSize`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=headerTextFontSize)
+- [`HeaderTextFontFamily`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=headerTextFontFamily)
+- [`HeaderTextFontStyle`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=headerTextFontStyle)
+- [`HeaderTextFontStretch`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=headerTextFontStretch)
+- [`HeaderTextFontWeight`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=headerTextFontWeight)
## API References
-
-- [`DataToolTipExcludedColumns`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipExcludedColumns)
-- [`DataToolTipGroupedPositionModeX`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipGroupedPositionModeX)
-- [`DataToolTipGroupedPositionModeY`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipGroupedPositionModeY)
-- [`DataToolTipGroupingMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipGroupingMode)
-- [`DataToolTipHeaderText`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipHeaderText)
-- [`DataToolTipIncludedColumns`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipIncludedColumns)
-- [`DataToolTipLabelTextColor`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipLabelTextColor)
-- [`IgbDataToolTipLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataToolTipLayer)
-- [`DataToolTipSummaryTitleText`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipSummaryTitleText)
-- [`DataToolTipSummaryType`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipSummaryType)
-- [`DataToolTipTitleTextColor`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipTitleTextColor)
-- [`DataToolTipUnitsTextColor`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipUnitsTextColor)
-- [`DataToolTipUnitsText`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipUnitsText)
-- [`DataToolTipValueFormatAbbreviation`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipValueFormatAbbreviation)
-- [`DataToolTipValueFormatCulture`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipValueFormatCulture)
-- [`DataToolTipValueFormatMaxFractions`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipValueFormatMaxFractions)
-- [`DataToolTipValueFormatMaxFractions`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipValueFormatMaxFractions)
-- [`DataToolTipValueFormatMinFractions`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipValueFormatMinFractions)
-- [`DataToolTipValueFormatMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipValueFormatMode)
-- [`DataToolTipValueTextColor`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataToolTipValueTextColor)
-- `MemberAsLegendLabel`
+[`IgbDataToolTipLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataToolTipLayer)
+[`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart)
+[`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart)
+[`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-features.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-features.md
index ee16cad9f..846870dcd 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-features.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-features.md
@@ -1,15 +1,16 @@
---
-title: Blazor Chart Features | Data Visualization | Infragistics
-_description: Infragistics' Blazor Chart Features
-_keywords: Blazor Charts, Features, Infragistics
-_license: commercial
-mentionedTypes: ["FinancialChart", "CategoryChart", "XamDataChart"]
+title: "Blazor Chart Features | Data Visualization | Infragistics"
+description: Infragistics' Blazor Chart Features
+keywords: "Blazor Charts, Features, Infragistics"
+license: commercial
+mentionedTypes: ["FinancialChart", "CategoryChart", "DataChart"]
+llms:
+ description: "The Ignite UI for Blazor Charts allow you to display many different features to portray the full data story to be told with your chart."
_tocName: Chart Features
---
-
# Blazor Chart Features
-The Ignite UI for Blazor Charts allow you to display many different features to portray the full data story to be told with your chart. Each of these features are fully customizable, and can be styled to suit your design needs - allowing you full control. Interactions such as highlighting and annotations allow you to call out important data details allowing for a deeper data analysis within your chart.
+The Ignite UI for Blazor Charts allow you to display many different features to portray the full data story to be told with your chart. Each of these features are fully customizable, and can be styled to suit your design needs — allowing you full control. Interactions such as highlighting and annotations allow you to call out important data details allowing for a deeper data analysis within your chart.
The Blazor Charts offer the following chart features:
@@ -97,8 +98,6 @@ Modify or customize all aspects of both the X-Axis and Y-Axis using the differen
}
```
-
-
## Annotations
These additional layers are on top of the chart which are mouse / touch dependent. Used individually or combined, they provide powerful interactions that help to highlight certain values within the chart. You can learn more about this feature in the [Chart Annotations](features/chart-annotations.md) topic.
@@ -218,8 +217,6 @@ These additional layers are on top of the chart which are mouse / touch dependen
}
```
-
-
## Animations
Animate your chart as it loads a new data source by enabling animations. These are customizable by setting different types of animations and the speed at which those animations take place. You can learn more about this feature in the [Chart Animations](features/chart-animations.md) topic.
@@ -333,11 +330,9 @@ Animate your chart as it loads a new data source by enabling animations. These a
}
```
-
-
## Highlighting
-Bring focus to visuals such as lines, columns, or markers by highlighting them as the mouse hovers over the data items. This features is enabled on all chart types. You can learn more about this feature in the [Chart Highlighting](features/chart-highlighting.md) topic.
+Bring focus to visuals such as lines, columns, or markers by highlighting them as the mouse hovers over the data items. This feature is enabled on all chart types. You can learn more about this feature in the [Chart Highlighting](features/chart-highlighting.md) topic.
```razor
@using IgniteUI.Blazor.Controls
@@ -475,8 +470,6 @@ Bring focus to visuals such as lines, columns, or markers by highlighting them a
}
```
-
-
## Markers
Identify data points quickly, even if the value falls between major gridlines with the use of markers on the chart series. These are fully customizable in style, color, and shape. You can learn more about this feature in the [Chart Markers](features/chart-markers.md) topic.
@@ -608,8 +601,6 @@ public class CountryRenewableElectricity
}
```
-
-
## Navigation
You can navigate the chart by zooming and panning with the mouse, keyboard, and touch interactions. You can learn more about this feature in the [Chart Navigation](features/chart-navigation.md) topic.
@@ -787,8 +778,6 @@ You can navigate the chart by zooming and panning with the mouse, keyboard, and
}
```
-
-
## Overlays
Overlays allows you to annotate important values and thresholds by plotting horizontal or vertical lines in charts. You can learn more about this feature in the [Chart Overlays](features/chart-overlays.md) topic.
@@ -850,8 +839,6 @@ Overlays allows you to annotate important values and thresholds by plotting hori
}
```
-
-
## Performance
Blazor charts are optimized for high performance of rendering millions of data points and updating them every few milliseconds. However, there are several chart features that affect performance of the charts and they should be considered when optimizing performance in your application. You can learn more about this feature in the [Chart Performance](features/chart-performance.md) topic.
@@ -945,8 +932,6 @@ Blazor charts are optimized for high performance of rendering millions of data p
}
```
-
-
## Tooltips
Display all information relevant to the particular series type via Tooltips. There are different tooltips that can be enabled, such as Item-level and Category-level tooltips. You can learn more about this feature in the [Chart Tooltips](features/chart-tooltips.md) topic.
@@ -1065,8 +1050,6 @@ public class HighestGrossingMovies
}
```
-
-
## Trendlines
Use trendlines to identify a trend or find patterns in your data. There are many different trendlines supported by the Blazor chart, such as CubicFit and LinearFit. You can learn more about this feature in the [Chart Trendlines](features/chart-trendlines.md) topic.
@@ -1133,10 +1116,7 @@ Use trendlines to identify a trend or find patterns in your data. There are many
}
```
-
-
## API References
-
-- [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart)
-- [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart)
-- [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart)
+[`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart)
+[`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart)
+[`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-highlight-filter.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-highlight-filter.md
index f4ee3ca9b..42f849a01 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-highlight-filter.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-highlight-filter.md
@@ -1,14 +1,15 @@
---
-title: Blazor Chart Highlight Filter | Data Visualization | Infragistics
-_description: Infragistics' Blazor Chart Highlight Filter
-_keywords: Blazor Charts, Highlighting, Filtering, Infragistics
-_license: commercial
-mentionedTypes: ["CategoryChart", "XamDataChart", "Series", "HighlightedValuesDisplayMode"]
+title: "Blazor Chart Highlight Filter | Data Visualization | Infragistics"
+description: Infragistics' Blazor Chart Highlight Filter
+keywords: "Blazor Charts, Highlighting, Filtering, Infragistics"
+license: commercial
+mentionedTypes: ["CategoryChart", "DataChart", "Series", "HighlightedValuesDisplayMode"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Blazor Chart components support a data highlighting overlay that can enhance the visualization of the series plotted in those charts by allowing you to view a subset of the data plotted."
_tocName: Chart Highlight Filter
_premium: true
---
-
# Blazor Chart Highlight Filter
The Ignite UI for Blazor Chart components support a data highlighting overlay that can enhance the visualization of the series plotted in those charts by allowing you to view a subset of the data plotted. When enabled, this will highlight a subset of data while showing the total set with a reduced opacity in the case of column and area series types, and a dashed line in the case of line series types. This can help you to visualize things like target values versus actual values with your data set. This feature is demonstrated in the following example:
@@ -196,21 +197,21 @@ public class CountryRenewableElectricityFiltered
}
```
-Note that data highlighting feature is supported by the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) and [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart), but it is configured in different ways in those controls due to the nature of how those controls work. One thing remains constant with this feature though, in that you need to set the [`HighlightedValuesDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=HighlightedValuesDisplayMode) property to `Overlay` if you want to see the highlight. The following will explain the different configurations for the highlight filter feature.
+Note that data highlighting feature is supported by the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) and [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart), but it is configured in different ways in those controls due to the nature of how those controls work. One thing remains constant with this feature though, in that you need to set the [`HighlightedValuesDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=highlightedValuesDisplayMode) property to `Overlay` if you want to see the highlight. The following will explain the different configurations for the highlight filter feature.
## Using Highlight Filter with DataChart
-In the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart), much of the highlight filter API happens on the series themselves, mainly by setting the [`HighlightedDataSource`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=HighlightedDataSource) property to a collection representing a subset of the data you want to highlight. The count of the items in the [`HighlightedDataSource`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=HighlightedDataSource) needs to match the count of the data bound to the [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataSource) of the series that you are looking to highlight, and in the case of category series, it will use the `ValueMemberPath` that you have defined as the highlight path by default. The sample at the top of this page uses the [`HighlightedDataSource`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=HighlightedDataSource) in the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) to show the overlay.
+In the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart), much of the highlight filter API happens on the series themselves, mainly by setting the [`HighlightedItemsSource`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=highlightedDataSource) property to a collection representing a subset of the data you want to highlight. The count of the items in the [`HighlightedItemsSource`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=highlightedDataSource) needs to match the count of the data bound to the [`ItemsSource`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataSource) of the series that you are looking to highlight, and in the case of category series, it will use the `ValueMemberPath` that you have defined as the highlight path by default. The sample at the top of this page uses the [`HighlightedItemsSource`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=highlightedDataSource) in the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) to show the overlay.
-In the case that the schema does not match between the [`HighlightedDataSource`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=HighlightedDataSource) and the [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataSource) of the series, you can configure this using the `HighlightedValueMemberPath` property on the series. Additionally, if you would like to use the [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataSource) of the series itself as the highlight source and have a path on your data item that represents the subset, you can do this. This is done by simply setting the `HighlightedValueMemberPath` property to that path and not providing a [`HighlightedDataSource`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=HighlightedDataSource).
+In the case that the schema does not match between the [`HighlightedItemsSource`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=highlightedDataSource) and the [`ItemsSource`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataSource) of the series, you can configure this using the `HighlightedValueMemberPath` property on the series. Additionally, if you would like to use the [`ItemsSource`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=DataSource) of the series itself as the highlight source and have a path on your data item that represents the subset, you can do this. This is done by simply setting the `HighlightedValueMemberPath` property to that path and not providing a [`HighlightedItemsSource`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=highlightedDataSource).
-The reduced opacity of the column and area series types is configurable by setting the [`HighlightedValuesFadeOpacity`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=HighlightedValuesFadeOpacity) property on the series. You can also set the [`HighlightedValuesDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=HighlightedValuesDisplayMode) property to `Hidden` if you do not wish to see the overlay at all.
+The reduced opacity of the column and area series types is configurable by setting the [`HighlightedValuesFadeOpacity`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=highlightedValuesFadeOpacity) property on the series. You can also set the [`HighlightedValuesDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=highlightedValuesDisplayMode) property to `Hidden` if you do not wish to see the overlay at all.
-The part of the series shown by the highlight filter will be represented in the legend and tooltip layers of the chart separately. You can configure the title that this is given in the tooltip and legend by setting the [`HighlightedTitleSuffix`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=HighlightedTitleSuffix). This will append the value that you provide to the end of the [`ChartTitle`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=ChartTitle) of the series.
+The part of the series shown by the highlight filter will be represented in the legend and tooltip layers of the chart separately. You can configure the title that this is given in the tooltip and legend by setting the [`HighlightedTitleSuffix`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=highlightedTitleSuffix). This will append the value that you provide to the end of the [`Title`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=chartTitle) of the series.
-If the `DataLegend` or [`IgbDataToolTipLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataToolTipLayer) is used then the highlighted series will appear grouped. This can be managed by setting the [`HighlightedValuesDataLegendGroup`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=HighlightedValuesDataLegendGroup) property on the series to categorize them appropriately.
+If the [`IgbDataLegend`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend) or [`IgbDataToolTipLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataToolTipLayer) is used then the highlighted series will appear grouped. This can be managed by setting the [`HighlightedValuesDataLegendGroup`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=highlightedValuesDataLegendGroup) property on the series to categorize them appropriately.
-The following example demonstrates the usage of the data legend grouping and highlighting overlay feature within the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control using the [`HighlightedValuesDataLegendGroup`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=HighlightedValuesDataLegendGroup):
+The following example demonstrates the usage of the data legend grouping and highlighting overlay feature within the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control using the [`HighlightedValuesDataLegendGroup`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=highlightedValuesDataLegendGroup):
```razor
@using IgniteUI.Blazor.Controls
@@ -362,7 +363,7 @@ public class OlympicMedalsTopCountriesWithTotals
}
```
-The following example demonstrates the usage of the data legend grouping and highlighting overlay feature within the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control using the [`HighlightedValuesDataLegendGroup`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=HighlightedValuesDataLegendGroup):
+The following example demonstrates the usage of the data legend grouping and highlighting overlay feature within the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control using the [`HighlightedValuesDataLegendGroup`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=highlightedValuesDataLegendGroup):
```razor
@using IgniteUI.Blazor.Controls
@@ -506,7 +507,7 @@ public class OlympicMedalsTopCountriesWithTotals
}
```
-The following example demonstrates the usage of the data highlighting overlay feature within the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control using the `HighlightedValueMemberPath`:
+The following example demonstrates the usage of the data highlighting overlay feature within the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control using the [`HighlightedValueMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbColumnSeries&member=highlightedValueMemberPath):
```razor
@using IgniteUI.Blazor.Controls
@@ -639,13 +640,9 @@ public class OlympicMedalsTopCountriesWithTotals
## Using Highlight Filter in CategoryChart
-The [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) highlight filter happens on the chart by setting the [`InitialHighlightFilter`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=InitialHighlightFilter) property. Since the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) takes all of the properties on your underlying data item into account by default, you will need to define the [`InitialGroups`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=InitialGroups) on the chart as well so that the data can be grouped and aggregated in a way that you can have a subset of the data to filter on. You can set the [`InitialGroups`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=InitialGroups) to a value path in your underlying data item to group by a path that has duplicate values.
-
-
+The [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) highlight filter happens on the chart by setting the [`InitialHighlightFilter`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=initialHighlightFilter) property. Since the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) takes all of the properties on your underlying data item into account by default, you will need to define the [`InitialGroups`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=initialGroups) on the chart as well so that the data can be grouped and aggregated in a way that you can have a subset of the data to filter on. You can set the [`InitialGroups`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=initialGroups) to a value path in your underlying data item to group by a path that has duplicate values.
-
-
-Similar to the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart), the [`HighlightedValuesDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=HighlightedValuesDisplayMode) property is also exposed on the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart). In the case that you do not want to see the overlay, you can set this property to `Hidden`.
+Similar to the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart), the [`HighlightedValuesDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=highlightedValuesDisplayMode) property is also exposed on the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart). In the case that you do not want to see the overlay, you can set this property to `Hidden`.
The following example demonstrates the usage of the data highlighting overlay feature within the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) control:
@@ -758,10 +755,6 @@ public class SalesData
}
```
-
-
## Additional Resources
You can find more information about related chart features in these topics:
@@ -776,11 +769,11 @@ The following is a list of API members mentioned in the above sections:
| [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) Properties | [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) Properties |
| ----------------------------------------------|---------------------------|
-| [`HighlightedDataSource`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=HighlightedDataSource) | [`HighlightedDataSource`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=HighlightedDataSource) |
-| [`HighlightedTitleSuffix`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=HighlightedTitleSuffix) | [`HighlightedTitleSuffix`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=HighlightedTitleSuffix) |
-| `CategoryChart.HighlightedValueMemberPath` | `Series.HighlightedValueMemberPath` |
-| [`HighlightedValuesDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=HighlightedValuesDisplayMode) | [`HighlightedValuesDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=HighlightedValuesDisplayMode) |
-| [`HighlightedValuesFadeOpacity`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=HighlightedValuesFadeOpacity) | [`HighlightedValuesFadeOpacity`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=HighlightedValuesFadeOpacity) |
-| [`HighlightedValuesDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=HighlightedValuesDisplayMode) | [`HighlightedValuesDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=HighlightedValuesDisplayMode) |
-| [`InitialHighlightFilter`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=InitialHighlightFilter) | |
-| [`InitialGroups`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=InitialGroups) | |
+| [`HighlightedItemsSource`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=highlightedDataSource) | [`HighlightedItemsSource`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=highlightedDataSource) |
+| [`HighlightedTitleSuffix`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=highlightedTitleSuffix) | [`HighlightedTitleSuffix`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=highlightedTitleSuffix) |
+| [`HighlightedValueMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=highlightedValueMemberPath) | [`HighlightedValueMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbColumnSeries&member=highlightedValueMemberPath) |
+| [`HighlightedValuesDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=highlightedValuesDisplayMode) | [`HighlightedValuesDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=highlightedValuesDisplayMode) |
+| [`HighlightedValuesFadeOpacity`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=highlightedValuesFadeOpacity) | [`HighlightedValuesFadeOpacity`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=highlightedValuesFadeOpacity) |
+| [`HighlightedValuesDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=highlightedValuesDisplayMode) | [`HighlightedValuesDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=highlightedValuesDisplayMode) |
+| [`InitialHighlightFilter`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=initialHighlightFilter) | |
+| [`InitialGroups`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=initialGroups) | |
\ No newline at end of file
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-highlighting.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-highlighting.md
index 7fe978d67..cf074a339 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-highlighting.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-highlighting.md
@@ -1,14 +1,15 @@
---
title: Blazor Chart Highlighting | Data Visualization | Infragistics
-_description: Infragistics' Blazor Chart Highlighting
-_keywords: Blazor Charts, Highlighting, Infragistics
-_license: commercial
-mentionedTypes: ["CategoryChart"]
+description: Infragistics' Blazor Chart Highlighting
+keywords: Blazor Charts, Highlighting, Infragistics
+license: commercial
+
namespace: Infragistics.Controls.Charts
+llms:
+ description: "All Blazor Charts support a variety of highlighting options."
_tocName: Chart Highlighting
_premium: true
---
-
## Blazor Chart Highlighting Example
The following example demonstrates the different highlighting options that are available on the Blazor chart.
@@ -129,13 +130,11 @@ public class TemperatureAnnotatedData
}
```
-
-
# Blazor Chart Highlighting Modes & Behaviors
-All Blazor Charts support a variety of highlighting options. [`HighlightingMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=HighlightingMode) can be set to brighten or fade when the mouse is hovering over a series/data item rendered in the plot area. [`HighlightingBehavior`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=HighlightingBehavior) can be set to directly over or the nearest data item to trigger the highlighting effect. Highlighting modes and behaviors is supported by the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart), [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart), and [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) controls and they have the same API for using the highlighting feature.
+All Blazor Charts support a variety of highlighting options. [`HighlightingMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=highlightingMode) can be set to brighten or fade when the mouse is hovering over a series/data item rendered in the plot area. [`HighlightingBehavior`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=highlightingBehavior) can be set to directly over or the nearest data item to trigger the highlighting effect. Highlighting modes and behaviors is supported by the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart), [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart), and [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) controls and they have the same API for using the highlighting feature.
-The following example demonstrates the [`HighlightingMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=HighlightingMode) Blazor chart.
+The following example demonstrates the [`HighlightingMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=highlightingMode) Blazor chart.
```razor
@using IgniteUI.Blazor.Controls
@@ -238,7 +237,7 @@ public class TemperatureAnnotatedData
}
```
-The following example demonstrates the [`HighlightingBehavior`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=HighlightingBehavior) Blazor chart.
+The following example demonstrates the [`HighlightingBehavior`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=highlightingBehavior) Blazor chart.
```razor
@using IgniteUI.Blazor.Controls
@@ -344,7 +343,7 @@ public class TemperatureAnnotatedData
# Blazor Chart Legend Highlighting
-All Blazor Charts support legend highlighting. [`LegendHighlightingMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=LegendHighlightingMode) can enabled so that when mouse is hovering over a legend marker item then the rendered series will highlight in the plot area. Legend highlighting is supported by the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart), [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart), and [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) controls and they have the same API for using the highlighting feature.
+All Blazor Charts support legend highlighting. [`LegendHighlightingMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=legendHighlightingMode) can enabled so that when mouse is hovering over a legend marker item then the rendered series will highlight in the plot area. Legend highlighting is supported by the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart), [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart), and [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) controls and they have the same API for using the highlighting feature.
The following example demonstrates the legend series highlighting Blazor chart.
@@ -444,11 +443,11 @@ public class HighestGrossingMovies
The Ignite UI for Blazor [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) can enable three types of highlighting when hovering over data items.
-1. Series Highlighting will highlight the single data point represented by a marker or column when the pointer is positioned over it. This is enabled by setting the [`IsSeriesHighlightingEnabled`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=IsSeriesHighlightingEnabled) property to true.
+1. Series Highlighting will highlight the single data point represented by a marker or column when the pointer is positioned over it. This is enabled by setting the [`IsSeriesHighlightingEnabled`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=isSeriesHighlightingEnabled) property to true.
-2. Item Highlighting highlights items in a series either by drawing a banded shape at their position or by rendering a marker at their position. This is enabled by setting the [`IsItemHighlightingEnabled`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=IsItemHighlightingEnabled) property to true.
+2. Item Highlighting highlights items in a series either by drawing a banded shape at their position or by rendering a marker at their position. This is enabled by setting the [`IsItemHighlightingEnabled`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=isItemHighlightingEnabled) property to true.
-3. Category Highlighting targets all category axes in the chart. They draw a shape that illuminates the area of the axis closest to the pointer position. This is enabled by setting the [`IsCategoryHighlightingEnabled`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=IsCategoryHighlightingEnabled) property to true.
+3. Category Highlighting targets all category axes in the chart. They draw a shape that illuminates the area of the axis closest to the pointer position. This is enabled by setting the [`IsCategoryHighlightingEnabled`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=isCategoryHighlightingEnabled) property to true.
The following example demonstrates the different highlighting layers that are available on the Blazor chart.
@@ -597,15 +596,6 @@ You can find more information about related chart features in these topics:
- [Chart Tooltips](chart-tooltips.md)
## API References
-
-The following is a list of API members mentioned in the above sections:
-
-- [`HighlightingMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=HighlightingMode)
-- [`HighlightingBehavior`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=HighlightingBehavior)
-- `LegendHighlightingBehavior`
-- [`IsCategoryHighlightingEnabled`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=IsCategoryHighlightingEnabled)
-- [`IsItemHighlightingEnabled`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=IsItemHighlightingEnabled)
-- [`IsSeriesHighlightingEnabled`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=IsSeriesHighlightingEnabled)
-- [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart)
-- [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart)
-- [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart)
+[`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart)
+[`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart)
+[`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-markers.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-markers.md
index c59c9c6d3..7c0aec476 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-markers.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-markers.md
@@ -1,23 +1,24 @@
---
title: Blazor Chart Markers | Data Visualization | Infragistics
-_description: Infragistics' Blazor Chart Markers
-_keywords: Blazor Charts, Markers, Marker Size, Infragistics
-_license: commercial
+description: Infragistics' Blazor Chart Markers
+keywords: Blazor Charts, Markers, Marker Size, Infragistics
+license: commercial
mentionedTypes: ["CategoryChart", "CategoryChartType", "MarkerType", "MarkerSeries", "ScatterLineSeries", "ScatterSplineSeries", "ScatterSeries", "LineSeries", "SplineSeries", "MarkerAutomaticBehavior", "SeriesViewer"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "In Ignite UI for Blazor, markers are visual elements that display the values of data points in the chart's plot area."
_tocName: Chart Markers
_premium: true
---
-
# Blazor Chart Markers
In Ignite UI for Blazor, markers are visual elements that display the values of data points in the chart's plot area. Markers help your end-users immediately identify a data point's value even if the value falls between major or minor grid lines.
## Blazor Chart Marker Example
-In the following example, the [Line Chart](../types/line-chart.md) is comparing the generation of renewable electricity for the countries Europe, China, and USA over the years of 2009 to 2019 with markers enabled by setting the [`MarkerType`](mcp:get_api_reference?platform=blazor&component=IgbMarkerSeries&member=MarkerType) property to `Circle` enum value.
+In the following example, the [Line Chart](../types/line-chart.md) is comparing the generation of renewable electricity for the countries Europe, China, and USA over the years of 2009 to 2019 with markers enabled by setting the [`MarkerTypes`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=markerTypes) property to [`Circle`](mcp:get_api_reference?platform=blazor&component=MarkerType&member=Circle) enum value.
-The colors of the markers are also managed by setting the [`MarkerBrushes`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=MarkerBrushes) and [`MarkerOutlines`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=MarkerOutlines) properties in the sample below. The markers and [`ChartType`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=ChartType) is configurable in this sample by using the drop-downs as well.
+The colors of the markers are also managed by setting the [`MarkerBrushes`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=markerBrushes) and [`MarkerOutlines`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=markerOutlines) properties in the sample below. The markers and [`CategoryChart.ChartType`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=chartType) is configurable in this sample by using the drop-downs as well.
```razor
@using IgniteUI.Blazor.Controls
@@ -146,17 +147,15 @@ public class CountryRenewableElectricity
}
```
-
-
## Blazor Chart Marker Size
You can control the exact device-independent pixel dimensions of data point markers by setting the `MarkerSize` property on any series that supports markers. This gives you precise control over how large markers appear on screen, regardless of the marker template or style being used.
By default, marker sizing is determined by the series marker template. When you set `MarkerSize` to a specific numeric value, all markers in that series render at that exact device-independent pixel width and height. Setting `MarkerSize` back to `NaN` restores the default template-driven sizing.
-The `MarkerSize` property is available on all series types that derive from [`IgbMarkerSeries`](mcp:get_api_reference?platform=blazor&component=IgbMarkerSeries), including [`IgbLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbLineSeries), [`IgbSplineSeries`](mcp:get_api_reference?platform=blazor&component=IgbSplineSeries), [`IgbAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbAreaSeries), [`IgbColumnSeries`](mcp:get_api_reference?platform=blazor&component=IgbColumnSeries), [`IgbScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbScatterSeries), [`IgbScatterLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbScatterLineSeries), [`IgbScatterSplineSeries`](mcp:get_api_reference?platform=blazor&component=IgbScatterSplineSeries), and polar/radial series types.
+The `MarkerSize` property is available on all series types that derive from `MarkerSeries`, including `LineSeries`, `SplineSeries`, `AreaSeries`, `ColumnSeries`, `ScatterSeries`, `ScatterLineSeries`, `ScatterSplineSeries`, and polar/radial series types.
-The following code examples show how to set `MarkerSize` to 30 device-independent pixels on a [`IgbScatterLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbScatterLineSeries) in the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control:
+The following code examples show how to set `MarkerSize` to 30 device-independent pixels on a `ScatterLineSeries` in the `XamDataChart` control:
```razor
@@ -424,24 +423,20 @@ public class CountryDemographicEurope
}
```
-> [!NOTE]
-> For [`IgbBubbleSeries`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries), the `MarkerSize` property does not override the bubble radius, which is controlled by the radius data column and the [`RadiusScale`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries&member=RadiusScale). Bubble sizes remain entirely driven by the data and scale configuration.
-
-
+**Note:**
+For `BubbleSeries`, the `MarkerSize` property does not override the bubble radius, which is controlled by the radius data column and the `RadiusScale`. Bubble sizes remain entirely driven by the data and scale configuration.
## Blazor Chart Checkmark Marker Type
-The Ignite UI for Blazor charts include a `Checkmark` option in the [`MarkerType`](mcp:get_api_reference?platform=blazor&component=IgbMarkerSeries&member=MarkerType) enum. This marker renders a V-shaped checkmark icon inside a circle on data points in your chart.
+The Ignite UI for Blazor charts include a `Checkmark` option in the `MarkerType` enum. This marker renders a V-shaped checkmark icon inside a circle on data points in your chart.
-You can apply the `Checkmark` marker type to an individual series by setting its [`MarkerType`](mcp:get_api_reference?platform=blazor&component=IgbMarkerSeries&member=MarkerType) property to `MarkerType.Checkmark`. To use the checkmark shape for all series in the chart simultaneously, set the chart's [`MarkerAutomaticBehavior`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=MarkerAutomaticBehavior) property to `MarkerAutomaticBehavior.Checkmark`.
+You can apply the `Checkmark` marker type to an individual series by setting its `MarkerType` property to `MarkerType.Checkmark`. To use the checkmark shape for all series in the chart simultaneously, set the chart's `MarkerAutomaticBehavior` property to `MarkerAutomaticBehavior.Checkmark`.
The `SeriesViewer.CheckmarkMarkerTemplate` property defines the marker template used for series with a checkmark marker type, and can be used to customize its appearance across the chart.
-
-
## Blazor Chart Marker Templates
-In addition to marker properties, you can implement your own marker by setting a function to the [`MarkerTemplate`](mcp:get_api_reference?platform=blazor&component=IgbMarkerSeries&member=MarkerTemplate) property of a series rendered in the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) control as it is demonstrated in example below.
+In addition to marker properties, you can implement your own marker by setting a function to the [`MarkerTemplate`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=markerTemplate) property of a series rendered in the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) control as it is demonstrated in example below.
```razor
@using IgniteUI.Blazor.Controls
@@ -486,8 +481,6 @@ In addition to marker properties, you can implement your own marker by setting a
}
```
-
-
## Additional Resources
You can find more information about related chart features in these topics:
@@ -496,15 +489,4 @@ You can find more information about related chart features in these topics:
- [Chart Highlighting](chart-highlighting.md)
## API References
-
-The following is a list of API members mentioned in the above sections:
-
-- [`MarkerBrushes`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=MarkerBrushes)
-- [`MarkerOutlines`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=MarkerOutlines)
-- `MarkerSize`
-- [`MarkerType`](mcp:get_api_reference?platform=blazor&component=IgbMarkerSeries&member=MarkerType)
-- `UseLightweightMarkers`
-- [`MarkerAutomaticBehavior`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=MarkerAutomaticBehavior)
-- `SeriesViewer.CheckmarkMarkerTemplate`
-- [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart)
-- [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart)
+[`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-navigation.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-navigation.md
index 23ee2563d..a68771ef3 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-navigation.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-navigation.md
@@ -1,14 +1,15 @@
---
title: Blazor Data Chart | Data Visualization Tools | Navigation | Infragistics
-_description: Navigate Infragistics' Blazor charts by panning right and left and zooming horizontally and vertically using mouse or touch. Learn about Ignite UI for Blazor graph navigation capabilities!
-_keywords: Blazor charts, data chart, navigation, Ignite UI for Blazor, Infragistics
-_license: commercial
-mentionedTypes: ["XamDataChart", "CategoryChart", "FinancialChart", "ModifierKeys"]
+description: Navigate Infragistics' Blazor charts by panning right and left and zooming horizontally and vertically using mouse or touch. Learn about Ignite UI for Blazor graph navigation capabilities!
+keywords: Blazor charts, data chart, navigation, Ignite UI for Blazor, Infragistics
+license: commercial
+
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Blazor charts allows for interactive panning and zooming via the mouse, keyboard and touch."
_tocName: Chart Navigation
_premium: true
---
-
# Blazor Chart Navigation
The Ignite UI for Blazor charts allows for interactive panning and zooming via the mouse, keyboard and touch.
@@ -190,15 +191,13 @@ The following example shows all of the available panning and zooming options tha
}
```
-
-
Like this sample? Get access to our complete Blazor toolkit and start building your own apps in minutes. Download it for free.
## Chart Navigation with User Interactions
-Whether or not zooming is on by default depends on the chart you are using. If you are using [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart), it is on by default, but it is not in the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart). In order to enable or disable navigation in the UI, you need to set either the [`IsHorizontalZoomEnabled`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=IsHorizontalZoomEnabled) and/or the [`IsVerticalZoomEnabled`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=IsVerticalZoomEnabled) properties of the chart, depending on the direction that you wish to enable or disable zooming.
+Whether or not zooming is on by default depends on the chart you are using. If you are using [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart), it is on by default, but it is not in the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart). In order to enable or disable navigation in the UI, you need to set either the [`IsHorizontalZoomEnabled`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=isHorizontalZoomEnabled) and/or the [`IsVerticalZoomEnabled`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=isVerticalZoomEnabled) properties of the chart, depending on the direction that you wish to enable or disable zooming.
-It is also possible to zoom or pan simply by clicking the mouse or using touch. The [`DefaultInteraction`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=DefaultInteraction) property of the data chart determines what happens on mouse click or touch events. This property defaults to `DragZoom` and when set to this with zooming enabled, clicking and dragging will place a preview rectangle over the plot area that will become the zoomed area of the chart. This [`DefaultInteraction`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=DefaultInteraction) property can also be set to either `DragPan` to allow panning or `None` to prevent these operations.
+It is also possible to zoom or pan simply by clicking the mouse or using touch. The [`DefaultInteraction`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=defaultInteraction) property of the data chart determines what happens on mouse click or touch events. This property defaults to `DragZoom` and when set to this with zooming enabled, clicking and dragging will place a preview rectangle over the plot area that will become the zoomed area of the chart. This [`DefaultInteraction`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=defaultInteraction) property can also be set to either `DragPan` to allow panning or `None` to prevent these operations.
## Chart Navigation with Touch, Mouse and Keyboard
@@ -208,9 +207,9 @@ Navigation in the Blazor data chart can happen with either touch, the mouse or t
- **Zoom In**: Using the PAGE UP key on the keyboard, rolling the mouse wheel up, or pinching to zoom in via touch.
- **Zoom Out**: Using the PAGE DOWN key on the keyboard, rolling the mouse wheel down, or pinching to zoom out via touch.
- **Fit to Chart Plot Area**: Using the HOME key on the keyboard. There is no mouse or touch operation for this.
-- **Area Zoom**: Click and drag the mouse within the plot area with the [`DefaultInteraction`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=DefaultInteraction) property set to its default - `DragZoom`.
+- **Area Zoom**: Click and drag the mouse within the plot area with the [`DefaultInteraction`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=defaultInteraction) property set to its default - `DragZoom`.
-The zoom and pan operations can also be enabled by using modifier keys by setting the [`DragModifier`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=DragModifier) and [`PanModifier`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=PanModifier) properties, respectively. These properties can be set to the following modifier keys, and when pressed, the corresponding operation will be executed:
+The zoom and pan operations can also be enabled by using modifier keys by setting the [`DragModifier`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=dragModifier) and [`PanModifier`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=panModifier) properties, respectively. These properties can be set to the following modifier keys, and when pressed, the corresponding operation will be executed:
| Modifier Value | Corresponding Key |
| ---------------|------------------ |
@@ -222,7 +221,7 @@ The zoom and pan operations can also be enabled by using modifier keys by settin
## Chart Navigation with Scrollbars
-The chart can be scrolled by enabling the [`VerticalViewScrollbarMode`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=VerticalViewScrollbarMode) and [`HorizontalViewScrollbarMode`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=HorizontalViewScrollbarMode) properties.
+The chart can be scrolled by enabling the [`VerticalViewScrollbarMode`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=verticalViewScrollbarMode) and [`HorizontalViewScrollbarMode`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=horizontalViewScrollbarMode) properties.
These can be configured to the following options
@@ -393,20 +392,18 @@ The following example demonstrates enabling scrollbars.
//end async data
```
-
-
## Chart Navigation through Code
-> [!Note]
-> Code navigation of the chart can only be used for the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control.
+**Note:**
+Code navigation of the chart can only be used for the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control.
The Blazor data chart provides several navigation properties that are updated each time a zoom or pan operation happens in the chart. You can also set each of these properties to zoom or pan the data chart programmatically. The following is a list of these properties:
-- [`WindowPositionHorizontal`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=WindowPositionHorizontal): A numeric value describing the X portion of the content view rectangle displayed by the data chart.
-- [`WindowPositionVertical`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=WindowPositionVertical): A numeric value describing the Y portion of the content view rectangle displayed by the data chart.
-- [`WindowRect`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=WindowRect): A `Rect` object representing a rectangle that represents the portion of the chart that is currently in view. For example, a [`WindowRect`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=WindowRect) of "0, 0, 1, 1" would be the entirety of the data chart.
-- [`WindowScaleHorizontal`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=WindowScaleHorizontal): A numeric value describing the width portion of the content view rectangle displayed by the data chart.
-- [`WindowScaleVertical`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=WindowScaleVertical): A numeric value describing the height portion of the content view rectangle displayed by the data chart.
+- [`WindowPositionHorizontal`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=windowPositionHorizontal): A numeric value describing the X portion of the content view rectangle displayed by the data chart.
+- [`WindowPositionVertical`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=windowPositionVertical): A numeric value describing the Y portion of the content view rectangle displayed by the data chart.
+- [`WindowRect`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=windowRect): A [`IgbRect`](mcp:get_api_reference?platform=blazor&component=Rect) object representing a rectangle that represents the portion of the chart that is currently in view. For example, a [`WindowRect`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=windowRect) of "0, 0, 1, 1" would be the entirety of the data chart.
+- [`WindowScaleHorizontal`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=windowScaleHorizontal): A numeric value describing the width portion of the content view rectangle displayed by the data chart.
+- [`WindowScaleVertical`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=windowScaleVertical): A numeric value describing the height portion of the content view rectangle displayed by the data chart.
## Additional Resources
@@ -416,14 +413,6 @@ You can find more information about related chart features in these topics:
- [Chart Trendlines](chart-trendlines.md)
## API References
-
-The following is a list of API members mentioned in the above sections:
-
-- [`DefaultInteraction`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=DefaultInteraction)
-- [`DragModifier`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=DragModifier)
-- [`IsHorizontalZoomEnabled`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=IsHorizontalZoomEnabled)
-- [`IsVerticalZoomEnabled`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=IsVerticalZoomEnabled)
-- [`PanModifier`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=PanModifier)
-- [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart)
-- [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart)
-- [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart)
+[`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart)
+[`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart)
+[`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-overlays.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-overlays.md
index 089de0fd8..902578c22 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-overlays.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-overlays.md
@@ -1,14 +1,15 @@
---
title: Blazor Chart Overlays | Data Visualization Tools | Value Overlay | Infragistics
-_description: Use Infragistics Ignite UI for Blazor chart control's value overlay feature to place horizontal or vertical lines at a single numeric value. Learn about our Ignite UI for Blazor graph types!
-_keywords: Blazor charts, data chart, value overlay, Ignite UI for Blazor, Infragistics
-_license: commercial
-mentionedTypes: ["XamDataChart", "ValueOverlay", "CategoryChart", "FinancialChart"]
+description: Use Infragistics Ignite UI for Blazor chart control's value overlay feature to place horizontal or vertical lines at a single numeric value. Learn about our Ignite UI for Blazor graph types!
+keywords: Blazor charts, data chart, value overlay, Ignite UI for Blazor, Infragistics
+license: commercial
+
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Blazor DataChart allows for placement of horizontal or vertical lines at a single numeric value that you define through usage of the ValueOverlay."
_tocName: Chart Overlays
_premium: true
---
-
# Blazor Chart Overlays
The Blazor [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) allows for placement of horizontal or vertical lines at a single numeric value that you define through usage of the [`IgbValueOverlay`](mcp:get_api_reference?platform=blazor&component=IgbValueOverlay). This can help you to visualize data such as the mean or median of a particular series.
@@ -74,39 +75,37 @@ The following example depicts a [Column Chart](../types/column-chart.md) with a
}
```
-
-
## Blazor Value Overlay Properties
-Unlike other series types that use a [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbValueOverlay&member=DataSource) for data binding, the value overlay uses a `ValueMemberPath` property to bind a single numeric value. In addition, the value overlay requires you to define a single [`Axis`](mcp:get_api_reference?platform=blazor&component=IgbValueOverlay&member=Axis) to use. If you use an X-axis, the value overlay will be a vertical line, and if you use a Y-axis, it will be a horizontal line.
+Unlike other series types that use a [`ItemsSource`](mcp:get_api_reference?platform=blazor&component=IgbValueOverlay&member=dataSource) for data binding, the value overlay uses a [`ValueMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbValueOverlay&member=valueMemberPath) property to bind a single numeric value. In addition, the value overlay requires you to define a single [`Axis`](mcp:get_api_reference?platform=blazor&component=IgbValueOverlay&member=axis) to use. If you use an X-axis, the value overlay will be a vertical line, and if you use a Y-axis, it will be a horizontal line.
-When using a numeric X or Y axis, the `ValueMemberPath` property should reflect the actual numeric value on the axis where you want the value overlay to be drawn. When using a category X or Y axis, the `ValueMemberPath` should reflect the index of the category at which you want the value overlay to appear.
+When using a numeric X or Y axis, the [`ValueMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbValueOverlay&member=valueMemberPath) property should reflect the actual numeric value on the axis where you want the value overlay to be drawn. When using a category X or Y axis, the [`ValueMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbValueOverlay&member=valueMemberPath) should reflect the index of the category at which you want the value overlay to appear.
When using the value overlay with a numeric angle axis, it will appear as a line from the center of the chart and when using a numeric radius axis, it will appear as a circle.
-[`IgbValueOverlay`](mcp:get_api_reference?platform=blazor&component=IgbValueOverlay) appearance properties are inherited from [`Series`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Series) and so [`Brush`](mcp:get_api_reference?platform=blazor&component=IgbValueOverlay&member=Brush) and [`Thickness`](mcp:get_api_reference?platform=blazor&component=IgbValueOverlay&member=Thickness) for example are available and work the same way they do with other types of series.
+[`IgbValueOverlay`](mcp:get_api_reference?platform=blazor&component=IgbValueOverlay) appearance properties are inherited from [`Series`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Series) and so [`Brush`](mcp:get_api_reference?platform=blazor&component=IgbValueOverlay&member=brush) and [`Thickness`](mcp:get_api_reference?platform=blazor&component=IgbValueOverlay&member=thickness) for example are available and work the same way they do with other types of series.
-It is also possible to show an axis annotation on a [`IgbValueOverlay`](mcp:get_api_reference?platform=blazor&component=IgbValueOverlay) to show the value of the overlay on the owning axis. In order to show this, you can set the [`IsAxisAnnotationEnabled`](mcp:get_api_reference?platform=blazor&component=IgbValueOverlay&member=IsAxisAnnotationEnabled) property to true.
+It is also possible to show an axis annotation on a [`IgbValueOverlay`](mcp:get_api_reference?platform=blazor&component=IgbValueOverlay) to show the value of the overlay on the owning axis. In order to show this, you can set the [`IsAxisAnnotationEnabled`](mcp:get_api_reference?platform=blazor&component=IgbValueOverlay&member=isAxisAnnotationEnabled) property to true.
## Blazor Value Layer
The Blazor charting components also expose the ability to use value lines to call out different focal points of your data, such as minimum, maximum, and average values.
-Applying the [`IgbValueLayer`](mcp:get_api_reference?platform=blazor&component=IgbValueLayer) in the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) and [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart) components is done by setting the [`ValueLines`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=ValueLines) property on the chart. This property takes a collection of the `ValueLayerValueMode` enumeration. You can mix and match multiple value layers in the same chart by adding multiple `ValueLayerValueMode` enumerations to the [`ValueLines`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=ValueLines) collection of the chart.
+Applying the [`IgbValueLayer`](mcp:get_api_reference?platform=blazor&component=IgbValueLayer) in the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) and [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart) components is done by setting the [`ValueLines`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=valueLines) property on the chart. This property takes a collection of the [`IgbValueLayerValueMode`](mcp:get_api_reference?platform=blazor&component=ValueLayerValueMode) enumeration. You can mix and match multiple value layers in the same chart by adding multiple [`IgbValueLayerValueMode`](mcp:get_api_reference?platform=blazor&component=ValueLayerValueMode) enumerations to the [`ValueLines`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=valueLines) collection of the chart.
-In the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart), this is done by adding a [`IgbValueLayer`](mcp:get_api_reference?platform=blazor&component=IgbValueLayer) to the [`Series`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Series) collection of the chart and then setting the [`ValueMode`](mcp:get_api_reference?platform=blazor&component=IgbValueLayer&member=ValueMode) property to one of the `ValueLayerValueMode` enumerations. Each of these enumerations and what they mean is listed below:
+In the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart), this is done by adding a [`IgbValueLayer`](mcp:get_api_reference?platform=blazor&component=IgbValueLayer) to the [`Series`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Series) collection of the chart and then setting the [`ValueMode`](mcp:get_api_reference?platform=blazor&component=IgbValueLayer) property to one of the [`IgbValueLayerValueMode`](mcp:get_api_reference?platform=blazor&component=ValueLayerValueMode) enumerations. Each of these enumerations and what they mean is listed below:
-- `Auto`: The default value mode of the `ValueLayerValueMode` enumeration.
-- `Average`: Applies potentially multiple value lines to call out the average value of each series plotted in the chart.
-- `GlobalAverage`: Applies a single value line to call out the average of all of the series values in the chart.
-- `GlobalMaximum`: Applies a single value line to call out the absolute maximum value of all of the series values in the chart.
-- `GlobalMinimum`: Applies a single value line to call out the absolute minimum value of all of the series values in the chart.
-- `Maximum`: Applies potentially multiple value lines to call out the maximum value of each series plotted in the chart.
-- `Minimum`: Applies potentially multiple value lines to call out the minimum value of each series plotted in the chart.
+- [`Auto`](mcp:get_api_reference?platform=blazor&component=ValueLayerValueMode&member=Auto): The default value mode of the [`IgbValueLayerValueMode`](mcp:get_api_reference?platform=blazor&component=ValueLayerValueMode) enumeration.
+- [`Average`](mcp:get_api_reference?platform=blazor&component=ValueLayerValueMode&member=Average): Applies potentially multiple value lines to call out the average value of each series plotted in the chart.
+- [`GlobalAverage`](mcp:get_api_reference?platform=blazor&component=ValueLayerValueMode&member=GlobalAverage): Applies a single value line to call out the average of all of the series values in the chart.
+- [`GlobalMaximum`](mcp:get_api_reference?platform=blazor&component=ValueLayerValueMode&member=GlobalMaximum): Applies a single value line to call out the absolute maximum value of all of the series values in the chart.
+- [`GlobalMinimum`](mcp:get_api_reference?platform=blazor&component=ValueLayerValueMode&member=GlobalMinimum): Applies a single value line to call out the absolute minimum value of all of the series values in the chart.
+- [`Maximum`](mcp:get_api_reference?platform=blazor&component=ValueLayerValueMode&member=Maximum): Applies potentially multiple value lines to call out the maximum value of each series plotted in the chart.
+- [`Minimum`](mcp:get_api_reference?platform=blazor&component=ValueLayerValueMode&member=Minimum): Applies potentially multiple value lines to call out the minimum value of each series plotted in the chart.
-If you want to prevent any particular series from being taken into account when using the [`IgbValueLayer`](mcp:get_api_reference?platform=blazor&component=IgbValueLayer) element, you can set the [`TargetSeries`](mcp:get_api_reference?platform=blazor&component=IgbValueLayer&member=TargetSeries) property on the layer. This will force the layer to target the series that you define. You can have as many [`IgbValueLayer`](mcp:get_api_reference?platform=blazor&component=IgbValueLayer) elements within a single [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) as you want.
+If you want to prevent any particular series from being taken into account when using the [`IgbValueLayer`](mcp:get_api_reference?platform=blazor&component=IgbValueLayer) element, you can set the [`TargetSeries`](mcp:get_api_reference?platform=blazor&component=IgbValueLayer&member=targetSeries) property on the layer. This will force the layer to target the series that you define. You can have as many [`IgbValueLayer`](mcp:get_api_reference?platform=blazor&component=IgbValueLayer) elements within a single [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) as you want.
-The following sample demonstrates usage of the different [`ValueLines`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=ValueLines) in the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart):
+The following sample demonstrates usage of the different [`ValueLines`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=valueLines) in the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart):
```razor
@using IgniteUI.Blazor.Controls
@@ -241,15 +240,13 @@ public class CountryRenewableElectricity
}
```
-
-
## Blazor Financial Overlays
You can also plot built-in financial overlays and indicators in Blazor [Stock Chart](../types/stock-chart.md).
-## Chart Overlay Text
+## Chart Overlay Text
-The Blazor [`IgbValueOverlay`](mcp:get_api_reference?platform=blazor&component=IgbValueOverlay), [`IgbValueLayer`](mcp:get_api_reference?platform=blazor&component=IgbValueLayer), and all Data Annotation Layers can render custom overlay text inside plot area of the XamDataChart component. You can use this overlay text to annotate important events (e.g. company quarter reports) on x-axis or important values on y-axis in relationship to the layers.
+The Blazor [`IgbValueOverlay`](mcp:get_api_reference?platform=blazor&component=IgbValueOverlay), [`IgbValueLayer`](mcp:get_api_reference?platform=blazor&component=IgbValueLayer), and all Data Annotation Layers can render custom overlay text inside plot area of the DataChart component. You can use this overlay text to annotate important events (e.g. company quarter reports) on x-axis or important values on y-axis in relationship to the layers.
For example, you can use [`IgbDataAnnotationSliceLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationSliceLayer), [`IgbValueOverlay`](mcp:get_api_reference?platform=blazor&component=IgbValueOverlay), and [`IgbValueLayer`](mcp:get_api_reference?platform=blazor&component=IgbValueLayer) to show overlay text.
@@ -448,8 +445,6 @@ public class StockTesla
This code example shows how to style and customize Overlay Text on
the [`IgbDataAnnotationSliceLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataAnnotationSliceLayer), [`IgbValueOverlay`](mcp:get_api_reference?platform=blazor&component=IgbValueOverlay), and [`IgbValueLayer`](mcp:get_api_reference?platform=blazor&component=IgbValueLayer).
-
-
```razor
public Series StylingOverlayText()
{
@@ -480,24 +475,9 @@ You can find more information about related chart types in these topics:
- [Stock Chart](../types/stock-chart.md)
## API References
-
-The following is a list of API members mentioned in the above sections:
-
-- [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart)
-- [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbValueOverlay&member=DataSource)
-- [`IgbValueOverlay`](mcp:get_api_reference?platform=blazor&component=IgbValueOverlay)
-- [`Axis`](mcp:get_api_reference?platform=blazor&component=IgbValueOverlay&member=Axis)
-- [`Brush`](mcp:get_api_reference?platform=blazor&component=IgbValueOverlay&member=Brush)
-- `IsAxisAnnotationsEnabled`
-- [`Series`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Series)
-- [`Thickness`](mcp:get_api_reference?platform=blazor&component=IgbValueOverlay&member=Thickness)
-- [`IgbValueLayer`](mcp:get_api_reference?platform=blazor&component=IgbValueLayer)
-- `ValueLayerValueMode`
-- [`ValueLines`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=ValueLines)
-- [`OverlayText`](mcp:get_api_reference?platform=blazor&component=IgbValueLayer&member=OverlayText)
-- [`TargetAxis`](mcp:get_api_reference?platform=blazor&component=IgbValueLayer&member=TargetAxis)
-- `OverlayTextMemberPath`
-- [`OverlayTextColor`](mcp:get_api_reference?platform=blazor&component=IgbValueLayer&member=OverlayTextColor)
-- [`OverlayTextBackground`](mcp:get_api_reference?platform=blazor&component=IgbValueLayer&member=OverlayTextBackground)
-- [`OverlayTextBorderColor`](mcp:get_api_reference?platform=blazor&component=IgbValueLayer&member=OverlayTextBorderColor)
-- [`OverlayTextLocation`](mcp:get_api_reference?platform=blazor&component=IgbValueLayer&member=OverlayTextLocation)
+[`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart)
+[`IgbValueOverlay`](mcp:get_api_reference?platform=blazor&component=IgbValueOverlay)
+[`IgbValueLayer`](mcp:get_api_reference?platform=blazor&component=IgbValueLayer)
+[`IgbValueLayerValueMode`](mcp:get_api_reference?platform=blazor&component=ValueLayerValueMode)
+[`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart)
+[`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-performance.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-performance.md
index efbb72d3f..36603c90b 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-performance.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-performance.md
@@ -1,14 +1,15 @@
---
-title: Blazor Chart Performance | Data Visualization | Infragistics
-_description: Infragistics' Blazor Chart Performance
-_keywords: Blazor Charts, Performance, Infragistics
-_license: commercial
-mentionedTypes: ["DomainChart", "CategoryChart", "FinancialChart", "XamDataChart", "FinancialChartVolumeType", "FinancialChartZoomSliderType"]
+title: "Blazor Chart Performance | Data Visualization | Infragistics"
+description: Infragistics' Blazor Chart Performance
+keywords: "Blazor Charts, Performance, Infragistics"
+license: commercial
+mentionedTypes: ["DomainChart", "CategoryChart", "FinancialChart", "DataChart", "FinancialChartVolumeType", "FinancialChartZoomSliderType"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "Blazor charts are optimized for high performance of rendering millions of data points and updating them every few milliseconds."
_tocName: Chart Performance
_premium: true
---
-
# Blazor Chart Performance
Blazor charts are optimized for high performance of rendering millions of data points and updating them every few milliseconds. However, there are several chart features that affect performance of the chart and they should be considered when optimizing performance in your application. This topic will guide you to make Blazor charts work as fast as possible in your application.
@@ -148,8 +149,6 @@ In High-Frequency scenario, the Blazor Charts can render data items that are upd
}
```
-
-
## Blazor Chart with High-Volume
In High-Volume scenario, the Blazor Charts can render 1 million of data points while the chart keeps providing smooth performance when end-users tries zooming in/out or navigating chart content. The following sample demonstrates the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) in High-Volume scenario.
@@ -243,8 +242,6 @@ In High-Volume scenario, the Blazor Charts can render 1 million of data points w
}
```
-
-
## General Performance Guidelines
This section lists guidelines and chart features that add to the overhead and processing updates in the Blazor charts.
@@ -259,9 +256,9 @@ If you need to plot data sources with large number of data points (e.g. 10,000+)
### Data Structure
-Although Blazor charts support rendering of multiple data sources by binding array of arrays of data points to [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=DataSource) property. It is much faster for charts if multiple data sources are flatten into single data source where each data item contains multiple data columns rather just one data column. For example:
+Although Blazor charts support rendering of multiple data sources by binding array of arrays of data points to [`ItemsSource`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=DataSource) property. It is much faster for charts if multiple data sources are flatten into single data source where each data item contains multiple data columns rather just one data column. For example:
-```razor
+```csharp
this.CategoryChart.DataSource = FlattenDataSource.Create();
this.FinancialChart.DataSource = FlattenDataSource.Create();
@@ -308,7 +305,7 @@ public static class MultiDataSources
### Data Filtering
-Blazor [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) and the [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart) controls have built-in data adapter that analyzes your data and generates chart series for you. However, it works faster if you use [`IncludedProperties`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=IncludedProperties) and [`ExcludedProperties`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=ExcludedProperties) to filter only those data columns that you actually want to render. For example,
+Blazor [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) and the [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart) controls have built-in data adapter that analyzes your data and generates chart series for you. However, it works faster if you use [`IncludedProperties`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=includedProperties) and [`ExcludedProperties`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=excludedProperties) to filter only those data columns that you actually want to render. For example,
```razor
this.Chart.IncludedProperties = new string[] { "Year", "USA", "RUS" };
@@ -319,23 +316,23 @@ this.Chart.ExcludedProperties = new string[] { "CHN", "FRN", "GER" };
### Chart Types
-Simpler chart types such as [Line Chart](../types/line-chart.md) have faster performance than using [Spline Chart](../types/spline-chart.md) because of the complex interpolation of spline lines between data points. Therefore, you should use [`ChartType`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=ChartType) property of Blazor [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) or the [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart) control to select type of chart that renders faster. Alternatively, you can change a type of series to a faster series in Blazor [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control.
+Simpler chart types such as [Line Chart](../types/line-chart.md) have faster performance than using [Spline Chart](../types/spline-chart.md) because of the complex interpolation of spline lines between data points. Therefore, you should use [`CategoryChart.ChartType`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=chartType) property of Blazor [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) or the [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart) control to select type of chart that renders faster. Alternatively, you can change a type of series to a faster series in Blazor [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control.
The following table lists chart types in order from the fastest performance to slower performance in each group of charts:
| Chart Group | Chart Type |
| ----------------|--------------------------------- |
-| Pie Charts | - [Pie Chart](../types/pie-chart.md) - [Donut Chart](../types/donut-chart.md) - [Radial Pie Chart](../types/radial-chart.md#blazor-radial-pie-chart) |
-| Line Charts | - [Category Line Chart](../types/line-chart.md#blazor-line-chart-example) - [Category Spline Chart](../types/spline-chart.md#blazor-spline-chart-example) - [Step Line Chart](../types/step-chart.md#blazor-step-line-chart) - [Radial Line Chart](../types/radial-chart.md#blazor-radial-line-chart) - [Polar Line Chart](../types/polar-chart.md#blazor-polar-line-chart) - [Scatter Line Chart](../types/scatter-chart.md#blazor-scatter-line-chart) - [Scatter Polyline Chart](../types/shape-chart.md#blazor-scatter-polyline-chart) (\*) - [Scatter Contour Chart](../types/scatter-chart.md#blazor-scatter-contour-chart) - [Stacked Line Chart](../types/stacked-chart.md#blazor-stacked-line-chart) - [Stacked 100% Line Chart](../types/stacked-chart.md#blazor-stacked-100-line-chart) |
-| Area Charts | - [Category Area Chart](../types/area-chart.md#blazor-area-chart-example) - [Step Area Chart](../types/step-chart.md#blazor-step-area-chart) - [Range Area Chart](../types/area-chart.md#blazor-range-area-chart) - [Radial Area Chart](../types/radial-chart.md#blazor-radial-area-chart) - [Polar Area Chart](../types/polar-chart.md#blazor-polar-area-chart) - [Scatter Polygon Chart](../types/shape-chart.md#blazor-scatter-polygon-chart) (\*) - [Scatter Area Chart](../types/scatter-chart.md#blazor-scatter-area-chart) - [Stacked Area Chart](../types/stacked-chart.md#blazor-stacked-area-chart) - [Stacked 100% Area Chart](../types/stacked-chart.md#blazor-stacked-100-area-chart) |
-| Column Charts | - [Column Chart](../types/column-chart.md#blazor-column-chart-example) - [Bar Chart](../types/bar-chart.md#blazor-bar-chart-example) - [Waterfall Chart](../types/column-chart.md#blazor-waterfall-chart) - [Range Column Chart](../types/column-chart.md#blazor-range-column-chart) - [Range Bar Chart](../types/bar-chart.md#blazor-range-bar-chart) - [Radial Column Chart](../types/radial-chart.md#blazor-radial-column-chart) - [Stacked Column Chart](../types/stacked-chart.md#blazor-stacked-column-chart) - [Stacked Bar Chart](../types/stacked-chart.md#blazor-stacked-bar-chart) - [Stacked 100% Column Chart](../types/stacked-chart.md#blazor-stacked-100-column-chart) - [Stacked 100% Bar Chart](../types/stacked-chart.md#blazor-stacked-100-bar-chart) |
-| Spline Charts | - [Category Spline Chart](../types/spline-chart.md#blazor-spline-chart-example) - [Polar Spline Chart](../types/polar-chart.md#blazor-polar-spline-chart) - [Scatter Spline Chart](../types/scatter-chart.md#blazor-scatter-spline-chart) - [Stacked Spline Chart](../types/stacked-chart.md#blazor-stacked-spline-chart) - [Stacked 100% Spline Chart](../types/stacked-chart.md#blazor-stacked-100-spline-chart) |
-| Point Charts | - [Category Point Chart](../types/point-chart.md) - [Scatter HD Chart](../types/scatter-chart.md#blazor-scatter-high-density-chart) - [Scatter Marker Chart](../types/scatter-chart.md#blazor-scatter-marker-chart) - [Scatter Bubble Chart](../types/bubble-chart.md) - [Polar Marker Chart](../types/polar-chart.md#blazor-polar-marker-chart) |
-| Financial Charts | - [Stock Chart in Line Mode](../types/stock-chart.md) - [Stock Chart in Column Mode](../types/stock-chart.md) - [Stock Chart in Bar Mode](../types/stock-chart.md) - [Stock Chart in Candle Mode](../types/stock-chart.md) - [Stock Chart with Overlays](../types/stock-chart.md) - [Stock Chart with Zoom Pane](../types/stock-chart.md) - [Stock Chart with Volume Pane](../types/stock-chart.md#volume-pane) - [Stock Chart with Indicator Pane](../types/stock-chart.md#indicator-pane) |
-| Scatter Charts | - [Scatter HD Chart](../types/scatter-chart.md#blazor-scatter-high-density-chart) - [Scatter Marker Chart](../types/scatter-chart.md#blazor-scatter-marker-chart) - [Scatter Line Chart](../types/scatter-chart.md#blazor-scatter-line-chart) - [Scatter Bubble Chart](../types/bubble-chart.md) - [Scatter Spline Chart](../types/scatter-chart.md#blazor-scatter-spline-chart) - [Scatter Area Chart](../types/scatter-chart.md#blazor-scatter-area-chart) - [Scatter Contour Chart](../types/scatter-chart.md#blazor-scatter-contour-chart) - [Scatter Polyline Chart](../types/shape-chart.md#blazor-scatter-polyline-chart) (\*) - [Scatter Polygon Chart](../types/shape-chart.md#blazor-scatter-polygon-chart) (\*) |
-| Radial Charts | - [Radial Line Chart](../types/radial-chart.md#blazor-radial-line-chart) - [Radial Area Chart](../types/radial-chart.md#blazor-radial-area-chart) - [Radial Pie Chart](../types/radial-chart.md#blazor-radial-pie-chart) - [Radial Column Chart](../types/radial-chart.md#blazor-radial-column-chart) |
-| Polar Charts | - [Polar Marker Chart](../types/polar-chart.md#blazor-polar-marker-chart) - [Polar Line Chart](../types/polar-chart.md#blazor-polar-line-chart) - [Polar Area Chart](../types/polar-chart.md#blazor-polar-area-chart) - [Polar Spline Chart](../types/polar-chart.md#blazor-polar-spline-chart) - [Polar Spline Area Chart](../types/polar-chart.md#blazor-polar-spline-area-chart) |
-| Stacked Charts | - [Stacked Line Chart](../types/stacked-chart.md#blazor-stacked-line-chart) - [Stacked Area Chart](../types/stacked-chart.md#blazor-stacked-area-chart) - [Stacked Column Chart](../types/stacked-chart.md#blazor-stacked-column-chart) - [Stacked Bar Chart](../types/stacked-chart.md#blazor-stacked-bar-chart) - [Stacked Spline Chart](../types/stacked-chart.md#blazor-stacked-spline-chart) - [Stacked 100% Line Chart](../types/stacked-chart.md#blazor-stacked-100-line-chart) - [Stacked 100% Area Chart](../types/stacked-chart.md#blazor-stacked-100-area-chart) - [Stacked 100% Column Chart](../types/stacked-chart.md#blazor-stacked-100-column-chart) - [Stacked 100% Bar Chart](../types/stacked-chart.md#blazor-stacked-100-bar-chart) - [Stacked 100% Spline Chart](../types/stacked-chart.md#blazor-stacked-100-spline-chart) |
+| Pie Charts | - [Pie Chart](../types/pie-chart.md) - [Donut Chart](../types/donut-chart.md) - [Radial Pie Chart](../types/radial-chart.md#blazor-radial-pie-chart) |
+| Line Charts | - [Category Line Chart](../types/line-chart.md#blazor-line-chart-example) - [Category Spline Chart](../types/spline-chart.md#blazor-spline-chart-example) - [Step Line Chart](../types/step-chart.md#blazor-step-line-chart) - [Radial Line Chart](../types/radial-chart.md#blazor-radial-line-chart) - [Polar Line Chart](../types/polar-chart.md#blazor-polar-line-chart) - [Scatter Line Chart](../types/scatter-chart.md#blazor-scatter-line-chart) - [Scatter Polyline Chart](../types/shape-chart.md#blazor-scatter-polyline-chart) (\*) - [Scatter Contour Chart](../types/scatter-chart.md#blazor-scatter-contour-chart) - [Stacked Line Chart](../types/stacked-chart.md#blazor-stacked-line-chart) - [Stacked 100% Line Chart](../types/stacked-chart.md#blazor-stacked-100-line-chart) |
+| Area Charts | - [Category Area Chart](../types/area-chart.md#blazor-area-chart-example) - [Step Area Chart](../types/step-chart.md#blazor-step-area-chart) - [Range Area Chart](../types/area-chart.md#blazor-range-area-chart) - [Radial Area Chart](../types/radial-chart.md#blazor-radial-area-chart) - [Polar Area Chart](../types/polar-chart.md#blazor-polar-area-chart) - [Scatter Polygon Chart](../types/shape-chart.md#blazor-scatter-polygon-chart) (\*) - [Scatter Area Chart](../types/scatter-chart.md#blazor-scatter-area-chart) - [Stacked Area Chart](../types/stacked-chart.md#blazor-stacked-area-chart) - [Stacked 100% Area Chart](../types/stacked-chart.md#blazor-stacked-100-area-chart) |
+| Column Charts | - [Column Chart](../types/column-chart.md#blazor-column-chart-example) - [Bar Chart](../types/bar-chart.md#blazor-bar-chart-example) - [Waterfall Chart](../types/column-chart.md#blazor-waterfall-chart) - [Range Column Chart](../types/column-chart.md#blazor-range-column-chart) - [Range Bar Chart](../types/bar-chart.md#blazor-range-bar-chart) - [Radial Column Chart](../types/radial-chart.md#blazor-radial-column-chart) - [Stacked Column Chart](../types/stacked-chart.md#blazor-stacked-column-chart) - [Stacked Bar Chart](../types/stacked-chart.md#blazor-stacked-bar-chart) - [Stacked 100% Column Chart](../types/stacked-chart.md#blazor-stacked-100-column-chart) - [Stacked 100% Bar Chart](../types/stacked-chart.md#blazor-stacked-100-bar-chart) |
+| Spline Charts | - [Category Spline Chart](../types/spline-chart.md#blazor-spline-chart-example) - [Polar Spline Chart](../types/polar-chart.md#blazor-polar-spline-chart) - [Scatter Spline Chart](../types/scatter-chart.md#blazor-scatter-spline-chart) - [Stacked Spline Chart](../types/stacked-chart.md#blazor-stacked-spline-chart) - [Stacked 100% Spline Chart](../types/stacked-chart.md#blazor-stacked-100-spline-chart) |
+| Point Charts | - [Category Point Chart](../types/point-chart.md) - [Scatter HD Chart](../types/scatter-chart.md#blazor-scatter-high-density-chart) - [Scatter Marker Chart](../types/scatter-chart.md#blazor-scatter-marker-chart) - [Scatter Bubble Chart](../types/bubble-chart.md) - [Polar Marker Chart](../types/polar-chart.md#blazor-polar-marker-chart) |
+| Financial Charts | - [Stock Chart in Line Mode](../types/stock-chart.md) - [Stock Chart in Column Mode](../types/stock-chart.md) - [Stock Chart in Bar Mode](../types/stock-chart.md) - [Stock Chart in Candle Mode](../types/stock-chart.md) - [Stock Chart with Overlays](../types/stock-chart.md) - [Stock Chart with Zoom Pane](../types/stock-chart.md) - [Stock Chart with Volume Pane](../types/stock-chart.md#volume-pane) - [Stock Chart with Indicator Pane](../types/stock-chart.md#indicator-pane) |
+| Scatter Charts | - [Scatter HD Chart](../types/scatter-chart.md#blazor-scatter-high-density-chart) - [Scatter Marker Chart](../types/scatter-chart.md#blazor-scatter-marker-chart) - [Scatter Line Chart](../types/scatter-chart.md#blazor-scatter-line-chart) - [Scatter Bubble Chart](../types/bubble-chart.md) - [Scatter Spline Chart](../types/scatter-chart.md#blazor-scatter-spline-chart) - [Scatter Area Chart](../types/scatter-chart.md#blazor-scatter-area-chart) - [Scatter Contour Chart](../types/scatter-chart.md#blazor-scatter-contour-chart) - [Scatter Polyline Chart](../types/shape-chart.md#blazor-scatter-polyline-chart) (\*) - [Scatter Polygon Chart](../types/shape-chart.md#blazor-scatter-polygon-chart) (\*) |
+| Radial Charts | - [Radial Line Chart](../types/radial-chart.md#blazor-radial-line-chart) - [Radial Area Chart](../types/radial-chart.md#blazor-radial-area-chart) - [Radial Pie Chart](../types/radial-chart.md#blazor-radial-pie-chart) - [Radial Column Chart](../types/radial-chart.md#blazor-radial-column-chart) |
+| Polar Charts | - [Polar Marker Chart](../types/polar-chart.md#blazor-polar-marker-chart) - [Polar Line Chart](../types/polar-chart.md#blazor-polar-line-chart) - [Polar Area Chart](../types/polar-chart.md#blazor-polar-area-chart) - [Polar Spline Chart](../types/polar-chart.md#blazor-polar-spline-chart) - [Polar Spline Area Chart](../types/polar-chart.md#blazor-polar-spline-area-chart) |
+| Stacked Charts | - [Stacked Line Chart](../types/stacked-chart.md#blazor-stacked-line-chart) - [Stacked Area Chart](../types/stacked-chart.md#blazor-stacked-area-chart) - [Stacked Column Chart](../types/stacked-chart.md#blazor-stacked-column-chart) - [Stacked Bar Chart](../types/stacked-chart.md#blazor-stacked-bar-chart) - [Stacked Spline Chart](../types/stacked-chart.md#blazor-stacked-spline-chart) - [Stacked 100% Line Chart](../types/stacked-chart.md#blazor-stacked-100-line-chart) - [Stacked 100% Area Chart](../types/stacked-chart.md#blazor-stacked-100-area-chart) - [Stacked 100% Column Chart](../types/stacked-chart.md#blazor-stacked-100-column-chart) - [Stacked 100% Bar Chart](../types/stacked-chart.md#blazor-stacked-100-bar-chart) - [Stacked 100% Spline Chart](../types/stacked-chart.md#blazor-stacked-100-spline-chart) |
\* Note that the [Scatter Polygon Chart](../types/shape-chart.md) and [Scatter Polyline Chart](../types/shape-chart.md) have better performance than rest of charts if you have a lot of data sources bound to the chart. For more info, see [Series Collection](#series-collection) section. Otherwise, other chart types are faster.
@@ -372,7 +369,7 @@ this.LineSeries.MarkerType = MarkerType.None;
### Chart Resolution
-Setting the [`Resolution`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=Resolution) property to a higher value will improve performance, but it will lower the graphical fidelity of lines of plotted series. As such, it can be increased up until the fidelity is unacceptable.
+Setting the [`Resolution`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=resolution) property to a higher value will improve performance, but it will lower the graphical fidelity of lines of plotted series. As such, it can be increased up until the fidelity is unacceptable.
This code snippet shows how to decrease resolution in the Blazor charts.
@@ -397,8 +394,8 @@ Enabling [Chart Trendlines](chart-trendlines.md) will slightly decrease performa
Usage of x-axis with DateTime support is not recommended if spaces between data points, based on the amount of time span between them, are not important. Instead, ordinal/category axis should be used because it is more efficient in the way it coalesces data. Also, ordinal/category axis doesn’t perform any sorting on the data like the time-based x-axis does.
-> [!Note]
-> The [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) already uses ordinal/category axis so there is no need to change its properties.
+**Note:**
+The [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) already uses ordinal/category axis so there is no need to change its properties.
This code snippet shows how to ordinal/category x-axis in the [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart) and [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) controls.
@@ -412,10 +409,10 @@ This code snippet shows how to ordinal/category x-axis in the [`IgbFinancialChar
### Axis Intervals
-By default, Blazor charts will automatically calculate [`YAxisInterval`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisInterval) based on range of your data. Therefore, you should avoid setting axis interval especially to a small value to prevent rendering of too many of axis gridlines and axis labels. Also, you might want to consider increasing [`YAxisInterval`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisInterval) property to a larger value than the automatically calculated axis interval if you do not need many axis gridlines or axis labels.
+By default, Blazor charts will automatically calculate [`YAxisInterval`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisInterval) based on range of your data. Therefore, you should avoid setting axis interval especially to a small value to prevent rendering of too many of axis gridlines and axis labels. Also, you might want to consider increasing [`YAxisInterval`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisInterval) property to a larger value than the automatically calculated axis interval if you do not need many axis gridlines or axis labels.
-> [!Note]
-> We do not recommend setting axis minor interval as it will decrease chart performance.
+**Note:**
+We do not recommend setting axis minor interval as it will decrease chart performance.
This code snippet shows how to set axis major interval in the Blazor charts.
@@ -432,7 +429,7 @@ This code snippet shows how to set axis major interval in the Blazor charts.
### Axis Scale
-Setting the [`YAxisIsLogarithmic`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisIsLogarithmic) property to false is recommended for higher performance, as fewer operations are needed than calculating axis range and values of axis labels in logarithmic scale.
+Setting the [`YAxisIsLogarithmic`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisIsLogarithmic) property to false is recommended for higher performance, as fewer operations are needed than calculating axis range and values of axis labels in logarithmic scale.
### Axis Labels Visibility
@@ -459,7 +456,7 @@ This code snippet shows how to hide axis labels in the Blazor charts.
### Axis Labels Abbreviation
-Although, the Blazor charts support abbreviation of large numbers (e.g. 10,000+) displayed in axis labels when [`YAxisAbbreviateLargeNumbers`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisAbbreviateLargeNumbers) is set to true. We recommend, instead pre-processing large values in your data items by dividing them a common factor and then setting [`YAxisTitle`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisTitle) to a string that represents factor used used to abbreviate your data values.
+Although, the Blazor charts support abbreviation of large numbers (e.g. 10,000+) displayed in axis labels when [`YAxisAbbreviateLargeNumbers`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisAbbreviateLargeNumbers) is set to true. We recommend, instead pre-processing large values in your data items by dividing them a common factor and then setting [`YAxisTitle`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisTitle) to a string that represents factor used used to abbreviate your data values.
This code snippet shows how to set axis title in the Blazor charts.
@@ -498,25 +495,25 @@ For example, changing these properties on the [`IgbCategoryChart`](mcp:get_api_r
| Axis Visual | X-Axis Properties | Y-Axis Properties |
| ---------------------|-------------------|------------------- |
-| All Axis Visual | [`XAxisInterval`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisInterval) [`XAxisMinorInterval`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisMinorInterval) | [`YAxisInterval`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart&member=YAxisInterval) [`YAxisMinorInterval`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart&member=YAxisMinorInterval) |
-| Axis Tickmarks | [`XAxisTickStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisTickStroke) [`XAxisTickStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisTickStrokeThickness) [`XAxisTickLength`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisTickLength) | [`YAxisTickStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisTickStroke) [`YAxisTickStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisTickStrokeThickness) [`YAxisTickLength`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisTickLength) |
-| Axis Major Gridlines | [`XAxisMajorStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisMajorStroke) [`XAxisMajorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisMajorStrokeThickness) | [`YAxisMajorStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisMajorStroke) [`YAxisMajorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisMajorStrokeThickness) |
-| Axis Minor Gridlines | [`XAxisMinorStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisMinorStroke) [`XAxisMinorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisMinorStrokeThickness) | [`YAxisMinorStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisMinorStroke) [`YAxisMinorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisMinorStrokeThickness) |
-| Axis Main Line | [`XAxisStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisStroke) [`XAxisStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisStrokeThickness) | [`YAxisStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisStroke) [`YAxisStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisStrokeThickness) |
-| Axis Titles | [`XAxisTitle`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisTitle) [`XAxisTitleAngle`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisTitleAngle) | [`YAxisTitle`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisTitle) [`YAxisTitleAngle`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisTitleAngle) |
-| Axis Strips | [`XAxisStrip`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisStrip) | [`YAxisStrip`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisStrip) |
+| All Axis Visual | [`XAxisInterval`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisInterval) [`XAxisMinorInterval`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisMinorInterval) | [`YAxisInterval`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisInterval) [`YAxisMinorInterval`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisMinorInterval) |
+| Axis Tickmarks | [`XAxisTickStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisTickStroke) [`XAxisTickStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisTickStrokeThickness) [`XAxisTickLength`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisTickLength) | [`YAxisTickStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisTickStroke) [`YAxisTickStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisTickStrokeThickness) [`YAxisTickLength`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisTickLength) |
+| Axis Major Gridlines | [`XAxisMajorStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisMajorStroke) [`XAxisMajorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisMajorStrokeThickness) | [`YAxisMajorStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisMajorStroke) [`YAxisMajorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisMajorStrokeThickness) |
+| Axis Minor Gridlines | [`XAxisMinorStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisMinorStroke) [`XAxisMinorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisMinorStrokeThickness) | [`YAxisMinorStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisMinorStroke) [`YAxisMinorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisMinorStrokeThickness) |
+| Axis Main Line | [`XAxisStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisStroke) [`XAxisStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisStrokeThickness) | [`YAxisStroke`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisStroke) [`YAxisStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisStrokeThickness) |
+| Axis Titles | [`XAxisTitle`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisTitle) [`XAxisTitleAngle`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisTitleAngle) | [`YAxisTitle`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisTitle) [`YAxisTitleAngle`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisTitleAngle) |
+| Axis Strips | [`XAxisStrip`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisStrip) | [`YAxisStrip`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=yAxisStrip) |
Or changing properties of an [`IgbAxis`](mcp:get_api_reference?platform=blazor&component=IgbAxis) in the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) control:
| Axis Visual | Axis Properties |
| ---------------------|------------------- |
| All Axis Visuals | `Interval`, `MinorInterval` |
-| Axis Tickmarks | `TickStroke` , `TickStrokeThickness`, `TickLength` |
-| Axis Major Gridlines | `MajorStroke`, `MajorStrokeThickness` |
-| Axis Minor Gridlines | `MinorStroke`, `MinorStrokeThickness` |
-| Axis Main Line | `Stroke`, `StrokeThickness` |
-| Axis Titles | [`ChartTitle`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=ChartTitle), `TitleAngle` |
-| Axis Strips | `Strip` |
+| Axis Tickmarks | [`TickStroke`](mcp:get_api_reference?platform=blazor&component=IgbAxis&member=tickStroke) , [`TickStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbAxis&member=tickStrokeThickness), [`TickLength`](mcp:get_api_reference?platform=blazor&component=IgbAxis&member=tickLength) |
+| Axis Major Gridlines | [`MajorStroke`](mcp:get_api_reference?platform=blazor&component=IgbAxis&member=majorStroke), [`MajorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbAxis&member=majorStrokeThickness) |
+| Axis Minor Gridlines | [`MinorStroke`](mcp:get_api_reference?platform=blazor&component=IgbAxis&member=minorStroke), [`MinorStrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbAxis&member=minorStrokeThickness) |
+| Axis Main Line | [`Stroke`](mcp:get_api_reference?platform=blazor&component=IgbAxis&member=stroke), [`StrokeThickness`](mcp:get_api_reference?platform=blazor&component=IgbAxis&member=strokeThickness) |
+| Axis Titles | [`Title`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=chartTitle), `TitleAngle` |
+| Axis Strips | [`Strip`](mcp:get_api_reference?platform=blazor&component=IgbAxis&member=strip) |
## Performance in Financial Chart
@@ -524,24 +521,24 @@ In addition to above performance guidelines, the Blazor [`IgbFinancialChart`](mc
### Y-Axis Mode
-Setting the [`YAxisMode`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart&member=YAxisMode) option to `Numeric` is recommended for higher performance, as fewer operations are needed than using `PercentChange` mode.
+Setting the [`YAxisMode`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart&member=yAxisMode) option to `Numeric` is recommended for higher performance, as fewer operations are needed than using [`PercentChange`](mcp:get_api_reference?platform=blazor&component=IgbLineSeries&member=percentChange) mode.
### Chart Panes
-Setting a lot of panes using [`IndicatorTypes`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart&member=IndicatorTypes) and [`OverlayTypes`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart&member=OverlayTypes) options, might decrease performance and it is recommended to use a few financial indicators and one financial overlay.
+Setting a lot of panes using [`IndicatorTypes`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart&member=indicatorTypes) and [`OverlayTypes`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart&member=overlayTypes) options, might decrease performance and it is recommended to use a few financial indicators and one financial overlay.
### Zoom Slider
-Setting the [`ZoomSliderType`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart&member=ZoomSliderType) option to `None` will improve chart performance and enable more vertical space for other indicators and the volume pane.
+Setting the [`ZoomSliderType`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart&member=zoomSliderType) option to [`None`](mcp:get_api_reference?platform=blazor&component=FinancialChartVolumeType&member=None) will improve chart performance and enable more vertical space for other indicators and the volume pane.
### Volume Type
-Setting the [`VolumeType`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart&member=VolumeType) property can have the following impact on chart performance:
+Setting the [`VolumeType`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart&member=volumeType) property can have the following impact on chart performance:
-- `None` - is the least expensive since it does not display the volume pane.
-- `Line` - is more expensive volume type to render and it is recommended when rendering a lot of data points or when plotting a lot of data sources.
-- `Area` - is more expensive to render than the `Line` volume type.
-- [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn) - is more expensive to render than the `Area` volume type and it is recommended when rendering volume data of 1-3 stocks.
+- [`None`](mcp:get_api_reference?platform=blazor&component=FinancialChartVolumeType&member=None) - is the least expensive since it does not display the volume pane.
+- [`Line`](mcp:get_api_reference?platform=blazor&component=FinancialChartVolumeType&member=Line) - is more expensive volume type to render and it is recommended when rendering a lot of data points or when plotting a lot of data sources.
+- [`Area`](mcp:get_api_reference?platform=blazor&component=FinancialChartVolumeType&member=Area) - is more expensive to render than the [`Line`](mcp:get_api_reference?platform=blazor&component=FinancialChartVolumeType&member=Line) volume type.
+- [`Column`](mcp:get_api_reference?platform=blazor&component=FinancialChartVolumeType&member=Column) - is more expensive to render than the [`Area`](mcp:get_api_reference?platform=blazor&component=FinancialChartVolumeType&member=Area) volume type and it is recommended when rendering volume data of 1-3 stocks.
## Performance in Data Chart
@@ -593,20 +590,6 @@ You can find more information about related chart types in these topics:
- [Chart Trendlines](chart-trendlines.md)
## API References
-
-The following table lists API members mentioned in above sections:
-
-- [`Resolution`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=Resolution)
-- [`IndicatorTypes`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart&member=IndicatorTypes)
-- [`OverlayTypes`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart&member=OverlayTypes)
-- [`VolumeType`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart&member=VolumeType)
-- [`ZoomSliderType`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart&member=ZoomSliderType)
-- [`XAxisMode`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart&member=XAxisMode)
-- [`YAxisMode`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart&member=YAxisMode)
-- [`XAxisInterval`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisInterval)
-- [`YAxisInterval`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisInterval)
-- [`XAxisMinorInterval`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisMinorInterval)
-- [`YAxisMinorInterval`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisMinorInterval)
-- [`XAxisLabelVisibility`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisLabelVisibility)
-- [`YAxisLabelVisibility`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisLabelVisibility)
-- [`YAxisIsLogarithmic`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=YAxisIsLogarithmic)
+[`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart)
+[`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart)
+[`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-tooltips.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-tooltips.md
index a69b6cf7c..2a4d83f64 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-tooltips.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-tooltips.md
@@ -1,21 +1,22 @@
---
-title: Blazor Chart Tooltips | Data Visualization | Infragistics
-_description: Infragistics' Blazor Chart Tooltips
-_keywords: Blazor Charts, Tooltips, Infragistics
-_license: commercial
+title: "Blazor Chart Tooltips | Data Visualization | Infragistics"
+description: Infragistics' Blazor Chart Tooltips
+keywords: "Blazor Charts, Tooltips, Infragistics"
+license: commercial
mentionedTypes: ["DomainChart", "CategoryChart", "ToolTipType"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "In Blazor charts, tooltips provide details about bound data and they are rendered in popups when the end-user hovers over data points."
_tocName: Chart Tooltips
_premium: true
---
-
# Blazor Chart Tooltips
In Blazor charts, tooltips provide details about bound data and they are rendered in popups when the end-user hovers over data points. Tooltips are supported by the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart), [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart), and [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) controls.
## Blazor Chart Tooltip Types
-Blazor Chart provide three types of tooltips that you can with tooltips enabled by setting the [`ToolTipType`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=ToolTipType) property. The following example shows the [Column Chart](../types/column-chart.md) with a combo-box that you can use to change type of tooltips.
+Blazor Chart provide three types of tooltips that you can with tooltips enabled by setting the [`ToolTipType`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=toolTipType) property. The following example shows the [Column Chart](../types/column-chart.md) with a combo-box that you can use to change type of tooltips.
```razor
@using IgniteUI.Blazor.Controls
@@ -131,18 +132,14 @@ public class HighestGrossingMovies
}
```
-
-
-The [`ToolTipType`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=ToolTipType) property is configurable and can be set to one of the following options:
+The [`ToolTipType`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=toolTipType) property is configurable and can be set to one of the following options:
| Property Value | Description |
| -------------------|----------------|
-| `Default` Tooltip | Display a tooltip for a single item when the pointer is positioned over it. |
-| `Data` Tooltip | Display the data tooltips for all series in the chart. |
-| `Item` Tooltip | Display a tooltip for each data item in the category that the pointer is positioned over. |
-| `Category` Tooltip | Display a grouped tooltip for all data points in the category that the pointer is positioned over. |
-
-
+| [`Default`](mcp:get_api_reference?platform=blazor&component=ToolTipType&member=Default) Tooltip | Display a tooltip for a single item when the pointer is positioned over it. |
+| [`Data`](mcp:get_api_reference?platform=blazor&component=ToolTipType&member=Data) Tooltip | Display the data tooltips for all series in the chart. |
+| [`Item`](mcp:get_api_reference?platform=blazor&component=ToolTipType&member=Item) Tooltip | Display a tooltip for each data item in the category that the pointer is positioned over. |
+| [`Category`](mcp:get_api_reference?platform=blazor&component=ToolTipType&member=Category) Tooltip | Display a grouped tooltip for all data points in the category that the pointer is positioned over. |
## Blazor Chart Tooltip Template
@@ -192,8 +189,6 @@ This example shows how to create custom tooltips for all series in Blazor [`IgbC
}
```
-
-
## Custom Tooltips in Data Chart
This example shows how to create custom tooltips for each series in Blazor Data Chart control.
@@ -239,8 +234,6 @@ This example shows how to create custom tooltips for each series in Blazor Data
}
```
-
-
## Additional Resources
You can find more information about related chart features in these topics:
@@ -249,14 +242,7 @@ You can find more information about related chart features in these topics:
- [Chart Markers](chart-markers.md)
## API References
-
-The [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) and [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart) components share the following API properties:
-
-- [`ToolTipType`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=ToolTipType)
-
-In the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) component, you can use the following API components and properties:
-
-- [`IgbDataToolTipLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataToolTipLayer)
-- [`IgbItemToolTipLayer`](mcp:get_api_reference?platform=blazor&component=IgbItemToolTipLayer)
-- [`IgbCategoryToolTipLayer`](mcp:get_api_reference?platform=blazor&component=IgbCategoryToolTipLayer)
-- `ShowDefaultToolTip`
+[`IgbDataToolTipLayer`](mcp:get_api_reference?platform=blazor&component=IgbDataToolTipLayer)
+[`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart)
+[`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart)
+[`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-trendlines.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-trendlines.md
index bf3a4db37..1c180dce7 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-trendlines.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-trendlines.md
@@ -1,21 +1,22 @@
---
title: Blazor Chart Trendlines | Data Visualization | Infragistics
-_description: Infragistics' Blazor Chart Trendlines
-_keywords: Blazor Charts, Trendlines, Infragistics
-_license: commercial
-mentionedTypes: ["DomainChart", "FinancialChart", "CategoryChart", "XamDataChart", "TrendLineType"]
+description: Infragistics' Blazor Chart Trendlines
+keywords: Blazor Charts, Trendlines, Infragistics
+license: commercial
+
namespace: Infragistics.Controls.Charts
+llms:
+ description: "In Ignite UI for Blazor charts, trendlines help in identifying a trend or finding patterns in data."
_tocName: Chart Trendlines
_premium: true
---
-
# Blazor Chart Trendlines
In Ignite UI for Blazor charts, trendlines help in identifying a trend or finding patterns in data. Trendlines are always rendered in front of data points bound to the chart and are supported by the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart), [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart), and [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) (except for stacked series, shape series, and range series).
-Trendlines are off by default, but you can enable them by setting the [`TrendLineType`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=TrendLineType) property. Also, you can modify multiple appearance properties of trendlines such as its brush, period, and thickness.
+Trendlines are off by default, but you can enable them by setting the [`TrendLineType`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=trendLineType) property. Also, you can modify multiple appearance properties of trendlines such as its brush, period, and thickness.
-The trendlines also have the ability to have a dash array applied to them once enabled. This is done by setting the `TrendLineDashArray` property to an array of numbers. The numeric array describes the length of the dashes of the trendline.
+The trendlines also have the ability to have a dash array applied to them once enabled. This is done by setting the [`TrendLineDashArray`](mcp:get_api_reference?platform=blazor&component=IgbFinancialPriceSeries&member=trendLineDashArray) property to an array of numbers. The numeric array describes the length of the dashes of the trendline.
## Blazor Chart Trendlines Example
@@ -83,11 +84,9 @@ The following sample depicts a [`IgbFinancialChart`](mcp:get_api_reference?platf
}
```
-
-
## Blazor Chart Trendlines Dash Array Example
-The following sample depicts a [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) showing a [`IgbFinancialPriceSeries`](mcp:get_api_reference?platform=blazor&component=IgbFinancialPriceSeries) with a **QuarticFit** dashed trendline applied via the [`TrendLineDashArray`](mcp:get_api_reference?platform=blazor&component=IgbFinancialPriceSeries&member=TrendLineDashArray) property:
+The following sample depicts a [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) showing a [`IgbFinancialPriceSeries`](mcp:get_api_reference?platform=blazor&component=IgbFinancialPriceSeries) with a **QuarticFit** dashed trendline applied via the [`TrendLineDashArray`](mcp:get_api_reference?platform=blazor&component=IgbFinancialPriceSeries&member=trendLineDashArray) property:
```razor
@using IgniteUI.Blazor.Controls
@@ -198,33 +197,31 @@ public class Stock2Years
}
```
-
-
## Blazor Chart Trendline Layer
The [`IgbTrendLineLayer`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer) is a series type that is designed to display a single trendline type for a target series. The difference between this and the existing trendline features on the existing series types is that since the [`IgbTrendLineLayer`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer) is a series type, you can add more than one of them to the [`Series`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Series) collection of the chart to have multiple trendlines attached to the same series. You can also have the trendline appear in the legend, which was not possible previously.
## Trendline Layer Usage
-The [`IgbTrendLineLayer`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer) must be provided with a [`TargetSeries`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer&member=TargetSeries) and a [`TrendLineType`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer&member=TrendLineType) in order to work properly. The different trendline types that are available are the same as the trendlines that are available on the series.
+The [`IgbTrendLineLayer`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer) must be provided with a [`TargetSeries`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer&member=targetSeries) and a [`TrendLineType`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer&member=trendLineType) in order to work properly. The different trendline types that are available are the same as the trendlines that are available on the series.
-If you would like to show the [`IgbTrendLineLayer`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer) in the Legend, you can do so by setting the `UseLegend` property to `true`.
+If you would like to show the [`IgbTrendLineLayer`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer) in the Legend, you can do so by setting the [`UseLegend`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer&member=useLegend) property to `true`.
## Styling the Trendline Layer
-By default, the [`IgbTrendLineLayer`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer) renders with the same color as its [`TargetSeries`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer&member=TargetSeries) in a dashed line. This can be configured by using the various styling properties on the [`IgbTrendLineLayer`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer).
+By default, the [`IgbTrendLineLayer`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer) renders with the same color as its [`TargetSeries`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer&member=targetSeries) in a dashed line. This can be configured by using the various styling properties on the [`IgbTrendLineLayer`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer).
-To change the color of the trendline that is drawn, you can set its `Brush` property. Alternatively, you can also set the `UseIndex` property to `true`, which will pull from the chart's [`Brushes`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=Brushes) palette based on the index in which the [`IgbTrendLineLayer`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer) is placed in the chart's [`Series`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Series) collection.
+To change the color of the trendline that is drawn, you can set its [`Brush`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer&member=brush) property. Alternatively, you can also set the [`UseIndex`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer&member=useIndex) property to `true`, which will pull from the chart's [`Brushes`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=brushes) palette based on the index in which the [`IgbTrendLineLayer`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer) is placed in the chart's [`Series`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Series) collection.
-You can also modify the way that the [`IgbTrendLineLayer`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer) appears by using its `AppearanceMode` and `ShiftAmount` properties. The `ShiftAmount` takes a value between -1.0 and 1.0 to determine how much of a "shift" to apply to the options that end in "Shift".
+You can also modify the way that the [`IgbTrendLineLayer`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer) appears by using its [`AppearanceMode`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer&member=appearanceMode) and [`ShiftAmount`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer&member=shiftAmount) properties. The [`ShiftAmount`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer&member=shiftAmount) takes a value between -1.0 and 1.0 to determine how much of a "shift" to apply to the options that end in "Shift".
-The following are the options for the `AppearanceMode` property:
+The following are the options for the [`AppearanceMode`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer&member=appearanceMode) property:
- `Auto`: This will default to the DashPattern enumeration.
-- `BrightnessShift`: The trendline will take the [`TargetSeries`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer&member=TargetSeries) brush and modify its brightness based on the provided `ShiftAmount`.
-- `DashPattern`: The trendline will appear as a dashed line. The frequency of the dashes can be modified by using the `DashArray` property on the [`IgbTrendLineLayer`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer).
-- `OpacityShift`: The trendline will take the [`TargetSeries`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer&member=TargetSeries) brush and modify its opacity based on the provided `ShiftAmount`.
-- `SaturationShift`: The trendline will take the [`TargetSeries`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer&member=TargetSeries) brush and modify its saturation based on the provided `ShiftAmount`.
+- `BrightnessShift`: The trendline will take the [`TargetSeries`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer&member=targetSeries) brush and modify its brightness based on the provided [`ShiftAmount`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer&member=shiftAmount).
+- `DashPattern`: The trendline will appear as a dashed line. The frequency of the dashes can be modified by using the [`DashArray`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer&member=dashArray) property on the [`IgbTrendLineLayer`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer).
+- `OpacityShift`: The trendline will take the [`TargetSeries`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer&member=targetSeries) brush and modify its opacity based on the provided [`ShiftAmount`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer&member=shiftAmount).
+- `SaturationShift`: The trendline will take the [`TargetSeries`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer&member=targetSeries) brush and modify its saturation based on the provided [`ShiftAmount`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer&member=shiftAmount).
## Additional Resources
@@ -234,18 +231,7 @@ You can find more information about related chart features in these topics:
- [Chart Highlighting](chart-highlighting.md)
## API References
-
-The [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) and [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart) components share the following API properties:
-
-- [`TrendLineBrushes`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=TrendLineBrushes)
-- [`TrendLinePeriod`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=TrendLinePeriod)
-- [`TrendLineThickness`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=TrendLineThickness)
-- [`TrendLineType`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart&member=TrendLineType)
-
-In the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) component, most types of series have the following API properties:
-
-- [`TrendLineBrush`](mcp:get_api_reference?platform=blazor&component=IgbScatterBase&member=TrendLineBrush)
-- [`TrendLineDashArray`](mcp:get_api_reference?platform=blazor&component=IgbScatterBase&member=TrendLineDashArray)
-- [`TrendLinePeriod`](mcp:get_api_reference?platform=blazor&component=IgbScatterBase&member=TrendLinePeriod)
-- [`TrendLineThickness`](mcp:get_api_reference?platform=blazor&component=IgbScatterBase&member=TrendLineThickness)
-- [`TrendLineType`](mcp:get_api_reference?platform=blazor&component=IgbScatterBase&member=TrendLineType)
+[`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart)
+[`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart)
+[`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart)
+[`IgbTrendLineLayer`](mcp:get_api_reference?platform=blazor&component=IgbTrendLineLayer)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-user-annotations.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-user-annotations.md
index b93d68d7a..4d00f7af7 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-user-annotations.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chart-user-annotations.md
@@ -1,14 +1,15 @@
---
-title: Blazor Chart User Annotations | Data Visualization | Infragistics
-_description: Infragistics' Blazor Chart User Annotations
-_keywords: Blazor Charts, User Annotations, Infragistics
+title: "Blazor Chart User Annotations | Data Visualization | Infragistics"
+description: Infragistics' Blazor Chart User Annotations
+keywords: "Blazor Charts, User Annotations, Infragistics"
mentionedTypes: ["DataChart", "UserAnnotationLayer", "UserStripAnnotation", "UserSliceAnnotation", "UserPointAnnotation", "Toolbar", "UserAnnotationInformation", "SeriesViewer"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "In Ignite UI for Blazor, you can annotate the DataChart with slice, strip, and point annotations at runtime using the user annotations feature."
_tocName: Chart User Annotations
_premium: true
---
-
-# Blazor Chart User Annotation Layer
+# Blazor Chart User Annotation Layer
In Ignite UI for Blazor, you can annotate the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) with slice, strip, and point annotations at runtime using the user annotations feature. This allows the end user to add more details to the plot such as calling out single important events such as company quarter reports by using the slice annotation or events that have a duration by using the strip annotation. You can also call out individual points on the plotted series by using the point annotation or any combination of these three.
@@ -172,51 +173,45 @@ public class CountryRenewableElectricity
}
```
-> [!Note]
-> This feature is designed to support X and Y axes and does not currently support radial or angular axes.
+**Note:**
+This feature is designed to support X and Y axes and does not currently support radial or angular axes.
## Using the User Annotations with the Toolbar
-The [`IgbToolbar`](mcp:get_api_reference?platform=blazor&component=IgbToolbar) exposes an Annotations menu item with two tools with the labels of "Annotate Chart" and "Delete Note." In order for this menu item to appear, you first need to set the [`IsUserAnnotationsEnabled`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=IsUserAnnotationsEnabled) property on the corresponding chart to `true`.
+The [`IgbToolbar`](mcp:get_api_reference?platform=blazor&component=IgbToolbar) exposes an Annotations menu item with two tools with the labels of "Annotate Chart" and "Delete Note." In order for this menu item to appear, you first need to set the [`IsUserAnnotationsEnabled`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=isUserAnnotationsEnabled) property on the corresponding chart to `true`.
The "Annotate Chart" option that appears after opening allows you to annotate the plot area of the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart). This can be done by adding slice, strip, or point annotations. You can add a slice annotation by clicking on a label on the X or Y axis. You can add a strip annotation by clicking and dragging in the plot area. Also, you can add a point annotation by clicking on a point in a series plotted in the chart.
-
-
You can delete the annotations that you have previously added by selecting the "Delete Note" menu item and then clicking on the axis annotation for the slice or strip user annotations, or by clicking the corresponding data point for the point user annotation.
-
-
-When adding one of these user annotations via the `XamToolbar`, the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) will raise an event named `UserAnnotationInformationRequested` where you can provide more information for the user annotations. This event's arguments have a property named `AnnotationInfo` that will return a [`IgbUserAnnotationInformation`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationInformation) object that allows the configuration of multiple different aspects of the annotation to be added.
+When adding one of these user annotations via the [`IgbToolbar`](mcp:get_api_reference?platform=blazor&component=IgbToolbar), the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) will raise an event named `UserAnnotationInformationRequested` where you can provide more information for the user annotations. This event's arguments have a property named `AnnotationInfo` that will return a [`IgbUserAnnotationInformation`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationInformation) object that allows the configuration of multiple different aspects of the annotation to be added.
The table below details the different configurable properties on [`IgbUserAnnotationInformation`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationInformation):
| Property | Type | Description |
|------------|---------|-------------|
-|[`AnnotationData`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationInformation&member=AnnotationData)|`string`|This property allows additional information for the user annotation. This property is designed to be utilized with the `UserAnnotationToolTipContentUpdating` event to show additional information in the annotation's tooltip.|
-|[`AnnotationId`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationInformation&member=AnnotationId)|`string`|This read-only property returns the unique string ID of the user annotation.|
-|[`BadgeColor`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationInformation&member=BadgeColor)|`string`|This property gets or sets the color to use for the badge in the user annotation.|
-|[`BadgeImageUri`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationInformation&member=BadgeImageUri)|`string`|This property gets or sets a path to an image to use for the badge in the user annotation.|
-|[`DialogSuggestedXLocation`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationInformation&member=DialogSuggestedXLocation)|`double`|This property gets a recommended X location to show a dialog based on the location that the user annotation was added.|
-|[`DialogSuggestedYLocation`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationInformation&member=DialogSuggestedYLocation)|`double`|This property gets a recommended Y location to show a dialog based on the location that the user annotation was added.|
-|[`Label`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationInformation&member=Label)|`string`|This property gets or sets the label to be shown in the user annotation.|
-|[`MainColor`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationInformation&member=MainColor)|`string`|This property gets or sets the color to be used to fill the background of the user annotation.|
+|[`AnnotationData`](mcp:get_api_reference?platform=blazor&component=IgbUserStripAnnotation&member=annotationData)|`string`|This property allows additional information for the user annotation. This property is designed to be utilized with the `UserAnnotationToolTipContentUpdating` event to show additional information in the annotation's tooltip.|
+|[`AnnotationId`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationInformation&member=annotationId)|`string`|This read-only property returns the unique string ID of the user annotation.|
+|[`BadgeColor`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationInformation&member=badgeColor)|`string`|This property gets or sets the color to use for the badge in the user annotation.|
+|[`BadgeImageUri`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationInformation&member=badgeImageUri)|`string`|This property gets or sets a path to an image to use for the badge in the user annotation.|
+|[`DialogSuggestedXLocation`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationInformation&member=dialogSuggestedXLocation)|`double`|This property gets a recommended X location to show a dialog based on the location that the user annotation was added.|
+|[`DialogSuggestedYLocation`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationInformation&member=dialogSuggestedYLocation)|`double`|This property gets a recommended Y location to show a dialog based on the location that the user annotation was added.|
+|[`Label`](mcp:get_api_reference?platform=blazor&component=IgbUserStripAnnotation&member=label)|`string`|This property gets or sets the label to be shown in the user annotation.|
+|[`MainColor`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationInformation&member=mainColor)|`string`|This property gets or sets the color to be used to fill the background of the user annotation.|
-After you have made the changes to the annotation through the `UserAnnotationInformationRequested` event, you should invoke the [`FinishAnnotationFlow`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationLayer&member=FinishAnnotationFlow) method on the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) to finish creating the annotation and commit the changes to it. Alternatively, you can also cancel the annotation's creation by calling [`CancelAnnotationFlow`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationLayer&member=CancelAnnotationFlow) and passing the [`AnnotationId`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationInformation&member=AnnotationId) of the annotation, which can be obtained from the `AnnotationInfo` parameter of the `UserAnnotationInformationRequested` event's arguments, as mentioned above. This will remove the annotation from the plot area.
+After you have made the changes to the annotation through the `UserAnnotationInformationRequested` event, you should invoke the [`FinishAnnotationFlow`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=finishAnnotationFlow) method on the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) to finish creating the annotation and commit the changes to it. Alternatively, you can also cancel the annotation's creation by calling [`CancelAnnotationFlow`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=cancelAnnotationFlow) and passing the [`AnnotationId`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationInformation&member=annotationId) of the annotation, which can be obtained from the `AnnotationInfo` parameter of the `UserAnnotationInformationRequested` event's arguments, as mentioned above. This will remove the annotation from the plot area.
## Using the User Annotations Programmatically
-When using the [`IgbUserAnnotationLayer`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationLayer) programmatically, you can invoke two different methods on the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) to put the chart into a mode where you can add or remove a user annotation. These methods are named [`StartCreatingAnnotation`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=StartCreatingAnnotation) and [`StartDeletingAnnotation`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=StartDeletingAnnotation), respectively.
+When using the [`IgbUserAnnotationLayer`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationLayer) programmatically, you can invoke two different methods on the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) to put the chart into a mode where you can add or remove a user annotation. These methods are named [`StartCreatingAnnotation`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=startCreatingAnnotation) and [`StartDeletingAnnotation`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=startDeletingAnnotation), respectively.
-After invoking [`StartCreatingAnnotation`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=StartCreatingAnnotation), you can add a slice annotation by clicking on a label on the X or Y axis, add a strip annotation by clicking and dragging in the plot area and releasing the mouse button, or add a point annotation by clicking on a data point on a series plotted in the chart.
+After invoking [`StartCreatingAnnotation`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=startCreatingAnnotation), you can add a slice annotation by clicking on a label on the X or Y axis, add a strip annotation by clicking and dragging in the plot area and releasing the mouse button, or add a point annotation by clicking on a data point on a series plotted in the chart.
Adding one of these user annotations will raise an event named `UserAnnotationInformationRequested`, where you can provide more information for the user annotation. This event's arguments have a property named `AnnotationInfo` that will return a [`IgbUserAnnotationInformation`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationInformation) object that allows the configuration of multiple different aspects of the annotation to be added.
-After you have made the changes to the annotation through the `UserAnnotationInformationRequested` event, you should invoke the [`FinishAnnotationFlow`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationLayer&member=FinishAnnotationFlow) method on the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) to finish creating the annotation and commit the changes to it. Alternatively, you can also cancel the annotation's creation by calling [`CancelAnnotationFlow`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationLayer&member=CancelAnnotationFlow) and passing the [`AnnotationId`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationInformation&member=AnnotationId) of the annotation, which can be obtained from the `AnnotationInfo` parameter of the `UserAnnotationInformationRequested` event's arguments, as mentioned above. This will remove the annotation from the plot area.
+After you have made the changes to the annotation through the `UserAnnotationInformationRequested` event, you should invoke the [`FinishAnnotationFlow`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=finishAnnotationFlow) method on the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) to finish creating the annotation and commit the changes to it. Alternatively, you can also cancel the annotation's creation by calling [`CancelAnnotationFlow`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=cancelAnnotationFlow) and passing the [`AnnotationId`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationInformation&member=annotationId) of the annotation, which can be obtained from the `AnnotationInfo` parameter of the `UserAnnotationInformationRequested` event's arguments, as mentioned above. This will remove the annotation from the plot area.
-Once the user annotation has been added to the chart, it will appear in the [`Series`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=Series) collection as a [`IgbUserAnnotationLayer`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationLayer). The [`IgbUserAnnotationLayer`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationLayer) has an [`Annotations`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationLayer&member=Annotations) collection that can store [`IgbUserSliceAnnotation`](mcp:get_api_reference?platform=blazor&component=IgbUserSliceAnnotation), [`IgbUserStripAnnotation`](mcp:get_api_reference?platform=blazor&component=IgbUserStripAnnotation) and [`IgbUserPointAnnotation`](mcp:get_api_reference?platform=blazor&component=IgbUserPointAnnotation) elements depending on the type of annotations added to the plot area.
+Once the user annotation has been added to the chart, it will appear in the [`Series`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=Series) collection as a [`IgbUserAnnotationLayer`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationLayer). The [`IgbUserAnnotationLayer`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationLayer) has an [`Annotations`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationLayer&member=annotations) collection that can store [`IgbUserSliceAnnotation`](mcp:get_api_reference?platform=blazor&component=IgbUserSliceAnnotation), [`IgbUserStripAnnotation`](mcp:get_api_reference?platform=blazor&component=IgbUserStripAnnotation) and [`IgbUserPointAnnotation`](mcp:get_api_reference?platform=blazor&component=IgbUserPointAnnotation) elements depending on the type of annotations added to the plot area.
## User Annotation ToolTip
@@ -224,24 +219,15 @@ Each of the user annotations can show a tooltip on mouse hover to add even more
The chart exposes a `UserAnnotationToolTipContentUpdating` event that you can handle to update the content of the tooltip for the user annotation as the tooltip is shown. The event arguments of this event exposes two properties: `Content` and `AnnotationInfo`.
-The tooltip is designed to work in tandem with the `UserAnnotationInformationRequested` event so that you can provide more detail to the user annotation via that event's [`AnnotationData`](mcp:get_api_reference?platform=blazor&component=IgbUserStripAnnotation&member=AnnotationData) property. The `AnnotationInfo` property on the event arguments of the `UserAnnotationToolTipContentUpdating` event will be the same instance as the `AnnotationInfo` property in the `UserAnnotationInformationRequested` that you can modify in that event. This allows you to utilize the information provided to the user annotation on its creation and provide even more information within the tooltip.
+The tooltip is designed to work in tandem with the `UserAnnotationInformationRequested` event so that you can provide more detail to the user annotation via that event's `AnnotationInfo.AnnotationData` property. The `AnnotationInfo` property on the event arguments of the `UserAnnotationToolTipContentUpdating` event will be the same instance as the `AnnotationInfo` property in the `UserAnnotationInformationRequested` that you can modify in that event. This allows you to utilize the information provided to the user annotation on its creation and provide even more information within the tooltip.
## API References
-
-The following is a list of API members mentioned in the above sections:
-
-- [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart).[`IsUserAnnotationsEnabled`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=IsUserAnnotationsEnabled)
-- [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart).`SeriesViewer.UserAnnotationInformationRequested`
-- [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart).`SeriesViewer.userAnnotationToolTipContentUpdating`
-- [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart).[`CancelAnnotationFlow`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=CancelAnnotationFlow)
-- [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart).[`StartCreatingAnnotation`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=StartCreatingAnnotation)
-- [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart).[`StartDeletingAnnotation`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=StartDeletingAnnotation)
-- [`IgbUserAnnotationInformation`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationInformation)
-- [`IgbUserSliceAnnotation`](mcp:get_api_reference?platform=blazor&component=IgbUserSliceAnnotation)
-- [`IgbUserStripAnnotation`](mcp:get_api_reference?platform=blazor&component=IgbUserStripAnnotation)
-- [`IgbUserPointAnnotation`](mcp:get_api_reference?platform=blazor&component=IgbUserPointAnnotation)
-- [`IgbToolbar`](mcp:get_api_reference?platform=blazor&component=IgbToolbar)
-
+[`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart)
+[`IgbUserAnnotationLayer`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationLayer)
+[`IgbUserAnnotationInformation`](mcp:get_api_reference?platform=blazor&component=IgbUserAnnotationInformation)
+[`IgbUserSliceAnnotation`](mcp:get_api_reference?platform=blazor&component=IgbUserSliceAnnotation)
+[`IgbUserStripAnnotation`](mcp:get_api_reference?platform=blazor&component=IgbUserStripAnnotation)
+[`IgbUserPointAnnotation`](mcp:get_api_reference?platform=blazor&component=IgbUserPointAnnotation)
## Additional Resources
You can find more information about related chart features in these topics:
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chat.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chat.md
new file mode 100644
index 000000000..7f6accea4
--- /dev/null
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/chat.md
@@ -0,0 +1,632 @@
+---
+title: "Blazor Chat | Ignite UI for Blazor"
+description: With Ignite UI for Blazor Chat, you can build interactive messaging experiences with support for messages, attachments, suggestions, typing indicators, and custom templates.
+keywords: "Ignite UI for Blazor, UI controls, Blazor widgets, web widgets, UI widgets, Blazor, Native Blazor Components Suite, Native Blazor Controls, Native Blazor Components Library, Blazor Chat components, Blazor Chat controls"
+mentionedTypes: ["Chat"]
+license: MIT
+llms:
+ description: "The Ignite UI for Blazor Chat component provides a complete solution for building conversational interfaces in your applications."
+_tocName: Chat
+---
+# Blazor Chat Overview
+
+The Ignite UI for Blazor Chat component provides a complete solution for building conversational interfaces in your applications. Whether you are creating a customer support tool, a collaborative workspace, or a chatbot assistant, the Chat component gives you the building blocks you need: sending and receiving text messages, uploading file attachments, displaying quick reply suggestions, showing typing indicators when the other participant is writing a response.
+
+Unlike a static message list, the `IgbChat` component is interactive and designed for **real-time communication**. It manages input, rendering, and user interaction while giving you full control over how messages and attachments are displayed. It also exposes an extensive rendering API that lets you override any part of its layout or visuals.
+
+```razor
+@using IgniteUI.Blazor.Controls
+
+
+
+
+
+
+@code {
+ public IgbChat Chat;
+ public IgbChatMessage[] Messages = new IgbChatMessage[]
+ {
+ new IgbChatMessage()
+ },
+ new IgbChatMessage() {
+ Id = "2",
+ Text = "Hello! I can help with that. What is your question regarding order #7890?",
+ Sender = "support",
+ Timestamp = (DateTime.Now - TimeSpan.FromMilliseconds(3400000)).ToString()
+ },
+ new IgbChatMessage() {
+ Id = "3",
+ Text = "The tracking status shows 'delivered', but I haven't received it yet. Can you confirm the delivery location?",
+ Sender = "user",
+ Timestamp = (DateTime.Now - TimeSpan.FromMilliseconds(3300000)).ToString()
+ },
+ new IgbChatMessage() {
+ Id = "4",
+ Text = "I've reviewed the delivery details. It seems the package was left in a different spot. Here's a photo from our delivery driver showing where it was placed. Please check your porch and side door.",
+ Sender = "support",
+ Timestamp = (DateTime.Now - TimeSpan.FromMilliseconds(3200000)).ToString(),
+ Attachments = new IgbChatMessageAttachment[]
+ {
+ new IgbChatMessageAttachment()
+ }
+ }
+ }
+ };
+
+ public IgbChatOptions Options = new IgbChatOptions
+ {
+ DisableAutoScroll = false,
+ DisableInputAttachments = false,
+ Suggestions = new string[] { "It's there. Thanks.", "It's not there." },
+ InputPlaceholder = "Type your message here...",
+ HeaderText = "Customer Support",
+ Renderers = new IgbChatRenderers()
+ {
+ MessageHeaderScript = "OnMessageHeaderTemplate"
+ }
+ };
+
+ public void OnMessageCreated(IgbChatMessageEventArgs e)
+ {
+ Messages = Messages.Append(e.Detail).ToArray();
+
+ IgbChatMessage responseMessage = new IgbChatMessage()
+ {
+ Id = DateTime.Now.Ticks.ToString(),
+ Text = "Our support team is currently unavailable. We'll get back to you as soon as possible.",
+ Sender = "support",
+ Timestamp = DateTime.Now.ToString()
+ };
+ Messages = Messages.Append(responseMessage).ToArray();
+ this.Chat.DraftMessage = new IgbChatDraftMessage()
+ {
+ Text = "",
+ Attachments = new IgbChatMessageAttachment[] { }
+ };
+ }
+
+}
+```
+
+## Installation
+
+To get started, install the Ignite UI for Blazor by running the following command:
+
+```cmd
+Install-Package IgniteUI.Blazor
+```
+
+Or via .NET CLI:
+
+```cmd
+dotnet add package IgniteUI.Blazor
+```
+
+Once installed, you can import the component in your project and register it so it becomes available as a custom element:
+
+```cs
+// in Program.cs file
+
+builder.Services.AddIgniteUIBlazor(typeof(IgbChatModule));
+```
+
+You will also need to link an additional CSS file to apply the styling to the `IgbChat` component.
+
+```razor
+
+```
+
+The CSS file includes one of our default themes. You can replace it with a different theme or create a custom one if you want the `IgbChat` to match your application’s branding.
+
+## Usage
+
+The simplest way to use the `IgbChat` is to declare it as follows:
+
+```cs
+ public IgbChatOptions Options = new IgbChatOptions()
+ {
+ CurrentUserId = "user",
+ HeaderText = "Support Chat"
+ };
+```
+
+```razor
+
+
+```
+
+Here, the `currentUserId` property tells the component which messages are “outgoing” (sent by the current user) versus “incoming” (sent by others). The `headerText` provides a title for the chat window.
+
+Once rendered, you can programmatically add messages:
+
+```razor
+
+```
+
+```cs
+ public IgbChatMessage[] Messages = new IgbChatMessage[]
+ {
+ new IgbChatMessage()
+ }
+ }
+```
+
+The `Messages` collection is updated automatically when the user sends a message. You can handle the `MessageCreated` event to persist the message or perform other side effects; do not append the event detail to `Messages` again:
+
+```cs
+public void OnMessageCreated(IgbChatMessageEventArgs e)
+{
+ Console.WriteLine($"Message created: {e.Detail.Text}");
+}
+```
+
+This approach makes it easy to plug the Chat into your own data source, such as a server endpoint, a chatbot engine, or a collaborative app backend.
+
+### Properties
+The `IgbChat` component exposes several key properties that let you control its state and configuration:
+
+| Name | Description |
+| --------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `Messages` | Bidirectional array of messages (`IgbChatMessage`[]) displayed in the chat. The Chat updates the supplied collection when the user sends a message. |
+| `DraftMessage` | The current unsent message, represented as an object containing `text` and optional `attachments`. This is useful for saving or restoring message drafts. |
+| `Options` | Chat configuration (`IgbChatOptions`) such as current user ID, input placeholders, accepted file types, quick reply suggestions, typing delay, and custom renderers. |
+| `ResourceStrings` | Localized resource strings for labels, headers, and system text. Use this property to adapt the component for different languages. |
+
+These properties make it straightforward to synchronize the Chat’s UI with your application’s state and backend.
+
+#### Bidirectional Messages Collection
+
+The `Messages` collection is bidirectional: the application provides the messages to display, and the Chat updates the original collection as the conversation continues. After the user sends a message, code holding a reference to the collection can access the newly created message.
+
+The `MessageCreated` event is a notification for persistence or other side effects. Do not append the created message to the collection again.
+
+If the original collection must remain unchanged, pass the Chat a shallow copy. Existing message objects are still shared; create a new instance of each message when building the copied collection if those objects must also remain independent.
+
+```cs
+IgbChatMessage[] chatMessages = originalMessages.ToArray();
+```
+
+```razor
+
+```
+
+### Suggestions
+Quick reply suggestions provide users with pre-defined responses they can tap to reply instantly. This feature is particularly useful in chatbots, customer service flows, or when guiding users through a structured process.
+You can provide suggestions by binding an array of strings to the suggestions property. The `suggestions-position` attribute lets you control where they are displayed: either below the input area or below the messages list.
+
+```cs
+public IgbChatOptions Options = new IgbChatOptions
+{
+ CurrentUserId = "me",
+ Suggestions = new string[] { "Yes", "No", "Maybe later" },
+ SuggestionsPosition = ChatSuggestionsPosition.BelowInput
+};
+```
+
+This approach helps streamline user interactions by reducing the need to type repetitive answers and improves the overall experience in guided conversations.
+
+### Typing Indicator
+Conversations feel more natural when participants can see that the other person is typing. The Chat component provides this behavior through the `isTyping` property of the options object.
+When set to true, the chat shows a subtle typing indicator below the messages:
+
+```cs
+public IgbChatOptions Options = new IgbChatOptions
+{
+ IsTyping = true
+};
+```
+
+This feature is typically toggled programmatically, for example when receiving a typing event from your backend service.
+
+### Custom Renderers
+While the Chat component works out of the box with its default UI, many applications need to customize the look and feel. For example, you might want to add read receipts, display avatars, or replace the input area with a voice recording button.
+The `IgbChat` component addresses this need with a renderer system. A renderer is simply a function that returns a template for a given part of the UI. You can override as many or as few renderers as you like.
+
+#### ChatTemplateRenderer
+Every renderer follows the same function signature:
+
+```js
+igRegisterScript("MyTemplate", (ctx) => {
+}, false);
+```
+
+The ctx parameter provides different contextual data depending on what is being rendered.
+
+#### Renderer Contexts
+
+| Context Type | Provided Data |
+| --------------------------- | -----------------------------------------------------------------------------------------------------------------------|
+| `IgbChatRenderContext` | `instance` (the chat component instance). |
+| `IgbChatInputRenderContext` | Inherits `IgbChatRenderContext` and adds `attachments` (array of `IgbChatMessageAttachment`) and `value` (current input text). |
+| `IgbChatMessageRenderContext` | Inherits `IgbChatRenderContext` and adds `IgbChatMessage` (the `IgbChatMessage` being rendered). |
+| `IgbChatAttachmentRenderContext` | Inherits `IgbChatMessageRenderContext` and adds `attachment` (the `IgbChatMessageAttachment` being rendered). |
+
+#### Available Renderers
+
+The following parts of the Chat can be customized:
+- Message-level: message, messageHeader, messageContent, messageAttachments, messageActions
+- Attachment-level: attachment, attachmentHeader, attachmentContent
+- Input-level: input, inputActions, inputActionsStart, inputActionsEnd, inputAttachments, fileUploadButton, sendButton
+- Suggestions: suggestionPrefix
+
+This level of granularity means you can tweak just one part (for example, how attachments look) without rewriting the entire chat layout.
+
+#### Example: Custom Message Content
+This example shows how to replace the message bubble with your own template:
+
+```cs
+public IgbChatOptions Options = new IgbChatOptions
+{
+ Renderers = new IgbChatRenderers()
+ {
+ MessageContentScript = "MessageContentScript"
+ }
+};
+```
+
+```js
+igRegisterScript("MessageContentScript", (ctx) => {
+ var html = window.igTemplating.html;
+ return html`
${ctx.message.text}
`;
+}, false);
+
+```
+
+#### Example: Custom Input Area
+By default, the chat input is a text area. You can override it to provide a more tailored experience, such as adding a voice input button:
+
+```cs
+public IgbChatOptions Options = new IgbChatOptions
+{
+ Renderers = new IgbChatRenderers()
+ {
+ InputScript = "InputTemplate"
+ }
+};
+```
+
+```js
+igRegisterScript("InputTemplate", (ctx) => {
+ var html = window.igTemplating.html;
+ return html`
+ alert('Voice input!')}>🎤`;
+}, false);
+```
+
+#### Example: Extending Input Actions
+The `IgbChat` component provides two renderers which are useful when you want to keep the default actions (upload and send) but extend them with additional controls:
+- `inputActionsStart` – allows you to inject custom content after the built-in upload button.
+- `inputActionsEnd` – allows you to inject custom content after the built-in send button.
+
+For example, you might want to add a voice recording button before the other buttons, or a menu of extra options after the send button.
+In the following example, the default upload button is preserved, but we add a microphone button next to it. On the other end, we remove the default send button and replace it with a custom Ask button and a “more” menu:
+
+```cs
+public IgbChatOptions Options = new IgbChatOptions
+{
+ Renderers = new IgbChatRenderers()
+ {
+ InputActionsStartScript = "InputActionsStartTemplate",
+ InputActionsEndScript = "InputActionsEndTemplate",
+ SendButtonScript = "SendButtonTemplate"
+ }
+};
+```
+
+```js
+igRegisterScript("SendButtonTemplate", (ctx) => {
+ var html = window.igTemplating.html;
+ return html``;
+}, false);
+
+
+igRegisterScript("InputActionsStartTemplate", (ctx) => {
+ var html = window.igTemplating.html;
+ return html`🎤`;
+}, false);
+
+igRegisterScript("InputActionsEndTemplate", (ctx) => {
+ var html = window.igTemplating.html;
+ return html`
+ handleCustomSendClick(ctx.instance)}>Ask
+
+
`;
+}, false);
+```
+
+In this setup:
+
+- A microphone button is added after it (inputActionsStart).
+- The default send button is removed and replaced with a custom Ask button and a “more” icon (inputActionsEnd).
+
+This approach gives you full flexibility over the chat input bar, letting you add, remove, or reorder actions without rebuilding the input area from scratch.
+
+### Events
+To integrate with your application logic, the Chat component emits a set of events:
+
+- MessageCreated – when a new message is created.
+- MessageReact – when a message is reacted to.
+- TypingChange – when typing status changes.
+- InputFocus / onInputBlur – input focus events.
+- InputChange – when the input value changes.
+
+You can listen for these events and sync them with your backend:
+
+```razor
+
+```
+
+```cs
+public void OnMessageCreated(IgbChatMessageEventArgs e)
+{
+ Console.WriteLine($"Message: {e.Detail.Text}");
+}
+```
+
+```razor
+@using IgniteUI.Blazor.Controls
+
+
+
+
+
+
+@code {
+ public IgbChat Chat;
+ public IgbChatMessage[] Messages = new IgbChatMessage[]
+ {
+ new IgbChatMessage()
+ },
+ new IgbChatMessage()
+ {
+ Id = "2",
+ Text = "Hello. I have problem with styling IgcAvatarComponent. Can you take a look at the attached file and help me?",
+ Sender = "user",
+ Timestamp = (DateTime.Now - TimeSpan.FromMilliseconds(3400000)).ToString(),
+ Attachments = new IgbChatMessageAttachment[]
+ {
+ new IgbChatMessageAttachment()
+ }
+ }
+ },
+ new IgbChatMessage()
+ {
+ Id = "3",
+ Text = "Sure, give me a moment to check the file.",
+ Sender = "support",
+ Timestamp = (DateTime.Now - TimeSpan.FromMilliseconds(3300000)).ToString()
+ },
+ new IgbChatMessage()
+ {
+ Id = "4",
+ Text =
+ @"
+ Thank you for your patience. It seems that the issue is the name of the CSS part. Here is the fixed file:
+ ",
+ Sender = "support",
+ Timestamp = (DateTime.Now - TimeSpan.FromMilliseconds(3200000)).ToString(),
+ Attachments = new IgbChatMessageAttachment[]
+ {
+ new IgbChatMessageAttachment()
+ }
+ }
+ }
+ };
+
+ public IgbChatOptions Options = new IgbChatOptions
+ {
+ DisableAutoScroll = false,
+ DisableInputAttachments = false,
+ InputPlaceholder = "Type your message here...",
+ HeaderText = "Developer Support",
+ SuggestionsPosition = ChatSuggestionsPosition.BelowInput,
+ Renderers = new IgbChatRenderers()
+ {
+ MessageHeaderScript = "OnMessageHeaderTemplate",
+ SuggestionPrefixScript = "OnSuggestionPrefixTemplate"
+ },
+ Suggestions = new string[] { "Send me an e-mail when support is available." }
+ };
+
+ public void OnMessageCreated(IgbChatMessageEventArgs e)
+ {
+ Messages = Messages.Append(e.Detail).ToArray();
+
+ IgbChatMessage responseMessage = new IgbChatMessage()
+ {
+ Id = DateTime.Now.Ticks.ToString(),
+ Text = "Our support team is currently unavailable. We'll get back to you as soon as possible.",
+ Sender = "support",
+ Timestamp = DateTime.Now.ToString()
+ };
+ Messages = Messages.Append(responseMessage).ToArray();
+ this.Chat.DraftMessage = new IgbChatDraftMessage()
+ {
+ Text = "",
+ Attachments = new IgbChatMessageAttachment[] { }
+ };
+ }
+}
+```
+
+## Styling
+
+The `IgbChat` component exposes both **CSS parts** and **slots** for fine-grained customization of its appearance and structure.
+
+### CSS Parts
+
+| Part name | Description |
+| ------------------------------- | ------------------------------------------------------------------------------------ |
+| "chat-container" | Styles the main chat container. |
+| "header" | Styles the chat header container. |
+| "prefix" | Styles the element before the chat title (e.g., avatar). |
+| "title" | Styles the chat header title. |
+| "message-area-container" | Styles the container holding the messages and (optional) suggestions. |
+| "message-list" | Styles the message list container. |
+| "message-item" | Styles each message wrapper. |
+| "typing-indicator" | Styles the typing indicator container. |
+| "typing-dot" | Styles individual typing indicator dots. |
+| "suggestions-container" | Styles the container holding all suggestions. |
+| "suggestions-header" | Styles the suggestions header. |
+| "suggestion" | Styles each suggestion item. |
+| "suggestion-prefix" | Styles the icon or prefix in a suggestion. |
+| "suggestion-title" | Styles the text/title of a suggestion. |
+| "empty-state" | Styles the empty state container when there are no messages. |
+| "input-area-container" | Styles the wrapper around the chat input area. |
+| "input-container" | Styles the main input container. |
+| "input-attachments-container" | Styles the container for attachments in the input. |
+| "input-attachment-container" | Styles a single attachment in the input area. |
+| "input-attachment-name" | Styles the file name of an attachment. |
+| "input-attachment-icon" | Styles the icon of an attachment. |
+| "text-input" | Styles the text input field for typing messages. |
+| "input-actions-container" | Styles the container for input actions. |
+| "input-actions-start" | Styles the group of actions at the start of the input after the default file upload. |
+| "input-actions-end" | Styles the group of actions at the end of the input. |
+| "file-upload-container" | Styles the container for the file upload input. |
+| "file-upload" | Styles the file upload input itself. |
+| "send-button-container" | Styles the container around the send button. |
+| "send-button" | Styles the send button. |
+| "message-container" | Styles the container of a single message. |
+| "message-list (forwarded)" | Styles the internal list of messages. |
+| "message-header" | Styles the header of a message (e.g., sender, timestamp). |
+| "message-content" | Styles the text content of a message. |
+| "message-attachments-container" | Styles the container for message attachments. |
+| "message-attachment" | Styles a single message attachment. |
+| "message-actions-container" | Styles the container holding message actions. |
+| "message-sent" | Styles messages marked as sent by the current user. |
+| "attachment-header" | Styles the header of an attachment block. |
+| "attachment-content" | Styles the content of an attachment block. |
+| "attachment-icon" | Styles the icon of an attachment. |
+| "file-name" | Styles the file name shown in an attachment. |
+
+### Slots
+
+| Slot name | Description |
+| --------------------- | ------------------------------------------------------------------------ |
+| "prefix" | Slot for injecting content (e.g., avatar or icon) before the chat title. |
+| "title" | Slot for overriding the chat title content. |
+| "actions" | Slot for injecting header actions (e.g., buttons, menus). |
+| "suggestions-header" | Slot for rendering a custom header for the suggestions list. |
+| "suggestions" | Slot for rendering a custom list of quick reply suggestions. |
+| "suggestions-actions" | Slot for rendering additional actions. |
+| "suggestion" | Slot for rendering a single suggestion item. |
+| "empty-state" | Slot shown when there are no messages. |
+
+#### Root Style Adoption (adoptRootStyles)
+
+The Chat component's options include a special flag for advanced styling scenarios:
+
+| Option | Type | Default | Description |
+| ----------------- | --------- | ------- | ------------------ |
+| `adoptRootStyles` | `boolean` | false | When `true`, the component allows content rendered inside its Shadow DOM (e.g., from custom renderers) to inherit styles from the document's root. This provides a quick workaround for styling but is **not recommended** for production use. |
+
+This property can be useful if you prefer not to deal with Shadow DOM encapsulation when applying global CSS to custom-rendered templates.
+However, it comes with trade-offs:
+- ✅ Convenience: Lets global styles (from the document) affect custom message renderers.
+- ⚠️ Risky: Breaks encapsulation and can lead to style leakage, where global CSS unintentionally alters internal visuals.
+- 🔒 One-time setting: This option can only be set at initialization. Changing it at runtime has no effect.
+
+We highly recommend using the standard Web Component styling approaches before resorting to this property:
+- CSS Variables and ::part API – Prefer customizing via exposed parts and variables.
+- `` elements – For larger stylesheets, inject them inside the Shadow DOM.
+- Inline `
+`}
-# Blazor Grid Overview and Configuration
+# Blazor Data Grid Documentation
The Blazor Data Grid component is used for displaying large volumes of data. Modern and more complex grids ensure smooth UX and bring an array of features for manipulating tabular data. There is an intuitive API, theming, branding, filtering, sorting, data selection, Excel-style filtering, and many more.
The Ignite UI for Blazor Data Table / Data Grid is a tabular Blazor grid component that allows you to quickly bind and display your data with little coding or configuration. Features of the Blazor data grid in our toolbox include filtering, sorting, templates, row selection, row grouping, row pinning, movable columns, virtualization, Master-Detail, and much more.
-
The Blazor tables are optimized for speed and performance, with the ability to handle millions of rows and columns, and real-time updates in an instant, making Ignite UI for Blazor Data Grid the best Blazor Data Grid on the market.
+
The Blazor tables are optimized for speed and performance, with the ability to handle millions of rows and columns, and real-time updates in an instant.
-
+
@@ -217,8 +213,6 @@ public class NwindData
}
```
-
-
## Getting Started with Blazor Data Grid
### Dependencies
@@ -244,12 +238,13 @@ Afterwards, you may start implementing the control by adding the following names
### Component Modules
-The `DataGrid` requires the following modules:
+The [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) requires the following modules:
-```razor
+```csharp
// in Program.cs file
builder.Services.AddIgniteUIBlazor(typeof(IgbGridModule));
+
```
## Usage
@@ -260,15 +255,15 @@ Now that we have the grid packages imported, let’s get started with the basic
```
-The [`Id`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=Id) property is a string value and is the unique identifier of the grid which will be auto-generated if not provided, while `data` binds the grid, in this case to local data.
+The [`Id`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=id) property is a string value and is the unique identifier of the grid which will be auto-generated if not provided, while [`data`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=data) binds the grid, in this case to local data.
-The [`AutoGenerate`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=AutoGenerate) property tells the grid to auto generate the grid's [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn) components based on the data source fields. It will also try to deduce the appropriate data type for the column if possible. Otherwise, the developer needs to explicitly define the columns and the mapping to the data source fields.
+The [`AutoGenerate`](mcp:get_api_reference?platform=blazor&component=IgbGridBaseDirective&member=autoGenerate) property tells the grid to auto generate the grid's [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn) components based on the data source fields. It will also try to deduce the appropriate data type for the column if possible. Otherwise, the developer needs to explicitly define the columns and the mapping to the data source fields.
## Editable Blazor Grid
Each operation for grid editing includes batch operations, meaning the API gives you the option to group edits into a single server call, or you can perform grid edit / update operations as they occur with grid interactions. Along with a great developer experience as an editable grid with CRUD operations, the grid includes Excel-like keyboard navigation. Common default grid navigation is included, plus the option to override any navigation option to meet the needs of your customers. An editable grid in with a great navigation scheme is critical to any modern line of business application, with the Ignite UI grid we make it easy.
-Following this topic you will learn more about [cell template](data-grid.md#cell-template) and [cell editing template](data-grid.md#cell-editing-template) and editing.
+Following this topic you will learn more about [cell template](./data-grid.md#cell-template) and [cell editing template](./data-grid.md#cell-editing-template) and editing.
## Grid Column Configuration
@@ -276,7 +271,7 @@ Following this topic you will learn more about [cell template](data-grid.md#cell
### Defining Columns
-Let's turn the [`AutoGenerate`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=AutoGenerate) property off and define the columns collection in the markup:
+Let's turn the [`AutoGenerate`](mcp:get_api_reference?platform=blazor&component=IgbGridBaseDirective&member=autoGenerate) property off and define the columns collection in the markup:
```razor
@@ -292,7 +287,9 @@ The header template can be set to modify the column headers. The snippets below
```razor
+```
+```javascript
//In JavaScript:
igRegisterScript("UpperCaseTemplate", (ctx) => {
@@ -313,7 +310,9 @@ When cell template is set it changes all the cells in the column. The context ob
```razor
+```
+```javascript
//In JavaScript:
igRegisterScript("NameCellTemplate", (ctx) => {
var html = window.igTemplating.html;
@@ -322,23 +321,25 @@ igRegisterScript("NameCellTemplate", (ctx) => {
}, false);
function formatTitleCase(value) {
- return value.toUpperCase();
+ return value.toLowerCase().replace(/\b\w/g, c => c.toUpperCase());
}
```
-In the snippet above we take a reference to the implicitly provided cell value. This is sufficient if you just want to present some data and maybe apply some custom styling or pipe transforms over the value of the cell. However even more useful is to take the `Cell` instance itself as shown below:
+In the snippet above we take a reference to the implicitly provided cell value. This is sufficient if you just want to present some data and maybe apply some custom styling or pipe transforms over the value of the cell. However even more useful is to take the [`Cell`](mcp:get_api_reference?platform=blazor&component=IgbCellTemplateContext&member=cell) instance itself as shown below:
```razor
+```
+```javascript
//In JavaScript:
igRegisterScript("NameCellTemplate", (ctx) => {
var html = window.igTemplating.html;
return html`
- this.deleteRow(e, ctx.cell.id.rowIndex)}> ${this.formatTitleCase(ctx.cell.value)}
+ this.deleteRow(e, ctx.cell.id.rowIndex)}> ${this.formatTitleCase(ctx.cell.value)}
`;
}, false);
@@ -358,23 +359,25 @@ function deleteRow(e, rowIndex) {
}
function formatTitleCase(value) {
- return value.toUpperCase();
+ return value.toLowerCase().replace(/\b\w/g, c => c.toUpperCase());
}
```
> **Note**:
> The grid exposes a default handling for number, string, date and boolean column types. For example, the column will display `check` or `close` icon, instead of true/false by default, for boolean column type.
-When properly implemented, the cell editing template also ensures that the cell's `EditValue` will correctly pass through the grid [editing event cycle](grid/editing.md#event-arguments-and-sequence).
+When properly implemented, the cell editing template also ensures that the cell's [`EditValue`](mcp:get_api_reference?platform=blazor&component=IgbCellType&member=editValue) will correctly pass through the grid [editing event cycle](./grid/editing.md#event-arguments-and-sequence).
### Cell Editing Template
The column also accepts one last template that will be used when a cell is in edit mode. As with the other column templates, the provided context object is again the cell value and the cell object itself. Of course in order to make the edit-mode template accessible to end users, you need
-to set the [`Editable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Editable) property of the column to true.
+to set the [`Editable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=editable) property of the column to true.
```razor
+```
+```javascript
//In JavaScript:
igRegisterScript("PriceCellTemplate", (ctx) => {
var html = window.igTemplating.html;
@@ -392,7 +395,7 @@ function updateValue(event, value) {
}
```
-Make sure to check the API for the `Cell` in order to get accustomed with the provided properties you can use in your templates.
+Make sure to check the API for the [`IgbCellType`](mcp:get_api_reference?platform=blazor&component=IgbCellType) in order to get accustomed with the provided properties you can use in your templates.
### Column Template API
@@ -410,7 +413,9 @@ Each of the column templates can be changed programmatically at any point throug
column.BodyTemplateScript = "NormalViewTemplate";
}
}
+```
+```javascript
//In JavaScript:
igRegisterScript("NormalViewTemplate", (ctx) => {
var html = window.igTemplating.html;
@@ -451,25 +456,25 @@ The code above will make the **ProductName** column sortable and editable and wi
There are optional parameters for formatting:
-- [`Format`](mcp:get_api_reference?platform=blazor&component=IgbColumnPipeArgs&member=Format) - determines what date/time parts are displayed, defaults to `'mediumDate'`, equivalent to **'MMM d, y'**
-- [`Timezone`](mcp:get_api_reference?platform=blazor&component=IgbColumnPipeArgs&member=Timezone) - the timezone offset for dates. By default uses the end-user's local system timezone
-- [`DigitsInfo`](mcp:get_api_reference?platform=blazor&component=IgbColumnPipeArgs&member=DigitsInfo) - decimal representation objects. Default to **1.0-3**
+- [`Format`](mcp:get_api_reference?platform=blazor&component=IgbColumnPipeArgs&member=format) - determines what date/time parts are displayed, defaults to `'mediumDate'`, equivalent to **'MMM d, y'**
+- [`Timezone`](mcp:get_api_reference?platform=blazor&component=IgbColumnPipeArgs&member=timezone) - the timezone offset for dates. By default uses the end-user's local system timezone
+- [`DigitsInfo`](mcp:get_api_reference?platform=blazor&component=IgbColumnPipeArgs&member=digitsInfo) - decimal representation objects. Default to **1.0-3**
-To allow customizing the display format by these parameters, the [`PipeArgs`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=PipeArgs) input is exposed. A column will respect only the corresponding properties for its data type, if [`PipeArgs`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=PipeArgs) is set. Example:
+To allow customizing the display format by these parameters, the [`PipeArgs`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=pipeArgs) input is exposed. A column will respect only the corresponding properties for its data type, if [`PipeArgs`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=pipeArgs) is set. Example:
```razor
+ PipeArgs=@(new IgbColumnPipeArgs() { Timezone="UTC+0", Format = "longDate" }) />
+ DataType=GridColumnDataType.Number
+ PipeArgs=@(new IgbColumnPipeArgs() { DigitsInfo="1.2-2" }) />
```
-The `OrderDate` column will respect only the [`Format`](mcp:get_api_reference?platform=blazor&component=IgbColumnPipeArgs&member=Format) and [`Timezone`](mcp:get_api_reference?platform=blazor&component=IgbColumnPipeArgs&member=Timezone) properties, while the `UnitPrice` will only respect the [`DigitsInfo`](mcp:get_api_reference?platform=blazor&component=IgbColumnPipeArgs&member=DigitsInfo).
+The `OrderDate` column will respect only the [`Format`](mcp:get_api_reference?platform=blazor&component=IgbColumnPipeArgs&member=format) and [`Timezone`](mcp:get_api_reference?platform=blazor&component=IgbColumnPipeArgs&member=timezone) properties, while the `UnitPrice` will only respect the [`DigitsInfo`](mcp:get_api_reference?platform=blazor&component=IgbColumnPipeArgs&member=digitsInfo).
-All available column data types could be found in the official [Column types topic](grid/column-types.md#default-template).
+All available column data types could be found in the official [Column types topic](./grid/column-types.md#default-template).
## Complex Data Binding
@@ -477,7 +482,7 @@ Complex Data Binding allows for seamless interaction with multi-level data, comp
Take a look at the following data model:
-```razor
+```csharp
public class AminoAcid
{
public string Name { get; set; }
@@ -511,7 +516,9 @@ An alternative way to bind complex data, or to visualize composite data (from mo
```razor
+```
+```javascript
//In JavaScript:
igRegisterScript("AbbreviationLongCellTemplate", (ctx) => {
var html = window.igTemplating.html;
@@ -538,7 +545,7 @@ function GetWeight(rowIndex) {
Here is an example on how body template is used to display complex data. Below is the data that we are going to use:
-```razor
+```csharp
public class EmployeesNestedData : List
{
public EmployeesNestedData()
@@ -599,7 +606,9 @@ The custom template for the column, that will render the nested data:
```razor
+```
+```javascript
//In JavaScript:
igRegisterScript("WebGridNestedDataCellTemplate", (ctx) => {
var html = window.igTemplating.html;
@@ -778,13 +787,13 @@ public class EmployeesNestedData
### Working with Flat Data Overview
-The flat data binding approach is similar to the one that we already described above, but instead of **cell value** we are going to use the [`Data`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=Data) property of the [`IgbGridRow`](mcp:get_api_reference?platform=blazor&component=IgbGridRow).
+The flat data binding approach is similar to the one that we already described above, but instead of **cell value** we are going to use the [`Data`](mcp:get_api_reference?platform=blazor&component=IgbGridRow&member=data) property of the [`IgbGridRow`](mcp:get_api_reference?platform=blazor&component=IgbGridRow).
Since the Blazor grid is a component for **rendering**, **manipulating** and **preserving** data records, having access to **every data record** gives you the opportunity to customize the approach of handling it. The `data` property provides you this opportunity.
Below is the data that we are going to use:
-```razor
+```csharp
public class CustomersData : List
{
public CustomersData()
@@ -813,7 +822,9 @@ The custom template:
+```
+```javascript
//In JavaScript:
igRegisterScript("AddressCellTemplate", (ctx) => {
var html = window.igTemplating.html;
@@ -839,7 +850,9 @@ Keep in mind that with the above defined template you will not be able to make e
+```
+```javascript
//In JavaScript:
igRegisterScript("AddressEditCellTemplate", (ctx) => {
var html = window.igTemplating.html;
@@ -850,17 +863,17 @@ igRegisterScript("AddressEditCellTemplate", (ctx) => {
return html`
Country:
-
+
City:
-
+
Postal Code:
-
+
Selected:
-
+
`;
@@ -1002,18 +1015,11 @@ public class CustomersData
Keyboard navigation of the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) provides a rich variety of keyboard interactions for the user. It enhances accessibility and allows intuitive navigation through any type of elements inside (cell, row, column header, toolbar, footer, etc.).
-
-
-
-
## Styling Blazor Grid
-
> **Note**:
> The grid uses **css grid layout**, which is **not supported in IE without prefixing**, consequently it will not render properly.
-In addition to the predefined themes, the grid could be further customized by setting some of the available [CSS properties](../grids/theming-grid.md). In case you would like to change the header background and text color, you need to set a class for the grid first:
+In addition to the predefined themes, the grid could be further customized by setting some of the available [CSS properties](./grid/theming-grid.md). In case you would like to change the header background and text color, you need to set a class for the grid first:
```razor
@@ -1041,27 +1047,41 @@ Then set the `--header-background` and `--header-text-color` CSS properties for
## API References
-- [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
-- [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn)
-- `Cell`
-- [`IgbCellTemplateContext`](mcp:get_api_reference?platform=blazor&component=IgbCellTemplateContext)
-- [`IgbGridRow`](mcp:get_api_reference?platform=blazor&component=IgbGridRow)
-- [`IgbGridToolbar`](mcp:get_api_reference?platform=blazor&component=IgbGridToolbar)
-- [`IgbPaginator`](mcp:get_api_reference?platform=blazor&component=IgbPaginator)
-
-## Additional Resources
-
-- [Grid Sizing](grid/sizing.md)
-- [Virtualization and Performance](grid/virtualization.md)
-- [Paging](grid/paging.md)
-- [Filtering](grid/filtering.md)
-- [Sorting](grid/sorting.md)
-- [Summaries](grid/summaries.md)
-- [Column Moving](grid/column-moving.md)
-- [Column Pinning](grid/column-pinning.md)
-- [Column Resizing](grid/column-resizing.md)
-- [Selection](grid/selection.md)
-- [Column Data Types](grid/column-types.md#default-template)
+[`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
+[`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn)
+[`IgbCellType`](mcp:get_api_reference?platform=blazor&component=IgbCellType)
+[`IgbGridToolbar`](mcp:get_api_reference?platform=blazor&component=IgbGridToolbar)
+[`IgbPaginator`](mcp:get_api_reference?platform=blazor&component=IgbPaginator)
+
+[`IgbGridRow`](mcp:get_api_reference?platform=blazor&component=IgbGridRow)
+[`IgbCellTemplateContext`](mcp:get_api_reference?platform=blazor&component=IgbCellTemplateContext)
+[`IgbCellType`](mcp:get_api_reference?platform=blazor&component=IgbCellType)
+[`IgbColumnPipeArgs`](mcp:get_api_reference?platform=blazor&component=IgbColumnPipeArgs)
+
+## Theming Dependencies
+
+- **Icon Theme**
+- **InputGroup Theme**
+- **Chip Theme**
+- **Ripple Theme**
+- **Button Theme**
+- **Overlay Theme**
+- **DropDown Theme**
+- **Calendar Theme**
+- **SnackBar Theme**
+- **Badge Theme**
+
+- [Grid Sizing](./grid/sizing.md)
+- [Virtualization and Performance](./grid/virtualization.md)
+- [Paging](./grid/paging.md)
+- [Filtering](./grid/filtering.md)
+- [Sorting](./grid/sorting.md)
+- [Summaries](./grid/summaries.md)
+- [Column Moving](./grid/column-moving.md)
+- [Column Pinning](./grid/column-pinning.md)
+- [Column Resizing](./grid/column-resizing.md)
+- [Selection](./grid/selection.md)
+- [Column Data Types](./grid/column-types.md#default-template)
Our community is active and always welcoming to new ideas.
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/data-pie-chart.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/data-pie-chart.md
index 3b2d9b9fb..a69e9e6fc 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/data-pie-chart.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/data-pie-chart.md
@@ -1,20 +1,19 @@
---
title: Blazor Pie Charts and Graphs | Ignite UI for Blazor
-_description: The Ignite UI for Blazor data pie chart is a specialized UI control that renders a pie chart, consisting of a circular area divided into sections. Try for FREE.
-_keywords: Blazor charts, pie chart, Ignite UI for Blazor, Infragistics, data binding, slice selection, animation, highlighting, legend
-_license: commercial
-mentionedTypes: ["DataPieChart", "XamDataChart", "OthersCategoryType", "SeriesSelectionMode", "SeriesSelectionBehavior", "SeriesHighlightingBehavior"]
+description: The Ignite UI for Blazor data pie chart is a specialized UI control that renders a pie chart, consisting of a circular area divided into sections. Try for FREE.
+keywords: Blazor charts, pie chart, Ignite UI for Blazor, Infragistics, data binding, slice selection, animation, highlighting, legend
+license: commercial
+
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Blazor Data Pie Chart is a part-to-whole chart that shows how categories (parts) of a data set add up to a total (whole) value."
_tocName: Data Pie Chart
_premium: true
---
-
# Blazor Data Pie Chart
-
The Ignite UI for Blazor Data Pie Chart is a part-to-whole chart that shows how categories (parts) of a data set add up to a total (whole) value. Categories are rendered as sections in a circular, or pie-shaped graph. Each section, or pie slice, has an arc length proportional to its underlying data value. Categories are shown in proportion to other categories based on their value percentage to the total value being analyzed, as parts of 100 or 100%.
## Blazor Data Pie Chart Example
-
You can create the Blazor Pie Chart in the [`IgbDataPieChart`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart) by binding your data items with a string and a numeric data value. These data values will add up to a value of 100% of visualization.
```razor
@@ -82,10 +81,7 @@ public class EnergyGlobalDemand
}
```
-
-
## Blazor Data Pie Chart Recommendations
-
Pie Charts are appropriate for small data sets and are easy to read at a glance. Pie charts are just one type of part-to-whole visualization such as Doughnut (Ring) Chart, Funnel Chart, Stacked Area Chart, Stacked Bar Chart, and Treemap.
The Blazor Data Pie Chart includes interactive features that give the viewer tools to analyze data, like:
@@ -116,14 +112,13 @@ Do Not Use Pie Chart When:
- It would be easier for the viewer to perceive the value difference in a Bar chart.
## Blazor Data Pie Chart Legend
-
Legends are used to show information about each point, to know about its contribution towards the total sum.
-In order to display a legend next to the pie chart an ItemLegend needs to be created and assigned to the [`Legend`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=Legend) property. The ItemLegend will display its items in vertical orientation as a default, but this can be changed by setting its `Orientation` property.
+In order to display a legend next to the pie chart an ItemLegend needs to be created and assigned to the [`Legend`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=legend) property. The ItemLegend will display its items in vertical orientation as a default, but this can be changed by setting its [`Orientation`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=orientation) property.
-The labels shown on the legend will display the same content as the label that is shown for each slice in the [`IgbDataPieChart`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart) by default, but this can be modified by utilizing the [`LegendSliceLabelContentMode`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=LegendSliceLabelContentMode) property on the chart. This exposes an enumeration that allows you to show the label, value, percentage, or any combination of those as the legend's content for each slice in the chart.
+The labels shown on the legend will display the same content as the label that is shown for each slice in the [`IgbDataPieChart`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart) by default, but this can be modified by utilizing the [`LegendSliceLabelContentMode`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=legendSliceLabelContentMode) property on the chart. This exposes an enumeration that allows you to show the label, value, percentage, or any combination of those as the legend's content for each slice in the chart.
-You can also modify the ItemLegend badge. By default, it appears as a filled circle corresponding to the color of the associated chart slice. You can configure this by using the [`LegendItemBadgeShape`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=LegendItemBadgeShape) property on the chart, and you can set this to be a circle, line, bar, column, and more.
+You can also modify the ItemLegend badge. By default, it appears as a filled circle corresponding to the color of the associated chart slice. You can configure this by using the [`LegendItemBadgeShape`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=legendItemBadgeShape) property on the chart, and you can set this to be a circle, line, bar, column, and more.
Below is an example that demonstrates usage of the ItemLegend with the [`IgbDataPieChart`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart).
@@ -209,36 +204,32 @@ public class EnergyGlobalDemand
}
```
-
-
## Blazor Pie Chart Others Category
-
Sometimes, the underlying data for the pie chart will contain many items with small values. In this case, the Others category will permit automatic aggregation of several data values into a single slice.
-The Others category in the [`IgbDataPieChart`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart) has three main, configurable properties - [`OthersCategoryType`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=OthersCategoryType), [`OthersCategoryThreshold`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=OthersCategoryThreshold), and [`OthersCategoryText`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=OthersCategoryText) that allow you to configure how the Others slice in the chart is shown. These are each described below:
+The Others category in the [`IgbDataPieChart`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart) has three main, configurable properties - [`OthersCategoryType`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=othersCategoryType), [`OthersCategoryThreshold`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=othersCategoryThreshold), and [`OthersCategoryText`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=othersCategoryText) that allow you to configure how the Others slice in the chart is shown. These are each described below:
-The [`OthersCategoryType`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=OthersCategoryType) property works in tandem with the [`OthersCategoryThreshold`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=OthersCategoryThreshold) property of the [`IgbDataPieChart`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart). For the [`OthersCategoryType`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=OthersCategoryType), you can define whether you want the [`OthersCategoryThreshold`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=OthersCategoryThreshold) to be evaluated as a number or a percentage. For example, if you decide on number and set the [`OthersCategoryThreshold`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=OthersCategoryThreshold) to 5, any slices that have a value less than 5 will become part of the Others category. Using the same value of 5 with a percent type, any values that are less than 5 percent of the total values of the [`IgbDataPieChart`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart) will become part of the Others category.
+The [`OthersCategoryType`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=othersCategoryType) property works in tandem with the [`OthersCategoryThreshold`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=othersCategoryThreshold) property of the [`IgbDataPieChart`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart). For the [`OthersCategoryType`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=othersCategoryType), you can define whether you want the [`OthersCategoryThreshold`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=othersCategoryThreshold) to be evaluated as a number or a percentage. For example, if you decide on number and set the [`OthersCategoryThreshold`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=othersCategoryThreshold) to 5, any slices that have a value less than 5 will become part of the Others category. Using the same value of 5 with a percent type, any values that are less than 5 percent of the total values of the [`IgbDataPieChart`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart) will become part of the Others category.
-To get the underlying data items that are contained within the Others slice in the chart, you can utilize the [`GetOthersContext`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=GetOthersContext) method on the chart. This return type of this method is an [`IgbOthersCategoryContext`](mcp:get_api_reference?platform=blazor&component=IgbOthersCategoryContext) which exposes an [`Items`](mcp:get_api_reference?platform=blazor&component=IgbOthersCategoryContext&member=Items) property. The [`Items`](mcp:get_api_reference?platform=blazor&component=IgbOthersCategoryContext&member=Items) property returns an array that will contain the items in the Others slice. Additionally, when clicking the Others slice, the `Item` property of the event arguments for the `SeriesClick` event will be will also return this [`IgbOthersCategoryContext`](mcp:get_api_reference?platform=blazor&component=IgbOthersCategoryContext).
+To get the underlying data items that are contained within the Others slice in the chart, you can utilize the [`GetOthersContext`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=getOthersContext) method on the chart. This return type of this method is an [`IgbOthersCategoryContext`](mcp:get_api_reference?platform=blazor&component=IgbOthersCategoryContext) which exposes an [`Items`](mcp:get_api_reference?platform=blazor&component=IgbOthersCategoryContext&member=items) property. The [`Items`](mcp:get_api_reference?platform=blazor&component=IgbOthersCategoryContext&member=items) property returns an array that will contain the items in the Others slice. Additionally, when clicking the Others slice, the `Item` property of the event arguments for the `SeriesClick` event will be will also return this [`IgbOthersCategoryContext`](mcp:get_api_reference?platform=blazor&component=IgbOthersCategoryContext).
-By default, the Others slice will be represented by a label of "Others." You can change this by modifying the [`OthersCategoryText`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=OthersCategoryText) property of the chart.
+By default, the Others slice will be represented by a label of "Others." You can change this by modifying the [`OthersCategoryText`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=othersCategoryText) property of the chart.
### Blazor Styling the Others Slice
-
You can style the aggregated Others slice separately from other slices by using these properties:
-- `OthersCategoryBrush`\
- Sets the fill (brush) used for the Others slice.
+- [`OthersCategoryBrush`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=othersCategoryBrush)
+ Sets the fill (brush) used for the Others slice.
-- `OthersCategoryOutline`\
- Sets the outline (stroke) used for the Others slice.
+- [`OthersCategoryOutline`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=othersCategoryOutline)
+ Sets the outline (stroke) used for the Others slice.
These properties only affect the Others slice (when it exists). All other slices continue to use the normal palette and item-wise coloring behavior.
-> [!NOTE]
-> The Others slice is only rendered when the chart is configured to create it (for example, with [`OthersCategoryThreshold`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=OthersCategoryThreshold) greater than `0` and an appropriate [`OthersCategoryType`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=OthersCategoryType)). If the Others slice is not present, `OthersCategoryBrush` and `OthersCategoryOutline` have no visible effect.
+**Note:**
+The Others slice is only rendered when the chart is configured to create it (for example, with [`OthersCategoryThreshold`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=othersCategoryThreshold) greater than `0` and an appropriate [`OthersCategoryType`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=othersCategoryType)). If the Others slice is not present, [`OthersCategoryBrush`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=othersCategoryBrush) and [`OthersCategoryOutline`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=othersCategoryOutline) have no visible effect.
-If you want to ensure that the Others category does not show up in the [`IgbDataPieChart`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart), you can set the [`OthersCategoryThreshold`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=OthersCategoryThreshold) to 0.
+If you want to ensure that the Others category does not show up in the [`IgbDataPieChart`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart), you can set the [`OthersCategoryThreshold`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=othersCategoryThreshold) to 0.
The following sample demonstrates usage of the Others slice in the [`IgbDataPieChart`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart):
@@ -362,29 +353,26 @@ public class DataPieData
}
```
-
-
## Blazor Data Pie Chart Selection
+The [`IgbDataPieChart`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart) supports slice selection by mouse click on the slices plotted in the chart. This can be configured by utilizing the [`SelectionBehavior`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=selectionBehavior) and [`SelectionMode`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=selectionMode) properties of the chart, described below:
-The [`IgbDataPieChart`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart) supports slice selection by mouse click on the slices plotted in the chart. This can be configured by utilizing the [`SelectionBehavior`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=SelectionBehavior) and [`SelectionMode`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=SelectionMode) properties of the chart, described below:
+The main two options of the [`SelectionBehavior`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=selectionBehavior) are [`PerDataItemSingleSelect`](mcp:get_api_reference?platform=blazor&component=SeriesSelectionBehavior&member=PerDataItemSingleSelect) and [`PerDataItemMultiSelect`](mcp:get_api_reference?platform=blazor&component=SeriesSelectionBehavior&member=PerDataItemMultiSelect), which will enable single and multiple selection, respectively.
-The main two options of the [`SelectionBehavior`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=SelectionBehavior) are `PerDataItemSingleSelect` and `PerDataItemMultiSelect`, which will enable single and multiple selection, respectively.
+The [`SelectionMode`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=selectionMode) property exposes an enumeration that determines how the pie chart slices respond to being selected. The following are the options of that enumeration and what they do:
-The [`SelectionMode`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=SelectionMode) property exposes an enumeration that determines how the pie chart slices respond to being selected. The following are the options of that enumeration and what they do:
+- [`Brighten`](mcp:get_api_reference?platform=blazor&component=SeriesSelectionMode&member=Brighten): The selected slices will be highlighted.
+- [`FadeOthers`](mcp:get_api_reference?platform=blazor&component=SeriesSelectionMode&member=FadeOthers): The selected slices will remain their same color and others will fade.
+- [`FocusColorFill`](mcp:get_api_reference?platform=blazor&component=SeriesSelectionMode&member=FocusColorFill): The selected slices will change their background to the FocusBrush of the chart.
+- [`FocusColorOutline`](mcp:get_api_reference?platform=blazor&component=SeriesSelectionMode&member=FocusColorOutline): The selected slices will have an outline with the color defined by the FocusBrush of the chart.
+- [`FocusColorThickOutline`](mcp:get_api_reference?platform=blazor&component=SeriesSelectionMode&member=FocusColorThickOutline): The selected slices will have an outline with the color defined by the FocusBrush of the chart. The thickness of this outline can be configured via the Thickness property of the control as well.
+- [`GrayscaleOthers`](mcp:get_api_reference?platform=blazor&component=SeriesSelectionMode&member=GrayscaleOthers): The unselected slices will have a gray color filter applied to them.
+- [`None`](mcp:get_api_reference?platform=blazor&component=SeriesSelectionMode&member=None): There is no effect on the selected slices.
+- [`SelectionColorFill`](mcp:get_api_reference?platform=blazor&component=SeriesSelectionMode&member=SelectionColorFill): The selected slices will change their background to the SelectionBrush of the chart.
+- [`SelectionColorOutline`](mcp:get_api_reference?platform=blazor&component=SeriesSelectionMode&member=SelectionColorOutline): The selected slices will have an outline with the color defined by the SelectionBrush of the chart.
+- [`SelectionColorThickOutline`](mcp:get_api_reference?platform=blazor&component=SeriesSelectionMode&member=SelectionColorThickOutline): The selected slices will have an outline with the color defined by the FocusBrush of the chart. The thickness of this outline can be configured via the Thickness property of the control as well.
+- [`ThickOutline`](mcp:get_api_reference?platform=blazor&component=SeriesSelectionMode&member=ThickOutline): The selected slices will apply an outline with the thickness dependent on the Thickness property of the chart.
-- `Brighten`: The selected slices will be highlighted.
-- `FadeOthers`: The selected slices will remain their same color and others will fade.
-- `FocusColorFill`: The selected slices will change their background to the FocusBrush of the chart.
-- `FocusColorOutline`: The selected slices will have an outline with the color defined by the FocusBrush of the chart.
-- `FocusColorThickOutline`: The selected slices will have an outline with the color defined by the FocusBrush of the chart. The thickness of this outline can be configured via the Thickness property of the control as well.
-- `GrayscaleOthers`: The unselected slices will have a gray color filter applied to them.
-- `None`: There is no effect on the selected slices.
-- `SelectionColorFill`: The selected slices will change their background to the SelectionBrush of the chart.
-- `SelectionColorOutline`: The selected slices will have an outline with the color defined by the SelectionBrush of the chart.
-- `SelectionColorThickOutline`: The selected slices will have an outline with the color defined by the FocusBrush of the chart. The thickness of this outline can be configured via the Thickness property of the control as well.
-- `ThickOutline`: The selected slices will apply an outline with the thickness dependent on the Thickness property of the chart.
-
-When a slice is selected, its underlying data item will be added to the SelectedSeriesItems collection of the chart. As such, the XamDataPieChart exposes the SelectedSeriesItemsChanged event to detect when a slice has been selected and this collection is changed.
+When a slice is selected, its underlying data item will be added to the SelectedSeriesItems collection of the chart. As such, the DataPieChart exposes the SelectedSeriesItemsChanged event to detect when a slice has been selected and this collection is changed.
The following sample demonstrates the selection feature of the [`IgbDataPieChart`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart) control:
@@ -503,26 +491,21 @@ public class EnergyGlobalDemand
}
```
-
-
## Blazor Data Pie Chart Highlighting
-
The [`IgbDataPieChart`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart) supports mouse over highlighting, as well as a highlighting overlay that can be configured by providing a separate data source.
-First, the [`HighlightingBehavior`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=HighlightingBehavior) enumerated property determines how a slice will be highlighted. The following are the options of that property and what they do:
+First, the [`HighlightingBehavior`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=highlightingBehavior) enumerated property determines how a slice will be highlighted. The following are the options of that property and what they do:
-- `DirectlyOver`: The slices are only highlighted when the mouse is directly over them.
-- `NearestItems`: The nearest slice to the mouse position will be highlighted.
-- `NearestItemsAndSeries`: The nearest slice and series to the mouse position will be highlighted.
-- `NearestItemsRetainMainShapes`: The nearest items to the mouse position will be highlighted and the main shapes of the series will not be de-emphasized.
+- [`DirectlyOver`](mcp:get_api_reference?platform=blazor&component=SeriesHighlightingBehavior&member=DirectlyOver): The slices are only highlighted when the mouse is directly over them.
+- [`NearestItems`](mcp:get_api_reference?platform=blazor&component=SeriesHighlightingBehavior&member=NearestItems): The nearest slice to the mouse position will be highlighted.
+- [`NearestItemsAndSeries`](mcp:get_api_reference?platform=blazor&component=SeriesHighlightingBehavior&member=NearestItemsAndSeries): The nearest slice and series to the mouse position will be highlighted.
+- [`NearestItemsRetainMainShapes`](mcp:get_api_reference?platform=blazor&component=SeriesHighlightingBehavior&member=NearestItemsRetainMainShapes): The nearest items to the mouse position will be highlighted and the main shapes of the series will not be de-emphasized.
-The [`HighlightingMode`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=HighlightingMode) enumerated property determines how the data pie chart slices respond to being highlighted. The following are the options of that property and what they do:
+The [`HighlightingMode`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=highlightingMode) enumerated property determines how the data pie chart slices respond to being highlighted. The following are the options of that property and what they do:
-- `Brighten`: The series will have its color brightened when the mouse position is over or near it.
-- `BrightenSpecific`: The specific slice will have its color brightened when the mouse position is over or near it.
-- `FadeOthers`: The series will retain its color when the mouse position is over or near it, while the others will appear faded.
-- `FadeOthersSpecific`: The specific slice will retain its color when the mouse position is over or near it, while the others will appear faded.
-- `None`: The series and slices will not be highlighted.
+- [`Brighten`](mcp:get_api_reference?platform=blazor&component=SeriesSelectionMode&member=Brighten): The series will have its color brightened when the mouse position is over or near it.
+- [`FadeOthers`](mcp:get_api_reference?platform=blazor&component=SeriesSelectionMode&member=FadeOthers): The series will retain its color when the mouse position is over or near it, while the others will appear faded.
+- [`None`](mcp:get_api_reference?platform=blazor&component=SeriesSelectionMode&member=None): The series and slices will not be highlighted.
The following example demonstrates the mouse highlighting behaviors of the [`IgbDataPieChart`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart) component:
@@ -633,7 +616,7 @@ public class EnergyGlobalDemand
}
```
-In addition to the mouse highlighting, the [`IgbDataPieChart`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart) exposes a highlight filter capability that can display a subset of your data. This is applied by specifying a `HighlightedDataSource` for the control and by setting the [`HighlightedValuesDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=HighlightedValuesDisplayMode) property to `Overlay`. The `HighlightedDataSource` expects a subset of the data assigned to the `DataSource` property of the [`IgbDataPieChart`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart).
+In addition to the mouse highlighting, the [`IgbDataPieChart`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart) exposes a highlight filter capability that can display a subset of your data. This is applied by specifying a [`HighlightedDataSource`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=highlightedDataSource) for the control and by setting the [`HighlightedValuesDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=highlightedValuesDisplayMode) property to `Overlay`. The [`HighlightedDataSource`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=highlightedDataSource) expects a subset of the data assigned to the [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=dataSource) property of the [`IgbDataPieChart`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart).
When these conditions are met, the values of the subset will be highlighted, while the remainder of the full set of data will be faded - effectively creating a highlight for the subset and allowing easier visualization of a subset of your data within the same control.
@@ -736,15 +719,12 @@ public class OnlineTrafficHighlightTotals
}
```
-
-
## Blazor Data Pie Chart Animation
-
The [`IgbDataPieChart`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart) supports animating its slices into view, as well as when a value changes.
-You can set the [`IsTransitionInEnabled`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=IsTransitionInEnabled) property to **true** to have the pie chart animate into view. The type of animation performed can be configured by setting the [`TransitionInMode`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=TransitionInMode) enumerated property to the type of animation you would like to see. Additionally, you can also set the [`TransitionInSpeedType`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=TransitionInSpeedType) property to scale with index, value, normal, or randomized. The duration of this animation can be controlled by the [`TransitionInDuration`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=TransitionInDuration) property, which takes a `TimeSpan`.
+You can set the [`IsTransitionInEnabled`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=isTransitionInEnabled) property to **true** to have the pie chart animate into view. The type of animation performed can be configured by setting the [`TransitionInMode`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=transitionInMode) enumerated property to the type of animation you would like to see. Additionally, you can also set the [`TransitionInSpeedType`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=transitionInSpeedType) property to scale with index, value, normal, or randomized. The duration of this animation can be controlled by the [`TransitionInDuration`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=transitionInDuration) property, which takes a `TimeSpan`.
-If you would like to animate data changes, this can also be done by setting the [`AnimateSeriesWhenAxisRangeChanges`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=AnimateSeriesWhenAxisRangeChanges) property to **true**. The duration of this change can be configured by setting the [`TransitionDuration`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=TransitionDuration) property as well.
+If you would like to animate data changes, this can also be done by setting the [`AnimateSeriesWhenAxisRangeChanges`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=animateSeriesWhenAxisRangeChanges) property to **true**. The duration of this change can be configured by setting the [`TransitionDuration`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=transitionDuration) property as well.
The following sample demonstrates the usage of animation in the [`IgbDataPieChart`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart):
@@ -857,25 +837,10 @@ public class EnergyGlobalDemand
}
```
-
-
## Additional Resources
-
- [Donut Chart](donut-chart.md)
- [Polar Chart](polar-chart.md)
- [Radial Chart](radial-chart.md)
## API References
-
-The following table lists API members mentioned in the above sections:
-
-- [`ChartType`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=ChartType)
-- [`OthersCategoryThreshold`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=OthersCategoryThreshold)
-- [`OthersCategoryType`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=OthersCategoryType)
-- [`SelectionMode`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=SelectionMode)
-- [`SelectionBehavior`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart&member=SelectionBehavior)
-
-|Chart Type | Control Name | API Members |
-|-----------------|----------------|------------ |
-|Data Pie Chart | [`IgbDataPieChart`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart) | [`IgbDataPieChart`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart) |
-|Item Legend | [`IgbItemLegend`](mcp:get_api_reference?platform=blazor&component=IgbItemLegend) | [`IgbItemLegend`](mcp:get_api_reference?platform=blazor&component=IgbItemLegend) |
+[`IgbDataPieChart`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/date-picker.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/date-picker.md
index 358f6f419..0dfdf255b 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/date-picker.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/date-picker.md
@@ -1,21 +1,19 @@
---
-title: Blazor Date Picker Component - Ignite UI for Blazor
-_description: Infragistics' Blazor Date Picker allows the user to select a date from a calendar and set it in an input element.
-_keywords: Blazor Date Picker, Ignite UI for Blazor, Infragistics
-_license: MIT
+title: "Blazor Date Picker Component - Ignite UI for Blazor"
+description: Infragistics' Blazor Date Picker allows the user to select a date from a calendar and set it in an input element.
+keywords: "Blazor Date Picker, Ignite UI for Blazor, Infragistics"
+license: MIT
mentionedTypes: ["DatePicker"]
+llms:
+ description: "The Ignite UI for Blazor Date Picker is a feature rich component used for entering a date through manual text input or choosing date values from a calendar dialog that pops up."
_tocName: Date Picker
---
-
# Blazor Date Picker Component Overview
The Ignite UI for Blazor Date Picker is a feature rich component used for entering a date through manual text input or choosing date values from a calendar dialog that pops up. Lightweight and simple to use, the Date Picker lets users navigate to a desired date with several view options – month, year, and decade. It also supports common validation properties such as minimum and maximum date constraints and required fields.
The Ignite UI for Blazor Date Picker Component lets users pick a single date through a month-view calendar dropdown or editable input field. The Blazor Date Picker also supports a dialog mode for selection from the calendar only, locale-aware and customizable date formatting and validation integration.
-> [!NOTE]
-> The [`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker) is a brand new component from Ignite UI for Blazor version . The old [`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker) prior to this version has been renamed to `XDatePicker` and its respective documentation page can be found under "Deprecated Components"
-
## Blazor Date Picker Example
Below you can see a sample that demonstrates how the Date Picker works when users are enabled to pick a date through a manual text input and click on the calendar icon on the left to navigate to it. See how to render it.
@@ -40,13 +38,13 @@ Below you can see a sample that demonstrates how the Date Picker works when user
To get started with the [`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker) component, first we need to register its module as follows:
-```razor
+```csharp
// in Program.cs file
builder.Services.AddIgniteUIBlazor(typeof(IgbDatePickerModule));
```
-You will also need to link an additional CSS file to apply the styling to the [`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker) component. The following needs to be placed in the wwwroot/index.html file in a Blazor Web Assembly project or the Pages/\_Host.cshtml file in a Blazor Server project:
+You will also need to link an additional CSS file to apply the styling to the [`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker) component. The following needs to be placed in the wwwroot/index.html file in a Blazor Web Assembly project or the Pages/_Host.cshtml file in a Blazor Server project:
```razor
@@ -82,11 +80,14 @@ The [`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePic
this.SelectedDate = DateTime.Today;
}
}
+
```
### Projecting components
-With prefix and suffix slots we can add different content before and after the main content of the Input.
+The are `prefix` and `suffix` slots available, which allow you to add different content before and after the main content of the Input. When slotting content, we recommend using a `` element when adding simple text, symbols, or emojis, and an [``](../layouts/icon.md) component when adding icons to the `prefix` and `suffix` slots.
+
+There is also a `helper-text` slot exposed, which provides a hint placed below the Input. We recommend using a `` element, when slotting content in the `helper-text` slot.
```razor
@@ -104,7 +105,7 @@ The above snippet will add an additional icon at the end of the input, right aft
#### Customizing the toggle and clear icons
-The calendar and clear icon could be templated by using the `calendar` and `clear` slots:
+The calendar and clear icons can be customized using the `calendar` and `clear` slots. We recommend using a `` element when adding symbols, or emojis and an [``](../layouts/icon.md) component when adding icons to the `calendar` and `clear` slots.
```razor
@@ -115,7 +116,7 @@ The calendar and clear icon could be templated by using the `calendar` and `clea
#### Custom action buttons
-The picker's action buttons can be templated using the `actions` slot:
+The picker's action buttons can be templated using the `actions` slot. For the best result, we recommend using the [``](../inputs/button.md) component when adding content to the `actions` slot.
```razor
@@ -168,11 +169,11 @@ The [`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePic
### Display and input format
-[`InputFormat`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=InputFormat) and [`DisplayFormat`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=DisplayFormat) are properties which can be set to make the picker's editor follow a specified format. The [`InputFormat`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=InputFormat) is locale based, so if none is provided, the picker will default to the one used by the browser.
+[`IgbDatePicker.inputFormat`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=inputFormat) and [`IgbDatePicker.displayFormat`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=displayFormat) are properties which can be set to make the picker's editor follow a specified format. The [`IgbDatePicker.inputFormat`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=inputFormat) is locale based, so if none is provided, the picker will default to the one used by the browser.
A good thing to note is that the Date Picker Component will always add a leading zero on the `date` and `month` portions if they were provided in a format that does not have it, e.g. `d/M/yy` becomes `dd/MM/yy`. This applies only during editing.
-[`DisplayFormat`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=DisplayFormat) is used to format the picker's input when it is not focused. If no [`DisplayFormat`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=DisplayFormat) is provided, the picker will use the [`InputFormat`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=InputFormat) as its [`DisplayFormat`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=DisplayFormat).
+[`IgbDatePicker.displayFormat`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=displayFormat) is used to format the picker's input when it is not focused. If no [`IgbDatePicker.displayFormat`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=displayFormat) is provided, the picker will use the [`IgbDatePicker.inputFormat`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=inputFormat) as its [`IgbDatePicker.displayFormat`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=displayFormat).
More information about these can be found in the [`IgbDateTimeInput`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput) format section.
@@ -194,7 +195,7 @@ More information about these can be found in the [`IgbDateTimeInput`](mcp:get_ap
### Increment and decrement
-The [`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker) exposes [`StepUp`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=StepUp) and [`StepDown`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=StepDown) methods. Both of which come from the [`IgbDateTimeInput`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput) and can be used for incrementing and decrementing a specific `DatePart` of the currently set date.
+The [`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker) exposes [`IgbDatePicker.stepUp`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=stepUp) and [`IgbDatePicker.stepDown`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=stepDown) methods. Both of which come from the [`IgbDateTimeInput`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput) and can be used for incrementing and decrementing a specific [`IgbDatePart`](mcp:get_api_reference?platform=blazor&component=DatePart) of the currently set date.
```razor
@@ -215,7 +216,7 @@ The [`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePic
### In Forms
-The [`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker) could be used in a form element, the component's [`Min`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=Min) and [`Max`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=Max) properties act as form validators.
+The [`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker) could be used in a form element, the component's [`IgbDatePicker.min`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=min) and [`IgbDatePicker.max`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=max) properties act as form validators.
In forms, we can handle the `Change` event of the component and update the value of the label.
@@ -302,11 +303,11 @@ In forms, we can handle the `Change` event of the component and update the value
### Calendar Specific settings
-The [`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker) can modify some of the calendar's settings via the properties that the Date Picker exposes. Some of these include [`VisibleMonths`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=VisibleMonths) which allows more than one calendar to be displayed when the picker expands, [`WeekStart`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=WeekStart) which determines the starting day of the week, [`ShowWeekNumbers`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=ShowWeekNumbers) which shows the number for each week in the year and more.
+The [`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker) can modify some of the calendar's settings via the properties that the Date Picker exposes. Some of these include [`IgbDatePicker.visibleMonths`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=visibleMonths) which allows more than one calendar to be displayed when the picker expands, [`IgbFieldPipeArgs.weekStart`](mcp:get_api_reference?platform=blazor&component=IgbFieldPipeArgs&member=weekStart) which determines the starting day of the week, [`IgbDatePicker.showWeekNumbers`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=showWeekNumbers) which shows the number for each week in the year and more.
## Internationalization
-The localization of the [`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker) can be controlled through its [`Locale`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=Locale) input.
+The localization of the [`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker) can be controlled through its [`IgbDatePicker.locale`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=locale) input.
Here is how a [`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker) with Japanese locale definition would look like:
@@ -316,7 +317,7 @@ Here is how a [`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=
## Styling
-The [`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker) component derives from the [`IgbInput`](mcp:get_api_reference?platform=blazor&component=IgbInput) and [`IgbCalendar`](mcp:get_api_reference?platform=blazor&component=IgbCalendar) component, so it exposes all available CSS parts. See [Input Styling](../inputs/input.md#styling) and [Calendar Styling](calendar.md#styling) for reference.
+The [`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker) component derives from the [`IgbInput`](mcp:get_api_reference?platform=blazor&component=IgbInput) and [`IgbCalendar`](mcp:get_api_reference?platform=blazor&component=IgbCalendar) component, so it exposes all available CSS parts. See [Input Styling](../inputs/input.md#styling) and [Calendar Styling](./calendar.md#styling) for reference.
```css
igc-date-picker::part(header) {
@@ -368,10 +369,9 @@ igc-date-picker::part(year-inner selected) {
## API References
-- [`IgbInput`](mcp:get_api_reference?platform=blazor&component=IgbInput)
-- [`IgbCalendar`](mcp:get_api_reference?platform=blazor&component=IgbCalendar)
-- [`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker)
-- [`Styling & Themes`](../themes/overview.md)
+[`IgbInput`](mcp:get_api_reference?platform=blazor&component=IgbInput)
+[`IgbCalendar`](mcp:get_api_reference?platform=blazor&component=IgbCalendar)
+[`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker)
## Additional Resources
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/date-range-picker.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/date-range-picker.md
index d58d20251..c91f9e4a4 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/date-range-picker.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/date-range-picker.md
@@ -1,15 +1,16 @@
---
-title: Blazor Date Range Picker Component - Ignite UI for Blazor
-_description: Infragistics' Blazor Date Range Picker allows the user to select a range of two dates from a calendar and set it in an input element.
-_keywords: Blazor Date Range Picker, Ignite UI for Blazor, Infragistics
-_license: MIT
+title: "Blazor Date Range Picker Component - Ignite UI for Blazor"
+description: Infragistics' Blazor Date Range Picker allows the user to select a range of two dates from a calendar and set it in an input element.
+keywords: "Blazor Date Range Picker, Ignite UI for Blazor, Infragistics"
+license: MIT
mentionedTypes: ["DateRangePicker"]
+llms:
+ description: "The Ignite UI for Blazor Date Range Picker is a lightweight component that includes a text input and a calendar pop-up, allowing users to easily select start and end dates."
_tocName: Date Range Picker
---
-
# Blazor Date Range Picker Overview
-The Ignite UI for Blazor Date Range Picker is a lightweight component that includes a text input and a calendar pop-up, allowing users to easily select start and end dates. It is highly customizable to fit various application requirements, offering features such as date range restrictions, configurable date formats, and more.
+The Ignite UI for Blazor Date Range Picker is a lightweight component that includes a text input and a calendar pop-up, allowing users to easily select start and end dates. It is highly customizable to fit various application requirements, offering features such as date range restrictions, configurable date formats, and more.
## Date Range Picker Example
@@ -41,13 +42,13 @@ Below is a sample demonstrating the [`IgbDateRangePicker`](mcp:get_api_reference
To get started with the [`IgbDateRangePicker`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker) component, first we need to register its module as follows:
-```razor
+```csharp
// in Program.cs file
builder.Services.AddIgniteUIBlazor(typeof(IgbDateRangePickerModule));
```
-You will also need to link an additional CSS file to apply the styling to the [`IgbDateRangePicker`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker) component. The following needs to be placed in the wwwroot/index.html file in a Blazor Web Assembly project or the Pages/\_Host.cshtml file in a Blazor Server project:
+You will also need to link an additional CSS file to apply the styling to the [`IgbDateRangePicker`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker) component. The following needs to be placed in the wwwroot/index.html file in a Blazor Web Assembly project or the Pages/_Host.cshtml file in a Blazor Server project:
```razor
@@ -71,7 +72,7 @@ To instantiate a [`IgbDateRangePicker`](mcp:get_api_reference?platform=blazor&co
```
-To switch the [`IgbDateRangePicker`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker) to use two inputs, set the [`UseTwoInputs`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=UseTwoInputs) property to `true`.
+To switch the [`IgbDateRangePicker`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker) to use two inputs, set the [`IgbDateRangePicker.useTwoInputs`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=useTwoInputs) property to `true`.
```razor
@@ -79,7 +80,7 @@ To switch the [`IgbDateRangePicker`](mcp:get_api_reference?platform=blazor&compo
### Value
-In addition to being selected or typed by the user, the range value of the [`IgbDateRangePicker`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker) can also be set using the [`Value`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=Value) property. It's important to note that the value must follow the format: **{ start: startDate, end: endDate }**, where `startDate` and `endDate` are `Date` objects representing the selected range.
+In addition to being selected or typed by the user, the range value of the [`IgbDateRangePicker`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker) can also be set using the [`IgbDateRangePicker.value`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=value) property. It's important to note that the value must follow the format: **`{ start: startDate, end: endDate }`**, where `startDate` and `endDate` are `Date` objects representing the selected range.
```razor
@@ -97,13 +98,13 @@ In addition to being selected or typed by the user, the range value of the [`Igb
### Read-only & Non-editable
-You can also make the [`IgbDateRangePicker`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker) read-only, which disables changing the range value through both typing and calendar selection, disables keyboard navigation, and makes the calendar and clear icons appear visually disabled. This is useful when the range is assigned via the value attribute and is intended to be display-only. To enable this behavior, simply set the [`ReadOnly`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=ReadOnly) property.
+You can also make the [`IgbDateRangePicker`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker) read-only, which disables changing the range value through both typing and calendar selection, disables keyboard navigation, and makes the calendar and clear icons appear visually disabled. This is useful when the range is assigned via the value attribute and is intended to be display-only. To enable this behavior, simply set the [`IgbDateRangePicker.readOnly`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=readOnly) property.
```razor
```
-Alternatively, you can use the [`NonEditable`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=NonEditable) property, which, unlike [`ReadOnly`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=ReadOnly), only prevents editing the input(s) via typing, while still allowing selection through the calendar and clearing via the clear icon.
+Alternatively, you can use the [`IgbDateRangePicker.nonEditable`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=nonEditable) property, which, unlike [`IgbDateRangePicker.readOnly`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=readOnly), only prevents editing the input(s) via typing, while still allowing selection through the calendar and clearing via the clear icon.
```razor
@@ -111,7 +112,7 @@ Alternatively, you can use the [`NonEditable`](mcp:get_api_reference?platform=bl
### Popup modes
-By default, when clicked, the [`IgbDateRangePicker`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker) opens its calendar pop-up in `dropdown` mode. Alternatively, the calendar can be opened in `dialog` mode by setting the [`Mode`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=Mode) property to `dialog`.
+By default, when clicked, the [`IgbDateRangePicker`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker) opens its calendar pop-up in `dropdown` mode. Alternatively, the calendar can be opened in `dialog` mode by setting the [`IgbDateRangePicker.mode`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=mode) property to `dialog`.
```razor
@@ -153,7 +154,7 @@ You can also navigate within the calendar pop-up using the keyboard. The navigat
### Label
-You can define a label for the [`IgbDateRangePicker`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker) component using the [`Label`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=Label) property when it is in single input mode. In two inputs mode, you can use the [`LabelStart`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=LabelStart) and [`LabelEnd`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=LabelEnd) properties to define labels for the start and end date input fields, respectively.
+You can define a label for the [`IgbDateRangePicker`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker) component using the [`IgbDateRangePicker.label`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=label) property when it is in single input mode. In two inputs mode, you can use the [`IgbDateRangePicker.labelStart`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=labelStart) and [`IgbDateRangePicker.labelEnd`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=labelEnd) properties to define labels for the start and end date input fields, respectively.
```razor
@@ -165,22 +166,22 @@ You can define a label for the [`IgbDateRangePicker`](mcp:get_api_reference?plat
### Format
-You also have the option to customize the date format displayed in the input fields. There are three properties available for this purpose: [`Locale`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=Locale), [`InputFormat`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=InputFormat), and [`DisplayFormat`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=DisplayFormat).
+You also have the option to customize the date format displayed in the input fields. There are three properties available for this purpose: [`IgbDateRangePicker.locale`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=locale), [`IgbDateRangePicker.inputFormat`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=inputFormat), and [`IgbDateRangePicker.displayFormat`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=displayFormat).
-The [`Locale`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=Locale) property allows you to set the desired locale identifier, which determines how the date is formatted based on regional conventions.
+The [`IgbDateRangePicker.locale`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=locale) property allows you to set the desired locale identifier, which determines how the date is formatted based on regional conventions.
For example, to display the date in a Japanese format, you can set the locale property like this:
```razor
```
-If you want to manually define the date format, you can use the [`InputFormat`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=InputFormat) property by passing a custom format string:
+If you want to manually define the date format, you can use the [`IgbDateRangePicker.inputFormat`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=inputFormat) property by passing a custom format string:
```razor
```
-The [`DisplayFormat`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=DisplayFormat) property also accepts a custom format string, but it only applies when the input field is idle (i.e., not focused). When the field is focused, the format reverts to the default or to the one defined by [`InputFormat`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=InputFormat), if both properties are used together:
+The [`IgbDateRangePicker.displayFormat`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=displayFormat) property also accepts a custom format string, but it only applies when the input field is idle (i.e., not focused). When the field is focused, the format reverts to the default or to the one defined by [`IgbDateRangePicker.inputFormat`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=inputFormat), if both properties are used together:
```razor
@@ -192,17 +193,17 @@ You can further customize the pop-up calendar using various properties:
|Name|Type|Description|
|--|--|--|
-| [`Orientation`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=Orientation) | 'vertical' or 'horizontal' | Allows you to set whether the calendar should be displayed vertically or horizontally. |
-| [`VisibleMonths`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=VisibleMonths) | string | Controls how many months are visible at a time, with a value of either 1 or 2. |
-| [`ShowWeekNumbers`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=ShowWeekNumbers) | string | Enables or disables the week number column in the calendar. |
-| [`Open`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=Open) | boolean | Determines whether the calendar picker is open. |
-| [`KeepOpenOnSelect`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=KeepOpenOnSelect) | boolean | Keeps the calendar picker open after a date selection. |
-| [`KeepOpenOnOutsideClick`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=KeepOpenOnOutsideClick) | boolean | Keeps the calendar picker open when clicking outside of it. |
-| [`WeekStart`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=WeekStart) | string | Sets the start day of the week. |
-| [`HideOutsideDays`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=HideOutsideDays) | boolean | Hides days that fall outside the current month view. |
-| [`HideHeader`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=HideHeader) | boolean | Hides the calendar header (applicable only in dialog mode). |
-| [`HeaderOrientation`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=HeaderOrientation) | 'vertical' or 'horizontal' | Aligns the calendar header vertically or horizontally (dialog mode only). |
-| [`ActiveDate`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=ActiveDate) | Date | Sets the date that is initially highlighted in the calendar. If not set, the current date becomes the active date. |
+| [`Orientation`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=orientation) | 'vertical' or 'horizontal' | Allows you to set whether the calendar should be displayed vertically or horizontally. |
+| [`VisibleMonths`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=visibleMonths) | string | Controls how many months are visible at a time, with a value of either 1 or 2. |
+| [`ShowWeekNumbers`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=showWeekNumbers) | string | Enables or disables the week number column in the calendar. |
+| [`Open`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=open) | boolean | Determines whether the calendar picker is open. |
+| [`KeepOpenOnSelect`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=keepOpenOnSelect) | boolean | Keeps the calendar picker open after a date selection. |
+| [`KeepOpenOnOutsideClick`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=keepOpenOnOutsideClick) | boolean | Keeps the calendar picker open when clicking outside of it. |
+| [`WeekStart`](mcp:get_api_reference?platform=blazor&component=IgbFieldPipeArgs&member=weekStart) | string | Sets the start day of the week. |
+| [`HideOutsideDays`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=hideOutsideDays) | boolean | Hides days that fall outside the current month view. |
+| [`HideHeader`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=hideHeader) | boolean | Hides the calendar header (applicable only in dialog mode). |
+| [`HeaderOrientation`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=headerOrientation) | 'vertical' or 'horizontal' | Aligns the calendar header vertically or horizontally (dialog mode only). |
+| [`ActiveDate`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=activeDate) | Date | Sets the date that is initially highlighted in the calendar. If not set, the current date becomes the active date. |
```razor
@@ -210,7 +211,7 @@ You can further customize the pop-up calendar using various properties:
### Min & Max
-You can also set the [`Min`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=Min) and [`Max`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=Max) properties to restrict user input by disabling calendar dates outside the defined range. These properties act as validators, so even if the user manually types a date outside the range, the [`IgbDateRangePicker`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker) will become invalid.
+You can also set the [`IgbDateRangePicker.min`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=min) and [`IgbDateRangePicker.max`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=max) properties to restrict user input by disabling calendar dates outside the defined range. These properties act as validators, so even if the user manually types a date outside the range, the [`IgbDateRangePicker`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker) will become invalid.
```razor
@@ -223,7 +224,7 @@ You can also set the [`Min`](mcp:get_api_reference?platform=blazor&component=Igb
### Custom & Predefined Date Ranges
-You can also add custom date range chips to the calendar pop-up for faster range selection using the [`CustomRanges`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=CustomRanges) property. For example, you can create a custom date range chip to quickly select the range for the upcoming 7 days, ending with the current date. In addition, by setting the [`UsePredefinedRanges`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=UsePredefinedRanges) property, a set of predefined ranges chips will be displayed along with the custom ones.
+You can also add custom date range chips to the calendar pop-up for faster range selection using the [`IgbDateRangePicker.customRanges`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=customRanges) property. For example, you can create a custom date range chip to quickly select the range for the upcoming 7 days, ending with the current date. In addition, by setting the [`IgbDateRangePicker.usePredefinedRanges`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=usePredefinedRanges) property, a set of predefined ranges chips will be displayed along with the custom ones.
```razor
@@ -293,7 +294,7 @@ Now, when you click the newly created **"Next 7 days"** chip in the calendar pop
### Disabled & Special dates
-You also have the ability to set disabled dates in the calendar to narrow the range of dates the user can choose from. To set the disabled dates, you can use the [`DisabledDates`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=DisabledDates) property.
+You also have the ability to set disabled dates in the calendar to narrow the range of dates the user can choose from. To set the disabled dates, you can use the [`IgbDateRangePicker.disabledDates`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=disabledDates) property.
```razor
@@ -308,13 +309,13 @@ You also have the ability to set disabled dates in the calendar to narrow the ra
}
```
-You can see more information about all the possibilities that the [`DisabledDates`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=DisabledDates) property offers here: [Disabled dates](./calendar.md#disabled-dates)
+You can see more information about all the possibilities that the [`IgbDateRangePicker.disabledDates`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=disabledDates) property offers here: [Disabled dates](./calendar.md#disabled-dates)
-You can also do the same if you want to set one or more special dates in the calendar; the only difference is that you need to use the [`SpecialDates`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=SpecialDates) property instead. [Special dates](./calendar.md#special-dates)
+You can also do the same if you want to set one or more special dates in the calendar; the only difference is that you need to use the [`IgbDateRangePicker.specialDates`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=specialDates) property instead. [Special dates](./calendar.md#special-dates)
### Forms
-The [`IgbDateRangePicker`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker) component can also be used seamlessly with the HTML form element. The [`Min`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=Min), [`Max`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=Max), and [`Required`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=Required) properties act as form validators.
+The [`IgbDateRangePicker`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker) component can also be used seamlessly with the HTML form element. The [`IgbDateRangePicker.min`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=min), [`IgbDateRangePicker.max`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=max), and [`IgbDateRangePicker.required`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=required) properties act as form validators.
```razor
@using IgniteUI.Blazor.Controls
@@ -393,14 +394,14 @@ In addition to the properties we've already covered, the [`IgbDateRangePicker`](
|Name|Type|Description|
|--|--|--|
-| [`Disabled`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=Disabled) | boolean | Disables the component. |
-| [`NonEditable`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=NonEditable) | boolean | Disables typing in the input field(s). |
-| [`Placeholder`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=Placeholder) | string | Placeholder text for the single input mode. |
-| [`PlaceholderStart`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=PlaceholderStart) | string | Placeholder text for the start date input (two inputs mode). |
-| [`PlaceholderEnd`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=PlaceholderEnd) | string | Placeholder text for the end date input (two inputs mode). |
-| [`Outlined`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=Outlined) | boolean | Determines whether the input part will have outline appearance in the [Material theme](../themes/overview.md). |
-| [`Prompt`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=Prompt) | string | The prompt character used for unfilled parts of the input(s) mask. |
-| [`ResourceStrings`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=ResourceStrings) | IgcDateRangePickerResourceStrings | Resource strings for localization of the date-range picker and the calendar. |
+| [`Disabled`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=disabled) | boolean | Disables the component. |
+| [`NonEditable`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=nonEditable) | boolean | Disables typing in the input field(s). |
+| [`Placeholder`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=placeholder) | string | Placeholder text for the single input mode. |
+| [`PlaceholderStart`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=placeholderStart) | string | Placeholder text for the start date input (two inputs mode). |
+| [`PlaceholderEnd`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=placeholderEnd) | string | Placeholder text for the end date input (two inputs mode). |
+| [`Outlined`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=outlined) | boolean | Determines whether the input part will have outline appearance in the [Material theme](../themes/overview.md). |
+| [`Prompt`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=prompt) | string | The prompt character used for unfilled parts of the input(s) mask. |
+| [`ResourceStrings`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=resourceStrings) | IgcDateRangePickerResourceStrings | Resource strings for localization of the date-range picker and the calendar. |
### Slots
@@ -415,9 +416,9 @@ The `prefix` and `suffix` slots allow you to insert custom content before or aft
```
-In two inputs mode, you can use the `prefix-start`, `prefix-end`, `suffix-start`, and `suffix-end` slots instead to target the individual inputs.
+In two-input mode, you can use the `prefix-start`, `prefix-end`, `suffix-start`, and `suffix-end` slots instead to target the individual inputs. For all `prefix-` and `suffix-` type slots, we recommend using a `` element for simple text, symbols, or emojis, and an [``](../layouts/icon.md) component for icons.
-Another set of useful slots are `clear-icon` and `calendar-icon`, which allow you to customize the icons for the clear and calendar buttons in the input fields:
+Another set of useful slots are `clear-icon` and `calendar-icon`, which allow you to customize the icons for the clear and calendar buttons in the input fields. For these slots we also recommend using a `` element for symbols, or emojis and an [``](../layouts/icon.md) component for icons.
```razor
@@ -426,7 +427,7 @@ Another set of useful slots are `clear-icon` and `calendar-icon`, which allow yo
```
-In two inputs mode, you can also customize the default “to” text between the fields by using the `separator` slot:
+In two-input mode, you can also customize the default “to” text between the fields using the `separator` slot. For best result, we recommend using a `` element for this slot.
```razor
@@ -434,7 +435,7 @@ In two inputs mode, you can also customize the default “to” text between the
```
-The `actions` slot allows you to insert a custom action button with your own logic. For example, the button below toggles week numbers column in the calendar:
+The `actions` slot allows you to insert a custom action button with your own logic. For example, the button below toggles the week numbers column in the calendar. We recommend using the [``](../inputs/button.md) component when adding content to the `actions` slot.
```razor
@@ -457,6 +458,10 @@ In addition to the slots we've already covered, the following slots are also ava
| `calendar-icon-open-start` | Icon or content for the open state of the start input (two inputs mode).|
| `calendar-icon-open-end` | Icon or content for the open state of the end input (two inputs mode). |
+For the `title`, `helper-text`, and `header-date` slots, we recommend using a `` element. A `` provides a neutral container that inherits the component's styles cleanly, without carrying built-in styling properties that can interfere with the component's intended typography and layout.
+
+And for the `clear-icon-` and `calendar-icon-` type slots, we recommend using a `` element for symbols, or emojis and an [``](../layouts/icon.md) component for icons.
+
```razor
@using IgniteUI.Blazor.Controls
@@ -556,16 +561,16 @@ In addition to the properties and slots, the [`IgbDateRangePicker`](mcp:get_api_
|Name|Description|
|--|--|
-| [`Show`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=Show) | Displays the calendar picker component. |
-| [`Hide`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=Hide) | Hides the calendar picker component. |
-| [`Toggle`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=Toggle) | Toggles the calendar picker between the shown and hidden states. |
-| [`Clear`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=Clear) | Clears the input fields, removing any user input. |
-| [`Select`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=Select) | Selects a date range value in the picker. |
-| [`SetCustomValidity`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=SetCustomValidity) | Sets a custom validation message. If the provided message is not empty, the input will be marked as invalid. |
+| [`Show`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=show) | Displays the calendar picker component. |
+| [`Hide`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=hide) | Hides the calendar picker component. |
+| [`Toggle`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=toggle) | Toggles the calendar picker between the shown and hidden states. |
+| [`Clear`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=clear) | Clears the input fields, removing any user input. |
+| [`Select`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=select) | Selects a date range value in the picker. |
+| [`SetCustomValidity`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker&member=setCustomValidity) | Sets a custom validation message. If the provided message is not empty, the input will be marked as invalid. |
## Styling
-Since the [`IgbDateRangePicker`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker) component uses the [`IgbCalendar`](mcp:get_api_reference?platform=blazor&component=IgbCalendar) component, it also inherits the Calendar's CSS parts, allowing you to style both components seamlessly. You can find the full list of exposed Calendar CSS parts here: [Calendar Styling](calendar.md#styling). In addition to the Calendar's CSS parts, the [`IgbDateRangePicker`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker) also exposes some unique CSS parts that you can use to customize its appearance:
+Since the [`IgbDateRangePicker`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker) component uses the [`IgbCalendar`](mcp:get_api_reference?platform=blazor&component=IgbCalendar) component, it also inherits the Calendar's CSS parts, allowing you to style both components seamlessly. You can find the full list of exposed Calendar CSS parts here: [Calendar Styling](./calendar.md#styling). In addition to the Calendar's CSS parts, the [`IgbDateRangePicker`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker) also exposes some unique CSS parts that you can use to customize its appearance:
|Name|Description|
|--|--|
@@ -681,14 +686,13 @@ igc-date-range-picker::part(clear-icon-end) {
## API References
-- [`IgbInput`](mcp:get_api_reference?platform=blazor&component=IgbInput)
-- [`IgbCalendar`](mcp:get_api_reference?platform=blazor&component=IgbCalendar)
-- [`IgbDateRangePicker`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker)
-- [`IgbDateTimeInput`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput)
-- [`IgbDialog`](mcp:get_api_reference?platform=blazor&component=IgbDialog)
-- [`Styling & Themes`](../themes/overview.md)
+[`IgbInput`](mcp:get_api_reference?platform=blazor&component=IgbInput)
+[`IgbCalendar`](mcp:get_api_reference?platform=blazor&component=IgbCalendar)
+[`IgbDateRangePicker`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker)
+[`IgbDateTimeInput`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput)
+[`IgbDialog`](mcp:get_api_reference?platform=blazor&component=IgbDialog)
## Additional Resources
- [Ignite UI for Blazor **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-blazor)
-- [Ignite UI for Blazor **GitHub**](https://github.com/IgniteUI/igniteui-blazor)
+- [Ignite UI for Blazor **GitHub**](https://github.com/IgniteUI/igniteui-blazor)
\ No newline at end of file
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/date-time-input.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/date-time-input.md
index 3ce12b3a9..b5b5724d2 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/date-time-input.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/date-time-input.md
@@ -1,12 +1,13 @@
---
-title: Blazor DateTimeInput | Infragistics
-_description: Infragistics' Blazor DateTimeInput allows the user to edit date and time in an input element
-_keywords: Blazor input, Ignite UI for Blazor, Infragistics
-_license: MIT
+title: "Blazor DateTimeInput | Infragistics"
+description: Infragistics' Blazor DateTimeInput allows the user to edit date and time in an input element
+keywords: "Blazor input, Ignite UI for Blazor, Infragistics"
+license: MIT
mentionedTypes: ["DateTimeInput"]
+llms:
+ description: "The Ignite UI for Blazor Date Time Input allows the user to set and edit the date and time in a chosen input element."
_tocName: Date Time Input
---
-
# Blazor Date Time Input Overview
The Ignite UI for Blazor Date Time Input allows the user to set and edit the date and time in a chosen input element. The user can edit both date and time portions using an editable masked input. Additionally, one can specify a desired display and input format, as well as min and max values to utilize validation.
@@ -64,21 +65,20 @@ The Ignite UI for Blazor Date Time Input allows the user to set and edit the dat
Before using the [`IgbDateTimeInput`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput), you need to register it as follows:
-```razor
+```csharp
// in Program.cs file
builder.Services.AddIgniteUIBlazor(typeof(IgbDateTimeInputModule));
```
-You will also need to link an additional CSS file to apply the styling to the [`IgbDateTimeInput`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput) component. The following needs to be placed in the **wwwroot/index.html** file in a **Blazor Web Assembly** project or the **Pages/\_Host.cshtml** file in a **Blazor Server** project:
+You will also need to link an additional CSS file to apply the styling to the [`IgbDateTimeInput`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput) component. The following needs to be placed in the **wwwroot/index.html** file in a **Blazor Web Assembly** project or the **Pages/_Host.cshtml** file in a **Blazor Server** project:
```razor
```
### Value binding
-
-The easiest way to set the value of the [`IgbDateTimeInput`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput) component is by passing a Date object to the [`Value`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=Value) property:
+The easiest way to set the value of the [`IgbDateTimeInput`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput) component is by passing a Date object to the [`Value`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=value) property:
```razor
@@ -106,11 +106,10 @@ The [`IgbDateTimeInput`](mcp:get_api_reference?platform=blazor&component=IgbDate
The [`IgbDateTimeInput`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput) supports different display and input formats.
-It uses [Intl.DateTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat) which allows it to support predefined format options, such as `long` and `short`, `medium` and `full`. Additionally, it can also accept a custom string constructed from supported characters, such as `dd-MM-yy`. Also, if no [`DisplayFormat`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=DisplayFormat) is provided, the component will use the [`InputFormat`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=InputFormat) as such.
+It uses [Intl.DateTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat) which allows it to support predefined format options, such as `long` and `short`, `medium` and `full`. Additionally, it can also accept a custom string constructed from supported characters, such as `dd-MM-yy`. Also, if no [`DisplayFormat`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=displayFormat) is provided, the component will use the [`InputFormat`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=inputFormat) as such.
### Input Format
-
-The table bellow shows formats that are supported by the component's [`InputFormat`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=InputFormat):
+The table bellow shows formats that are supported by the component's [`InputFormat`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=inputFormat):
|Format|Description|
|-------|----------|
@@ -128,7 +127,7 @@ The table bellow shows formats that are supported by the component's [`InputForm
| `mm` | Minutes with an explicitly set leading zero. |
| `tt` | AM/PM section for 12-hour format. |
-To set a specific input format, pass it as a string to the [`IgbDateTimeInput`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput). This will set both the expected user input format and the `mask`. Additionally, the [`InputFormat`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=InputFormat) is locale based, so if none is provided, the editor will default to `dd/MM/yyyy`.
+To set a specific input format, pass it as a string to the [`IgbDateTimeInput`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput). This will set both the expected user input format and the `mask`. Additionally, the [`InputFormat`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=inputFormat) is locale based, so if none is provided, the editor will default to `dd/MM/yyyy`.
```razor
@@ -185,7 +184,6 @@ If all went well, you should see the following in your browser:
```
### Display format
-
The date time input exposes predefined formats for displaying date/time in various manners. All of the examples below are given in en-US locale.
| Option | Example |
@@ -203,7 +201,8 @@ The date time input exposes predefined formats for displaying date/time in vario
| `longTime` | 12:00:00 AM GMT+3 |
| `fullTime` | 12:00:00 AM Eastern European Summer Time |
-Furthermore, users can construct a displayFormat string using the supported symbols described in the following table.
+Furthermore, users can construct a displayFormat string using the supported symbols described in the following table.
+
| Type | Format | Description | Example |
|:---|-------:|:-----------|:--------|
@@ -232,12 +231,12 @@ Furthermore, users can construct a displayFormat string using the supported symb
| | `tttt` | Long | noon |
| | `ttttt` | Narrow | n |
-> [!Note]
-> Many locales use the same time period string, irrespective of the format specified. Also, it has an effect only if a 12-hour clock is used.
+**Note:**
+Many locales use the same time period string, irrespective of the format specified. Also, it has an effect only if a 12-hour clock is used.
## Min/max value
-You can specify [`Min`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=Min) and [`Max`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=Max) properties to restrict input and control the validity of the component. Just like the [`Value`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=Value) property, they can be of type `string`.
+You can specify [`Min`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=min) and [`Max`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=max) properties to restrict input and control the validity of the component. Just like the [`Value`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=value) property, they can be of type `string`.
```razor
@@ -299,11 +298,11 @@ If all went well, the component will be `invalid` if the value is greater or low
## Step up/down
-The [`IgbDateTimeInput`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput) exposes public [`StepUp`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=StepUp) and [`StepDown`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=StepDown) methods. They increment or decrement a specific `DatePart` of the currently set date and time and can be used in a couple of ways.
+The [`IgbDateTimeInput`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput) exposes public [`StepUp`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=stepUp) and [`StepDown`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=stepDown) methods. They increment or decrement a specific [`IgbDatePart`](mcp:get_api_reference?platform=blazor&component=DatePart) of the currently set date and time and can be used in a couple of ways.
-In the first scenario, if no specific DatePart is passed to the method, a default DatePart will increment or decrement, based on the specified [`InputFormat`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=InputFormat) and the internal component implementation. In the second scenario, you can explicitly specify what DatePart to manipulate as it may suite different requirements. Also, both methods accept an optional `delta` parameter of type number which can be used to set the stepUp/stepDown step.
+In the first scenario, if no specific DatePart is passed to the method, a default DatePart will increment or decrement, based on the specified [`InputFormat`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=inputFormat) and the internal component implementation. In the second scenario, you can explicitly specify what DatePart to manipulate as it may suite different requirements. Also, both methods accept an optional `delta` parameter of type number which can be used to set the stepUp/stepDown step.
-Additionally, [`SpinDelta`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=SpinDelta) is a property that can be used to apply a different delta to each date time segment. It will be applied when spinning with the keyboard, mouse wheel or with the [`StepUp`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=StepUp) and [`StepDown`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=StepDown) methods, as long as they don't have the delta parameter provided since it will take precedence over [`SpinDelta`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=SpinDelta).
+Additionally, [`SpinDelta`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=spinDelta) is a property that can be used to apply a different delta to each date time segment. It will be applied when spinning with the keyboard, mouse wheel or with the [`StepUp`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=stepUp) and [`StepDown`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=stepDown) methods, as long as they don't have the delta parameter provided since it will take precedence over [`SpinDelta`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=spinDelta).
Try it in the example below:
@@ -447,13 +446,10 @@ igc-date-time-input {
```
## API References
-
-- [`IgbInput`](mcp:get_api_reference?platform=blazor&component=IgbInput)
-- [`IgbMaskInput`](mcp:get_api_reference?platform=blazor&component=IgbMaskInput)
-- [`IgbIcon`](mcp:get_api_reference?platform=blazor&component=IgbIcon)
-- [`IgbDateTimeInput`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput)
-- [`Styling & Themes`](../themes/overview.md)
-
+[`IgbInput`](mcp:get_api_reference?platform=blazor&component=IgbInput)
+[`IgbMaskInput`](mcp:get_api_reference?platform=blazor&component=IgbMaskInput)
+[`IgbIcon`](mcp:get_api_reference?platform=blazor&component=IgbIcon)
+[`IgbDateTimeInput`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput)
## Additional Resources
- [Ignite UI for Blazor **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-blazor)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/dialog.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/dialog.md
index f4d6918fa..9a7c77e2e 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/dialog.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/dialog.md
@@ -1,12 +1,13 @@
---
-title: Blazor Dialog | Infragistics
-_description: With Ignite UI for Blazor Dialog component, developers can easily integrate a dialog window centered on top of app content.
-_keywords: Ignite UI for Blazor, UI controls, Blazor widgets, web widgets, UI widgets, Blazor, Native Blazor Components Suite, Native Blazor Controls, Native Blazor Components Library, Blazor Dialog components
-_license: MIT
+title: "Blazor Dialog | Infragistics"
+description: With Ignite UI for Blazor Dialog component, developers can easily integrate a dialog window centered on top of app content.
+keywords: "Ignite UI for Blazor, UI controls, Blazor widgets, web widgets, UI widgets, Blazor, Native Blazor Components Suite, Native Blazor Controls, Native Blazor Components Library, Blazor Dialog components"
+license: MIT
mentionedTypes: ["Dialog"]
+llms:
+ description: "The Ignite UI for Blazor Dialog component is used to display some information or prompt the user for an action or confirmation."
_tocName: Dialog
---
-
# Blazor Dialog Overview
The Ignite UI for Blazor Dialog component is used to display some information or prompt the user for an action or confirmation. It is shown in a modal window, which means that the user is not allowed to interact with the main app until a certain action is performed that closes the dialog.
@@ -48,21 +49,19 @@ This sample demonstrates how to create a Dialog component in Blazor.
}
```
-
-
### Usage
For a complete introduction to the Ignite UI for Blazor, read the [**Getting Started**](../general-getting-started.md) topic.
Before using the Blazor [`IgbDialog`](mcp:get_api_reference?platform=blazor&component=IgbDialog), you need to register it as follows:
-```razor
+```csharp
// in Program.cs file
builder.Services.AddIgniteUIBlazor(typeof(IgbDialogModule));
```
-The simplest way to display the dialog component is to use its [`Show`](mcp:get_api_reference?platform=blazor&component=IgbDialog&member=Show) method and call it on a button click.
+The simplest way to display the dialog component is to use its [`Show`](mcp:get_api_reference?platform=blazor&component=IgbDialog&member=show) method and call it on a button click.
```razor
@@ -89,17 +88,17 @@ The simplest way to display the dialog component is to use its [`Show`](mcp:get_
}
```
-The Dialog component provides an [`Open`](mcp:get_api_reference?platform=blazor&component=IgbDialog&member=Open) property, which gives you the ability to configure its state as per your application scenario.
+The [`IgbDialog`](mcp:get_api_reference?platform=blazor&component=IgbDialog) component provides an [`Open`](mcp:get_api_reference?platform=blazor&component=IgbDialog&member=open) property, which gives you the ability to configure its state as per your application scenario.
-Use the [`Title`](mcp:get_api_reference?platform=blazor&component=IgbDialog&member=Title) property to set the title of the dialog. However, if any content is provided in the `title` slot, it will take precedence over the property.
+Use the [`Title`](mcp:get_api_reference?platform=blazor&component=IgbDialog&member=title) property to set the title of the dialog. However, if any content is provided in the `title` slot, it will take precedence over the property.
-Action buttons or additional information can be placed in the bottom part of the dialog via the `footer` slot. If no content is added there, a default `OK` button will be shown that closes the Dialog when clicked. In case you do not want this button to be shown you can set the [`HideDefaultAction`](mcp:get_api_reference?platform=blazor&component=IgbDialog&member=HideDefaultAction) property to **true**. The default value is **false**.
+Action buttons or additional information can be placed in the bottom part of the dialog via the `footer` slot. If no content is added there, a default `OK` button will be shown that closes the Dialog when clicked. In case you do not want this button to be shown you can set the [`HideDefaultAction`](mcp:get_api_reference?platform=blazor&component=IgbDialog&member=hideDefaultAction) property to **true**. The default value is **false**.
### Closing
-By default, the Dialog is closed automatically when the user presses `ESC`. You could prevent this behavior using the [`KeepOpenOnEscape`](mcp:get_api_reference?platform=blazor&component=IgbDialog&member=KeepOpenOnEscape) property. The default value is **false**. If there is an open dropdown (or any other element that should handle `ESC` internally) in the dialog, pressing `ESC` once will close the dropdown and pressing it again will close the dialog.
+By default, the Dialog is closed automatically when the user presses `ESC`. You could prevent this behavior using the [`KeepOpenOnEscape`](mcp:get_api_reference?platform=blazor&component=IgbDialog&member=keepOpenOnEscape) property. The default value is **false**. If there is an open dropdown (or any other element that should handle `ESC` internally) in the dialog, pressing `ESC` once will close the dropdown and pressing it again will close the dialog.
-Use the [`CloseOnOutsideClick`](mcp:get_api_reference?platform=blazor&component=IgbDialog&member=CloseOnOutsideClick) property to configure if the dialog should be closed when clicking outside of it. The default value is **false**.
+Use the [`CloseOnOutsideClick`](mcp:get_api_reference?platform=blazor&component=IgbOverlaySettings&member=closeOnOutsideClick) property to configure if the dialog should be closed when clicking outside of it. The default value is **false**.
### Form
@@ -239,19 +238,8 @@ igc-dialog::part(footer) {
}
```
-
-
## API References
-
-- [`KeepOpenOnEscape`](mcp:get_api_reference?platform=blazor&component=IgbDialog&member=KeepOpenOnEscape)
-- [`CloseOnOutsideClick`](mcp:get_api_reference?platform=blazor&component=IgbDialog&member=CloseOnOutsideClick)
-- [`Hide`](mcp:get_api_reference?platform=blazor&component=IgbDialog&member=Hide)
-- [`HideDefaultAction`](mcp:get_api_reference?platform=blazor&component=IgbDialog&member=HideDefaultAction)
-- [`Open`](mcp:get_api_reference?platform=blazor&component=IgbDialog&member=Open)
-- [`Title`](mcp:get_api_reference?platform=blazor&component=IgbDialog&member=Title)
-- [`IgbDialog`](mcp:get_api_reference?platform=blazor&component=IgbDialog)
-- [`Styling & Themes`](../themes/overview.md)
-
+[`IgbDialog`](mcp:get_api_reference?platform=blazor&component=IgbDialog)
## Additional Resources
- [Ignite UI for Blazor **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-blazor)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/divider.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/divider.md
index 0d4a1e8d0..b702f140e 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/divider.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/divider.md
@@ -1,12 +1,13 @@
---
-title: Blazor Divider | Layout Controls | Infragistics
-_description: Use Infragistics' Blazor divider component to easily create a horizontal/vertical rule as a break between content to better organize information on a page.
-_keywords: Ignite UI for Blazor, UI controls, Blazor widgets, Web widgets, UI widgets, Blazor, Native Blazor Components Suite, Native Blazor Controls, Native Blazor Components Library, Blazor DIvider components, Blazor Divider controls
-_license: MIT
+title: "Blazor Divider | Layout Controls | Infragistics"
+description: Use Infragistics' Blazor divider component to easily create a horizontal/vertical rule as a break between content to better organize information on a page.
+keywords: "Ignite UI for Blazor, UI controls, Blazor widgets, Web widgets, UI widgets, Blazor, Native Blazor Components Suite, Native Blazor Controls, Native Blazor Components Library, Blazor DIvider components, Blazor Divider controls"
+license: MIT
mentionedTypes: ["Divider"]
+llms:
+ description: "The Ignite UI for Blazor Divider allows the content author to easily create a horizontal/vertical rule as a break between content to better organize information on a page."
_tocName: Divider
---
-
# Blazor Divider
The Ignite UI for Blazor Divider allows the content author to easily create a horizontal/vertical rule as a break between content to better organize information on a page.
@@ -24,19 +25,17 @@ The Ignite UI for Blazor Divider allows the content author to easily create a ho
```
-
-
## Dependencies
Before using the [`IgbDivider`](mcp:get_api_reference?platform=blazor&component=IgbDivider), you need to register it as follows:
-```razor
+```csharp
// in Program.cs file
builder.Services.AddIgniteUIBlazor(typeof(IgbDividerModule));
```
-You will also need to link an additional CSS file to apply the styling to the [`IgbDivider`](mcp:get_api_reference?platform=blazor&component=IgbDivider) component. The following needs to be placed in the **wwwroot/index.html** file in a **Blazor Web Assembly** project or the **Pages/\_Host.cshtml** file in a **Blazor Server** project:
+You will also need to link an additional CSS file to apply the styling to the [`IgbDivider`](mcp:get_api_reference?platform=blazor&component=IgbDivider) component. The following needs to be placed in the **wwwroot/index.html** file in a **Blazor Web Assembly** project or the **Pages/_Host.cshtml** file in a **Blazor Server** project:
```razor
@@ -51,10 +50,9 @@ The [`IgbDivider`](mcp:get_api_reference?platform=blazor&component=IgbDivider) i
```
## Usage
-
### Vertical Divider
-If the [`Vertical`](mcp:get_api_reference?platform=blazor&component=IgbDivider&member=Vertical) attribute is set the direction of the divider would be changed from horizontal to vertical.
+If the [`Vertical`](mcp:get_api_reference?platform=blazor&component=IgbDivider&member=vertical) attribute is set the direction of the divider would be changed from horizontal to vertical.
```razor
@@ -99,10 +97,10 @@ If the [`Vertical`](mcp:get_api_reference?platform=blazor&component=IgbDivider&m
### Type
-The `Type` attribute determines whether to render a `solid` or a `dashed` divider line. The default value is `solid`.
+The [`Type`](mcp:get_api_reference?platform=blazor&component=IgbDivider&member=type) attribute determines whether to render a `solid` or a `dashed` divider line. The default value is `solid`.
```razor
-
+
```
```razor
@@ -118,7 +116,7 @@ The `Type` attribute determines whether to render a `solid` or a `dashed` divide
### Inset Divider
-The [`IgbDivider`](mcp:get_api_reference?platform=blazor&component=IgbDivider) can be set in on both sides. To `inset` the divider, set the [`Middle`](mcp:get_api_reference?platform=blazor&component=IgbDivider&member=Middle) attribute to true in combination with the `--inset` css variable. This will shrink the divider line from both sides. The default value of the [`Middle`](mcp:get_api_reference?platform=blazor&component=IgbDivider&member=Middle) attribute is false.
+The [`IgbDivider`](mcp:get_api_reference?platform=blazor&component=IgbDivider) can be set in on both sides. To `inset` the divider, set the [`Middle`](mcp:get_api_reference?platform=blazor&component=IgbDivider&member=middle) attribute to true in combination with the `--inset` css variable. This will shrink the divider line from both sides. The default value of the [`Middle`](mcp:get_api_reference?platform=blazor&component=IgbDivider&member=middle) attribute is false.
```css
/* DividerStyles.css */
@@ -130,9 +128,9 @@ The [`IgbDivider`](mcp:get_api_reference?platform=blazor&component=IgbDivider) c
```razor
// Both side
-
+
// Left side only
-
+
```
```razor
@@ -216,21 +214,14 @@ The following sample illustrates how the [`IgbDivider`](mcp:get_api_reference?pl
```
## CSS Variables
-
### Inset
-
The `--inset` css variable shrinks the divider by the given amount from the start. If middle is set it will shrink from both sides.
### Color
-
The `--color` css variable sets the color of the divider.
-
-
## API References
-
-- [`IgbDivider`](mcp:get_api_reference?platform=blazor&component=IgbDivider)
-
+[`IgbDivider`](mcp:get_api_reference?platform=blazor&component=IgbDivider)
## Additional Resources
- [Ignite UI for Blazor **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-blazor)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/dock-manager-embedding-frames.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/dock-manager-embedding-frames.md
index 424d0e63b..4fc3d924f 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/dock-manager-embedding-frames.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/dock-manager-embedding-frames.md
@@ -1,13 +1,14 @@
---
-title: Blazor Dock Manager | Embed Frames | Infragistics
-_description: Use Infragistics' Blazor dock manager to embed interactive content using panes. View Ignite UI for Blazor dock manager tutorials!
-_keywords: dock manager, embed frames, Ignite UI for Blazor, Infragistics
-_license: commercial
+title: "Blazor Dock Manager | Embed Frames | Infragistics"
+description: Use Infragistics' Blazor dock manager to embed interactive content using panes. View Ignite UI for Blazor dock manager tutorials!
+keywords: dock manager, embed frames, Ignite UI for Blazor, Infragistics
+license: commercial
mentionedTypes: ["DockManager"]
+llms:
+ description: "The Infragistics Blazor Dock Manager component provides you with the layout for embedding interactive content in your application using panes."
_tocName: Embedding Frames
_premium: true
---
-
# Blazor Embedding Frames in Dock Manager
The Infragistics Blazor Dock Manager component provides you with the layout for embedding interactive content in your application using panes.
@@ -84,50 +85,6 @@ The Infragistics Blazor Dock Manager component provides you with the layout for
}
```
-
-
-
-
-
-
## API References
-- [`IgbDockManager`](mcp:get_api_reference?platform=blazor&component=IgbDockManager)
+[`IgbDockManager`](mcp:get_api_reference?platform=blazor&component=IgbDockManager)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/dock-manager-updating-panes.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/dock-manager-updating-panes.md
index 8fc9e4f67..574d69509 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/dock-manager-updating-panes.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/dock-manager-updating-panes.md
@@ -1,13 +1,14 @@
---
-title: Blazor Dock Manager | Updating Panes | Infragistics
-_description: Use Infragistics' Blazor dock manager control to create interactive content using panes that can update based on actions. Check out Ignite UI for Blazor dock manager tutorials!
-_keywords: dock manager, layout, updating panes, Ignite UI for Blazor
-_license: commercial
+title: "Blazor Dock Manager | Updating Panes | Infragistics"
+description: Use Infragistics' Blazor dock manager control to create interactive content using panes that can update based on actions. Check out Ignite UI for Blazor dock manager tutorials!
+keywords: dock manager, layout, updating panes, Ignite UI for Blazor
+license: commercial
mentionedTypes: ["DockManager"]
+llms:
+ description: "The Infragistics Blazor Dock Manager component provides you with the layout for creating interactive content in your application using panes that can update based on actions of end-users."
_tocName: Using Panes
_premium: true
---
-
# Blazor Updating Panes in Dock Manager
The Infragistics Blazor Dock Manager component provides you with the layout for creating interactive content in your application using panes that can update based on actions of end-users.
@@ -166,50 +167,6 @@ The Infragistics Blazor Dock Manager component provides you with the layout for
}
```
-
-
-
-
-
-
## API References
-- [`IgbDockManager`](mcp:get_api_reference?platform=blazor&component=IgbDockManager)
+[`IgbDockManager`](mcp:get_api_reference?platform=blazor&component=IgbDockManager)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/dock-manager.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/dock-manager.md
index 0d03f187d..5935f95c0 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/dock-manager.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/dock-manager.md
@@ -1,12 +1,13 @@
---
-title: Blazor Dock Manager | Layout Controls | Infragistics
-_description: Use Infragistics' Blazor dock manager component to manage the layout through panes, with the ability to customize it by pinning, resizing, moving and hiding panes. Check out Ignite UI for Blazor dock manager tutorials!
-_keywords: dock manager, layout, Ignite UI for Blazor, Infragistics
-_license: commercial
+title: "Blazor Dock Manager | Layout Controls | Infragistics"
+description: Use Infragistics' Blazor dock manager component to manage the layout through panes, with the ability to customize it by pinning, resizing, moving and hiding panes. Check out Ignite UI for Blazor dock manager tutorials!
+keywords: dock manager, layout, Ignite UI for Blazor, Infragistics
+license: commercial
mentionedTypes: ["DockManager", "DocumentHost", "DockManagerLayout", "DockManagerPaneType", "ContentPane", "SplitPane", "TabGroupPane", "PinnedLocation", "PaneHeaderElement"]
+llms:
+ description: "The Infragistics Blazor Dock Manager provides a means to manage the layout of your application through panes, allowing your end-users to customize it further by pinning, resizing, moving, maximizing and hiding panes."
_tocName: Dock Manager
---
-
# Blazor Dock Manager Overview
The Infragistics Blazor Dock Manager provides a means to manage the layout of your application through panes, allowing your end-users to customize it further by pinning, resizing, moving, maximizing and hiding panes.
@@ -214,18 +215,6 @@ This example shows most functionalities and docking options of the [`IgbDockMana
}
```
-
-
-
-
-
-
-
-
-
-
-
-
## Customization
The Dock Manager component provides the option to customize all buttons using slots and parts. To change any of the buttons you simply have to define your own element inside the Dock Manager and set the slot attribute to the corresponding identifier.
@@ -627,7 +616,6 @@ The shortcuts are as follows:
- SHIFT + ← With multiple tabs in a tab group splits the view and docks the focused tab left
### Navigating
-
- CMD/CTRL + F6 or CMD/CTRL + → Focuses next tab in document host
- CMD/CTRL + SHIFT + F6 or CMD/CTRL + ← Focuses previous tab in document host
- ALT + F6 Focuses next content pane
@@ -635,7 +623,7 @@ The shortcuts are as follows:
### Pane Navigator
-Тhe following keyboard shortcuts show a navigator from which you can iterate through panes and documents.
+The following keyboard shortcuts show a navigator from which you can iterate through panes and documents.
- CMD/CTRL + F7 or CMD/CTRL + F8 Starts from the first document forward
- ALT + F7 or ALT + F8 Starts from the first pane forward
@@ -643,10 +631,9 @@ The shortcuts are as follows:
- ALT + SHIFT + F7 or ALT + SHIFT + F8 Starts from the last pane backwards
### Other
-
- ALT + F3 Closes the active pane
-Practice all of the above mentioned actions in the sample [demo](dock-manager.md#blazor-dock-manager-example).
+Practice all of the above mentioned actions in the sample [demo](./dock-manager.md#blazor-dock-manager-example).
## Styling
@@ -1535,8 +1522,6 @@ igc-card-content {
}
```
-
-
### CSS Parts
| Part name | Description |
@@ -1591,9 +1576,9 @@ igc-card-content {
## API References
-- [`IgbDockManager`](mcp:get_api_reference?platform=blazor&component=IgbDockManager)
-- [`IgbDocumentHost`](mcp:get_api_reference?platform=blazor&component=IgbDocumentHost)
-- [`IgbDockManagerLayout`](mcp:get_api_reference?platform=blazor&component=IgbDockManagerLayout)
-- [`IgbContentPane`](mcp:get_api_reference?platform=blazor&component=IgbContentPane)
-- [`IgbSplitPane`](mcp:get_api_reference?platform=blazor&component=IgbSplitPane)
-- [`IgbTabGroupPane`](mcp:get_api_reference?platform=blazor&component=IgbTabGroupPane)
+[`IgbDockManager`](mcp:get_api_reference?platform=blazor&component=IgbDockManager)
+[`IgbDocumentHost`](mcp:get_api_reference?platform=blazor&component=IgbDocumentHost)
+[`IgbDockManagerLayout`](mcp:get_api_reference?platform=blazor&component=IgbDockManagerLayout)
+[`IgbContentPane`](mcp:get_api_reference?platform=blazor&component=IgbContentPane)
+[`IgbSplitPane`](mcp:get_api_reference?platform=blazor&component=IgbSplitPane)
+[`IgbTabGroupPane`](mcp:get_api_reference?platform=blazor&component=IgbTabGroupPane)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/donut-chart.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/donut-chart.md
index e9c7a6c30..38826c6bf 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/donut-chart.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/donut-chart.md
@@ -1,20 +1,19 @@
---
-title: Blazor Donut Chart | Data Visualization | Infragistics
-_description: Infragistics' Blazor Donut Chart
-_keywords: Blazor Charts, Donut Chart, Donut Chart, Infragistics
-_license: commercial
-mentionedTypes: ["XamDoughnutChart", "DoughnutChart"]
+title: "Blazor Donut Chart | Data Visualization | Infragistics"
+description: Infragistics' Blazor Donut Chart
+keywords: "Blazor Charts, Donut Chart, Donut Chart, Infragistics"
+license: commercial
+mentionedTypes: ["DoughnutChart", "DoughnutChart"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Blazor Donut Chart is similar to the Pie Chart, proportionally illustrating the occurrences of a variable."
_tocName: Donut Chart
_premium: true
---
-
# Blazor Donut Chart
-
The Ignite UI for Blazor Donut Chart is similar to the [Pie Chart](pie-chart.md), proportionally illustrating the occurrences of a variable. The donut chart can display multiple variables in concentric rings, and provides built-in support for visualizing hierarchical data. The rings are capable of being bound to a different data item, or they can share a common data source.
## Blazor Donut Chart Example
-
You can create Donut Chart using the [`IgbDoughnutChart`](mcp:get_api_reference?platform=blazor&component=IgbDoughnutChart) control by binding your data as shown in the example below.
```razor
@@ -115,18 +114,12 @@ public class EnergyGlobalDemand
}
```
-
-
## Blazor Donut Chart Recommendations
### Are Blazor Donut Charts right for your project?
-
Donut Charts are appropriate for small data sets and are easy to read at a glance. Donut charts are just one type of part-to-whole visualization. Others include:
- [Pie](pie-chart.md)
-
-
-
- [Stacked Area](area-chart.md)
- [Stacked 100% Area (Stacked Percentage Area)](area-chart.md)
- [Stacked Bar](bar-chart.md)
@@ -142,7 +135,6 @@ The Blazor Donut Chart includes interactive features that give the viewer tools
- Chart Animations
### Best Practices for Donut Charts
-
- Using multiple data sets to display your data in a ring display.
- Placing the information such as values or labels, within the hole of the donut for quick explanation of data.
- Comparing slices or segments as percentage values in proportion to a total value or whole.
@@ -151,7 +143,6 @@ The Blazor Donut Chart includes interactive features that give the viewer tools
- Ensuring the color palette is distinguishable for segments/slices of the parts.
### When not to use a Donut Chart
-
- Comparing change over time —use a [Bar](bar-chart.md), [Line](line-chart.md) or [Area](area-chart.md) chart.
- Requiring precise data comparison —use a [Bar](bar-chart.md), [Line](line-chart.md) or [Area](area-chart.md) chart.
- You have more than 6 or 8 segments (high data volume) — consider a [Bar](bar-chart.md), [Line](line-chart.md) or [Area](area-chart.md) chart if it works for your data story.
@@ -159,8 +150,7 @@ The Blazor Donut Chart includes interactive features that give the viewer tools
- You have negative data, as this can not be represented in a donut chart.
## Blazor Donut Chart - Slice Selection
-
-The Blazor Donut Chart has the ability to select slices on click. Optionally, you may apply a single custom visual style to the selected slices. The `SliceClick` event is raised when the user clicks on a slice. Enabling slice selection allows you to modify the slice's selection upon click. The following sample demonstrates how to enable slice selection and set the selected slice color to gray.
+The Blazor Donut Chart has the ability to select slices on click. Optionally, you may apply a single custom visual style to the selected slices. The [`SliceClick`](mcp:get_api_reference?platform=blazor&component=IgbDoughnutChart&member=sliceClick) event is raised when the user clicks on a slice. Enabling slice selection allows you to modify the slice's selection upon click. The following sample demonstrates how to enable slice selection and set the selected slice color to gray.
```razor
@using IgniteUI.Blazor.Controls
@@ -257,10 +247,7 @@ The Blazor Donut Chart has the ability to select slices on click. Optionally, yo
}
```
-
-
## Blazor Donut Chart - Multiple Rings
-
It is possible to have a multiple ring display in the Blazor Donut Chart, with each of the rings capable of being bound to a different data item, or they can share a common data source. This can be helpful if you need to display your data as tiers that have an underlying common category, such as the season to month data display below:
```razor
@@ -390,10 +377,7 @@ public class CalendarSeasons
}
```
-
-
## Additional Resources
-
You can find more information about related chart types in these topics:
- [Pie Chart](pie-chart.md)
@@ -401,11 +385,4 @@ You can find more information about related chart types in these topics:
- [Radial Chart](radial-chart.md)
## API References
-
-The following table lists API members mentioned in the above sections:
-
-- [`IgbDoughnutChart`](mcp:get_api_reference?platform=blazor&component=IgbDoughnutChart)
-- [`AllowSliceExplosion`](mcp:get_api_reference?platform=blazor&component=IgbDoughnutChart&member=AllowSliceExplosion)
-- [`AllowSliceSelection`](mcp:get_api_reference?platform=blazor&component=IgbDoughnutChart&member=AllowSliceSelection)
-- [`InnerExtent`](mcp:get_api_reference?platform=blazor&component=IgbDoughnutChart&member=InnerExtent)
-- `SliceClick`
+[`IgbDoughnutChart`](mcp:get_api_reference?platform=blazor&component=IgbDoughnutChart)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/dropdown.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/dropdown.md
index 1645ff9d1..13815b387 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/dropdown.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/dropdown.md
@@ -1,12 +1,13 @@
---
-title: Blazor Dropdown List Component | Ignite UI for Blazor
-_description: With Blazor Dropdown List component you can add interactivity and see styling options to a scrollable list of items in your app. Try it now. Blazor now.
-_keywords: Blazor, UI controls, web widgets, UI widgets, Blazor Dropdown Component, Infragistics
-_license: MIT
+title: "Blazor Dropdown List Component | Ignite UI for Blazor"
+description: With Blazor Dropdown List component you can add interactivity and see styling options to a scrollable list of items in your app. Try it now. Blazor now.
+keywords: "Blazor, UI controls, web widgets, UI widgets, Blazor Dropdown Component, Infragistics"
+license: MIT
mentionedTypes: ["Dropdown", "DropdownItem", "DropdownHeader", "DropdownGroup"]
+llms:
+ description: "Feature-rich, the Blazor Dropdown list offers out-of-the-box filtering, accessibility, preselected values, flexible data binding, grouping, UI customization, and more."
_tocName: Dropdown
---
-
# Blazor Dropdown List Component - Overview
Feature-rich, the Blazor Dropdown list offers out-of-the-box filtering, accessibility, preselected values, flexible data binding, grouping, UI customization, and more. What this component practically does is to effectively and easily replace HTML select tags, enabling users to quickly choose a non-editable value from a predefined set of several options.
@@ -42,7 +43,7 @@ The following Blazor Dropdown List example demonstrates the use of simple intera
Before using the [`IgbDropdown`](mcp:get_api_reference?platform=blazor&component=IgbDropdown), you need to register it as follows:
-```razor
+```csharp
// in Program.cs file
builder.Services.AddIgniteUIBlazor(typeof(IgbDropdownModule));
@@ -52,7 +53,7 @@ The simplest way to start using the [`IgbDropdown`](mcp:get_api_reference?platfo
### Target
-The Blazor Dropdown list is positioned relatively to its target. The `target` slot allows you to provide a built-in component which toggles the `open` property on click. In some cases you would want to use an external target or use another event to toggle the opening of the Dropdown. You can achieve this using the [`Show`](mcp:get_api_reference?platform=blazor&component=IgbDropdown&member=Show), [`Hide`](mcp:get_api_reference?platform=blazor&component=IgbDropdown&member=Hide) and [`Toggle`](mcp:get_api_reference?platform=blazor&component=IgbDropdown&member=Toggle) methods which allow you to provide the target as a parameter. By default, the Dropdown list uses `absolute` CSS position. You will need to set the [`IgbPositionStrategy`](mcp:get_api_reference?platform=blazor&component=IgbPositionStrategy) of the Blazor Dropdown to `fixed` when the target element is inside a fixed container, but the Dropdown is not. The Dropdown list is automatically sized based on its content, if you want the list to have the same width as the target, you should set the [`SameWidth`](mcp:get_api_reference?platform=blazor&component=IgbDropdown&member=SameWidth) property to `true`.
+The Blazor Dropdown list is positioned relatively to its target. The `target` slot allows you to provide a built-in component which toggles the `open` property on click. In some cases you would want to use an external target or use another event to toggle the opening of the Dropdown. You can achieve this using the [`Show`](mcp:get_api_reference?platform=blazor&component=IgbDropdown&member=show), [`Hide`](mcp:get_api_reference?platform=blazor&component=IgbDropdown&member=hide) and [`Toggle`](mcp:get_api_reference?platform=blazor&component=IgbDropdown&member=toggle) methods which allow you to provide the target as a parameter. By default, the Dropdown list uses `absolute` CSS position. You will need to set the [`PositionStrategy`](mcp:get_api_reference?platform=blazor&component=IgbOverlaySettings&member=positionStrategy) of the Blazor Dropdown to `fixed` when the target element is inside a fixed container, but the Dropdown is not. The Dropdown list is automatically sized based on its content, if you want the list to have the same width as the target, you should set the [`SameWidth`](mcp:get_api_reference?platform=blazor&component=IgbDropdown&member=sameWidth) property to `true`.
```razor
@using IgniteUI.Blazor.Controls
@@ -86,7 +87,7 @@ The Blazor Dropdown list is positioned relatively to its target. The `target` sl
### Position
-The preferred placement of the Blazor Dropdown can be set using the [`Placement`](mcp:get_api_reference?platform=blazor&component=IgbDropdown&member=Placement) property. The default placement of the Dropdown is `bottom-start`. The [`Flip`](mcp:get_api_reference?platform=blazor&component=IgbDropdown&member=Flip) property determines whether the placement should be flipped if there is not enough space to display the Dropdown at the specified placement. The distance from the Blazor Dropdown list to its target can be specified using the [`Distance`](mcp:get_api_reference?platform=blazor&component=IgbDropdown&member=Distance) property.
+The preferred placement of the Blazor Dropdown can be set using the [`Placement`](mcp:get_api_reference?platform=blazor&component=IgbDropdown&member=placement) property. The default placement of the Dropdown is `bottom-start`. The [`Flip`](mcp:get_api_reference?platform=blazor&component=IgbDropdown&member=flip) property determines whether the placement should be flipped if there is not enough space to display the Dropdown at the specified placement. The distance from the Blazor Dropdown list to its target can be specified using the [`Distance`](mcp:get_api_reference?platform=blazor&component=IgbDropdown&member=distance) property.
```razor
@using IgniteUI.Blazor.Controls
@@ -178,11 +179,27 @@ The preferred placement of the Blazor Dropdown can be set using the [`Placement`
### Selection
-The [`IgbDropdown`](mcp:get_api_reference?platform=blazor&component=IgbDropdown) emits the `Change` event when the user selects an item. The [`Select`](mcp:get_api_reference?platform=blazor&component=IgbDropdown&member=Select) method of the Dropdown allows you to select an item by its index or value.
+The [`IgbDropdown`](mcp:get_api_reference?platform=blazor&component=IgbDropdown) emits the `Change` event when the user selects an item. The [`Select`](mcp:get_api_reference?platform=blazor&component=IgbDropdown&member=select) method of the Dropdown allows you to select an item by its index or value.
### Item
-The [`IgbDropdownItem`](mcp:get_api_reference?platform=blazor&component=IgbDropdownItem) represents a selectable item in the Dropdown list. You could predefine a selected item by setting the [`Selected`](mcp:get_api_reference?platform=blazor&component=IgbDropdownItem&member=Selected) property. You could also disable an item so that it can't be selected using the [`Disabled`](mcp:get_api_reference?platform=blazor&component=IgbDropdownItem&member=Disabled) property. The [`IgbDropdownItem`](mcp:get_api_reference?platform=blazor&component=IgbDropdownItem) has a default slot which allows you to specify the content of the item. You could also provide custom content to be rendered before or after the content using the `prefix` and `suffix` slots. The [`Value`](mcp:get_api_reference?platform=blazor&component=IgbDropdownItem&member=Value) property allows you to provide a custom value to an item. If the [`Value`](mcp:get_api_reference?platform=blazor&component=IgbDropdownItem&member=Value) is not set, it resolves to the text content of the item.
+The [`IgbDropdownItem`](mcp:get_api_reference?platform=blazor&component=IgbDropdownItem) represents a selectable item in the Dropdown list. You could predefine a selected item by setting the [`Selected`](mcp:get_api_reference?platform=blazor&component=IgbDropdownItem&member=selected) property. You could also disable an item so that it can't be selected using the [`Disabled`](mcp:get_api_reference?platform=blazor&component=IgbDropdownItem&member=disabled) property.
+
+The [`IgbDropdownItem`](mcp:get_api_reference?platform=blazor&component=IgbDropdownItem) has a default slot which allows you to specify the content of the item. You could also provide custom content to be rendered before or after the content using the `prefix` and `suffix` slots.
+We recommend using a `` element when adding simple text, symbols, or emojis, and an [``](../layouts/icon.md) component when adding icons to the `prefix` and `suffix` slots.
+
+```razor
+
+ Countries
+
+
+ Germany
+ DE
+
+
+```
+
+The [`Value`](mcp:get_api_reference?platform=blazor&component=IgbDropdownItem&member=value) property allows you to provide a custom value to an item. If the [`Value`](mcp:get_api_reference?platform=blazor&component=IgbDropdownItem&member=value) is not set, it resolves to the text content of the item.
```razor
@using IgniteUI.Blazor.Controls
@@ -373,11 +390,11 @@ The Blazor Dropdown's items can also be grouped using the [`IgbDropdownGroup`](m
### Scroll Strategy
-The [`ScrollStrategy`](mcp:get_api_reference?platform=blazor&component=IgbDropdown&member=ScrollStrategy) property determines the behavior of the component during scrolling the container of the target element. The default value is `scroll` which means that the Dropdown will be scrolled with its target. Setting the property to `block` will block the scrolling if the Dropdown is opened. You could also set the property to `close` which means that the Dropdown will be closed automatically on scroll.
+The [`ScrollStrategy`](mcp:get_api_reference?platform=blazor&component=IgbOverlaySettings&member=scrollStrategy) property determines the behavior of the component during scrolling the container of the target element. The default value is `scroll` which means that the Dropdown will be scrolled with its target. Setting the property to `block` will block the scrolling if the Dropdown is opened. You could also set the property to `close` which means that the Dropdown will be closed automatically on scroll.
### Keep Open
-By default, the Dropdown is closed automatically when the user clicks outside of it or selects an item. You could prevent this behavior using the [`KeepOpenOnOutsideClick`](mcp:get_api_reference?platform=blazor&component=IgbDropdown&member=KeepOpenOnOutsideClick) and [`KeepOpenOnSelect`](mcp:get_api_reference?platform=blazor&component=IgbDropdown&member=KeepOpenOnSelect) properties.
+By default, the Dropdown is closed automatically when the user clicks outside of it or selects an item. You could prevent this behavior using the [`KeepOpenOnOutsideClick`](mcp:get_api_reference?platform=blazor&component=IgbDropdown&member=keepOpenOnOutsideClick) and [`KeepOpenOnSelect`](mcp:get_api_reference?platform=blazor&component=IgbDropdown&member=keepOpenOnSelect) properties.
## Styling
@@ -478,13 +495,12 @@ igc-dropdown-group::part(label) {
}
```
-## API Reference
+## API References
-- [`IgbDropdown`](mcp:get_api_reference?platform=blazor&component=IgbDropdown)
-- [`IgbDropdownItem`](mcp:get_api_reference?platform=blazor&component=IgbDropdownItem)
-- [`IgbDropdownHeader`](mcp:get_api_reference?platform=blazor&component=IgbDropdownHeader)
-- [`IgbDropdownGroup`](mcp:get_api_reference?platform=blazor&component=IgbDropdownGroup)
-- [`Styling & Themes`](../themes/overview.md)
+[`IgbDropdown`](mcp:get_api_reference?platform=blazor&component=IgbDropdown)
+[`IgbDropdownItem`](mcp:get_api_reference?platform=blazor&component=IgbDropdownItem)
+[`IgbDropdownHeader`](mcp:get_api_reference?platform=blazor&component=IgbDropdownHeader)
+[`IgbDropdownGroup`](mcp:get_api_reference?platform=blazor&component=IgbDropdownGroup)
## Additional Resources
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/elevations.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/elevations.md
new file mode 100644
index 000000000..38e4fa1f3
--- /dev/null
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/elevations.md
@@ -0,0 +1,86 @@
+---
+title: "Blazor Styling and Themes | Blazor Elevations | Infragistics"
+description:
+keywords: "Ignite UI for Blazor, Infragistics, Elevations, Styling"
+license: MIT
+mentionedTypes: []
+llms:
+ description: "The implementation of the Elevations in Ignite UI for Blazor is modeled after the Elevations in Material Design."
+_tocName: Elevations
+---
+# Elevations in Ignite UI for Blazor
+
+The implementation of the Elevations in Ignite UI for Blazor is modeled after the [Elevations in Material Design](https://material.io/design/environment/elevation.html#elevation-in-material-design). They are used to establish and maintain functional boundaries between Document Object Model trees to enable better functional encapsulation.
+
+## Overview
+
+Ignite UI for Blazor shadows closely follow the Material Design guidelines for establishing depth hierarchy based on 25 elevation levels. The size of the shadow cast is related to the elevation level number. The higher the elevation level number, the larger the shadow will be. Elevations in Ignite UI for Blazor are exposed as CSS variables. Each variable stores a set of 3 `box-shadows`. These `box-shadows` represent the umbra, penumbra, and antumbra elements that are the properties of shadows as observed in the real world.
+
+Here's a list of resting elevations as used in various components in Ignite UI for Blazor in the Bootstrap Theme and their corresponding CSS variable names:
+
+| Component | Default Elevation Level | CSS Variable |
+| ----------------------------------------------- | ----------------------- | ------------------ |
+| Button | 0 | --ig-elevation-0 |
+| Elevated Card | 2 | --ig-elevation-2 |
+| Toast, Snackbar | 10 | --ig-elevation-10 |
+| Navdrawer | 16 | --ig-elevation-16 |
+
+As you can see from the **CSS Variable** column, all elevations are defined in the following format `--ig-elevation-[level]`. As mentioned, the elevation level number go from 0 through 24 (inclusive).
+
+## Usage
+
+To begin using elevations in your own components all you need is to reference the variable name of the desired level:
+
+```css
+.custom-element {
+ box-shadow: var(--ig-elevation-6);
+}
+```
+
+Changing the elevation in an existing component theme works in a similar way:
+
+```css
+igc-navbar {
+ box-shadow: var(--ig-elevation-8);
+}
+```
+
+## Defining Elevations
+
+Updating the default elevations works in a similar way to updating the palette colors. You simply need to reassign the variable to a different value. With elevations, make sure the value is `box-shadow`.
+
+Example:
+
+```css
+:root {
+ --ig-elevation-1: 0 2px 6px 0 rgba(0, 0, 0, .18);
+ --ig-elevation-2: 0 3px 9px 0 rgba(0, 0, 0, .24);
+}
+```
+
+Now, all components that use elevation levels 1 and 2 will have their shadows updated.
+
+### Shadowing
+
+You can shadow the globally set elevations for a specific scope only. We already saw that the Snackbar and the Toast component use elevation level 10. To change the shadows for both of them, all you need to do is:
+
+```css
+igc-snackbar,
+igc-toast {
+ --ig-elevation-10: 0 3px 9px 0 rgba(0, 0, 0, .24);
+}
+```
+
+This will set the toast and the snackbar shadows to the value assigned to `--ig-elevation-10`.
+
+## Using Elevation Factor
+
+In addition to elevation levels, Ignite UI for Blazor exposes a CSS variable that makes it easy to control the global elevation factor. The default value is set to 1 which means all component shadows will be the same as defined in their component themes. If you want to remove all shadows, you just need to change the property value to 0:
+
+```css
+:root {
+ --ig-elevation-factor: 0;
+}
+```
+
+The `--ig-elevation-factor` can also be set to a decimal value or a value bigger than 1. The bigger the value, the larger the shadow will be.
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/excel-library-using-cells.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/excel-library-using-cells.md
index e98a69621..257e0a3fe 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/excel-library-using-cells.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/excel-library-using-cells.md
@@ -1,16 +1,17 @@
---
-title: Blazor Excel Library| Using Cells | Infragistics
-_description: Learn how to perform operations on Infragistics' Blazor excel library's cells such as accessing them, adding formulas and comments, merging cells and formatting cells. View Ignite UI for Blazor excel demos!
-_keywords: Excel library, cell operations, Ignite UI for Blazor, Infragistics
-_license: commercial
+title: "Blazor Excel Library| Using Cells | Infragistics"
+description: Learn how to perform operations on Infragistics' Blazor excel library's cells such as accessing them, adding formulas and comments, merging cells and formatting cells. View Ignite UI for Blazor excel demos!
+keywords: Excel library, cell operations, Ignite UI for Blazor, Infragistics
+license: commercial
mentionedTypes: ["Workbook", "Worksheet", "WorksheetCell", "WorkbookStyleCollection", "IWorksheetCellFormat", "WorkbookColorInfo", "DisplayOptions"]
+llms:
+ description: "The WorksheetCell objects in an Excel worksheet is the object that holds your actual data values for the worksheet."
_tocName: Using Cells
_premium: true
---
-
# Blazor Using Cells
-The `WorksheetCell` objects in an Excel worksheet is the object that holds your actual data values for the worksheet. This topic goes over the many operations that you can perform on these cells, such as accessing them and their regions by name, adding formulas and comments to the cells, and merging and formatting them.
+The [`IgbWorksheetCell`](mcp:get_api_reference?platform=blazor&component=WorksheetCell) objects in an Excel worksheet is the object that holds your actual data values for the worksheet. This topic goes over the many operations that you can perform on these cells, such as accessing them and their regions by name, adding formulas and comments to the cells, and merging and formatting them.
## Blazor Using Cells Example
@@ -360,14 +361,22 @@ namespace Infragistics.Samples
}
```
-
-
## Referencing Cells and Regions
-You can access a `WorksheetCell` object or a `WorksheetRegion` object by calling the `Worksheet` object’s `GetCell` or `GetRegion` methods, respectively. Both methods accept a string parameter that references a cell. Getting a reference to a cell is useful when applying formats or working with formulas and cell contents.
+You can access a [`IgbWorksheetCell`](mcp:get_api_reference?platform=blazor&component=WorksheetCell) object or a [`IgbWorksheetRegion`](mcp:get_api_reference?platform=blazor&component=WorksheetRegion) object by calling the [`IgbWorksheet`](mcp:get_api_reference?platform=blazor&component=Worksheet) object’s [`GetCell`](mcp:get_api_reference?platform=blazor&component=Worksheet&member=getCell) or [`GetRegion`](mcp:get_api_reference?platform=blazor&component=Worksheet&member=getRegion) methods, respectively. Both methods accept a string parameter that references a cell. Getting a reference to a cell is useful when applying formats or working with formulas and cell contents.
The following example code demonstrates how to reference cells and regions:
+```ts
+var workbook = new Workbook();
+var worksheet = workbook.worksheets().add("Sheet1");
+
+//Accessing a single cell
+var cell = worksheet.getCell("E2");
+//Accessing a range of cells
+var region = worksheet.getRegion("G1:G10");
+```
+
```razor
var workbook = new Workbook();
var worksheet = workbook.Worksheets.Add("Sheet1");
@@ -382,10 +391,18 @@ var region = worksheet.GetRegion("G1:G10");
In Microsoft Excel, individual cells, as well as cell regions can have names assigned to them. The name of a cell or region can be used to reference that cell or region instead of their address.
-The Infragistics Blazor Excel Library supports the referencing of cells and regions by name through the `GetCell` and `GetRegion` methods of the `Worksheet` object. You refer to the cell or region using the `NamedReference` instance that refers to that cell or region.
+The Infragistics Blazor Excel Library supports the referencing of cells and regions by name through the [`GetCell`](mcp:get_api_reference?platform=blazor&component=Worksheet&member=getCell) and [`GetRegion`](mcp:get_api_reference?platform=blazor&component=Worksheet&member=getRegion) methods of the [`IgbWorksheet`](mcp:get_api_reference?platform=blazor&component=Worksheet) object. You refer to the cell or region using the [`IgbNamedReference`](mcp:get_api_reference?platform=blazor&component=NamedReference) instance that refers to that cell or region.
You can use the following code snippet as an example for naming a cell or region:
+```ts
+var workbook = new Workbook();
+var worksheet = workbook.worksheets().add("Sheet1");
+
+var cell_reference = workbook.namedReferences().add("myCell", "=Sheet1:A1");
+var region_reference = workbook.namedReferences().add("myRegion", "=Sheet1!A1:B2");
+```
+
```razor
var workbook = new Workbook();
var worksheet = workbook.Worksheets.Add("Sheet1");
@@ -396,6 +413,11 @@ var region_reference = workbook.NamedReferences.Add("myRegion", "=Sheet1!A1:B2")
The following code can be used to the get the cell and region referenced by the "myCell" and "myRegion" named references above:
+```ts
+var cell = worksheet.getCell("myCell");
+var region = worksheet.getRegion("myRegion");
+```
+
```razor
var cell = worksheet.GetCell("myCell");
var region = worksheet.GetRegion("myRegion");
@@ -403,10 +425,21 @@ var region = worksheet.GetRegion("myRegion");
## Adding a Comment to a Cell
-A comment allows you to display hints or notes for a cell when the end user’s mouse hovers over a cell. The comments display as a tooltip-like callout that contains text. The Infragistics Blazor Excel Library allows you to add comments to a cell by setting a `WorksheetCell` object’s `Comment` property.
+A comment allows you to display hints or notes for a cell when the end user’s mouse hovers over a cell. The comments display as a tooltip-like callout that contains text. The Infragistics Blazor Excel Library allows you to add comments to a cell by setting a [`IgbWorksheetCell`](mcp:get_api_reference?platform=blazor&component=WorksheetCell) object’s [`Comment`](mcp:get_api_reference?platform=blazor&component=WorksheetCell&member=comment) property.
The following example code demonstrates how to add a comment to a cell:
+```ts
+var workbook = new Workbook();
+var worksheet = workbook.worksheets().add("Sheet1");
+
+var cellComment = new WorksheetCellComment();
+var commentText = new FormattedString("This cell has a comment.");
+cellComment.text = commentText;
+
+worksheet.rows(0).cells(0).comment = cellComment;
+```
+
```razor
var workbook = new Workbook();
var worksheet = workbook.Worksheets.Add("Sheet1");
@@ -420,10 +453,20 @@ worksheet.Rows[0].Cells[0].Comment = cellComment;
## Adding a Formula to a Cell
-The Infragistics Blazor Excel Library allows you to add Microsoft Excel formulas to a cell or group of cells in a worksheet. You can do this using the `WorksheetCell` object’s `ApplyFormula` method or by instantiating a `Formula` object and applying it to a cell. Regardless of the manner in which you apply a formula to a cell, you can access the `Formula` object using the `WorksheetCell` object’s `Formula` property. If you need the value, use the cell’s `Value` property.
+The Infragistics Blazor Excel Library allows you to add Microsoft Excel formulas to a cell or group of cells in a worksheet. You can do this using the [`IgbWorksheetCell`](mcp:get_api_reference?platform=blazor&component=WorksheetCell) object’s [`ApplyFormula`](mcp:get_api_reference?platform=blazor&component=WorksheetCell&member=applyFormula) method or by instantiating a [`IgbFormula`](mcp:get_api_reference?platform=blazor&component=Formula) object and applying it to a cell. Regardless of the manner in which you apply a formula to a cell, you can access the [`IgbFormula`](mcp:get_api_reference?platform=blazor&component=Formula) object using the [`IgbWorksheetCell`](mcp:get_api_reference?platform=blazor&component=WorksheetCell) object’s [`Formula`](mcp:get_api_reference?platform=blazor&component=WorksheetCell&member=formula) property. If you need the value, use the cell’s [`Value`](mcp:get_api_reference?platform=blazor&component=WorksheetCell&member=value) property.
The following code shows you how to add a formula to a cell.
+```ts
+ var workbook = new Workbook();
+ var worksheet = workbook.worksheets().add("Sheet1");
+ worksheet.rows(5).cells(0).applyFormula("=SUM(A1:A5)");
+
+ //Using a Formula object to apply a formula
+ var sumFormula = Formula.parse("=SUM(A1:A5)", CellReferenceMode.A1);
+ sumFormula.applyTo(worksheet.rows(5).cells(0));
+```
+
```razor
var workbook = new Workbook();
var worksheet = workbook.Worksheets.Add("Sheet1");
@@ -435,11 +478,22 @@ sumFormula.ApplyTo(worksheet.Rows[5].Cells[0]);
```
## Copying a Cell’s Format
-
-Cells can have different formatting, including background color, format string, and font style. If you need a cell to have the same format as a previously formatted cell, instead of individually setting each option exposed by the `WorksheetCell` object’s `CellFormat` property, you can call the `CellFormat` object’s `SetFormatting` method and pass it a `CellFormat` object to copy. This will copy every format setting from the first cell to the second cell. You can also do this for a row, merged cell region, or column.
+Cells can have different formatting, including background color, format string, and font style. If you need a cell to have the same format as a previously formatted cell, instead of individually setting each option exposed by the [`IgbWorksheetCell`](mcp:get_api_reference?platform=blazor&component=WorksheetCell) object’s [`CellFormat`](mcp:get_api_reference?platform=blazor&component=WorksheetCell&member=cellFormat) property, you can call the [`IgbIWorksheetCellFormat`](mcp:get_api_reference?platform=blazor&component=IWorksheetCellFormat) object’s [`SetFormatting`](mcp:get_api_reference?platform=blazor&component=IWorksheetCellFormat&member=setFormatting) method and pass it a [`IgbIWorksheetCellFormat`](mcp:get_api_reference?platform=blazor&component=IWorksheetCellFormat) object to copy. This will copy every format setting from the first cell to the second cell. You can also do this for a row, merged cell region, or column.
The following code shows you how to copy the format of the 2nd column to the 4th column:
+```ts
+var workbook = new Workbook();
+var worksheet = workbook.worksheets().add("Sheet1");
+
+//Format 2nd column
+worksheet.columns(1).cellFormat.fill = CellFill.createSolidFill("Blue");
+worksheet.columns(1).cellFormat.font.bold = true;
+
+//Copy format of 2nd column to 4th column
+worksheet.columns(3).cellFormat.setFormatting(worksheet.columns(1).cellFormat);
+```
+
```razor
var workbook = new Workbook();
var worksheet = workbook.Worksheets.Add("Sheet1");
@@ -454,7 +508,7 @@ worksheet.Columns[3].CellFormat.SetFormatting(worksheet.Columns[1].CellFormat);
## Formatting a Cell
-The Infragistics Blazor Excel Library allows you to customize the look and behavior of a cell. You can customize a cell by setting properties exposed by the `CellFormat` property of the `WorksheetCell`, `WorksheetRow`, `WorksheetColumn`, or `WorksheetMergedCellsRegion` objects.
+The Infragistics Blazor Excel Library allows you to customize the look and behavior of a cell. You can customize a cell by setting properties exposed by the [`CellFormat`](mcp:get_api_reference?platform=blazor&component=WorksheetCell&member=cellFormat) property of the [`IgbWorksheetCell`](mcp:get_api_reference?platform=blazor&component=WorksheetCell), [`IgbWorksheetRow`](mcp:get_api_reference?platform=blazor&component=WorksheetRow), [`IgbWorksheetColumn`](mcp:get_api_reference?platform=blazor&component=WorksheetColumn), or [`IgbWorksheetMergedCellsRegion`](mcp:get_api_reference?platform=blazor&component=WorksheetMergedCellsRegion) objects.
You can customize every aspect of a cell’s appearance. You can set a cell’s font, background, and borders, as well as text alignment and rotation. You can even apply a different format on a character-by-character basis for a cell’s text.
@@ -462,6 +516,13 @@ You can also format cell values by assigning a format string. An acceptable form
The following code shows you how to format a cell to display numbers as currency:
+```ts
+var workbook = new Workbook(format);
+var worksheet = workbook.worksheets().add("Sheet1");
+
+worksheet.columns(2).cellFormat.formatString = "\"$\"#,##0.00";
+```
+
```razor
var workbook = new Workbook();
var worksheet = workbook.Worksheets.Add("Sheet1");
@@ -473,27 +534,35 @@ worksheet.Columns[2].CellFormat.FormatString = "\"$\"#,##0.00";
The color palette is analogous to the color dialog in Microsoft Excel 2007 UI. You can open this color dialog by navigating to Excel Options => Save => Colors.
-You can create all possible fill types using static properties and methods on the `CellFill` class. They are as follows:
+You can create all possible fill types using static properties and methods on the [`IgbCellFill`](mcp:get_api_reference?platform=blazor&component=CellFill) class. They are as follows:
- `NoColor` - A property that represents a fill with no color, which allows a background image of the worksheet, if any, to show through.
-- `CreateSolidFill` - Returns a `CellFillPattern` instance which has a pattern style of `Solid` and a background color set to the `Color` or `WorkbookColorInfo` specified in the method.
+- `CreateSolidFill` - Returns a [`IgbCellFillPattern`](mcp:get_api_reference?platform=blazor&component=CellFillPattern) instance which has a pattern style of `Solid` and a background color set to the [`Color`](mcp:get_api_reference?platform=blazor&component=WorkbookColorInfo&member=color) or [`IgbWorkbookColorInfo`](mcp:get_api_reference?platform=blazor&component=WorkbookColorInfo) specified in the method.
-- `CreatePatternFill` - Returns a `CellFillPattern` instance which has the specified pattern style and the `Color` or `WorkbookColorInfo` values, specified for the background and pattern colors.
+- `CreatePatternFill` - Returns a [`IgbCellFillPattern`](mcp:get_api_reference?platform=blazor&component=CellFillPattern) instance which has the specified pattern style and the [`Color`](mcp:get_api_reference?platform=blazor&component=WorkbookColorInfo&member=color) or [`IgbWorkbookColorInfo`](mcp:get_api_reference?platform=blazor&component=WorkbookColorInfo) values, specified for the background and pattern colors.
-- `CreateLinearGradientFill` - Returns a `CellFillLinearGradient` instance with the specified angle and gradient stops.
+- `CreateLinearGradientFill` - Returns a [`IgbCellFillLinearGradient`](mcp:get_api_reference?platform=blazor&component=CellFillLinearGradient) instance with the specified angle and gradient stops.
-- `CreateRectangularGradientFill` - Returns a `CellFillRectangularGradient` instance with the specified left, top, right, and bottom of the inner rectangle and gradient stops. If the inner rectangle values are not specified, the center of the cell is used as the inner rectangle.
+- `CreateRectangularGradientFill` - Returns a [`IgbCellFillRectangularGradient`](mcp:get_api_reference?platform=blazor&component=CellFillRectangularGradient) instance with the specified left, top, right, and bottom of the inner rectangle and gradient stops. If the inner rectangle values are not specified, the center of the cell is used as the inner rectangle.
The derived types, representing the various fills which can be created, are as follows:
-- `CellFillPattern` - A pattern that represents a cell fill of no color, a solid color, or a pattern fill for a cell. It has background color info and a pattern color info which correspond directly to the color sections in the Fill tab of the Format Cells dialog of Excel.
+- [`IgbCellFillPattern`](mcp:get_api_reference?platform=blazor&component=CellFillPattern) - A pattern that represents a cell fill of no color, a solid color, or a pattern fill for a cell. It has background color info and a pattern color info which correspond directly to the color sections in the Fill tab of the Format Cells dialog of Excel.
+
+- [`IgbCellFillLinearGradient`](mcp:get_api_reference?platform=blazor&component=CellFillLinearGradient) - Represents a linear gradient fill. It has an angle, which is degrees clockwise of the left to right linear gradient, and a gradients stops collection which describes two or more color transitions along the length of the gradient.
-- `CellFillLinearGradient` - Represents a linear gradient fill. It has an angle, which is degrees clockwise of the left to right linear gradient, and a gradients stops collection which describes two or more color transitions along the length of the gradient.
+- [`IgbCellFillRectangularGradient`](mcp:get_api_reference?platform=blazor&component=CellFillRectangularGradient) - Represents a rectangular gradient fill. It has top, left, right, and bottom values, which describe, in relative coordinates, the inner rectangle from which the gradient starts and goes out to the cell edges. It also has a gradient stops collection which describes two or more color transitions along the path from the inner rectangle to the cell edges.
-- `CellFillRectangularGradient` - Represents a rectangular gradient fill. It has top, left, right, and bottom values, which describe, in relative coordinates, the inner rectangle from which the gradient starts and goes out to the cell edges. It also has a gradient stops collection which describes two or more color transitions along the path from the inner rectangle to the cell edges.
+The following code snippet demonstrates how to create a solid fill in a [`IgbWorksheetCell`](mcp:get_api_reference?platform=blazor&component=WorksheetCell):
-The following code snippet demonstrates how to create a solid fill in a `WorksheetCell`:
+```ts
+var workbook = new Workbook();
+var worksheet = workbook.worksheets().add("Sheet1");
+
+var cellFill = CellFill.createSolidFill("Blue");
+worksheet.rows(0).cells(0).cellFormat.fill = cellFill;
+```
```razor
var workbook = new Workbook();
@@ -543,11 +612,11 @@ Each workbook has 12 associated theme colors. They are the following:
- There are default values when a workbook is created, which can be customized via Excel.
-Colors are defined by the `WorkbookColorInfo` class, which is a sealed immutable class. The class has a static `Automatic` property, which returns the automatic color, and there are various constructors which allow you to create a `WorkbookColorInfo` instance with a color or a theme value and an optional tint.
+Colors are defined by the [`IgbWorkbookColorInfo`](mcp:get_api_reference?platform=blazor&component=WorkbookColorInfo) class, which is a sealed immutable class. The class has a static `Automatic` property, which returns the automatic color, and there are various constructors which allow you to create a [`IgbWorkbookColorInfo`](mcp:get_api_reference?platform=blazor&component=WorkbookColorInfo) instance with a color or a theme value and an optional tint.
-The `GetResolvedColor` method on `WorkbookColorInfo` allows you to determine what color will actually be seen by the user when they open the file in Excel.
+The [`GetResolvedColor`](mcp:get_api_reference?platform=blazor&component=WorkbookColorInfo&member=getResolvedColor) method on [`IgbWorkbookColorInfo`](mcp:get_api_reference?platform=blazor&component=WorkbookColorInfo) allows you to determine what color will actually be seen by the user when they open the file in Excel.
-If the `WorkbookColorInfo` represents a theme color, you must pass in a Workbook instance to the method so it can get the theme color’s RGB value from the workbook.
+If the [`IgbWorkbookColorInfo`](mcp:get_api_reference?platform=blazor&component=WorkbookColorInfo) represents a theme color, you must pass in a Workbook instance to the method so it can get the theme color’s RGB value from the workbook.
When saving out in the newer file formats such as .xlsx, the newer color information is saved directly into the file. When saving out in an older file format such as .xls, the index to the closest color in the palette will be saved out. In addition, the older formats have future feature records that can be saved out to indicate the newer color information.
@@ -555,37 +624,57 @@ When the older formats are opened in Microsoft Excel 2003 and earlier versions,
## Excel Format Support
-You can set a host of different formats on a `WorksheetCell` by using the `CellFormat` object returned by the `CellFormat` property of that cell. This `CellFormat` object enables you to style many different aspects of the cell such as borders, font, fill, alignments, and whether or not the cell should shrink to fit or be locked.
+You can set a host of different formats on a [`IgbWorksheetCell`](mcp:get_api_reference?platform=blazor&component=WorksheetCell) by using the [`IgbIWorksheetCellFormat`](mcp:get_api_reference?platform=blazor&component=IWorksheetCellFormat) object returned by the [`CellFormat`](mcp:get_api_reference?platform=blazor&component=WorksheetCell&member=cellFormat) property of that cell. This [`IgbIWorksheetCellFormat`](mcp:get_api_reference?platform=blazor&component=IWorksheetCellFormat) object enables you to style many different aspects of the cell such as borders, font, fill, alignments, and whether or not the cell should shrink to fit or be locked.
-You can also access the built-in styles to Microsoft Excel 2007 using the `Styles` collection of the `Workbook` object. The full list of styles in Excel can be found in the Cell Styles gallery of the Home tab of Microsoft Excel 2007.
+You can also access the built-in styles to Microsoft Excel 2007 using the [`Styles`](mcp:get_api_reference?platform=blazor&component=Workbook&member=styles) collection of the [`IgbWorkbook`](mcp:get_api_reference?platform=blazor&component=Workbook) object. The full list of styles in Excel can be found in the Cell Styles gallery of the Home tab of Microsoft Excel 2007.
-There is a special type of style on the workbook's `Styles` collection known as the "normal" style, which can be accessed using that collection's `NormalStyle` property, or by indexing into the collection with the name "Normal".
+There is a special type of style on the workbook’s [`Styles`](mcp:get_api_reference?platform=blazor&component=Workbook&member=styles) collection known as the "normal" style, which can be accessed using that collection’s [`NormalStyle`](mcp:get_api_reference?platform=blazor&component=WorkbookStyleCollection&member=normalStyle) property, or by indexing into the collection with the name "Normal".
-The `NormalStyle` contains the default properties for all cells in the workbook, unless otherwise specified on a row, column, or cell. Changing the properties on the `NormalStyle` will change all of the default cell format properties on the workbook. This is useful, for example, if you want to change the default font for your workbook.
+The [`NormalStyle`](mcp:get_api_reference?platform=blazor&component=WorkbookStyleCollection&member=normalStyle) contains the default properties for all cells in the workbook, unless otherwise specified on a row, column, or cell. Changing the properties on the [`NormalStyle`](mcp:get_api_reference?platform=blazor&component=WorkbookStyleCollection&member=normalStyle) will change all of the default cell format properties on the workbook. This is useful, for example, if you want to change the default font for your workbook.
-You can clear the `Styles` collection or reset it to its predefined state by using the `Clear` and `Reset` methods, respectively. Both of these will remove all user-defined styles, but `Clear` will clear the `Styles` collection entirely.
+You can clear the [`Styles`](mcp:get_api_reference?platform=blazor&component=Workbook&member=styles) collection or reset it to its predefined state by using the [`Clear`](mcp:get_api_reference?platform=blazor&component=WorkbookStyleCollection&member=clear) and [`Reset`](mcp:get_api_reference?platform=blazor&component=WorkbookStyleCollection&member=reset) methods, respectively. Both of these will remove all user-defined styles, but [`Clear`](mcp:get_api_reference?platform=blazor&component=WorkbookStyleCollection&member=clear) will clear the [`Styles`](mcp:get_api_reference?platform=blazor&component=Workbook&member=styles) collection entirely.
-With this feature, a `Style` property has been added to the `CellFormat` object. This is a reference to a `WorkbookStyle` instance, representing the parent style of the format. For formats of a style, this property will always be null, because styles cannot have a parent style. For row, column, and cell formats, the `Style` property always returns the `NormalStyle` by default.
+With this feature, a [`Style`](mcp:get_api_reference?platform=blazor&component=IWorksheetCellFormat&member=style) property has been added to the [`IgbIWorksheetCellFormat`](mcp:get_api_reference?platform=blazor&component=IWorksheetCellFormat) object. This is a reference to a [`IgbWorkbookStyle`](mcp:get_api_reference?platform=blazor&component=WorkbookStyle) instance, representing the parent style of the format. For formats of a style, this property will always be null, because styles cannot have a parent style. For row, column, and cell formats, the [`Style`](mcp:get_api_reference?platform=blazor&component=IWorksheetCellFormat&member=style) property always returns the [`NormalStyle`](mcp:get_api_reference?platform=blazor&component=WorkbookStyleCollection&member=normalStyle) by default.
-If the `Style` property is set to null, it will revert back to the `NormalStyle`. If it is set to another style in the styles collection, that style will now hold the defaults for all unset properties on the cell format.
+If the [`Style`](mcp:get_api_reference?platform=blazor&component=IWorksheetCellFormat&member=style) property is set to null, it will revert back to the [`NormalStyle`](mcp:get_api_reference?platform=blazor&component=WorkbookStyleCollection&member=normalStyle). If it is set to another style in the styles collection, that style will now hold the defaults for all unset properties on the cell format.
-When the `Style` property is set on a cell format, the format options included on the `Style` are removed from the cell format. All other properties are left intact. For example, if a cell style including border formatting was created and that style was set as the cell's `Style`, the border format option on the cell format would be removed and the cell format only includes fill formatting.
+When the [`Style`](mcp:get_api_reference?platform=blazor&component=IWorksheetCellFormat&member=style) property is set on a cell format, the format options included on the [`Style`](mcp:get_api_reference?platform=blazor&component=IWorksheetCellFormat&member=style) are removed from the cell format. All other properties are left intact. For example, if a cell style including border formatting was created and that style was set as the cell’s [`Style`](mcp:get_api_reference?platform=blazor&component=IWorksheetCellFormat&member=style), the border format option on the cell format would be removed and the cell format only includes fill formatting.
When a format option flag is removed from a format, all associated properties are reset to their unset values, so the cell format’s border properties are implicitly reset to default/unset values.
-You can determine what would really be seen in cells by using the `GetResolvedCellFormat` method on classes which represent a row, column, cell, and merged cell.
+You can determine what would really be seen in cells by using the [`GetResolvedCellFormat`](mcp:get_api_reference?platform=blazor&component=WorksheetCell&member=getResolvedCellFormat) method on classes which represent a row, column, cell, and merged cell.
-This method returns a `CellFormat` instance which refers back to the associated `CellFormat` on which it is based. So subsequent changes to the `CellFormat` property will be reflected in the instance returned from a `GetResolvedCellFormat` call.
+This method returns a [`IgbIWorksheetCellFormat`](mcp:get_api_reference?platform=blazor&component=IWorksheetCellFormat) instance which refers back to the associated [`IgbIWorksheetCellFormat`](mcp:get_api_reference?platform=blazor&component=IWorksheetCellFormat) on which it is based. So subsequent changes to the [`CellFormat`](mcp:get_api_reference?platform=blazor&component=WorksheetCell&member=cellFormat) property will be reflected in the instance returned from a [`GetResolvedCellFormat`](mcp:get_api_reference?platform=blazor&component=WorksheetCell&member=getResolvedCellFormat) call.
## Merging Cells
Aside from setting the value or format of cells, you can also merge cells to make two or more cells appear as one. If you merge cells, they must be in a rectangular region.
-When you merge cells, each cell in the region will have the same value and cell format. The merged cells will also be associated with the same `WorksheetMergedCellsRegion` object, accessible from their `AssociatedMergedCellsRegion` property. The resultant `WorksheetMergedCellsRegion` object will also have the same value and cell format as the cells.
+When you merge cells, each cell in the region will have the same value and cell format. The merged cells will also be associated with the same [`IgbWorksheetMergedCellsRegion`](mcp:get_api_reference?platform=blazor&component=WorksheetMergedCellsRegion) object, accessible from their [`AssociatedMergedCellsRegion`](mcp:get_api_reference?platform=blazor&component=WorksheetCell&member=associatedMergedCellsRegion) property. The resultant [`IgbWorksheetMergedCellsRegion`](mcp:get_api_reference?platform=blazor&component=WorksheetMergedCellsRegion) object will also have the same value and cell format as the cells.
Setting the value (or cell format) of the region or any cell in the region will change the value of all cells and the region. If you un-merge cells, all of the previously merged cells will retain the shared cell format they had before they were unmerged. However, only the top-left cell of the region will retain the shared value.
-In order to create a merged cell region, you must add a range of cells to the `Worksheet` object’s `MergedCellsRegions` collection. This collection exposes an `Add` method that takes four integer parameters. The four parameters determine the index of the starting row and column (top-left most cell) and the index of the ending row and column (bottom-right most cell).
+In order to create a merged cell region, you must add a range of cells to the [`IgbWorksheet`](mcp:get_api_reference?platform=blazor&component=Worksheet) object’s [`MergedCellsRegions`](mcp:get_api_reference?platform=blazor&component=Worksheet&member=mergedCellsRegions) collection. This collection exposes an `Add` method that takes four integer parameters. The four parameters determine the index of the starting row and column (top-left most cell) and the index of the ending row and column (bottom-right most cell).
+
+```ts
+var workbook = new Workbook();
+var worksheet = workbook.worksheets().add("Sheet1");
+
+// Make some column headers
+worksheet.rows(1).cells(1).value = "Morning";
+worksheet.rows(1).cells(2).value = "Afternoon";
+worksheet.rows(1).cells(3).value = "Evening";
+
+// Create a merged region from column 1 to column 3
+var mergedRegion1 = ws.mergedCellsRegions().add(0, 1, 0, 3);
+
+// Set the value of the merged region
+mergedRegion1.value = "Day 1";
+
+// Set the cell alignment of the middle cell in the merged region.
+// Since a cell and its merged region shared a cell format, this will ultimately set the format of the merged region
+worksheet.rows(0).cells(2).cellFormat.alignment = HorizontalCellAlignment.Center;
+```
```razor
var workbook = new Workbook();
@@ -647,11 +736,18 @@ If a text is used in the cell, the cell displayed text will always be full value
The only time when this is not the case is when padding characters are used in format string. Then the value will be displayed as all hash marks when there is not enough room for the text.
-You can set the worksheet's `DisplayOptions`' `ShowFormulasInCells` property to have formulas be displayed in cells instead of their results, and format strings and cell widths are ignored. Text values display as if their format string were @ , non-integral numeric values display as if their format string were 0.0 and integral numeric values display as if their format string were 0 .
+You can set the worksheet's [`DisplayOptions`](mcp:get_api_reference?platform=blazor&component=Worksheet&member=displayOptions)' [`ShowFormulasInCells`](mcp:get_api_reference?platform=blazor&component=DisplayOptions&member=showFormulasInCells) property to have formulas be displayed in cells instead of their results, and format strings and cell widths are ignored. Text values display as if their format string were @ , non-integral numeric values display as if their format string were 0.0 and integral numeric values display as if their format string were 0 .
Additionally, if the value cannot fit, it will not display as all hashes. Display text will still return its full text as the cell text, even though it may not be fully seen.
-The following code snippet demonstrates the usage of the `GetText` method to get the text as it would be displayed in Excel:
+The following code snippet demonstrates the usage of the [`GetText`](mcp:get_api_reference?platform=blazor&component=WorksheetCell&member=getText) method to get the text as it would be displayed in Excel:
+
+```ts
+var workbook = new Workbook();
+var worksheet = this.workbook.worksheets().add("Sheet1");
+
+var cellText = worksheet.rows(0).cells(0).getText();
+```
```razor
var workbook = new Workbook();
@@ -661,21 +757,17 @@ var cellText = worksheet.Rows[0].Cells[0].GetText();
```
## API References
-
-- `Add`
-- `CellFillLinearGradient`
-- `CellFillPattern`
-- `CellFillRectangularGradient`
-- `CellFill`
-- `CellFormat`
-- `DisplayOptions`'
-- `Formula`
-- `MergedCellsRegions`
-- `WorkbookColorInfo`
-- `WorkbookStyle`
-- `Workbook`
-- `WorksheetCell`
-- `WorksheetColumn`
-- `WorksheetRegion`
-- `WorksheetRow`
-- `Worksheet`
+[`IgbCellFillLinearGradient`](mcp:get_api_reference?platform=blazor&component=CellFillLinearGradient)
+[`IgbCellFillPattern`](mcp:get_api_reference?platform=blazor&component=CellFillPattern)
+[`IgbCellFillRectangularGradient`](mcp:get_api_reference?platform=blazor&component=CellFillRectangularGradient)
+[`IgbCellFill`](mcp:get_api_reference?platform=blazor&component=CellFill)
+[`IgbIWorksheetCellFormat`](mcp:get_api_reference?platform=blazor&component=IWorksheetCellFormat)
+[`IgbFormula`](mcp:get_api_reference?platform=blazor&component=Formula)
+[`IgbWorkbookColorInfo`](mcp:get_api_reference?platform=blazor&component=WorkbookColorInfo)
+[`IgbWorkbookStyle`](mcp:get_api_reference?platform=blazor&component=WorkbookStyle)
+[`IgbWorkbook`](mcp:get_api_reference?platform=blazor&component=Workbook)
+[`IgbWorksheetCell`](mcp:get_api_reference?platform=blazor&component=WorksheetCell)
+[`IgbWorksheetColumn`](mcp:get_api_reference?platform=blazor&component=WorksheetColumn)
+[`IgbWorksheetRegion`](mcp:get_api_reference?platform=blazor&component=WorksheetRegion)
+[`IgbWorksheetRow`](mcp:get_api_reference?platform=blazor&component=WorksheetRow)
+[`IgbWorksheet`](mcp:get_api_reference?platform=blazor&component=Worksheet)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/excel-library-using-tables.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/excel-library-using-tables.md
index 49b25b11b..04bbd1f34 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/excel-library-using-tables.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/excel-library-using-tables.md
@@ -1,30 +1,29 @@
---
-title: Blazor Excel Library| Using Tables | Infragistics
-_description: Use Infragistics' Blazor excel library's table functionality to format your data in rows and columns. View Ignite UI for Blazor excel tutorials for more information!
-_keywords: Excel library, tables, Ignite UI for Blazor, Infragistics
-_license: commercial
+title: "Blazor Excel Library| Using Tables | Infragistics"
+description: Use Infragistics' Blazor excel library's table functionality to format your data in rows and columns. View Ignite UI for Blazor excel tutorials for more information!
+keywords: Excel library, tables, Ignite UI for Blazor, Infragistics
+license: commercial
mentionedTypes: ["Workbook", "WorksheetTable", "Worksheet", "SortSettings"]
+llms:
+ description: "The Infragistics Blazor Excel Engine's WorksheetTable functionality allows you to format your data in rows and columns The data in a worksheet table can be managed independently from the data in the other rows and columns in a Worksheet."
_tocName: Using Tables
_premium: true
---
-
# Blazor Using Tables
-The Infragistics Blazor Excel Engine's `WorksheetTable` functionality allows you to format your data in rows and columns The data in a worksheet table can be managed independently from the data in the other rows and columns in a `Worksheet`.
-
-
-
-
+The Infragistics Blazor Excel Engine's [`IgbWorksheetTable`](mcp:get_api_reference?platform=blazor&component=WorksheetTable) functionality allows you to format your data in rows and columns The data in a worksheet table can be managed independently from the data in the other rows and columns in a [`IgbWorksheet`](mcp:get_api_reference?platform=blazor&component=Worksheet).
## Adding a Table to a Worksheet
+Worksheet tables in the Infragistics Blazor Excel Engine are represented by the [`IgbWorksheetTable`](mcp:get_api_reference?platform=blazor&component=WorksheetTable) object and are added in the worksheet's [`Tables`](mcp:get_api_reference?platform=blazor&component=Worksheet&member=tables) collection. In order to add a table, you need to invoke the `Add` method on this collection. In this method, you can specify the region in which you would like to add a table, whether or not the table should contain headers, and optionally, specify the table's style as a [`IgbWorksheetTableStyle`](mcp:get_api_reference?platform=blazor&component=WorksheetTableStyle) object.
+
+The following code demonstrates how you can add a table with headers to a [`IgbWorksheet`](mcp:get_api_reference?platform=blazor&component=Worksheet) spanning a region of A1 to G10, where A1 to G1 will be the column headers:
-Worksheet tables in the Infragistics Blazor Excel Engine are represented by the `WorksheetTable` object and are added in the worksheet's `Tables` collection. In order to add a table, you need to invoke the `Add` method on this collection. In this method, you can specify the region in which you would like to add a table, whether or not the table should contain headers, and optionally, specify the table's style as a `WorksheetTableStyle` object.
+```ts
+var workbook = new Workbook(WorkbookFormat.Excel2007);
+var worksheet = this.workbook.worksheets().add("Sheet1");
-The following code demonstrates how you can add a table with headers to a `Worksheet` spanning a region of A1 to G10, where A1 to G1 will be the column headers:
+worksheet.tables().add("A1:G10", true);
+```
```razor
var workbook = new Workbook(WorkbookFormat.Excel2007);
@@ -33,10 +32,31 @@ var worksheet = workbook.Worksheets.Add("Sheet1");
worksheet.Tables.Add("A1:G10", true);
```
-Once you have added a table, you can modify it by adding or deleting rows and columns by calling the `InsertColumns`, `InsertDataRows`, `DeleteColumns`, or `DeleteDataRows` methods on the `WorksheetTable`. You can also set a new table range by using the `Resize` method of the table.
+Once you have added a table, you can modify it by adding or deleting rows and columns by calling the [`InsertColumns`](mcp:get_api_reference?platform=blazor&component=WorksheetTable&member=insertColumns), [`InsertDataRows`](mcp:get_api_reference?platform=blazor&component=WorksheetTable&member=insertDataRows), [`DeleteColumns`](mcp:get_api_reference?platform=blazor&component=WorksheetTable&member=deleteColumns), or [`DeleteDataRows`](mcp:get_api_reference?platform=blazor&component=WorksheetTable&member=deleteDataRows) methods on the [`IgbWorksheetTable`](mcp:get_api_reference?platform=blazor&component=WorksheetTable). You can also set a new table range by using the [`Resize`](mcp:get_api_reference?platform=blazor&component=WorksheetTable&member=resize) method of the table.
The following code snippet shows the usage of these methods:
+```ts
+var workbook = new Workbook(WorkbookFormat.Excel2007);
+var worksheet = workbook.worksheets().add("Sheet1");
+var table = worksheet.tables().add("A1:G10", true);
+
+//Will add 5 columns at index 1.
+table.insertColumns(1, 5);
+
+//Will add 5 rows at index 0.
+table.insertDataRows(0, 5);
+
+//Will delete 5 columns starting at index 1.
+table.deleteColumns(1, 5);
+
+//Will delete 5 rows starting at index 0.
+table.deleteDataRows(0, 5);
+
+//Will resize the table to be in the region of A1:G15.
+table.resize("A1:G15");
+```
+
```razor
var workbook = new Workbook(WorkbookFormat.Excel2007);
var worksheet = workbook.Worksheets.Add("Sheet1");
@@ -59,24 +79,31 @@ table.Resize("A1:G15");
```
## Filtering Tables
+Filtering is done by applying a filter on a column in the [`IgbWorksheetTable`](mcp:get_api_reference?platform=blazor&component=WorksheetTable). When the filter is applied on a column, all filters in the table will be reevaluated to determine which rows meet the criteria of all filters applied.
+
+If the data in the table is subsequently changed or you change the `Hidden` property of the rows, the filter conditions will not automatically reevaluate. The filter conditions in a table are only reapplied when table column filters are added, removed, modified, or when the [`ReapplyFilters`](mcp:get_api_reference?platform=blazor&component=WorksheetTable&member=reapplyFilters) method is called on the table.
-Filtering is done by applying a filter on a column in the `WorksheetTable`. When the filter is applied on a column, all filters in the table will be reevaluated to determine which rows meet the criteria of all filters applied.
+The following are the filter types available to the columns of your [`IgbWorksheetTable`](mcp:get_api_reference?platform=blazor&component=WorksheetTable):
-If the data in the table is subsequently changed or you change the `Hidden` property of the rows, the filter conditions will not automatically reevaluate. The filter conditions in a table are only reapplied when table column filters are added, removed, modified, or when the `ReapplyFilters` method is called on the table.
+- [`IgbAverageFilter`](mcp:get_api_reference?platform=blazor&component=AverageFilter) - Cells can be filtered based on whether they are above or below the average value of all cells in the column.
+- [`IgbCustomFilter`](mcp:get_api_reference?platform=blazor&component=CustomFilter) - Cells can be filtered based on one or more custom conditions.
+- [`IgbDatePeriodFilter`](mcp:get_api_reference?platform=blazor&component=DatePeriodFilter) - Only cells with dates in a specific month or quarter of any year will be displayed.
+- [`IgbFillFilter`](mcp:get_api_reference?platform=blazor&component=FillFilter) - Only cells with a specific fill will be displayed.
+- [`IgbFixedValuesFilter`](mcp:get_api_reference?platform=blazor&component=FixedValuesFilter) - Cells which only match specific display values or which fall within a specific group of dates/times will be displayed.
+- [`IgbFontColorFilter`](mcp:get_api_reference?platform=blazor&component=FontColorFilter) - Only cells with a specific font color will be displayed.
+- [`IgbRelativeDateRangeFilter`](mcp:get_api_reference?platform=blazor&component=RelativeDateRangeFilter) - Cells with date values can be filtered based on whether they occur within a relative time range of the date when the filter was applied, such as the next day or previous quarter.
+- [`IgbTopOrBottomFilter`](mcp:get_api_reference?platform=blazor&component=TopOrBottomFilter) - This filter allows for filtering the top or bottom N values. It also allows filtering the top or bottom N% values.
+- [`IgbYearToDateFilter`](mcp:get_api_reference?platform=blazor&component=YearToDateFilter) - Cells with date values can be filtered if they occur between the start of the year and the date on which the filter was applied.
-The following are the filter types available to the columns of your `WorksheetTable`:
+The following code snippet demonstrates how to apply an "above average" filter to a [`IgbWorksheetTable`](mcp:get_api_reference?platform=blazor&component=WorksheetTable)'s first column:
-- `AverageFilter` - Cells can be filtered based on whether they are above or below the average value of all cells in the column.
-- `CustomFilter` - Cells can be filtered based on one or more custom conditions.
-- `DatePeriodFilter` - Only cells with dates in a specific month or quarter of any year will be displayed.
-- `FillFilter` - Only cells with a specific fill will be displayed.
-- `FixedValuesFilter` - Cells which only match specific display values or which fall within a specific group of dates/times will be displayed.
-- `FontColorFilter` - Only cells with a specific font color will be displayed.
-- `RelativeDateRangeFilter` - Cells with date values can be filtered based on whether they occur within a relative time range of the date when the filter was applied, such as the next day or previous quarter.
-- `TopOrBottomFilter` - This filter allows for filtering the top or bottom N values. It also allows filtering the top or bottom N% values.
-- `YearToDateFilter` - Cells with date values can be filtered if they occur between the start of the year and the date on which the filter was applied.
+```ts
+var workbook = new Workbook(WorkbookFormat.Excel2007);
+var worksheet = workbook.worksheets().add("Sheet1");
+var table = worksheet.tables().add("A1:G10", true);
-The following code snippet demonstrates how to apply an "above average" filter to a `WorksheetTable`'s first column:
+table.columns(0).applyAverageFilter(AverageFilterType.AboveAverage);
+```
```razor
var workbook = new Workbook(WorkbookFormat.Excel2007);
@@ -87,23 +114,33 @@ table.Columns[0].ApplyAverageFilter(Documents.Excel.Filtering.AverageFilterType.
```
## Sorting Tables
-
Sorting is done by setting a sorting condition on a table column. When a sorting condition is set on a column, all sorting conditions in the table will be reevaluated to determine the order of the cells in the table. When cells need to be moved to meet their sort criteria, the entire row of cells in the table is moved as a unit.
-If the data in the table is subsequently changed, the sort conditions do not automatically reevaluate. The sort conditions in a table are only reapplied when sort conditions are added, removed, modified, or when the `ReapplySortConditions` method is called on the table. When sorting conditions are reevaluated, only the visible cells are sorted. All cells in hidden rows are kept in place.
+If the data in the table is subsequently changed, the sort conditions do not automatically reevaluate. The sort conditions in a table are only reapplied when sort conditions are added, removed, modified, or when the [`ReapplySortConditions`](mcp:get_api_reference?platform=blazor&component=WorksheetTable&member=reapplySortConditions) method is called on the table. When sorting conditions are reevaluated, only the visible cells are sorted. All cells in hidden rows are kept in place.
-In addition to accessing sort conditions from the table columns, they are also exposed off the `WorksheetTable`'s `SortSettings` property's `SortConditions` collection. This is an ordered collection of columns/sort condition pairs. The order of this collection is the precedence of the sorting.
+In addition to accessing sort conditions from the table columns, they are also exposed off the [`IgbWorksheetTable`](mcp:get_api_reference?platform=blazor&component=WorksheetTable)'s SortSettings property's `SortConditions` collection. This is an ordered collection of columns/sort condition pairs. The order of this collection is the precedence of the sorting.
The following sort condition types are available to set on columns:
-- `OrderedSortCondition` - Sort cells in an ascending or descending order based on their value.
-- `CustomListSortCondition` - Sort cells in a defined order based on their text or display value. For example, this might be useful for sorting days as they appear on a calendar, rather than alphabetically.
-- `FillSortCondition` - Sort cells based on whether their fill is a specific pattern or gradient.
-- `FontColorSortCondition` - Sort cells based on whether their font is a specific color.
+- [`IgbOrderedSortCondition`](mcp:get_api_reference?platform=blazor&component=OrderedSortCondition) - Sort cells in an ascending or descending order based on their value.
+- [`IgbCustomListSortCondition`](mcp:get_api_reference?platform=blazor&component=CustomListSortCondition) - Sort cells in a defined order based on their text or display value. For example, this might be useful for sorting days as they appear on a calendar, rather than alphabetically.
+- [`IgbFillSortCondition`](mcp:get_api_reference?platform=blazor&component=FillSortCondition) - Sort cells based on whether their fill is a specific pattern or gradient.
+- [`IgbFontColorSortCondition`](mcp:get_api_reference?platform=blazor&component=FontColorSortCondition) - Sort cells based on whether their font is a specific color.
+
+There is also a `CaseSensitive` property on the SortSettings of the [`IgbWorksheetTable`](mcp:get_api_reference?platform=blazor&component=WorksheetTable) to determine whether strings should be sorted case sensitively or not.
-There is also a `CaseSensitive` property on the `SortSettings` of the `WorksheetTable` to determine whether strings should be sorted case sensitively or not.
+The following code snippet demonstrates how to apply an [`IgbOrderedSortCondition`](mcp:get_api_reference?platform=blazor&component=OrderedSortCondition) to a [`IgbWorksheetTable`](mcp:get_api_reference?platform=blazor&component=WorksheetTable):
+
+```ts
+var workbook = new Workbook(WorkbookFormat.Excel2007);
+var worksheet = this.workbook.worksheets().add("Sheet1");
+var table = worksheet.tables().add("A1:G10", true);
-The following code snippet demonstrates how to apply an `OrderedSortCondition` to a `WorksheetTable`:
+table.columns(0).sortCondition = new OrderedSortCondition(SortDirection.Ascending);
+
+//Alternative:
+table.sortSettings.sortConditions().addItem(table.columns(0), new OrderedSortCondition(SortDirection.Ascending));
+```
```razor
var workbook = new Workbook(WorkbookFormat.Excel2007);
@@ -117,14 +154,5 @@ table.SortSettings.SortConditions.Add(table.Columns[0], new Infragistics.Documen
```
## API References
-
-- `DeleteColumns`
-- `DeleteDataRows`
-- `FillFilter`
-- `InsertColumns`
-- `InsertDataRows`
-- `SortConditions`
-- `SortSettings`
-- `Tables`
-- `WorksheetTableStyle`
-- `WorksheetTable`
+[`IgbWorksheetTableStyle`](mcp:get_api_reference?platform=blazor&component=WorksheetTableStyle)
+[`IgbWorksheetTable`](mcp:get_api_reference?platform=blazor&component=WorksheetTable)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/excel-library-using-workbooks.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/excel-library-using-workbooks.md
index 746fddfb3..e8f92a48c 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/excel-library-using-workbooks.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/excel-library-using-workbooks.md
@@ -1,13 +1,14 @@
---
-title: Blazor Excel Library| Using Workbooks| Infragistics
-_description: Use Infragistics' Blazor excel library to create workbooks and worksheets, input data and export the date to Microsoft® Excel. View Ignite UI for Blazor excel tutorials for more information!
-_keywords: Excel library, workbooks, Ignite UI for Blazor, Infragistics
-_license: commercial
+title: "Blazor Excel Library| Using Workbooks| Infragistics"
+description: Use Infragistics' Blazor excel library to create workbooks and worksheets, input data and export the date to Microsoft® Excel. View Ignite UI for Blazor excel tutorials for more information!
+keywords: Excel library, workbooks, Ignite UI for Blazor, Infragistics
+license: commercial
mentionedTypes: ["Workbook"]
+llms:
+ description: "The Infragistics Blazor Excel Engine enables you to save data to and load data from Microsoft® Excel®."
_tocName: Using Workbooks
_premium: true
---
-
# Blazor Using Workbooks
The Infragistics Blazor Excel Engine enables you to save data to and load data from Microsoft® Excel®. You can create workbooks and worksheets, input data, and export the data to Excel using the library’s various classes. The Infragistics Blazor Excel Engine makes it easy to export the data in your application as an Excel spreadsheet as well as import data from Excel into your application.
@@ -385,11 +386,17 @@ namespace Infragistics.Samples
}
```
-
-
## Change Default Font
-First create a new instance of `IWorkbookFont`. Next, add the new font to the `Styles` collection of the `Workbook`. This style contains the default properties for all cells in the workbook, unless otherwise specified on a row, column, or cell. Changing properties of the style will change the default cell format properties in the workbook.
+First create a new instance of [`IgbIWorkbookFont`](mcp:get_api_reference?platform=blazor&component=IWorkbookFont). Next, add the new font to the [`Styles`](mcp:get_api_reference?platform=blazor&component=Workbook&member=styles) collection of the [`IgbWorkbook`](mcp:get_api_reference?platform=blazor&component=Workbook). This style contains the default properties for all cells in the workbook, unless otherwise specified on a row, column, or cell. Changing properties of the style will change the default cell format properties in the workbook.
+
+```ts
+var workbook = new Workbook();
+var font: IWorkbookFont;
+font = workbook.styles().normalStyle.styleFormat.font;
+font.name = "Times New Roman";
+font.height = 16 * 20;
+```
```razor
var workbook = new Workbook();
@@ -400,28 +407,34 @@ font.Height = 16 * 20;
## Setting Workbook Properties
-Microsoft Excel® document properties provide information to help organize and keep track of your documents. You can use the Infragistics Blazor Excel Library to set these properties using the `Workbook` object’s `DocumentProperties` property. The available properties are:
+Microsoft Excel® document properties provide information to help organize and keep track of your documents. You can use the Infragistics Blazor Excel Library to set these properties using the [`IgbWorkbook`](mcp:get_api_reference?platform=blazor&component=Workbook) object’s [`DocumentProperties`](mcp:get_api_reference?platform=blazor&component=Workbook&member=documentProperties) property. The available properties are:
-- `Author`
+- [`Author`](mcp:get_api_reference?platform=blazor&component=DocumentProperties&member=author)
-- `Title`
+- [`Title`](mcp:get_api_reference?platform=blazor&component=DocumentProperties&member=title)
-- `Subject`
+- [`Subject`](mcp:get_api_reference?platform=blazor&component=DocumentProperties&member=subject)
-- `Keywords`
+- [`Keywords`](mcp:get_api_reference?platform=blazor&component=DocumentProperties&member=keywords)
-- `Category`
+- [`Category`](mcp:get_api_reference?platform=blazor&component=DocumentProperties&member=category)
-- `Status`
+- [`Status`](mcp:get_api_reference?platform=blazor&component=DocumentProperties&member=status)
-- `Comments`
+- [`Comments`](mcp:get_api_reference?platform=blazor&component=DocumentProperties&member=comments)
-- `Company`
+- [`Company`](mcp:get_api_reference?platform=blazor&component=DocumentProperties&member=company)
-- `Manager`
+- [`Manager`](mcp:get_api_reference?platform=blazor&component=DocumentProperties&member=manager)
The following code demonstrates how to create a workbook and set its `title` and `status` document properties.
+```ts
+var workbook = new Workbook();
+workbook.documentProperties.title = "Expense Report";
+workbook.documentProperties.status = "Complete";
+```
+
```razor
var workbook = new Workbook();
workbook.DocumentProperties.Title = "Expense Report";
@@ -436,11 +449,16 @@ The protection is not enforced via the Infragistics Excel Engine's object model.
Protection is applied to a workbook by invoking its `protect` method.
-When a `Workbook` is protected without a password, the end user may unprotect the `Workbook` in Excel without having to supply a password. To programmatically unprotect a `Workbook`, one may use the `unprotect` method.
+When a [`IgbWorkbook`](mcp:get_api_reference?platform=blazor&component=Workbook) is protected without a password, the end user may unprotect the [`IgbWorkbook`](mcp:get_api_reference?platform=blazor&component=Workbook) in Excel without having to supply a password. To programmatically unprotect a [`IgbWorkbook`](mcp:get_api_reference?platform=blazor&component=Workbook), one may use the `unprotect` method.
+
+When a [`IgbWorkbook`](mcp:get_api_reference?platform=blazor&component=Workbook) is protected, the values of the properties of the [`IgbWorkbookProtection`](mcp:get_api_reference?platform=blazor&component=WorkbookProtection) instance from this [`IgbWorkbook`](mcp:get_api_reference?platform=blazor&component=Workbook)'s `protection` property indicate the disabled operations.
-When a `Workbook` is protected, the values of the properties of the `WorkbookProtection` instance from this `Workbook`'s `protection` property indicate the disabled operations.
+If [`IsProtected`](mcp:get_api_reference?platform=blazor&component=Workbook&member=isProtected) is already true, the `protect` method will be ignored.
-If `IsProtected` is already true, the `protect` method will be ignored.
+```ts
+var workbook = new Workbook();
+workbook.protect(false, false);
+```
```razor
var workbook = new Workbook();
@@ -449,6 +467,11 @@ workbook.Protect(false, false);
Check if a workbook has protection. This read-only property returns true if the workbook has any protection set using the overloads of the Protect method.
+```ts
+var workbook = new Workbook();
+var protect = workbook.isProtected;
+```
+
```razor
var workbook = new Workbook();
var protect = workbook.IsProtected;
@@ -456,14 +479,17 @@ var protect = workbook.IsProtected;
This read-only property returns an object of type WorkbookProtection which contains properties for obtaining each protection setting individually.
+```ts
+var workbook = new Workbook();
+var protection = workbook.protection;
+```
+
```razor
var workbook = new Workbook();
var protect = workbook.Protection;
```
## API References
-
-- `DocumentProperties`
-- `WorkbookProtection`
-- `Workbook`
-- `Workbook`
+[`IgbDocumentProperties`](mcp:get_api_reference?platform=blazor&component=DocumentProperties)
+[`IgbWorkbookProtection`](mcp:get_api_reference?platform=blazor&component=WorkbookProtection)
+[`IgbWorkbook`](mcp:get_api_reference?platform=blazor&component=Workbook)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/excel-library-using-worksheets.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/excel-library-using-worksheets.md
index c241838fa..051abc96d 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/excel-library-using-worksheets.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/excel-library-using-worksheets.md
@@ -1,16 +1,17 @@
---
-title: Blazor Excel Library| Using Worksheets | Infragistics
-_description: Use Infragistics' Blazor excel library to input data by working with the worksheet's row and cells and setting their corresponding values. Easily transfer data from Ignite UI for Blazor excel to your application!
-_keywords: Excel library, worksheet, Ignite UI for Blazor, Infragistics
-_license: commercial
+title: "Blazor Excel Library| Using Worksheets | Infragistics"
+description: Use Infragistics' Blazor excel library to input data by working with the worksheet's row and cells and setting their corresponding values. Easily transfer data from Ignite UI for Blazor excel to your application!
+keywords: Excel library, worksheet, Ignite UI for Blazor, Infragistics
+license: commercial
mentionedTypes: ["Workbook", "Worksheet", "WorksheetCell", "DisplayOptions", "WorksheetFilterSettings", "IWorksheetCellFormat"]
+llms:
+ description: "The Infragistics Blazor Excel Engine's Worksheet is where your data is kept."
_tocName: Using Worksheets
_premium: true
---
-
# Blazor Using Worksheets
-The Infragistics Blazor Excel Engine's `Worksheet` is where your data is kept. You can input data by working with the Worksheet's rows and cells and setting their corresponding values. The `Worksheet` allows you to filter, sort, and customize the formats of the cells, as shown below.
+The Infragistics Blazor Excel Engine's [`IgbWorksheet`](mcp:get_api_reference?platform=blazor&component=Worksheet) is where your data is kept. You can input data by working with the Worksheet's rows and cells and setting their corresponding values. The [`IgbWorksheet`](mcp:get_api_reference?platform=blazor&component=Worksheet) allows you to filter, sort, and customize the formats of the cells, as shown below.
## Blazor Using Worksheets Example
@@ -337,13 +338,17 @@ namespace Infragistics.Samples
}
```
-
-
## Configuring the Gridlines
-
The gridlines are used to visually separate the cells in the worksheet. You may show or hide the gridlines and also change their color.
-You can show or hide the gridlines using the `ShowGridlines` property of the `DisplayOptions` of the worksheet. The following code demonstrates how you can hide the gridlines in your worksheet:
+You can show or hide the gridlines using the [`ShowGridlines`](mcp:get_api_reference?platform=blazor&component=DisplayOptions&member=showGridlines) property of the [`IgbDisplayOptions`](mcp:get_api_reference?platform=blazor&component=DisplayOptions) of the worksheet. The following code demonstrates how you can hide the gridlines in your worksheet:
+
+```ts
+var workbook = new Workbook(WorkbookFormat.Excel2007);
+var worksheet = workbook.worksheets().add("Sheet1");
+
+worksheet.displayOptions.showGridlines = false;
+```
```razor
var workbook = new Workbook();
@@ -352,7 +357,14 @@ var worksheet = workbook.Sheets.Add("Sheet1", SheetType.Worksheet) as Worksheet;
worksheet.DisplayOptions.ShowGridlines = false;
```
-You can configure the gridlines' color using the `GridlineColor` property of the `DisplayOptions` of the worksheet. The following code demonstrates how you can change the gridlines in your worksheet to be red:
+You can configure the gridlines' color using the [`GridlineColor`](mcp:get_api_reference?platform=blazor&component=DisplayOptions&member=gridlineColor) property of the [`IgbDisplayOptions`](mcp:get_api_reference?platform=blazor&component=DisplayOptions) of the worksheet. The following code demonstrates how you can change the gridlines in your worksheet to be red:
+
+```ts
+var workbook = new Workbook(WorkbookFormat.Excel2007);
+var worksheet = workbook.worksheets().add("Sheet1");
+
+worksheet.displayOptions.gridlineColor = "Red";
+```
```razor
var workbook = new Workbook();
@@ -362,10 +374,16 @@ worksheet.DisplayOptions.GridlineColor = Core.Graphics.Colors.Red;
```
## Configuring the Headers
-
The column and row headers are used to visually identify columns and rows. They are also used to visually highlight the currently selected cell or cell region.
-You can show or hide the column and row headers using the `ShowRowAndColumnHeaders` property of the `DisplayOptions` of the worksheet. The following code demonstrates how you can hide the row and column headers:
+You can show or hide the column and row headers using the [`ShowRowAndColumnHeaders`](mcp:get_api_reference?platform=blazor&component=DisplayOptions&member=showRowAndColumnHeaders) property of the [`IgbDisplayOptions`](mcp:get_api_reference?platform=blazor&component=DisplayOptions) of the worksheet. The following code demonstrates how you can hide the row and column headers:
+
+```ts
+var workbook = new Workbook(WorkbookFormat.Excel2007);
+var worksheet = workbook.worksheets().add("Sheet1");
+
+worksheet.displayOptions.showRowAndColumnHeaders = false;
+```
```razor
var workbook = new Workbook();
@@ -375,11 +393,17 @@ worksheet.DisplayOptions.ShowRowAndColumnHeaders = false;
```
## Configuring Editing of the Worksheet
-
-By default, the `Worksheet` objects that you save will be editable. You can disable editing of a worksheet by protecting it using the `Worksheet` object's `Protect` method. This method has a lot of nullable `bool` arguments that determine which pieces are protected, and one of these options is to allow editing of objects, which if set to **false** will prevent editing of the worksheet.
+By default, the [`IgbWorksheet`](mcp:get_api_reference?platform=blazor&component=Worksheet) objects that you save will be editable. You can disable editing of a worksheet by protecting it using the [`IgbWorksheet`](mcp:get_api_reference?platform=blazor&component=Worksheet) object's [`Protect`](mcp:get_api_reference?platform=blazor&component=Workbook&member=protect) method. This method has a lot of nullable `bool` arguments that determine which pieces are protected, and one of these options is to allow editing of objects, which if set to **false** will prevent editing of the worksheet.
The following code demonstrates how to disable editing in your worksheet:
+```ts
+var workbook = new Workbook(WorkbookFormat.Excel2007);
+var worksheet = workbook.worksheets().add("Sheet1");
+
+worksheet.protect();
+```
+
```razor
var workbook = new Workbook();
var worksheet = workbook.Sheets.Add("Sheet1", SheetType.Worksheet) as Worksheet;
@@ -387,12 +411,20 @@ var worksheet = workbook.Sheets.Add("Sheet1", SheetType.Worksheet) as Worksheet;
worksheet.Protect();
```
-You can also use the `Worksheet` object's `Protect` method to protect a worksheet against structural changes.
+You can also use the [`IgbWorksheet`](mcp:get_api_reference?platform=blazor&component=Worksheet) object's [`Protect`](mcp:get_api_reference?platform=blazor&component=Workbook&member=protect) method to protect a worksheet against structural changes.
-When protection is set, you can set the `CellFormat` object's `Locked` property on individual cells, rows, merged cell regions, or columns to override the worksheet object's protection on those objects. For example, if you need all cells of a worksheet to be read-only except for the cells of one column, you can protect the worksheet and then set the `CellFormat` object's `Locked` property to **false** on a specific `WorksheetColumn` object. This will allow your users to edit cells within the column while disabling editing of the other cells in the worksheet.
+When protection is set, you can set the [`IgbIWorksheetCellFormat`](mcp:get_api_reference?platform=blazor&component=IWorksheetCellFormat) object's [`Locked`](mcp:get_api_reference?platform=blazor&component=IWorksheetCellFormat&member=locked) property on individual cells, rows, merged cell regions, or columns to override the worksheet object's protection on those objects. For example, if you need all cells of a worksheet to be read-only except for the cells of one column, you can protect the worksheet and then set the [`IgbIWorksheetCellFormat`](mcp:get_api_reference?platform=blazor&component=IWorksheetCellFormat) object's [`Locked`](mcp:get_api_reference?platform=blazor&component=IWorksheetCellFormat&member=locked) property to **false** on a specific [`IgbWorksheetColumn`](mcp:get_api_reference?platform=blazor&component=WorksheetColumn) object. This will allow your users to edit cells within the column while disabling editing of the other cells in the worksheet.
The following code demonstrates how you can do this:
+```ts
+var workbook = new Workbook(WorkbookFormat.Excel2007);
+var worksheet = workbook.worksheets().add("Sheet1");
+
+worksheet.protect();
+worksheet.columns(0).cellFormat.locked = false;
+```
+
```razor
var workbook = new Workbook();
var worksheet = workbook.Sheets.Add("Sheet1", SheetType.Worksheet) as Worksheet;
@@ -402,28 +434,35 @@ worksheet.Columns[0].CellFormat.Locked = ExcelDefaultableBoolean.False;
```
## Filtering Worksheet Regions
+Filtering is done by setting a filter condition on a worksheet's [`IgbWorksheetFilterSettings`](mcp:get_api_reference?platform=blazor&component=WorksheetFilterSettings) which can be retrieved from the [`IgbWorksheet`](mcp:get_api_reference?platform=blazor&component=Worksheet) object's [`FilterSettings`](mcp:get_api_reference?platform=blazor&component=Worksheet&member=filterSettings) property. Filter conditions are only reapplied when they're added, removed, modified, or when the [`ReapplyFilters`](mcp:get_api_reference?platform=blazor&component=WorksheetFilterSettings&member=reapplyFilters) method is called on the worksheet. They are not constantly evaluated as data within the region changes.
-Filtering is done by setting a filter condition on a worksheet's `WorksheetFilterSettings` which can be retrieved from the `Worksheet` object's `FilterSettings` property. Filter conditions are only reapplied when they're added, removed, modified, or when the `ReapplyFilters` method is called on the worksheet. They are not constantly evaluated as data within the region changes.
-
-You can specify the region to apply the filter by using the `SetRegion` method on the `WorksheetFilterSettings` object.
+You can specify the region to apply the filter by using the [`SetRegion`](mcp:get_api_reference?platform=blazor&component=WorksheetFilterSettings&member=setRegion) method on the [`IgbWorksheetFilterSettings`](mcp:get_api_reference?platform=blazor&component=WorksheetFilterSettings) object.
Below is a list of methods and their descriptions that you can use to add a filter to a worksheet:
| Method | Description |
| --------------|-------------|
-|`ApplyAverageFilter`|Represents a filter which can filter data based on whether the data is below or above the average of the entire data range.|
-|`ApplyDatePeriodFilter`|Represents a filter which can filter dates in a Month, or quarter of any year.|
-|`ApplyFillFilter`|Represents a filter which will filter cells based on their background fills. This filter specifies a single CellFill. Cells of with this fill will be visible in the data range. All other cells will be hidden.|
+|[`ApplyAverageFilter`](mcp:get_api_reference?platform=blazor&component=WorksheetFilterSettings&member=applyAverageFilter)|Represents a filter which can filter data based on whether the data is below or above the average of the entire data range.|
+|[`ApplyDatePeriodFilter`](mcp:get_api_reference?platform=blazor&component=WorksheetFilterSettings&member=applyDatePeriodFilter)|Represents a filter which can filter dates in a Month, or quarter of any year.|
+|[`ApplyFillFilter`](mcp:get_api_reference?platform=blazor&component=WorksheetFilterSettings&member=applyFillFilter)|Represents a filter which will filter cells based on their background fills. This filter specifies a single CellFill. Cells of with this fill will be visible in the data range. All other cells will be hidden.|
|`ApplyFixedValuesFilter`|Represents a filter which can filter cells based on specific, fixed values, which are allowed to display.|
-|`ApplyFontColorFilter`|Represents a filter which will filter cells based on their font colors. This filter specifies a single color. Cells with this color font will be visible in the data range. All other cells will be hidden.|
-|`ApplyIconFilter`|Represents a filter which can filter cells based on their conditional formatting icon.|
-|`ApplyRelativeDateRangeFilter`|Represents a filter which can filter date cells based on dates relative to the when the filter was applied.|
-|`ApplyTopOrBottomFilter`|Represents a filter which can filter in cells in the upper or lower portion of the sorted values.|
-|`ApplyYearToDateFilter`|Represents a filter which can filter in date cells if the dates occur between the start of the current year and the time when the filter is evaluated.|
-|`ApplyCustomFilter`|Represents a filter which can filter data based on one or two custom conditions. These two filter conditions can be combined with a logical "and" or a logical "or" operation.|
+|[`ApplyFontColorFilter`](mcp:get_api_reference?platform=blazor&component=WorksheetFilterSettings&member=applyFontColorFilter)|Represents a filter which will filter cells based on their font colors. This filter specifies a single color. Cells with this color font will be visible in the data range. All other cells will be hidden.|
+|[`ApplyIconFilter`](mcp:get_api_reference?platform=blazor&component=WorksheetFilterSettings&member=applyIconFilter)|Represents a filter which can filter cells based on their conditional formatting icon.|
+|[`ApplyRelativeDateRangeFilter`](mcp:get_api_reference?platform=blazor&component=WorksheetFilterSettings&member=applyRelativeDateRangeFilter)|Represents a filter which can filter date cells based on dates relative to the when the filter was applied.|
+|[`ApplyTopOrBottomFilter`](mcp:get_api_reference?platform=blazor&component=WorksheetFilterSettings&member=applyTopOrBottomFilter)|Represents a filter which can filter in cells in the upper or lower portion of the sorted values.|
+|[`ApplyYearToDateFilter`](mcp:get_api_reference?platform=blazor&component=WorksheetFilterSettings&member=applyYearToDateFilter)|Represents a filter which can filter in date cells if the dates occur between the start of the current year and the time when the filter is evaluated.|
+|[`ApplyCustomFilter`](mcp:get_api_reference?platform=blazor&component=WorksheetFilterSettings&member=applyCustomFilter)|Represents a filter which can filter data based on one or two custom conditions. These two filter conditions can be combined with a logical "and" or a logical "or" operation.|
You can use the following code snippet as an example to add a filter to a worksheet region:
+```ts
+var workbook = new Workbook(WorkbookFormat.Excel2007);
+var worksheet = workbook.worksheets().add("Sheet1");
+
+worksheet.filterSettings.setRegion("Sheet1!A1:A10");
+worksheet.filterSettings.applyAverageFilter(0, AverageFilterType.AboveAverage);
+```
+
```razor
var workbook = new Workbook();
var worksheet = workbook.Sheets.Add("Sheet1", SheetType.Worksheet) as Worksheet;
@@ -433,15 +472,27 @@ worksheet.FilterSettings.ApplyAverageFilter(0, Documents.Excel.Filtering.Average
```
## Freezing and Splitting Panes
-
You can freeze rows at the top of your worksheet or columns at the left using the freezing panes features. Frozen rows and columns remain visible at all times while the user is scrolling. The frozen rows and columns are separated from the rest of the worksheet by a single, solid line, which cannot be removed.
-In order to enable pane freezing, you need to set the `PanesAreFrozen` property of the `Worksheet` object's `DisplayOptions` to **true**. You can then specify the rows or columns to freeze by using the `FrozenRows` and `FrozenColumns` properties of the display options `FrozenPaneSettings`, respectively.
+In order to enable pane freezing, you need to set the [`PanesAreFrozen`](mcp:get_api_reference?platform=blazor&component=DisplayOptions&member=panesAreFrozen) property of the [`IgbWorksheet`](mcp:get_api_reference?platform=blazor&component=Worksheet) object's [`IgbDisplayOptions`](mcp:get_api_reference?platform=blazor&component=DisplayOptions) to **true**. You can then specify the rows or columns to freeze by using the `FrozenRows` and `FrozenColumns` properties of the display options [`FrozenPaneSettings`](mcp:get_api_reference?platform=blazor&component=DisplayOptions&member=frozenPaneSettings), respectively.
You can also specify the first row in the bottom pane or first column in the right pane using the `FirstRowInBottomPane` and `FirstColumnInRightPane` properties, respectively.
The following code snippet demonstrates how to use the freezing panes features in a worksheet:
+```ts
+var workbook = new Workbook(WorkbookFormat.Excel2007);
+var worksheet = workbook.worksheets().add("Sheet1");
+
+worksheet.displayOptions.panesAreFrozen = true;
+
+worksheet.displayOptions.frozenPaneSettings.frozenRows = 3;
+worksheet.displayOptions.frozenPaneSettings.frozenColumns = 1;
+
+worksheet.displayOptions.frozenPaneSettings.firstColumnInRightPane = 2;
+worksheet.displayOptions.frozenPaneSettings.firstRowInBottomPane = 6;
+```
+
```razor
var workbook = new Workbook();
var worksheet = workbook.Sheets.Add("Sheet1", SheetType.Worksheet) as Worksheet;
@@ -456,11 +507,17 @@ worksheet.DisplayOptions.FrozenPaneSettings.FirstRowInBottomPane = 6;
```
## Setting the Worksheet Zoom Level
-
-You can change the zoom level for each worksheet independently using the `MagnificationInNormalView` property on the `Worksheet` object's `DisplayOptions`. This property takes a value between 10 and 400 and represents the percentage of zoom that you wish to apply.
+You can change the zoom level for each worksheet independently using the [`MagnificationInNormalView`](mcp:get_api_reference?platform=blazor&component=WorksheetDisplayOptions&member=magnificationInNormalView) property on the [`IgbWorksheet`](mcp:get_api_reference?platform=blazor&component=Worksheet) object's [`IgbDisplayOptions`](mcp:get_api_reference?platform=blazor&component=DisplayOptions). This property takes a value between 10 and 400 and represents the percentage of zoom that you wish to apply.
The following code demonstrates how you can do this:
+```ts
+var workbook = new Workbook(WorkbookFormat.Excel2007);
+var worksheet = workbook.worksheets().add("Sheet1");
+
+worksheet.displayOptions.magnificationInNormalView = 300;
+```
+
```razor
var workbook = new Workbook();
var worksheet = workbook.Sheets.Add("Sheet1", SheetType.Worksheet) as Worksheet;
@@ -472,12 +529,19 @@ worksheet.DisplayOptions.MagnificationInNormalView = 300;
Sorting is done by setting a sorting condition on a worksheet level object on either columns or rows. You can sort columns or rows in ascending or descending order.
-This is done by specifying a region and sort type to the `Worksheet` object's `WorksheetSortSettings` that can be retrieved using the `SortSettings` property of the sheet.
+This is done by specifying a region and sort type to the [`IgbWorksheet`](mcp:get_api_reference?platform=blazor&component=Worksheet) object's [`IgbWorksheetSortSettings`](mcp:get_api_reference?platform=blazor&component=WorksheetSortSettings) that can be retrieved using the [`SortSettings`](mcp:get_api_reference?platform=blazor&component=Worksheet&member=sortSettings) property of the sheet.
-The sort conditions in a sheet are only reapplied when sort conditions are added, removed, modified, or when the `ReapplySortConditions` method is called on the worksheet. Columns or rows will be sorted within the region. "Rows" is the default sort type.
+The sort conditions in a sheet are only reapplied when sort conditions are added, removed, modified, or when the [`ReapplySortConditions`](mcp:get_api_reference?platform=blazor&component=WorksheetFilterSettings&member=reapplySortConditions) method is called on the worksheet. Columns or rows will be sorted within the region. "Rows" is the default sort type.
The following code snippet demonstrates how to apply a sort to a region of cells in a worksheet:
+```ts
+var workbook = new Workbook(WorkbookFormat.Excel2007);
+var worksheet = workbook.worksheets().add("Sheet1");
+
+worksheet.sortSettings.sortConditions().addItem(new RelativeIndex(0), new OrderedSortCondition(SortDirection.Ascending));
+```
+
```razor
var workbook = new Workbook();
var worksheet = workbook.Sheets.Add("Sheet1", SheetType.Worksheet) as Worksheet;
@@ -486,8 +550,7 @@ worksheet.SortSettings.SortConditions.Add(new RelativeIndex(0), new Infragistics
```
## Worksheet Protection
-
-You can protect a worksheet by calling the `Protect` method on the `Worksheet` object. This method exposes many nullable `bool` parameters that allow you to restrict or allow the following user operations:
+You can protect a worksheet by calling the [`Protect`](mcp:get_api_reference?platform=blazor&component=Workbook&member=protect) method on the [`IgbWorksheet`](mcp:get_api_reference?platform=blazor&component=Worksheet) object. This method exposes many nullable `bool` parameters that allow you to restrict or allow the following user operations:
- Editing of cells.
- Editing of objects such as shapes, comments, charts, or other controls.
@@ -500,10 +563,17 @@ You can protect a worksheet by calling the `Protect` method on the `Worksheet` o
- Sorting of data.
- Usage of pivot tables.
-You can remove worksheet protection by calling the `Unprotect` method on the `Worksheet` object.
+You can remove worksheet protection by calling the [`Unprotect`](mcp:get_api_reference?platform=blazor&component=Workbook&member=unprotect) method on the [`IgbWorksheet`](mcp:get_api_reference?platform=blazor&component=Worksheet) object.
The following code snippet shows how to enable protection of all of the above-listed user operations:
+```ts
+var workbook = new Workbook(WorkbookFormat.Excel2007);
+var worksheet = workbook.worksheets().add("Sheet1");
+
+worksheet.protect();
+```
+
```razor
var workbook = new Workbook();
var worksheet = workbook.Sheets.Add("Sheet1", SheetType.Worksheet) as Worksheet;
@@ -513,16 +583,27 @@ worksheet.Protect();
## Worksheet Conditional Formatting
-You can configure the conditional formatting of a `Worksheet` object by using the many "Add" methods exposed on the `ConditionalFormats` collection of that worksheet. The first parameter of these "Add" methods is the `string` region of the worksheet that you would like to apply the conditional format to.
+You can configure the conditional formatting of a [`IgbWorksheet`](mcp:get_api_reference?platform=blazor&component=Worksheet) object by using the many "Add" methods exposed on the [`ConditionalFormats`](mcp:get_api_reference?platform=blazor&component=Worksheet&member=conditionalFormats) collection of that worksheet. The first parameter of these "Add" methods is the `string` region of the worksheet that you would like to apply the conditional format to.
-Many of the conditional formats that you can add to your worksheet have a `CellFormat` property that determines the way that the `WorksheetCell` elements should look when the condition in that conditional format holds true. For example, you can use the properties attached to this `CellFormat` property such as `Fill` and `Font` to determine the background and font settings of your cells under a particular conditional format, respectively.
+Many of the conditional formats that you can add to your worksheet have a [`IgbIWorksheetCellFormat`](mcp:get_api_reference?platform=blazor&component=IWorksheetCellFormat) property that determines the way that the [`IgbWorksheetCell`](mcp:get_api_reference?platform=blazor&component=WorksheetCell) elements should look when the condition in that conditional format holds true. For example, you can use the properties attached to this [`IgbIWorksheetCellFormat`](mcp:get_api_reference?platform=blazor&component=IWorksheetCellFormat) property such as [`Fill`](mcp:get_api_reference?platform=blazor&component=IWorksheetCellFormat&member=fill) and [`Font`](mcp:get_api_reference?platform=blazor&component=IWorksheetCellFormat&member=font) to determine the background and font settings of your cells under a particular conditional format, respectively.
-There are a few conditional formats that do not have a `CellFormat` property, as their visualization on the worksheet cell behaves differently. These conditional formats are the `DataBarConditionalFormat`, `ColorScaleConditionalFormat`, and `IconSetConditionalFormat`.
+There are a few conditional formats that do not have a [`IgbIWorksheetCellFormat`](mcp:get_api_reference?platform=blazor&component=IWorksheetCellFormat) property, as their visualization on the worksheet cell behaves differently. These conditional formats are the [`IgbDataBarConditionalFormat`](mcp:get_api_reference?platform=blazor&component=DataBarConditionalFormat), [`IgbColorScaleConditionalFormat`](mcp:get_api_reference?platform=blazor&component=ColorScaleConditionalFormat), and [`IgbIconSetConditionalFormat`](mcp:get_api_reference?platform=blazor&component=IconSetConditionalFormat).
-When loading a pre-existing `Workbook` from Excel, the formats will be preserved when that `Workbook` is loaded. The same is true for when you save the `Workbook` out to an Excel file.
+When loading a pre-existing [`IgbWorkbook`](mcp:get_api_reference?platform=blazor&component=Workbook) from Excel, the formats will be preserved when that [`IgbWorkbook`](mcp:get_api_reference?platform=blazor&component=Workbook) is loaded. The same is true for when you save the [`IgbWorkbook`](mcp:get_api_reference?platform=blazor&component=Workbook) out to an Excel file.
The following code example demonstrates usage of conditional formats on a worksheet:
+```ts
+var workbook = new Workbook(WorkbookFormat.Excel2007);
+var worksheet = workbook.worksheets().add("Sheet1");
+
+var color = new Color();
+color.colorString = "Red";
+
+var format = worksheet.conditionalFormats().addAverageCondition("A1:A10", FormatConditionAboveBelow.AboveAverage);
+format.cellFormat.font.colorInfo = new WorkbookColorInfo(color);
+```
+
```razor
var workbook = new Workbook();
var worksheet = workbook.Sheets.Add("Sheet1", SheetType.Worksheet) as Worksheet;
@@ -532,19 +613,13 @@ format.CellFormat.Font.ColorInfo = new WorkbookColorInfo(Core.Graphics.Colors.Re
```
## API References
-
-- `CellFormat`
-- `ColorScaleConditionalFormat`
-- `ConditionalFormats`
-- `DataBarConditionalFormat`
-- `DisplayOptions`
-- `FilterSettings`
-- `ShowGridlines`
-- `ShowRowAndColumnHeaders`
-- `SortSettings`
-- `Workbook`
-- `WorksheetCell`
-- `WorksheetColumn`
-- `WorksheetFilterSettings`
-- `WorksheetSortSettings`
-- `Worksheet`
+[`IgbIWorksheetCellFormat`](mcp:get_api_reference?platform=blazor&component=IWorksheetCellFormat)
+[`IgbColorScaleConditionalFormat`](mcp:get_api_reference?platform=blazor&component=ColorScaleConditionalFormat)
+[`IgbDataBarConditionalFormat`](mcp:get_api_reference?platform=blazor&component=DataBarConditionalFormat)
+[`IgbDisplayOptions`](mcp:get_api_reference?platform=blazor&component=DisplayOptions)
+[`IgbWorkbook`](mcp:get_api_reference?platform=blazor&component=Workbook)
+[`IgbWorksheetCell`](mcp:get_api_reference?platform=blazor&component=WorksheetCell)
+[`IgbWorksheetColumn`](mcp:get_api_reference?platform=blazor&component=WorksheetColumn)
+[`IgbWorksheetFilterSettings`](mcp:get_api_reference?platform=blazor&component=WorksheetFilterSettings)
+[`IgbWorksheetSortSettings`](mcp:get_api_reference?platform=blazor&component=WorksheetSortSettings)
+[`IgbWorksheet`](mcp:get_api_reference?platform=blazor&component=Worksheet)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/excel-library-working-with-charts.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/excel-library-working-with-charts.md
index a57e11921..d957c2819 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/excel-library-working-with-charts.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/excel-library-working-with-charts.md
@@ -1,16 +1,17 @@
---
title: Blazor Excel Library| Working with Charts | Infragistics
-_description: Use the Infragistics' Blazor excel library's chart feature to add visual charting representations of data trends across regions of cells in a worksheet. Visualize Ignite UI for Blazor excel data in over 70 chart types!
-_keywords: Excel library, charts, Ignite UI for Blazor, Infragistics
-_license: commercial
-mentionedTypes: ["Workbook", "Worksheet"]
+description: Use the Infragistics' Blazor excel library's chart feature to add visual charting representations of data trends across regions of cells in a worksheet. Visualize Ignite UI for Blazor excel data in over 70 chart types!
+keywords: Excel library, charts, Ignite UI for Blazor, Infragistics
+license: commercial
+
+llms:
+ description: "The Infragistics Blazor Excel Engine's WorksheetChart functionality allows you to add visual charting representations of data trends across regions of cells in a worksheet."
_tocName: Working with Charts
_premium: true
---
-
# Blazor Working with Charts
-The Infragistics Blazor Excel Engine's `WorksheetChart` functionality allows you to add visual charting representations of data trends across regions of cells in a worksheet. For example, if you want to see your Excel data in a region of cells visualized as a column, line, or over 70 other chart types, this feature can help you to achieve that.
+The Infragistics Blazor Excel Engine's [`IgbWorksheetChart`](mcp:get_api_reference?platform=blazor&component=WorksheetChart) functionality allows you to add visual charting representations of data trends across regions of cells in a worksheet. For example, if you want to see your Excel data in a region of cells visualized as a column, line, or over 70 other chart types, this feature can help you to achieve that.
## Blazor Working with Charts Example
@@ -283,21 +284,26 @@ namespace Infragistics.Samples
}
```
-> [!Note]
-> The XLSX format is required. Other formats are not supported at this time.
-
-
+**Note:**
+The XLSX format is required. Other formats are not supported at this time.
## Usage
+In order to add a chart to a worksheet, you must use the [`AddChart`](mcp:get_api_reference?platform=blazor&component=WorksheetShapeCollection&member=addChart) method of the worksheet's shapes collection. In this method, you can specify the chart type that you wish to use, the top-left cell, the bottom-right cell, and the percentages of those cells that you wish for the chart to take up.
-In order to add a chart to a worksheet, you must use the `AddChart` method of the worksheet's shapes collection. In this method, you can specify the chart type that you wish to use, the top-left cell, the bottom-right cell, and the percentages of those cells that you wish for the chart to take up.
-
-The `AddChart` method returns the worksheet chart element to be added to the worksheet. Once you have this, you can use the `SetSourceData` method on the chart to set a cell address of the region of worksheet cells that you wish to use as a data source, as well as whether or not you want to switch the mapping of columns and rows to the X and Y axis.
+The [`AddChart`](mcp:get_api_reference?platform=blazor&component=WorksheetShapeCollection&member=addChart) method returns the worksheet chart element to be added to the worksheet. Once you have this, you can use the [`SetSourceData`](mcp:get_api_reference?platform=blazor&component=WorksheetChart&member=setSourceData) method on the chart to set a cell address of the region of worksheet cells that you wish to use as a data source, as well as whether or not you want to switch the mapping of columns and rows to the X and Y axis.
There are over 70 supported chart types, including `Line`, `Area`, [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn), and `Pie`.
The following code demonstrates how to use the Excel charting feature. The below snippet will add a column chart to between the first cell and the 13th cell in the first row of the worksheet. The source data is then set for the data in the region of A2:M6, switching the mapping of columns and rows for the X and Y axis of the column chart:
+```ts
+var chart = ws.shapes().addChart(ChartType.ColumnClustered,
+ ws.rows(0).cells(0), { x: 0, y: 0 },
+ ws.rows(0).cells(12), { x: 100, y: 100 });
+
+chart.setSourceData("A2:M6", true);
+```
+
```razor
var chart = sheet.Shapes.AddChart(Documents.Excel.Charts.ChartType.ColumnClustered,
sheet.Rows[0].Cells[0], new Core.Point(0, 0),
@@ -307,10 +313,4 @@ chart.SetSourceData("A2:M6", true);
```
## API References
-
-- `AddChart`
-- `Area`
-- [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn)
-- `Line`
-- `Pie`
-- `WorksheetChart`
+[`IgbWorksheetChart`](mcp:get_api_reference?platform=blazor&component=WorksheetChart)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/excel-library-working-with-sparklines.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/excel-library-working-with-sparklines.md
index dad13641c..cdfc2800a 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/excel-library-working-with-sparklines.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/excel-library-working-with-sparklines.md
@@ -1,13 +1,14 @@
---
-title: Blazor Excel Library| Working with Sparklines | Infragistics
-_description: Use sparkline charts in Infragistics' Blazor excel library to visual data trends across a region of cells in your worksheet. View Ignite UI for Blazor excel engine tutorials!
-_keywords: Excel library, sparkline chart, Ignite UI for Blazor, Infragistics
-_license: commercial
+title: "Blazor Excel Library| Working with Sparklines | Infragistics"
+description: Use sparkline charts in Infragistics' Blazor excel library to visual data trends across a region of cells in your worksheet. View Ignite UI for Blazor excel engine tutorials!
+keywords: Excel library, sparkline chart, Ignite UI for Blazor, Infragistics
+license: commercial
mentionedTypes: ["Workbook"]
+llms:
+ description: "The Infragistics Blazor Excel Library has support for adding sparklines to an Excel Worksheet."
_tocName: Working with Sparklines
_premium: true
---
-
# Blazor Working with Sparklines
The Infragistics Blazor Excel Library has support for adding sparklines to an Excel Worksheet. These can be used to show simple visual representations of data trends across a region of cells of data in your worksheet. For example, if you wanted to see your Excel data across a particular cell region visualized as a simple column or line sparkline chart, this feature can help you to achieve that.
@@ -354,10 +355,7 @@ namespace Infragistics.Samples
}
```
-
-
## Supported Sparklines
-
The following is a list of the supported predefined sparkline types.
- Line
@@ -366,6 +364,15 @@ The following is a list of the supported predefined sparkline types.
The following code demonstrates how to programmatically add Sparklines to a Worksheet via the sparklineGroups collection:
+```ts
+var workbook: Workbook;
+var sheet1 = workbook.worksheets().add("Sparklines");
+var sheet2 = workbook.worksheets().add("Data");
+sheet1.sparklineGroups().add(SparklineType.Line, "Sparklines!A1:A1", "Data!A2:A11");
+sheet1.sparklineGroups().add(SparklineType.Column, "Sparklines!B1:B1", "Data!A2:A11");
+workbook.save(workbook, "Sparklines.xlsx");
+```
+
```razor
var workbook = new Workbook();
var sheet1 = workbook.Sheets.Add("Sparklines", SheetType.Worksheet) as Worksheet;
@@ -376,5 +383,4 @@ sheet1.SparklineGroups.Add(SparklineType.Column, "Sparklines!B1:B1", "Data!A2:A1
```
## API References
-
-- `Workbook`
+[`IgbWorkbook`](mcp:get_api_reference?platform=blazor&component=Workbook)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/excel-library.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/excel-library.md
index f4a596b22..4af637c11 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/excel-library.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/excel-library.md
@@ -1,15 +1,16 @@
---
-title: Blazor Excel Library| Data Spreadsheet and Table | Infragistics
-_description: Use Infragistics' Blazor excel library to work with spreadsheet data using Microsoft Excel features. Learn how easily you can transfer data from excel to your application using Ignite UI for Blazor excel library!
-_keywords: Excel library, Ignite UI for Blazor, Infragistics, workbook
-_license: commercial
+title: "Blazor Excel Library| Data Spreadsheet and Table | Infragistics"
+description: Use Infragistics' Blazor excel library to work with spreadsheet data using Microsoft Excel features. Learn how easily you can transfer data from excel to your application using Ignite UI for Blazor excel library!
+keywords: Excel library, Ignite UI for Blazor, Infragistics, workbook
+license: commercial
mentionedTypes: ["Workbook", "Worksheet", "Cell", "Formula"]
+llms:
+ description: "The Infragistics Blazor Excel Library allows you to work with spreadsheet data using familiar Microsoft® Excel® spreadsheet objects like Workbook, Worksheet, Cell, Formula and many more."
_tocName: Excel Library
---
-
# Blazor Excel Library Overview
-The Infragistics Blazor Excel Library allows you to work with spreadsheet data using familiar Microsoft® Excel® spreadsheet objects like `Workbook`, `Worksheet`, `Cell`, `Formula` and many more. The Infragistics Blazor Excel Library makes it easy for you to represent the data of your application in an Excel spreadsheet as well as transfer data from Excel into your application.
+The Infragistics Blazor Excel Library allows you to work with spreadsheet data using familiar Microsoft® Excel® spreadsheet objects like [`IgbWorkbook`](mcp:get_api_reference?platform=blazor&component=Workbook), [`IgbWorksheet`](mcp:get_api_reference?platform=blazor&component=Worksheet), [`Cell`](mcp:get_api_reference?platform=blazor&component=WorksheetCell), [`IgbFormula`](mcp:get_api_reference?platform=blazor&component=Formula) and many more. The Infragistics Blazor Excel Library makes it easy for you to represent the data of your application in an Excel spreadsheet as well as transfer data from Excel into your application.
## Blazor Excel Library Example
@@ -289,17 +290,21 @@ namespace Infragistics.Samples
}
```
-
-
## Requirements
-In order to use the Blazor excel library, you need to add the following using statement:
+In order to use the Blazor excel library, you need to add the Excel Library NuGet package like this:
+
+```cmd
+> dotnet add package IgniteUI.Blazor.Documents.Excel
+```
+
+Add the following using statement:
```razor
@using Infragistics.Documents.Excel
```
-If you are using a Web Assembly (WASM) Blazor project, there are a couple of extra steps:
+If you are using a Blazor WebAssembly (WASM) project, there are a couple of extra steps:
- Add a reference to the following script in the wwwroot/index.html file:
@@ -307,7 +312,7 @@ If you are using a Web Assembly (WASM) Blazor project, there are a couple of ext
```
-- Set the static `Workbook.InProcessRuntime` to the current runtime. This can be done by using the following code:
+- Set the static [`Workbook.InProcessRuntime`](mcp:get_api_reference?platform=blazor&component=Workbook&member=InProcessRuntime) to the current runtime. This can be done by using the following code:
```razor
@using Microsoft.JSInterop
@@ -326,8 +331,7 @@ If you are using a Web Assembly (WASM) Blazor project, there are a couple of ext
```
## Supported Versions of Microsoft Excel
-
-The following is a list of the supported versions of Excel.\*\*
+The following is a list of the supported versions of Excel.**
- Microsoft Excel 97
@@ -345,13 +349,16 @@ The following is a list of the supported versions of Excel.\*\*
- Microsoft Excel 2016
+**Note:**
+The Excel Library does not support the Excel Binary Workbook (.xlsb) format at this time.
+
## Load and Save Workbooks
-Now that the Excel Library module is imported, next step is to load a workbook.
+Now that the Excel Library package is installed, next step is to load a workbook.
-In order to load and save `Workbook` objects, you can utilize the save method of the actual `Workbook` object, as well as its static `Load` method.
+In order to load and save [`IgbWorkbook`](mcp:get_api_reference?platform=blazor&component=Workbook) objects, you can utilize the `Save` method of the actual [`IgbWorkbook`](mcp:get_api_reference?platform=blazor&component=Workbook) object, as well as its static `Load` method.
-```razor
+```csharp
protected override void OnInitialized()
{
var memoryStream = new System.IO.MemoryStream();
@@ -372,8 +379,5 @@ private void SaveFile(byte[] bytes, string fileName, string mime)
```
## API References
-
-- `Load`
-- `WorkbookInProcessRuntime`
-- `Worksheet`
-- `Workbook`
+[`IgbWorksheet`](mcp:get_api_reference?platform=blazor&component=Worksheet)
+[`IgbWorkbook`](mcp:get_api_reference?platform=blazor&component=Workbook)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/expansion-panel.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/expansion-panel.md
index b7e367dc1..687cf8637 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/expansion-panel.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/expansion-panel.md
@@ -1,13 +1,14 @@
---
-title: Blazor Expansion Panel | Expansion Panel | Infragistics
-_description: Expansion Panel component provides an easily configurable expandable component with two states - collapsed and expanded.
-_keywords: Blazor Expansion Panel, Ignite UI for Blazor, Infragistics
-_license: MIT
+title: "Blazor Expansion Panel | Expansion Panel | Infragistics"
+description: Expansion Panel component provides an easily configurable expandable component with two states - collapsed and expanded.
+keywords: "Blazor Expansion Panel, Ignite UI for Blazor, Infragistics"
+license: MIT
mentionedTypes: ["Infragistics.Controls.Layouts.Implementation.ExpansionPanel"]
namespace: Infragistics.Controls
+llms:
+ description: "The Ignite UI for Blazor Expansion Panel is a lightweight accordion component which can be rendered in two states - collapsed or expanded."
_tocName: Expansion Panel
---
-
# Blazor Expansion Panel Overview
The Ignite UI for Blazor Expansion Panel is a lightweight accordion component which can be rendered in two states - collapsed or expanded. The expansion panel can be toggled using mouse click, or keyboard interactions.
@@ -32,8 +33,6 @@ The Ignite UI for Blazor Expansion Panel is a lightweight accordion component wh
```
-
-
## Usage
The simplest way to start using the [`IgbExpansionPanel`](mcp:get_api_reference?platform=blazor&component=IgbExpansionPanel) is as follows:
@@ -42,8 +41,15 @@ The simplest way to start using the [`IgbExpansionPanel`](mcp:get_api_reference?
The Expansion Panel component raises the following events:
+- **Closed** - Raised when the expansion panel is collapsed
+- **Opened** - Raised when the expansion panel is expanded
+- **Closing** - Raised when the expansion panel starts collapsing
+- **Opening** - Raised when the expansion panel starts expanding
+
The following sample demonstrates how we can add some logic to our component to make it show/hide the `subtitle` depending on the current state of the panel.
+We can do this by binding to the `Opened` and `Closed` events:
+
```razor
@using IgniteUI.Blazor.Controls
@@ -109,17 +115,14 @@ The following sample demonstrates how we can add some logic to our component to
}
```
-
-
## Component Customization
-
The [`IgbExpansionPanel`](mcp:get_api_reference?platform=blazor&component=IgbExpansionPanel) control allows all sorts of content to be added inside of its body. It can render [input](../inputs/input.md), charts and even other expansion panels!
-The [`IgbExpansionPanel`](mcp:get_api_reference?platform=blazor&component=IgbExpansionPanel) allows for easy customization of the header through the exposed **title**, **subTitle** and **indicator** slots.
+The [`IgbExpansionPanel`](mcp:get_api_reference?platform=blazor&component=IgbExpansionPanel) allows for easy customization of the header through the exposed `title`, `subTitle` and `indicator` slots.
-Configuring the position of the expansion indicator can be done through the [`IndicatorPosition`](mcp:get_api_reference?platform=blazor&component=IgbExpansionPanel&member=IndicatorPosition) property of the Expansion Panel. The possible options are **start**, **end** or **none**.
+Configuring the position of the expansion indicator can be done through the [`IndicatorPosition`](mcp:get_api_reference?platform=blazor&component=IgbExpansionPanel&member=indicatorPosition) property of the Expansion Panel. The possible options are **start**, **end** or **none**.
-The next code sample demonstrates how to configure the component's button to go on the **right**side.
+The next code sample demonstrates how to configure the component's button to go on the **right** side.
```razor
@using IgniteUI.Blazor.Controls
@@ -180,7 +183,19 @@ The next code sample demonstrates how to configure the component's button to go
}
```
-
+### Recommended Elements for Slots
+
+When slotting content into the `title` and `subtitle` slots, we recommend using `` elements rather than heading elements (`
`–`
`). Heading elements carry built-in styling (such as font size, line height, and margins) that can interfere with the component's intended typography and layout. Using a `` gives you a neutral container that inherits the component's styles cleanly.
+
+The `indicator` slot is intended for icon-like content. We recommend using the [``](../layouts/icon.md) component for this purpose. Alternatively, if you don't want to use an icon for the indicator, a `` element can be used to display text, symbols, or emojis.
+
+```razor
+
+ Golden Retriever
+ Medium-large gun dog
+
+
+```
## Keyboard Navigation
@@ -297,13 +312,10 @@ igc-expansion-panel::part(subtitle) {
```
-
+
## API References
-
-- [`IgbExpansionPanel`](mcp:get_api_reference?platform=blazor&component=IgbExpansionPanel)
-- [`Styling & Themes`](../themes/overview.md)
-
+[`IgbExpansionPanel`](mcp:get_api_reference?platform=blazor&component=IgbExpansionPanel)
## Additional Resources
- [Ignite UI for Blazor **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-blazor)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/features.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/features.md
index d05550968..d016f4ec9 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/features.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/features.md
@@ -1,19 +1,19 @@
---
-title: Blazor ComboBox Component – Ignite UI for Blazor
-_description: Ignite UI for Blazor ComboBox Component Features
-_keywords: Ignite UI for Blazor, UI controls, Blazor widgets, web widgets, UI widgets, Blazor, Native Blazor Components Suite, Native Blazor Controls, Native Blazor Components Library, Blazor ComboBox Component Features
-_license: MIT
+title: "Blazor ComboBox Component – Ignite UI for Blazor"
+description: "Ignite UI for Blazor ComboBox Component Features"
+keywords: "Ignite UI for Blazor, UI controls, Blazor widgets, web widgets, UI widgets, Blazor, Native Blazor Components Suite, Native Blazor Controls, Native Blazor Components Library, Blazor ComboBox Component Features"
+license: MIT
mentionedTypes: ["Combo", "ComboList", "ComboItem"]
+llms:
+ description: "The Ignite UI for Blazor ComboBox component exposes several features such as filtering and grouping."
_tocName: Features
---
-
# Blazor ComboBox Features
The Ignite UI for Blazor ComboBox component exposes several features such as filtering and grouping.
## Combobox Features Example
-
-The following demo shows some [`IgbCombo`](mcp:get_api_reference?platform=blazor&component=IgbCombo) features that are enabled/disabled at runtime:
+The following demo shows some [`IgbCombo`](mcp:get_api_reference?platform=blazor&component=IgbComboModule) features that are enabled/disabled at runtime:
```razor
@using IgniteUI.Blazor.Controls
@@ -84,14 +84,14 @@ The following demo shows some [`IgbCombo`](mcp:get_api_reference?platform=blazor
In our sample we are going to use the [`IgbSwitch`](mcp:get_api_reference?platform=blazor&component=IgbSwitch) component, so we have to import them together with the combo:
-```razor
+```csharp
// in Program.cs file
builder.Services.AddIgniteUIBlazor(typeof(IgbComboModule));
builder.Services.AddIgniteUIBlazor(typeof(IgbSwitchModule));
```
-You will also need to link an additional CSS file to apply the styling to the [`IgbSwitch`](mcp:get_api_reference?platform=blazor&component=IgbSwitch) component. The following needs to be placed in the **wwwroot/index.html** file in a **Blazor Web Assembly** project or the **Pages/\_Host.cshtml** file in a **Blazor Server** project:
+You will also need to link an additional CSS file to apply the styling to the [`IgbSwitch`](mcp:get_api_reference?platform=blazor&component=IgbSwitch) component. The following needs to be placed in the **wwwroot/index.html** file in a **Blazor Web Assembly** project or the **Pages/_Host.cshtml** file in a **Blazor Server** project:
```razor
@@ -139,7 +139,7 @@ Then, using React's useState hook, we will declare our variables which will upda
}
```
-Note that grouping is enabled/disabled by setting the [`GroupKey`](mcp:get_api_reference?platform=blazor&component=IgbCombo&member=GroupKey) property to a corresponding data source field:
+Note that grouping is enabled/disabled by setting the [`GroupKey`](mcp:get_api_reference?platform=blazor&component=IgbComboModule&member=groupKey) property to a corresponding data source field:
```razor
@code {
@@ -156,9 +156,9 @@ Note that grouping is enabled/disabled by setting the [`GroupKey`](mcp:get_api_r
### Filtering
-By default, filtering in the ComboBox is enabled. It can be disabled by setting the [`DisableFiltering`](mcp:get_api_reference?platform=blazor&component=IgbCombo&member=DisableFiltering) property.
+By default, filtering in the ComboBox is enabled. It can be disabled by setting the [`DisableFiltering`](mcp:get_api_reference?platform=blazor&component=IgbComboModule&member=disableFiltering) property.
-Filtering options can be further enhanced by enabling the search case sensitivity. The case-sensitive icon can be turned on using the [`CaseSensitiveIcon`](mcp:get_api_reference?platform=blazor&component=IgbCombo&member=CaseSensitiveIcon) property so that end-users can control the case sensitivity.
+Filtering options can be further enhanced by enabling the search case sensitivity. The case-sensitive icon can be turned on using the [`CaseSensitiveIcon`](mcp:get_api_reference?platform=blazor&component=IgbComboModule&member=caseSensitiveIcon) property so that end-users can control the case sensitivity.
```razor
@@ -166,20 +166,20 @@ Filtering options can be further enhanced by enabling the search case sensitivit
#### Filtering Options
-The Ignite UI for Blazor [`IgbCombo`](mcp:get_api_reference?platform=blazor&component=IgbCombo) exposes one more filtering property that allows passing configuration of both `FilterKey` and `CaseSensitive` options. The `FilterKey` indicates which data source field should be used for filtering the list of options. The `CaseSensitive` option indicates if the filtering should be case-sensitive or not.
+The Ignite UI for Blazor [`IgbCombo`](mcp:get_api_reference?platform=blazor&component=IgbComboModule) exposes one more filtering property that allows passing configuration of both `FilterKey` and `CaseSensitive` options. The `FilterKey` indicates which data source field should be used for filtering the list of options. The `CaseSensitive` option indicates if the filtering should be case-sensitive or not.
The following code snippet shows how to filter the cities from our data source by country instead of name. We are also making the filtering case-sensitive by default:
### Grouping
-Defining a [`GroupKey`](mcp:get_api_reference?platform=blazor&component=IgbCombo&member=GroupKey) option will group the items, according to the provided key:
+Defining a [`GroupKey`](mcp:get_api_reference?platform=blazor&component=IgbComboModule&member=groupKey) option will group the items, according to the provided key:
```razor
```
-> [!Note]
-> The [`GroupKey`](mcp:get_api_reference?platform=blazor&component=IgbCombo&member=GroupKey) property will only have effect if your data source consists of complex objects.
+**Note:**
+The [`GroupKey`](mcp:get_api_reference?platform=blazor&component=IgbComboModule&member=groupKey) property will only have effect if your data source consists of complex objects.
#### Sorting Direction
@@ -191,7 +191,7 @@ The ComboBox component also exposes an option for setting whether groups should
### Label
-The [`IgbCombo`](mcp:get_api_reference?platform=blazor&component=IgbCombo) label can be set easily using the [`Label`](mcp:get_api_reference?platform=blazor&component=IgbCombo&member=Label) property:
+The [`IgbCombo`](mcp:get_api_reference?platform=blazor&component=IgbComboModule) label can be set easily using the [`Label`](mcp:get_api_reference?platform=blazor&component=IgbComboModule&member=label) property:
```razor
@@ -215,7 +215,7 @@ If you want your ComboBox to be automatically focused on page load you can use t
### Search Input Focus
-The ComboBox search input is focused by default. To disable this feature and move the focus to the list of options use the [`AutofocusList`](mcp:get_api_reference?platform=blazor&component=IgbCombo&member=AutofocusList) property as shown below:
+The ComboBox search input is focused by default. To disable this feature and move the focus to the list of options use the [`AutofocusList`](mcp:get_api_reference?platform=blazor&component=IgbComboModule&member=autofocusList) property as shown below:
```razor
@@ -231,12 +231,16 @@ The ComboBox can be marked as required by setting the required property.
### Disable ComboBox
-You can disable the ComboBox using the [`Disabled`](mcp:get_api_reference?platform=blazor&component=IgbCombo&member=Disabled) property:
+You can disable the ComboBox using the [`Disabled`](mcp:get_api_reference?platform=blazor&component=IgbComboModule&member=disabled) property:
```razor
```
+## API References
+
+[`IgbCombo`](mcp:get_api_reference?platform=blazor&component=IgbComboModule)
+
## Additional Resources
- [Ignite UI for Blazor **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-blazor)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-changelog-dv-blazor.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-changelog-dv-blazor.md
index 22c4c2a2f..d94963bfc 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-changelog-dv-blazor.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-changelog-dv-blazor.md
@@ -1,30 +1,106 @@
---
-title: Blazor What's New | Ignite UI for Blazor | Infragistics
-_description: Learn about new features in the Ignite UI for Blazor.
-_keywords: Changelog, What's New, Ignite UI for Blazor, Infragistics
-mentionedTypes: ["SeriesViewer", "XYChart", "DomainChart", "XamDataChart", "Toolbar", "XamGeographicMap", "DatePicker", "MultiColumnComboBox", "CategoryChart", "CrosshairLayer", "FinalValueLayer", "CalloutLayer", "DataLegend", "Infragistics.Controls.Grid", "Infragistics.Controls.GridSelectionMode", "Infragistics.Controls.DataGridCellEventArgs", "Infragistics.Controls.GridBaseDirective", "MaskInput", "Shape", "RoundShape", "XamRadialGauge, XamLinearGauge, XamBulletGraph, XamTreemap", "XamRadialChart", "Toolbar"]
+title: "Blazor What's New | Ignite UI for Blazor | Infragistics"
+description: Learn about new features in the Ignite UI for Blazor.
+keywords: Changelog, What's New, Ignite UI for Blazor, Infragistics
+mentionedTypes: ["SeriesViewer", "XYChart", "DomainChart", "DataChart", "Toolbar", "GeographicMap", "DatePicker", "MultiColumnComboBox", "CategoryChart", "CrosshairLayer", "FinalValueLayer", "CalloutLayer", "DataLegend", "Infragistics.Controls.Grid", "Infragistics.Controls.GridSelectionMode", "Infragistics.Controls.DataGridCellEventArgs", "Infragistics.Controls.GridBaseDirective", "MaskInput", "Shape", "RoundShape", "RadialGauge, LinearGauge, BulletGraph, Treemap", "RadialChart", "Toolbar"]
sharedComponents: ["Grid", "TreeGrid", "HierarchicalGrid"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "Release history for Ignite UI for Blazor data visualization components, covering new features, fixes, and breaking changes."
_tocName: Changelog
---
-
# Ignite UI for Blazor Changelog
-
-
All notable changes for each version of Ignite UI for Blazor are documented on this page.
- As of version 2025.2, the Ignite UI for Blazor toolset supports .NET 10. For more information on .NET 10 please refer to [this article on Microsoft's site](https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-10/overview).
- As of version 2024.2, the Ignite UI for Blazor toolset supports .NET 9. For more information on .NET 9 please refer to [this article on Microsoft's site](https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-9/overview).
-## **25.2.83 (March 2026)**
+## **26.1.98 (August 2026)**
+
+### Enhancements
+
+#### IgniteUI.Blazor
+
+- Added axis visibility properties to `Axis` and all `XYChart`-derived charts, allowing individual axis elements to be toggled without style overrides:
+ - `AreLabelsVisible` - hides the tick label text while the label panel keeps its layout slot.
+ - `AreTickMarksVisible` - hides the tick mark strokes.
+ - `AreAnnotationsVisible` - hides axis annotations (e.g. `FinalValueLayer` badges).
+ - `IsLabelPanelVisible` - collapses the entire label panel to zero extent.
+ - The corresponding chart-level forwarding properties `XAxisAreLabelsVisible`, `XAxisAreTickMarksVisible`, `XAxisAreAnnotationsVisible`, `XAxisIsLabelPanelVisible`, `YAxisAreLabelsVisible`, `YAxisAreTickMarksVisible`, `YAxisAreAnnotationsVisible` and `YAxisIsLabelPanelVisible` were added on `IgbCategoryChart`, `IgbFinancialChart` and other `XYChart`-derived charts.
+
+- Added `LegendItemBadgeMarkerSizeScaling` to series, which controls how legend badges scale with the series `MarkerSize`. Supported values are `Auto` (default, interpolates the badge between 1x and 2x), `None` (badge keeps its default size) and `Linear` (badge scales directly with `MarkerSize`). The resolved sizes are exposed through the read-only `ActualLegendItemBadgeMarkerWidth` and `ActualLegendItemBadgeMarkerHeight` properties.
+
+- Added `StartInset` and `EndInset` to `IgbLinearGraphRange` (used by `IgbLinearGauge` and `IgbBulletGraph`) and to `IgbRadialGaugeRange`. The properties trim a range's start and end edges inward by a distance measured in device-independent pixels, producing a consistent gap between adjacent ranges regardless of the gauge's size or value range. Both default to `0`, so ranges continue to meet flush unless an inset is set.
+
+#### IgniteUI.Blazor (Grids)
+
+- Updated the internal Ignite UI for Angular reference from 21.2 to 22.0, refreshing the generated models for `IgbGrid`, `IgbTreeGrid`, `IgbHierarchicalGrid` and `IgbRowIsland`, including the new `GridBase`, `HierarchicalGridBase` and `RowIslandBase` shared surfaces.
+
+### Bug Fixes
+
+| Bug Number | Control | Description |
+|------------|---------|-------------|
+| 3817 | IgbInput and other web inputs | Components were not registered on load; `defineAllComponents` registration was restored. |
+| 3743 | IgbGrid | Filtering event detail payload now uses `FilteringExpressionsTree` instead of the previous incorrect type. |
+| 2129 | Web inputs | `ReportValidity` and `CheckValidity` returned the wrong type on `IgbCheckbox`, `IgbCombo`, `IgbDatePicker`, `IgbDateRangePicker`, `IgbInput`, `IgbRating`, `IgbSelect`, `IgbSlider` and `IgbTextarea`. |
+| 2123 | Web inputs | Focus options were not marshalled correctly; they are now treated as a plain object. |
+| 3684 | IgbChat and other web components | Enum-typed properties were not serialized correctly when passed through the renderer element. |
+| 3777 | IgbRadialGauge, IgbLinearGauge, IgbBulletGraph | Null reference exception could occur in the gauges. |
+| 3534 | IgbSpreadsheet | Horizontal lines were not displayed correctly, and SVG shapes shifted position as line thickness changed. |
+| 3821 | IgbDataPieChart | `SeriesPointerEnter` did not reach handlers on hover, and aggregated-away buckets were incorrectly measured in the angular range. |
+| 3322 | IgbDataPieChart | Slice layers showed the wrong image when a requested image changed before a prior image finished loading. |
+| 3688 | IgbDataChart | Chart was not disposed correctly on destroy. |
+
+## **26.1.51 (June 2026)**
+
+### IgbDockManager
+
+- Updated internal reference to the latest 2.1 version of the Web Component including various bug fixes and performance improvements.
+- Added two-way synchronization between the web component layer layout property and the Blazor component Layout property allowing better flexibility and more complex usage scenarios.
+- New Events added:
+ - ActivePaneChanged
+ - FloatingPaneResizeEnd
+ - FloatingPaneResizeMove
+ - FloatingPaneResizeStart
+ - PaneDragEnd
+ - PaneDragOver
+ - PaneDragStart
+ - PaneHeaderConnected
+ - PaneHeaderDisconnected
+ - PaneClose
+ - PanePinnedToggle
+ - PaneFlyoutToggle
+ - PaneScroll
+ - TabHeaderConnected
+ - TabHeaderDisconnected
+
+### New Components
+
+- [IgbChat](./interactivity/chat.md) - A chat UI component for displaying messages and input interaction. This component is in preview and under active development. Some features are not yet implemented, and APIs may evolve in upcoming releases.
+- [IgbSplitter](./layouts/splitter.md) - The `IgbSplitter` component provides a resizable split-pane layout that divides the view into two panels — *start* and *end* — separated by a draggable bar.
+- [IgbHighlight](./inputs/highlight.md) - The `IgbHighlight` component provides efficient searching and highlighting of text projected into it via its default slot.
+
+### AI Skills
+
+- Ignite UI for Blazor now provides 4 skills for improving AI assistants coding results. Please, find more information in the [AI Skills documentation](./ai/skills.md).
+
+### Bug Fixes
+
+| Bug Number | Control | Description |
+|------------|---------|-------------|
+| [189](https://github.com/IgniteUI/igniteui-blazor/issues/189) | IgbGrid | Parameters ending with ~Script cause repeated igSendMessage calls on every StateHasChanged |
+| [190](https://github.com/IgniteUI/igniteui-blazor/issues/190) | IgbGrid | ResourceStrings parameter triggers igSendMessage on every StateHasChanged, sending full JSON payload repeatedly |
+
+## **25.2.102 (May 2026)**
### Enhancements
#### IgniteUI.Blazor
- Added `Checkmark` option to the `MarkerType` enum. Use `MarkerType.Checkmark` on a series to display a V-shaped checkmark icon inside a circle. The new `MarkerAutomaticBehavior.Checkmark` enum value allows applying the checkmark shape to all series in the chart, and the `SeriesViewer.CheckmarkMarkerTemplate` property can be used to customize its template.
+- Added `MarkerSize` support on marker-enabled chart series to control marker dimensions in device-independent pixels and reset to template-based sizing with `NaN`.
### Bug Fixes
@@ -37,22 +113,16 @@ All notable changes for each version of Ignite UI for Blazor are documented on t
### IgniteUI.Blazor
-- Added `RangeBarSeries` support for horizontal range rendering in `DataChart`.
+- Added `RangeBarSeries` support for horizontal range rendering in `IgbDataChart`.
## **25.2.77 (March 2026)**
### IgniteUI.Blazor (Grids)
-#### IgbQueryBuilder
-
-- Added new component - IgbQueryBuilder - a UI component that allows users to build complex filtering conditions through an intuitive visual interface.
-
#### IgbGrid, IgbTreeGrid, IgbHierarchicalGrid, IgbPivotGrid
-
- Improved performance by dynamically adjusting the scroll throttle based on the data displayed in grid.
#### IgbGrid, IgbTreeGrid, IgbHierarchicalGrid
-
- Added PDF export functionality to grid components. Grids can now be exported to PDF format alongside the existing Excel and CSV export options.
#### Breaking Changes
@@ -63,27 +133,19 @@ All notable changes for each version of Ignite UI for Blazor are documented on t
### General
#### IgbThemeProvider
-
- Added new component - IgbThemeProvider - allows scoping themes to specific page sections using Lit's context API, enabling multiple themes on a single page. Works in both Shadow and Light DOM.
#### Badge
-
- New dot type, improved outline implementation following WCAG AA accessibility standards and theme based sizing. [#1889](https://github.com/IgniteUI/igniteui-webcomponents/pull/1889)
#### Checkbox
-
- New --tick-width CSS property. [#1897](https://github.com/IgniteUI/igniteui-webcomponents/pull/1897)
-
#### Combo
-
- New disableClear property which disables the clear button of the combo component. [#1896](https://github.com/IgniteUI/igniteui-webcomponents/pull/1896)
-
#### Mask input
-
- Transform unicode digit code points to ASCII numbers for numeric patterns. [#1907](https://github.com/IgniteUI/igniteui-webcomponents/pull/1907)
#### Enhancements
-
- Accessibility color adjustments for Button, Button group, Calendar, Checkbox, Date picker, date range picker, Nav drawer, Radio group, Stepper. [#1959](https://github.com/IgniteUI/igniteui-webcomponents/pull/1959)
- Updated and aligned styles with the design kit for Button, Calendar, Carousel, Combo, Date picker, Date range picker, input, Select, Textarea.
- Improved keyboard navigation experience and grouping(now using native Math.groupBy) for Combo.
@@ -92,18 +154,20 @@ All notable changes for each version of Ignite UI for Blazor are documented on t
| Bug Number | Control | Description |
|------------|---------|-------------|
-| 2189 | IgbDataChart | DataChart skips rendering axis when there are no labels |
-| 2317 | IgbGrid | Improve IgbGrid BodyTemplate Performance (C#/.NET templating) |
-| 2326 | IgbDataPieChart | Added OthersCategory styling properties to DataPieChart |
-| 2907 | IgbDateTimeInput | IgbDateTimeInput Prompt parameter is not propagated to the underlying Web Component prompt property |
-| 2908 | IgbMaskInput | IgbMaskInput Prompt parameter is not propagated to the underlying Web Component prompt property |
-| 2909 | IgbPivotGrid | IgbPivotGrid exposes SnackbarDisplayTime, but the property is not applicable and causes false test failures |
-| 38668 | IgbDataTooltipLayer | TitleTextColor is overridden when chart's TitleTextColor is used |
-| 40238 | Excel | fixed Excel Formula parser - Workbook.Load() throwing a Excel.FormulaParseException|
-| 41167 | Excel | Object's Formulas are not round-tripped - Added Excel support for round tripping the camera tool |
-| 41419 | Excel | Saving a VBA Signed Excel file does not keep a signature/certificate. |
-| 41594 | IgbDataChart | AssigningCategoryStyle args.GetItems is null or not working to update items in the fragment series |
-| 41598 | IgbDataChart | Exception editing a doughnut chart – DivideByZeroException |
+| 2189 | DataChart | DataChart skips rendering axis when there are no labels |
+| 2959 | LinearGauge | Gauges should not call View functions |
+| 2221 | Excel | Adding Excel support for round tripping the camera tool |
+| 2235 | Excel | fixed Excel Formula parser |
+| 2842 | DataChart | AssigningCategoryStyle args.GetItems is null or not working to update items in the fragment series |
+| 2234 | DataChart | Improve DataChart rendering - skip when bucket size is 0 |
+| 2326 | PieChart | Add property to set others color |
+| 2871 | DataLegend | Preserve deterministic ordering of series groups in DataLegend |
+| 2722 | DataChart | DataTooltipLayer - TitleTextColor is overridden when chart's TitleTextColor is used |
+| 2317 | Grid | Improve IgbGrid BodyTemplate Performance (C#/.NET templating) |
+| 2280 | CategoryChart | regression issue in Blazor Chart when doing aggregations (ex. grouping and summarizing) |
+| 2908 | MaskInput | IgbMaskInput Prompt parameter is not propagated to the underlying Web Component prompt property |
+| 2907 | DateTimeInput | IgbDateTimeInput Prompt parameter is not propagated to the underlying Web Component prompt property |
+| 2909 | PivotGrid | IgbPivotGrid exposes SnackbarDisplayTime, but the property is not applicable and causes false test failures |
| [#2079](https://github.com/IgniteUI/igniteui-webcomponents/pull/2079) | Calendar | `aria-hidden` state for weeks outside of the current month |
| [#2078](https://github.com/IgniteUI/igniteui-webcomponents/pull/2078) | Date Picker | CSS border for slotted actions in dialog mode |
| [#2068](https://github.com/IgniteUI/igniteui-webcomponents/pull/2068) | Input | Placeholder color on focus |
@@ -173,21 +237,18 @@ As of the 2025.2 release, we no longer support .NET 6. This corresponds with the
### IgniteUI.Blazor (Charts)
-#### User Annotations
+#### User Annotations
In Ignite UI for Blazor, you can now annotate the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) with slice, strip, and point annotations at runtime using the new user annotations feature. This allows the end user to add more details to the plot such as calling out single important events such as company quarter reports by using the slice annotation or events that have a duration by using the strip annotation. You can also call out individual points on the plotted series by using the point annotation or any combination of these three.
-This is directly integrated with the available tools of the [`Toolbar`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=Toolbar).
-
-
+This is directly integrated with the available tools of the [`Toolbar`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=toolbar).
-#### Collision Detection for Axis Annotations
+#### Collision Detection for Axis Annotations
Ability for axis annotations to automatically detect collisions and truncate to fit better. To enable this feature you must set the following properties:
-- `ShouldAvoidAnnotationCollisions`
-- `ShouldAutoTruncateAnnotations`
+- [`ShouldAvoidAnnotationCollisions`](mcp:get_api_reference?platform=blazor&component=IgbCategoryAngleAxis&member=shouldAvoidAnnotationCollisions)
+- [`ShouldAutoTruncateAnnotations`](mcp:get_api_reference?platform=blazor&component=IgbCategoryAngleAxis&member=shouldAutoTruncateAnnotations)
### IgniteUI.Blazor (Geographic Map)
@@ -207,7 +268,7 @@ Ability for axis annotations to automatically detect collisions and truncate to
- The merging can be configured on the grid level to apply either:
- `OnSort` - only when the column is sorted.
- `Always` - always, regardless of data operations.
- The default [`CellMergeMode`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=CellMergeMode) is `OnSort`.
+ The default [`CellMergeMode`](mcp:get_api_reference?platform=blazor&component=IgbGridBaseDirective&member=cellMergeMode) is `OnSort`.
```razor
@@ -215,14 +276,14 @@ Ability for axis annotations to automatically detect collisions and truncate to
```
- **Column Pinning**
- - Added ability to pin individual columns to a specific side (start or end of the grid), so that you can now have pinning from both sides. This can be done either declaratively by setting the `PinningPosition` property on the column:
+ - Added ability to pin individual columns to a specific side (start or end of the grid), so that you can now have pinning from both sides. This can be done either declaratively by setting the [`PinningPosition`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=pinningPosition) property on the column:
```razor
```
-- Or:
+ - Or:
```razor
col.PinningPosition = ColumnPinningPosition.End;
@@ -232,7 +293,7 @@ col.PinningPosition = ColumnPinningPosition.Start;
col.Pinned = true;
```
-- If property `PinningPosition` is not set on a column, the column will default to the position specified on the grid's pinning options for columns.
+ - If property [`PinningPosition`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=pinningPosition) is not set on a column, the column will default to the position specified on the grid's pinning options for columns.
- **Sorting and Grouping Improvements**
- Improved sorting algorithm efficiency using Schwartzian transformation. This is a technique, also known as decorate-sort-undecorate, which avoids recomputing the sort keys by temporarily associating them with the original data records.
@@ -241,17 +302,15 @@ col.Pinned = true;
- Optimized grouping operations.
- **Other Improvements**
- - A column's `MinWidth` and `MaxWidth` constrain the user-specified width so that it cannot go outside their bounds.
- - The [`PagingMode`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=PagingMode) property can now be set as simple strings "local" and "remote" and does not require importing the `GridPagingMode` enum.
+ - A column's [`MinWidth`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=minWidth) and [`MaxWidth`](mcp:get_api_reference?platform=blazor&component=IgbColumnState&member=maxWidth) constrain the user-specified width so that it cannot go outside their bounds.
+ - The [`PagingMode`](mcp:get_api_reference?platform=blazor&component=IgbGridBaseDirective&member=pagingMode) property can now be set as simple strings "local" and "remote" and does not require importing the [`IgbGridPagingMode`](mcp:get_api_reference?platform=blazor&component=GridPagingMode) enum.
### General
#### Added
-
- [`IgbDateRangePicker`](mcp:get_api_reference?platform=blazor&component=IgbDateRangePicker)
#### Changed
-
- Updated the readonly styles of most form associated components across all themes to better signify when a component is in a readonly state.
- [`IgbTooltip`](mcp:get_api_reference?platform=blazor&component=IgbTooltip)
- Behavioral change: [`IgbTooltip`](mcp:get_api_reference?platform=blazor&component=IgbTooltip) default placement is "bottom" now.
@@ -259,8 +318,7 @@ col.Pinned = true;
- Breaking change: [`IgbTooltip`](mcp:get_api_reference?platform=blazor&component=IgbTooltip) events will no longer return its anchor target in its detail property. You can still access it at event.target.anchor.
#### Deprecated
-
-- [`IgbTooltip`](mcp:get_api_reference?platform=blazor&component=IgbTooltip) - [`DisableArrow`](mcp:get_api_reference?platform=blazor&component=IgbTooltip&member=DisableArrow) is deprecated. Use [`WithArrow`](mcp:get_api_reference?platform=blazor&component=IgbTooltip&member=WithArrow) to render an arrow indicator.
+- [`IgbTooltip`](mcp:get_api_reference?platform=blazor&component=IgbTooltip) - [`DisableArrow`](mcp:get_api_reference?platform=blazor&component=IgbTooltip&member=disableArrow) is deprecated. Use [`WithArrow`](mcp:get_api_reference?platform=blazor&component=IgbTooltip&member=withArrow) to render an arrow indicator.
### Bug Fixes
@@ -277,26 +335,26 @@ col.Pinned = true;
**Breaking Changes**
- `AzureMapsMapImagery` was renamed to [`IgbAzureMapsImagery`](mcp:get_api_reference?platform=blazor&component=IgbAzureMapsImagery)
-- `AzureMapsImageryStyle.Imagery` was renamed to `AzureMapsImageryStyle.Satellite`
-- The following `AzureMapsImageryStyle` enum values were renamed to include the Overlay suffix:
- - `TerraOverlay`,
- - `LabelsRoadOverlay`
- - `LabelsDarkGreyOverlay`
- - `HybridRoadOverlay`
- - `HybridDarkGreyOverlay`
- - `WeatherRadarOverlay`
- - `WeatherInfraredOverlay`
- - `TrafficAbsoluteOverlay`
- - `TrafficRelativeOverlay`
- - `TrafficRelativeDarkOverlay`
- - `TrafficDelayOverlay`
- - `TrafficReducedOverlay`
+- `AzureMapsImageryStyle.Imagery` was renamed to [`AzureMapsImageryStyle.Satellite`](mcp:get_api_reference?platform=blazor&component=AzureMapsImageryStyle&member=Satellite)
+- The following `AzureMapsImageryStyle.Imagery` enum values were renamed to include the Overlay suffix:
+ - [`TerraOverlay`](mcp:get_api_reference?platform=blazor&component=AzureMapsImageryStyle&member=TerraOverlay),
+ - [`LabelsRoadOverlay`](mcp:get_api_reference?platform=blazor&component=AzureMapsImageryStyle&member=LabelsRoadOverlay)
+ - [`LabelsDarkGreyOverlay`](mcp:get_api_reference?platform=blazor&component=AzureMapsImageryStyle&member=LabelsDarkGreyOverlay)
+ - [`HybridRoadOverlay`](mcp:get_api_reference?platform=blazor&component=AzureMapsImageryStyle&member=HybridRoadOverlay)
+ - [`HybridDarkGreyOverlay`](mcp:get_api_reference?platform=blazor&component=AzureMapsImageryStyle&member=HybridDarkGreyOverlay)
+ - [`WeatherRadarOverlay`](mcp:get_api_reference?platform=blazor&component=AzureMapsImageryStyle&member=WeatherRadarOverlay)
+ - [`WeatherInfraredOverlay`](mcp:get_api_reference?platform=blazor&component=AzureMapsImageryStyle&member=WeatherInfraredOverlay)
+ - [`TrafficAbsoluteOverlay`](mcp:get_api_reference?platform=blazor&component=AzureMapsImageryStyle&member=TrafficAbsoluteOverlay)
+ - [`TrafficRelativeOverlay`](mcp:get_api_reference?platform=blazor&component=AzureMapsImageryStyle&member=TrafficRelativeOverlay)
+ - [`TrafficRelativeDarkOverlay`](mcp:get_api_reference?platform=blazor&component=AzureMapsImageryStyle&member=TrafficRelativeDarkOverlay)
+ - [`TrafficDelayOverlay`](mcp:get_api_reference?platform=blazor&component=AzureMapsImageryStyle&member=TrafficDelayOverlay)
+ - [`TrafficReducedOverlay`](mcp:get_api_reference?platform=blazor&component=AzureMapsImageryStyle&member=TrafficReducedOverlay)
### IgniteUI.Blazor (Charts)
-#### New Axis Label Events
+#### New Axis Label Events
-The following events have been added to the `DataChart` to allow you to detect different operations on the axis labels:
+The following events have been added to the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) to allow you to detect different operations on the axis labels:
- `LabelMouseDown`
- `LabelMouseUp`
@@ -305,36 +363,36 @@ The following events have been added to the `DataChart` to allow you to detect d
- `LabelMouseMove`
- `LabelMouseClick`
-#### Companion Axis
+#### Companion Axis
-Added `CompanionAxis` properties to the X and Y axis that allow you to quickly create a clone of an existing axis. When enabled using the `CompanionAxisEnabled` property, this will default the cloned axis to the opposite position of the chart and you can then configure that axes' properties.
+Added `CompanionAxis` properties to the X and Y axis that allow you to quickly create a clone of an existing axis. When enabled using the [`CompanionAxisEnabled`](mcp:get_api_reference?platform=blazor&component=IgbCategoryAngleAxis&member=companionAxisEnabled) property, this will default the cloned axis to the opposite position of the chart and you can then configure that axes' properties.
-#### RadialPieSeries Inset Outlines
+#### RadialPieSeries Inset Outlines
-There is a new property called `UseInsetOutlines` to control how outlines on the [`IgbRadialPieSeries`](mcp:get_api_reference?platform=blazor&component=IgbRadialPieSeries) are rendered. Setting this value to **true** will inset the outlines within the slice shape, whereas a **false** (default) value will place the outlines half-in half-out along the edge of the slice shape.
+There is a new property called [`UseInsetOutlines`](mcp:get_api_reference?platform=blazor&component=IgbRadialPieSeries&member=useInsetOutlines) to control how outlines on the [`IgbRadialPieSeries`](mcp:get_api_reference?platform=blazor&component=IgbRadialPieSeries) are rendered. Setting this value to **true** will inset the outlines within the slice shape, whereas a **false** (default) value will place the outlines half-in half-out along the edge of the slice shape.
**Breaking Changes**
-- A fix was made due to an issue where the `PlotAreaPosition` and `ChartPosition` properties on [`IgbChartMouseEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbChartMouseEventArgs) class were reversed. This will change the values that [`PlotAreaPosition`](mcp:get_api_reference?platform=blazor&component=IgbChartMouseEventArgs&member=PlotAreaPosition) and [`ChartPosition`](mcp:get_api_reference?platform=blazor&component=IgbChartMouseEventArgs&member=ChartPosition) return.
+- A fix was made due to an issue where the [`PlotAreaPosition`](mcp:get_api_reference?platform=blazor&component=IgbChartMouseEventArgs&member=plotAreaPosition) and [`ChartPosition`](mcp:get_api_reference?platform=blazor&component=IgbChartMouseEventArgs&member=chartPosition) properties on [`IgbChartMouseEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbChartMouseEventArgs) class were reversed. This will change the values that [`PlotAreaPosition`](mcp:get_api_reference?platform=blazor&component=IgbChartMouseEventArgs&member=plotAreaPosition) and [`ChartPosition`](mcp:get_api_reference?platform=blazor&component=IgbChartMouseEventArgs&member=chartPosition) return.
### IgniteUI.Blazor (Grids)
-#### Cell Suffix Content
+#### Cell Suffix Content
-Added support for suffix content within the cells that allows you to add additional text or icons to the end of the cell value and style it. The full list of added properties for the cell suffix content is listed below and is available on the [`IgbDataGridColumn`](mcp:get_api_reference?platform=blazor&component=IgbDataGridColumn) and `CellInfo` class:
+Added support for suffix content within the cells that allows you to add additional text or icons to the end of the cell value and style it. The full list of added properties for the cell suffix content is listed below and is available on the [`IgbDataGridColumn`](mcp:get_api_reference?platform=blazor&component=IgbDataGridColumn) and [`CellInfo`](mcp:get_api_reference?platform=blazor&component=IgbDataGridCellEventArgs&member=CellInfo) class:
-- [`SuffixText`](mcp:get_api_reference?platform=blazor&component=IgbDataGridColumn&member=SuffixText)
-- [`SuffixTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataGridColumn&member=SuffixTextColor)
+- [`SuffixText`](mcp:get_api_reference?platform=blazor&component=IgbDataGridColumn&member=suffixText)
+- [`SuffixTextColor`](mcp:get_api_reference?platform=blazor&component=IgbDataGridColumn&member=suffixTextColor)
- `SuffixTextFont`
-- [`SuffixIconName`](mcp:get_api_reference?platform=blazor&component=IgbDataGridColumn&member=SuffixIconName)
-- [`SuffixIconCollectionName`](mcp:get_api_reference?platform=blazor&component=IgbDataGridColumn&member=SuffixIconCollectionName)
-- [`SuffixIconStroke`](mcp:get_api_reference?platform=blazor&component=IgbDataGridColumn&member=SuffixIconStroke)
-- [`SuffixIconFill`](mcp:get_api_reference?platform=blazor&component=IgbDataGridColumn&member=SuffixIconFill)
-- [`SuffixIconViewBoxLeft`](mcp:get_api_reference?platform=blazor&component=IgbDataGridColumn&member=SuffixIconViewBoxLeft)
-- [`SuffixIconViewBoxTop`](mcp:get_api_reference?platform=blazor&component=IgbDataGridColumn&member=SuffixIconViewBoxTop)
-- [`SuffixIconViewBoxWidth`](mcp:get_api_reference?platform=blazor&component=IgbDataGridColumn&member=SuffixIconViewBoxWidth)
-- [`SuffixIconViewBoxHeight`](mcp:get_api_reference?platform=blazor&component=IgbDataGridColumn&member=SuffixIconViewBoxHeight)
-- [`TextDecoration`](mcp:get_api_reference?platform=blazor&component=IgbDataGridColumn&member=TextDecoration)
+- [`SuffixIconName`](mcp:get_api_reference?platform=blazor&component=IgbDataGridColumn&member=suffixIconName)
+- [`SuffixIconCollectionName`](mcp:get_api_reference?platform=blazor&component=IgbDataGridColumn&member=suffixIconCollectionName)
+- [`SuffixIconStroke`](mcp:get_api_reference?platform=blazor&component=IgbDataGridColumn&member=suffixIconStroke)
+- [`SuffixIconFill`](mcp:get_api_reference?platform=blazor&component=IgbDataGridColumn&member=suffixIconFill)
+- [`SuffixIconViewBoxLeft`](mcp:get_api_reference?platform=blazor&component=IgbDataGridColumn&member=suffixIconViewBoxLeft)
+- [`SuffixIconViewBoxTop`](mcp:get_api_reference?platform=blazor&component=IgbDataGridColumn&member=suffixIconViewBoxTop)
+- [`SuffixIconViewBoxWidth`](mcp:get_api_reference?platform=blazor&component=IgbDataGridColumn&member=suffixIconViewBoxWidth)
+- [`SuffixIconViewBoxHeight`](mcp:get_api_reference?platform=blazor&component=IgbDataGridColumn&member=suffixIconViewBoxHeight)
+- [`TextDecoration`](mcp:get_api_reference?platform=blazor&component=IgbDataGridColumn&member=textDecoration)
Please note that the maximum size available for the icons is 24x24. You can provide an icon that is larger or smaller than this, but you will need to configure the viewbox settings in order to properly scale it to fit in the 24x24 space so it is fully visible.
@@ -343,28 +401,28 @@ Please note that the maximum size available for the icons is 24x24. You can prov
| Bug Number | Control | Description |
|------------|---------|------------------|
|31624 | [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) | Resizing the containing window of the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) causes the chart to fail to render the series|
-|37307 | `CheckBox` | JS Heap, Nodes, and Listeners leakage on IgbCheckBox|
-|37930 | `DataChart` | Data Annotation Overlay Text Color not working|
-|27304 | `DataChart` | Zoom rectangle is not positioned the same as the background rectangle|
-|30600 | `DoughnutChart` | No textStyle property for either the chart or series (pie chart has this)|
-|38231 | `Grid` | Unpinned column does not return to the original position if hidden columns exist|
+|37307 | `IgbCheckBox` | JS Heap, Nodes, and Listeners leakage on IgbCheckBox|
+|37930 | [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) | Data Annotation Overlay Text Color not working|
+|27304 | [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) | Zoom rectangle is not positioned the same as the background rectangle|
+|30600 | [`IgbDoughnutChart`](mcp:get_api_reference?platform=blazor&component=IgbDoughnutChart) | No textStyle property for either the chart or series (pie chart has this)|
+|38231 | [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) | Unpinned column does not return to the original position if hidden columns exist|
|33861 | Excel Library | Adding line chart corrupts excel File for German culture|
### Enhancements
#### IgbBulletGraph
-- Added new `LabelsVisible` property
+- Added new [`LabelsVisible`](mcp:get_api_reference?platform=blazor&component=IgbLinearGauge&member=labelsVisible) property
#### Charts
- New properties added to the DataToolTipLayer, ItemToolTipLayer, and CategoryToolTipLayer to aid in styling: `ToolTipBackground`, `ToolTipBorderBrush`, and `ToolTipBorderThickness`
-- New properties added to the DataLegend to aid in styling: `ContentBackground`, `ContentBorderBrush`, and `ContentBorderThickness`. The `ContentBorderBrush` and `ContentBorderThickness` default to transparent and 0 respectively, so in order to see these borders, you will need to set these properties.
+- New properties added to the DataLegend to aid in styling: [`ContentBackground`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=contentBackground), [`ContentBorderBrush`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=contentBorderBrush), and [`ContentBorderThickness`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=contentBorderThickness). The [`ContentBorderBrush`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=contentBorderBrush) and [`ContentBorderThickness`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=contentBorderThickness) default to transparent and 0 respectively, so in order to see these borders, you will need to set these properties.
-- Added a new property to [`IgbChartMouseEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbChartMouseEventArgs) called [`WorldPosition`](mcp:get_api_reference?platform=blazor&component=IgbChartMouseEventArgs&member=WorldPosition) that provides the world relative position of the mouse. This position will be a value between 0 and 1 for both the X and Y axis within the axis space.
+- Added a new property to [`IgbChartMouseEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbChartMouseEventArgs) called [`WorldPosition`](mcp:get_api_reference?platform=blazor&component=IgbChartMouseEventArgs&member=worldPosition) that provides the world relative position of the mouse. This position will be a value between 0 and 1 for both the X and Y axis within the axis space.
-- Added [`HighlightingFadeOpacity`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=HighlightingFadeOpacity) to [`IgbSeriesViewer`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer) and [`IgbDomainChart`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart). This allows you to configure the opacity applied to highlighted series.
+- Added [`HighlightingFadeOpacity`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=highlightingFadeOpacity) to [`IgbSeriesViewer`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer) and [`IgbDomainChart`](mcp:get_api_reference?platform=blazor&component=IgbDomainChart). This allows you to configure the opacity applied to highlighted series.
#### IgbDataGrid
@@ -372,15 +430,15 @@ Please note that the maximum size available for the icons is 24x24. You can prov
#### IgbLinearGauge
-- Added new `LabelsVisible` property
+- Added new [`LabelsVisible`](mcp:get_api_reference?platform=blazor&component=IgbLinearGauge&member=labelsVisible) property
## **25.1.63 (August 2025)**
### IgniteUI.Blazor (Geographic Map)
-#### Azure Map Imagery Support
+#### Azure Map Imagery Support
-The `GeographicMap` now supports Azure-based map imagery, allowing developers to display detailed, dynamic maps across multiple application types. You can combine multiple map layers, visualize geographic data, and create interactive mapping experiences with ease.
+The [`IgbGeographicMap`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap) now supports Azure-based map imagery, allowing developers to display detailed, dynamic maps across multiple application types. You can combine multiple map layers, visualize geographic data, and create interactive mapping experiences with ease.
Note: Support for Bing Maps imagery is being phased out. Existing enterprise keys can still be used to access Bing Maps, ensuring your current applications continue to function while you transition to Azure maps.
@@ -392,25 +450,23 @@ Explore some of the publicly available [Azure maps here](https://azure.microsoft
|------------|---------|------------------|
|26952 | [`IgbTabs`](mcp:get_api_reference?platform=blazor&component=IgbTabs) | e.Detail is null in Change event in Razor/JS|
|26953 | [`IgbTabs`](mcp:get_api_reference?platform=blazor&component=IgbTabs) | Marking a tab selected won't apply on subsequent attempts|
-|31910 | `XDatePicker` | An error will happen when I bind a value using the "@bind-Value" syntax and click the clear button|
-|31323 | `DataChart`, `Grid`, [`IgbCombo`](mcp:get_api_reference?platform=blazor&component=IgbCombo) | A NullReferenceException happens when the data type has a collection-type property, and the 1st element of that collection is null|
+|31910 | [`IgbXDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbXDatePicker) | An error will happen when I bind a value using the "@bind-Value" syntax and click the clear button|
+|31323 | [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart), [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid), `IgbCombo` | A NullReferenceException happens when the data type has a collection-type property, and the 1st element of that collection is null|
|38903 | [`IgbTabs`](mcp:get_api_reference?platform=blazor&component=IgbTabs) | Dropdown list is not displaying in the correct location for components inside the tab|
-|[139](https://github.com/IgniteUI/igniteui-blazor/issues/139) | `DatePicker`, [`IgbDateTimeInput`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput) | Date picker and data time input do not support nullable values|
+|[139](https://github.com/IgniteUI/igniteui-blazor/issues/139) | [`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker), [`IgbDateTimeInput`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput) | Date picker and data time input do not support nullable values|
### General
-
The following properties of these components are now nullable:
-
-- [`IgbButton`](mcp:get_api_reference?platform=blazor&component=IgbButton): `Form`
-- [`IgbCalendar`](mcp:get_api_reference?platform=blazor&component=IgbCalendar): `SpecialDates`, `DisabledDates`
-- [`IgbCombo`](mcp:get_api_reference?platform=blazor&component=IgbCombo): [`ValueKey`](mcp:get_api_reference?platform=blazor&component=IgbCombo&member=ValueKey), [`DisplayKey`](mcp:get_api_reference?platform=blazor&component=IgbCombo&member=DisplayKey), [`GroupKey`](mcp:get_api_reference?platform=blazor&component=IgbCombo&member=GroupKey)
-- `DatePicker`: [`Value`](mcp:get_api_reference?platform=blazor&component=IgbCombo&member=Value), `Min`, `Max`
-- `DateTimePicker`: [`Value`](mcp:get_api_reference?platform=blazor&component=IgbCombo&member=Value), `Min`, `Max`
-- [`IgbDropdown`](mcp:get_api_reference?platform=blazor&component=IgbDropdown): [`SelectedItem`](mcp:get_api_reference?platform=blazor&component=IgbDropdown&member=SelectedItem)
-- [`IgbInput`](mcp:get_api_reference?platform=blazor&component=IgbInput): [`Pattern`](mcp:get_api_reference?platform=blazor&component=IgbInput&member=Pattern), [`MinLength`](mcp:get_api_reference?platform=blazor&component=IgbInput&member=MinLength), [`MaxLength`](mcp:get_api_reference?platform=blazor&component=IgbInput&member=MaxLength), [`Min`](mcp:get_api_reference?platform=blazor&component=IgbInput&member=Min), [`Max`](mcp:get_api_reference?platform=blazor&component=IgbInput&member=Max), [`Step`](mcp:get_api_reference?platform=blazor&component=IgbInput&member=Step)
-- [`Select`](mcp:get_api_reference?platform=blazor&component=IgbInput&member=Select): [`Value`](mcp:get_api_reference?platform=blazor&component=IgbInput&member=Value), `SelectedItem`
-- [`IgbTile`](mcp:get_api_reference?platform=blazor&component=IgbTile): [`ColStart`](mcp:get_api_reference?platform=blazor&component=IgbTile&member=ColStart), [`RowStart`](mcp:get_api_reference?platform=blazor&component=IgbTile&member=RowStart)
-- [`IgbTileManager`](mcp:get_api_reference?platform=blazor&component=IgbTileManager): [`MinColumnWidth`](mcp:get_api_reference?platform=blazor&component=IgbTileManager&member=MinColumnWidth), [`MinRowHeight`](mcp:get_api_reference?platform=blazor&component=IgbTileManager&member=MinRowHeight), [`Gap`](mcp:get_api_reference?platform=blazor&component=IgbTileManager&member=Gap)
+- [`IgbButton`](mcp:get_api_reference?platform=blazor&component=IgbButton): [`Form`](mcp:get_api_reference?platform=blazor&component=IgbButton&member=form)
+- [`IgbCalendar`](mcp:get_api_reference?platform=blazor&component=IgbCalendar): [`SpecialDates`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=specialDates), [`DisabledDates`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=disabledDates)
+- [`IgbCombo`](mcp:get_api_reference?platform=blazor&component=IgbComboModule): [`ValueKey`](mcp:get_api_reference?platform=blazor&component=IgbComboModule&member=valueKey), [`DisplayKey`](mcp:get_api_reference?platform=blazor&component=IgbComboModule&member=displayKey), [`GroupKey`](mcp:get_api_reference?platform=blazor&component=IgbComboModule&member=groupKey)
+- [`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker): [`Value`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=value), [`Min`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=min), [`Max`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=max)
+- `DateTimePicker`: [`Value`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=value), [`Min`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=min), [`Max`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=max)
+- [`IgbDropdown`](mcp:get_api_reference?platform=blazor&component=IgbDropdown): [`SelectedItem`](mcp:get_api_reference?platform=blazor&component=IgbPieChartBase&member=selectedItem)
+- [`IgbInput`](mcp:get_api_reference?platform=blazor&component=IgbInput): [`Pattern`](mcp:get_api_reference?platform=blazor&component=IgbInput&member=pattern), [`MinLength`](mcp:get_api_reference?platform=blazor&component=IgbInput&member=minLength), [`MaxLength`](mcp:get_api_reference?platform=blazor&component=IgbInput&member=maxLength), [`Min`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=min), [`Max`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=max), [`IgbStep`](mcp:get_api_reference?platform=blazor&component=IgbStep)
+- [`Select`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=select): [`Value`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=value), [`SelectedItem`](mcp:get_api_reference?platform=blazor&component=IgbPieChartBase&member=selectedItem)
+- [`IgbTile`](mcp:get_api_reference?platform=blazor&component=IgbTile): [`ColStart`](mcp:get_api_reference?platform=blazor&component=IgbColumnState&member=colStart), [`RowStart`](mcp:get_api_reference?platform=blazor&component=IgbTile&member=rowStart)
+- [`IgbTileManager`](mcp:get_api_reference?platform=blazor&component=IgbTileManager): [`MinColumnWidth`](mcp:get_api_reference?platform=blazor&component=IgbTileManager&member=minColumnWidth), [`MinRowHeight`](mcp:get_api_reference?platform=blazor&component=IgbTileManager&member=minRowHeight), [`Gap`](mcp:get_api_reference?platform=blazor&component=IgbTileManager&member=gap)
## **25.1.46 (July 2025)**
@@ -418,126 +474,128 @@ The following properties of these components are now nullable:
| Bug Number | Control | Description |
|------------|---------|------------------|
-|36448 | `RadialGauge` | Radial label format properties do not work. (eg. Title, SubTitles)|
+|36448 | [`IgbRadialGauge`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge) | Radial label format properties do not work. (eg. Title, SubTitles)|
|37718 | [`IgbTab`](mcp:get_api_reference?platform=blazor&component=IgbTab) | Unexpected scrolling occurred when a new row was added to a grid that is in a tab panel|
-|37855 | `Grid` | Crypto.randomUID not found error is thrown if a grid contains HeaderTemplate and the page is accessed using unsecured(http) protocol|
+|37855 | [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) | Crypto.randomUID not found error is thrown if a grid contains HeaderTemplate and the page is accessed using unsecured(http) protocol|
### IgniteUI.Blazor (Charts)
-- Added `MaximumExtent` and `MaximumExtentPercentage` properties for use with axis labels.
+- Added `MaximumExtent` and `MaximumExtentPercentage` properties for use with axis labels.
## **25.1.19 (June 2025)**
### IgniteUI.Blazor (Geographic Map)
-> [!Note]
-> As of June 30, 2025 all Microsoft Bing Maps for Enterprise Basic (Free) accounts will be retired. If you're still using an unpaid Basic Account and key, now is the time to act to avoid service disruptions. Bing Maps for Enterprise license holders can continue to use Bing Maps in their applications until June 30,2028.
-> For more details please visit:
+**Note:**
+As of June 30, 2025 all Microsoft Bing Maps for Enterprise Basic (Free) accounts will be retired. If you're still using an unpaid Basic Account and key, now is the time to act to avoid service disruptions. Bing Maps for Enterprise license holders can continue to use Bing Maps in their applications until June 30,2028.
+For more details please visit:
[Microsoft Bing Blogs](https://blogs.bing.com/maps/2025-06/Bing-Maps-for-Enterprise-Basic-Account-shutdown-June-30,2025)
### IgniteUI.Blazor (Charts)
-- Added [Chart Data Annotations](charts/features/chart-data-annotations.md) layers:
+- Added [Chart Data Annotations](./charts/features/chart-data-annotations.md) layers:
- Data Annotation Band Layer
- Data Annotation Line Layer
- Data Annotation Rect Layer
- Data Annotation Slice Layer
- Data Annotation Strip Layer
-- The [Data Tooltip](charts/features/chart-data-tooltip.md) and [Data Legend](charts/features/chart-data-legend.md) expose `LayoutMode` property that you can use to layout the contents of the tooltip or legend in a table or vertical layout structure.
+- The [Data Tooltip](./charts/features/chart-data-tooltip.md) and [Data Legend](./charts/features/chart-data-legend.md) expose [`LayoutMode`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=layoutMode) property that you can use to layout the contents of the tooltip or legend in a table or vertical layout structure.
-- The [`DefaultInteraction`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=DefaultInteraction) property of the charts has been updated to include a new enumeration - `DragSelect` in which the dragged preview Rect will select the points contained within.
+- The [`DefaultInteraction`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=defaultInteraction) property of the charts has been updated to include a new enumeration - `DragSelect` in which the dragged preview Rect will select the points contained within.
-- The [ValueOverlay and ValueLayer](charts/features/chart-overlays.md), in addition to the [Chart Data Annotations](charts/features/chart-data-annotations.md) listed above now expose an `OverlayText` property that can be used to overlay additional annotation text in the plot area. These appearance of these annotations can be configured by using the many OverlayText-prefixed properties. For example, the `OverlayTextBrush` property will configure the color of the overlay text.
+- The [ValueOverlay and ValueLayer](./charts/features/chart-overlays.md), in addition to the [Chart Data Annotations](./charts/features/chart-data-annotations.md) listed above now expose an [`OverlayText`](mcp:get_api_reference?platform=blazor&component=IgbValueLayer&member=overlayText) property that can be used to overlay additional annotation text in the plot area. These appearance of these annotations can be configured by using the many OverlayText-prefixed properties. For example, the `OverlayTextBrush` property will configure the color of the overlay text.
-- [Trendline Layer](charts/features/chart-trendlines.md) series type that allows you to apply a single trend line per trend line layer to a particular series. This allows the usage of multiple trend lines on a single series since you can have multiple [TrendlineLayer](charts/features/chart-overlays.md) series types in the chart.
+- [Trendline Layer](./charts/features/chart-trendlines.md) series type that allows you to apply a single trend line per trend line layer to a particular series. This allows the usage of multiple trend lines on a single series since you can have multiple [TrendlineLayer](./charts/features/chart-overlays.md) series types in the chart.
### General
+- [`IgbTooltip`](mcp:get_api_reference?platform=blazor&component=IgbTooltip) component provides a way to display a tooltip for a specific element. To use, set content as desired and link via the [`Anchor`](mcp:get_api_reference?platform=blazor&component=IgbTooltip&member=anchor) property to the target element's id:
-- [`IgbTooltip`](mcp:get_api_reference?platform=blazor&component=IgbTooltip) component provides a way to display a tooltip for a specific element. To use, set content as desired and link via the [`Anchor`](mcp:get_api_reference?platform=blazor&component=IgbTooltip&member=Anchor) property to the target element's id:
- ```razor
- Hover me
-
- You've hovered the button! 🎉
-
- ```
- The tooltip can be further customized with `Show/HideDelay`, [`Placement`](mcp:get_api_reference?platform=blazor&component=IgbTooltip&member=Placement) around the target and customizable `Show/HideTriggers` events.
+```razor
+Hover me
+
+ You've hovered the button! 🎉
+
+```
+
+ The tooltip can be further customized with `Show/HideDelay`, [`Placement`](mcp:get_api_reference?platform=blazor&component=IgbTooltip&member=placement) around the target and customizable `Show/HideTriggers` events.
### Changes
- A number of enumerations have been renamed and/or merged with others. Renames (with affected components):
- - `BaseAlertLikePosition` ([`IgbSnackbar`](mcp:get_api_reference?platform=blazor&component=IgbSnackbar) and [`IgbToast`](mcp:get_api_reference?platform=blazor&component=IgbToast)) has been renamed to `AbsolutePosition`
- - `ButtonGroupAlignment` ([`IgbButtonGroup`](mcp:get_api_reference?platform=blazor&component=IgbButtonGroup)), `CalendarOrientation` ([`IgbCalendar`](mcp:get_api_reference?platform=blazor&component=IgbCalendar)), `CardActionsOrientation` ([`IgbCardActions`](mcp:get_api_reference?platform=blazor&component=IgbCardActions)), `DatePickerOrientation` (`DatePicker`), `RadioGroupAlignment` ([`IgbRadioGroup`](mcp:get_api_reference?platform=blazor&component=IgbRadioGroup)) have been merged and renamed to `ContentOrientation`
- - `CalendarBaseSelection` ([`IgbCalendar`](mcp:get_api_reference?platform=blazor&component=IgbCalendar)) has been renamed to `CalendarSelection`
- - `CarouselAnimationType` ([`IgbCarousel`](mcp:get_api_reference?platform=blazor&component=IgbCarousel)) and `StepperHorizontalAnimation` ([`IgbStepper`](mcp:get_api_reference?platform=blazor&component=IgbStepper)) have been merged and renamed to `HorizontalTransitionAnimation`
- - `CheckboxBaseLabelPosition` ([`IgbCheckbox`](mcp:get_api_reference?platform=blazor&component=IgbCheckbox) and [`IgbSwitch`](mcp:get_api_reference?platform=blazor&component=IgbSwitch)) and `RadioLabelPosition` ([`IgbRadio`](mcp:get_api_reference?platform=blazor&component=IgbRadio)) have been merged and renamed to `ToggleLabelPosition`
- - `DatePickerMode` (`DatePicker`) has been renamed to `PickerMode`
- - `DatePickerHeaderOrientation` (`DatePicker`) has been renamed to/merged with `CalendarHeaderOrientation`
- - `DropdownPlacement` ([`IgbDropdown`](mcp:get_api_reference?platform=blazor&component=IgbDropdown) and [`Select`](mcp:get_api_reference?platform=blazor&component=IgbDropdown&member=Select)) has been renamed to `PopoverPlacement`
- - `DropdownScrollStrategy` ([`IgbDropdown`](mcp:get_api_reference?platform=blazor&component=IgbDropdown)) and `SelectScrollStrategy` ([`Select`](mcp:get_api_reference?platform=blazor&component=IgbDropdown&member=Select)) have been merged and renamed to `PopoverScrollStrategy`
- - `SliderBaseTickOrientation` ([`IgbSlider`](mcp:get_api_reference?platform=blazor&component=IgbSlider) and [`IgbRangeSlider`](mcp:get_api_reference?platform=blazor&component=IgbRangeSlider)) has been renamed to `SliderTickOrientation`
- - `TickLabelRotation` ([`IgbSlider`](mcp:get_api_reference?platform=blazor&component=IgbSlider) and [`IgbRangeSlider`](mcp:get_api_reference?platform=blazor&component=IgbRangeSlider)) has been renamed to `SliderTickLabelRotation`
+ - [`IgbBaseAlertLikePosition`](mcp:get_api_reference?platform=blazor&component=BaseAlertLikePosition) ([`IgbSnackbar`](mcp:get_api_reference?platform=blazor&component=IgbSnackbar) and [`IgbToast`](mcp:get_api_reference?platform=blazor&component=IgbToast)) has been renamed to [`IgbAbsolutePosition`](mcp:get_api_reference?platform=blazor&component=AbsolutePosition)
+ - [`IgbButtonGroupAlignment`](mcp:get_api_reference?platform=blazor&component=ButtonGroupAlignment) ([`IgbButtonGroup`](mcp:get_api_reference?platform=blazor&component=IgbButtonGroup)), [`IgbCalendarOrientation`](mcp:get_api_reference?platform=blazor&component=CalendarOrientation) ([`IgbCalendar`](mcp:get_api_reference?platform=blazor&component=IgbCalendar)), [`IgbCardActionsOrientation`](mcp:get_api_reference?platform=blazor&component=CardActionsOrientation) ([`IgbCardActions`](mcp:get_api_reference?platform=blazor&component=IgbCardActions)), [`IgbDatePickerOrientation`](mcp:get_api_reference?platform=blazor&component=DatePickerOrientation) ([`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker)), [`IgbRadioGroupAlignment`](mcp:get_api_reference?platform=blazor&component=RadioGroupAlignment) ([`IgbRadioGroup`](mcp:get_api_reference?platform=blazor&component=IgbRadioGroup)) have been merged and renamed to [`IgbContentOrientation`](mcp:get_api_reference?platform=blazor&component=ContentOrientation)
+ - [`IgbCalendarBaseSelection`](mcp:get_api_reference?platform=blazor&component=CalendarBaseSelection) ([`IgbCalendar`](mcp:get_api_reference?platform=blazor&component=IgbCalendar)) has been renamed to [`IgbCalendarSelection`](mcp:get_api_reference?platform=blazor&component=CalendarSelection)
+ - [`IgbCarouselAnimationType`](mcp:get_api_reference?platform=blazor&component=CarouselAnimationType) ([`IgbCarousel`](mcp:get_api_reference?platform=blazor&component=IgbCarousel)) and [`IgbStepperHorizontalAnimation`](mcp:get_api_reference?platform=blazor&component=StepperHorizontalAnimation) ([`IgbStepper`](mcp:get_api_reference?platform=blazor&component=IgbStepper)) have been merged and renamed to [`IgbHorizontalTransitionAnimation`](mcp:get_api_reference?platform=blazor&component=HorizontalTransitionAnimation)
+ - [`IgbCheckboxBaseLabelPosition`](mcp:get_api_reference?platform=blazor&component=CheckboxBaseLabelPosition) ([`IgbCheckbox`](mcp:get_api_reference?platform=blazor&component=IgbCheckbox) and [`IgbSwitch`](mcp:get_api_reference?platform=blazor&component=IgbSwitch)) and [`IgbRadioLabelPosition`](mcp:get_api_reference?platform=blazor&component=RadioLabelPosition) ([`IgbRadio`](mcp:get_api_reference?platform=blazor&component=IgbRadio)) have been merged and renamed to [`IgbToggleLabelPosition`](mcp:get_api_reference?platform=blazor&component=ToggleLabelPosition)
+ - [`IgbDatePickerMode`](mcp:get_api_reference?platform=blazor&component=DatePickerMode) ([`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker)) has been renamed to [`IgbPickerMode`](mcp:get_api_reference?platform=blazor&component=PickerMode)
+ - [`IgbDatePickerHeaderOrientation`](mcp:get_api_reference?platform=blazor&component=DatePickerHeaderOrientation) ([`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker)) has been renamed to/merged with [`IgbCalendarHeaderOrientation`](mcp:get_api_reference?platform=blazor&component=CalendarHeaderOrientation)
+ - [`IgbDropdownPlacement`](mcp:get_api_reference?platform=blazor&component=DropdownPlacement) ([`IgbDropdown`](mcp:get_api_reference?platform=blazor&component=IgbDropdown) and [`Select`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=select)) has been renamed to [`IgbPopoverPlacement`](mcp:get_api_reference?platform=blazor&component=PopoverPlacement)
+ - [`IgbDropdownScrollStrategy`](mcp:get_api_reference?platform=blazor&component=DropdownScrollStrategy) ([`IgbDropdown`](mcp:get_api_reference?platform=blazor&component=IgbDropdown)) and [`IgbSelectScrollStrategy`](mcp:get_api_reference?platform=blazor&component=SelectScrollStrategy) ([`Select`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=select)) have been merged and renamed to [`IgbPopoverScrollStrategy`](mcp:get_api_reference?platform=blazor&component=PopoverScrollStrategy)
+ - [`IgbSliderBaseTickOrientation`](mcp:get_api_reference?platform=blazor&component=SliderBaseTickOrientation) ([`IgbSlider`](mcp:get_api_reference?platform=blazor&component=IgbSlider) and [`IgbRangeSlider`](mcp:get_api_reference?platform=blazor&component=IgbRangeSlider)) has been renamed to [`IgbSliderTickOrientation`](mcp:get_api_reference?platform=blazor&component=SliderTickOrientation)
+ - [`TickLabelRotation`](mcp:get_api_reference?platform=blazor&component=IgbSlider&member=tickLabelRotation) ([`IgbSlider`](mcp:get_api_reference?platform=blazor&component=IgbSlider) and [`IgbRangeSlider`](mcp:get_api_reference?platform=blazor&component=IgbRangeSlider)) has been renamed to [`IgbSliderTickLabelRotation`](mcp:get_api_reference?platform=blazor&component=SliderTickLabelRotation)
- [`IgbTabs`](mcp:get_api_reference?platform=blazor&component=IgbTabs)
- Simplified configuration by removing the need to define separate panel and linking the panel and tab header. The `Panel` property and the `TabPanel` itself have been removed. Content can be now assigned directly to the [`IgbTab`](mcp:get_api_reference?platform=blazor&component=IgbTab) and header text can be set conveniently via the new [`Label`](mcp:get_api_reference?platform=blazor&component=IgbTab&member=Label) property or by projecting an element to `slot="label"` for more involved customization.
- Before:
-
- ```razor
-
- Basics
- Details
-
-
-
- Disabled
- Basics tab content
- Details tab content
- Favorite tab content
- Disabled tab content will not be displayed
-
- ```
+ Simplified configuration by removing the need to define separate panel and linking the panel and tab header. The `Panel` property and the `IgbTabPanel` itself have been removed. Content can be now assigned directly to the [`IgbTab`](mcp:get_api_reference?platform=blazor&component=IgbTab) and header text can be set conveniently via the new [`Label`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=label) property or by projecting an element to `slot="label"` for more involved customization.
+ Before:
+
+```razor
+
+ Basics
+ Details
+
+
+
+ Disabled
+ Basics tab content
+ Details tab content
+ Favorite tab content
+ Disabled tab content will not be displayed
+
+```
+
+ After:
+
+```razor
+
+
+ Basics tab content
+
+
+ Details tab content
+
+
+
+ Favorite tab content
+
+
+ Disabled tab content will not be displayed
+
+
+```
- After:
-
- ```razor
-
-
- Basics tab content
-
-
- Details tab content
-
-
-
- Favorite tab content
-
-
- Disabled tab content will not be displayed
-
-
- ```
- [`IgbInput`](mcp:get_api_reference?platform=blazor&component=IgbInput)
- - [`Min`](mcp:get_api_reference?platform=blazor&component=IgbInput&member=Min) & [`Max`](mcp:get_api_reference?platform=blazor&component=IgbInput&member=Max) are now `double` instead of `string`
+ - [`Min`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=min) & [`Max`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=max) are now `double` instead of `string`
- [`IgbStepper`](mcp:get_api_reference?platform=blazor&component=IgbStepper)
- - `ActiveStepChangingArgsEventArgs` has been renamed to [`IgbActiveStepChangingEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbActiveStepChangingEventArgs)
- - `ActiveStepChangedArgsEventArgs` has been renamed to [`IgbActiveStepChangedEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbActiveStepChangedEventArgs)
- - `StepperTitlePosition` now defaults to `Auto` to correctly reflect the default behavior
+ - [`IgbActiveStepChangingArgsEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbActiveStepChangingArgsEventArgs) has been renamed to [`IgbActiveStepChangingEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbActiveStepChangingEventArgs)
+ - [`IgbActiveStepChangedArgsEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbActiveStepChangedArgsEventArgs) has been renamed to [`IgbActiveStepChangedEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbActiveStepChangedEventArgs)
+ - [`IgbStepperTitlePosition`](mcp:get_api_reference?platform=blazor&component=StepperTitlePosition) now defaults to `Auto` to correctly reflect the default behavior
- [`IgbTree`](mcp:get_api_reference?platform=blazor&component=IgbTree)
- - `TreeSelectionChangeEventArgs` has been renamed to [`IgbTreeSelectionEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbTreeSelectionEventArgs)
+ - [`IgbTreeSelectionChangeEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbTreeSelectionChangeEventArgs) has been renamed to [`IgbTreeSelectionEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbTreeSelectionEventArgs)
- [`IgbTextarea`](mcp:get_api_reference?platform=blazor&component=IgbTextarea)
- - [`Autocapitalize`](mcp:get_api_reference?platform=blazor&component=IgbTextarea&member=Autocapitalize) & [`InputMode`](mcp:get_api_reference?platform=blazor&component=IgbTextarea&member=InputMode) are now `string` properties instead of explicit enums
+ - [`Autocapitalize`](mcp:get_api_reference?platform=blazor&component=IgbTextarea&member=autocapitalize) & [`InputMode`](mcp:get_api_reference?platform=blazor&component=IgbInput&member=inputMode) are now `string` properties instead of explicit enums
### IgniteUI.Blazor (Grids)
- [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn)
- Added events: `HiddenChange`, `ExpandedChange`, `WidthChange`, `PinnedChange`
-- `Grid`
+- [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
- Added events: `GroupingExpressionsChange`, `GroupingExpansionStateChange`
- [`IgbRowIsland`](mcp:get_api_reference?platform=blazor&component=IgbRowIsland)
- - Added new parameter `ParentRowData` in [`IgbGridCreatedEventArgsDetail`](mcp:get_api_reference?platform=blazor&component=IgbGridCreatedEventArgsDetail) args for `GridCreated` event
-- [`Grid`](mcp:get_api_reference?platform=blazor&component=IgbGridCreatedEventArgsDetail&member=Grid), [`IgbHierarchicalGrid`](mcp:get_api_reference?platform=blazor&component=IgbHierarchicalGrid), [`IgbTreeGrid`](mcp:get_api_reference?platform=blazor&component=IgbTreeGrid)
- - Added property - `ExpansionStates` - represents a list of key-value pairs \[row ID, expansion state].
+ - Added new parameter [`ParentRowData`](mcp:get_api_reference?platform=blazor&component=IgbGridCreatedEventArgsDetail&member=parentRowData) in [`IgbGridCreatedEventArgsDetail`](mcp:get_api_reference?platform=blazor&component=IgbGridCreatedEventArgsDetail) args for `GridCreated` event
+- [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid), [`IgbHierarchicalGrid`](mcp:get_api_reference?platform=blazor&component=IgbHierarchicalGrid), [`IgbTreeGrid`](mcp:get_api_reference?platform=blazor&component=IgbTreeGrid)
+ - Added property - [`ExpansionStates`](mcp:get_api_reference?platform=blazor&component=IgbGridBaseDirective&member=expansionStates) - represents a list of key-value pairs [row ID, expansion state].
- Added event: `ExpansionStatesChange`
- Type of `Rendered` event is changed from `VoidHandler` to `ComponentBoolValueChangedEventHandler`
- Type of DataChanging event is changed from `ForOfDataChangingEventHandler` to `ForOfDataChangeEventHandler`
@@ -547,25 +605,23 @@ The following properties of these components are now nullable:
### IgniteUI.Blazor (Dashboards)
-- The [`IgbDashboardTile`](mcp:get_api_reference?platform=blazor&component=IgbDashboardTile) now supports propagating the aggregations from its DataGrid view to the chart visualization such as sorting, grouping, filtering and selection. This is currently supported by binding the `DataSource` of the [`IgbDashboardTile`](mcp:get_api_reference?platform=blazor&component=IgbDashboardTile) to an instance of [`IgbLocalDataSource`](mcp:get_api_reference?platform=blazor&component=IgbLocalDataSource).
+- The [`IgbDashboardTile`](mcp:get_api_reference?platform=blazor&component=IgbDashboardTile) now supports propagating the aggregations from its DataGrid view to the chart visualization such as sorting, grouping, filtering and selection. This is currently supported by binding the [`IgbDataSource`](mcp:get_api_reference?platform=blazor&component=DataSource) of the [`IgbDashboardTile`](mcp:get_api_reference?platform=blazor&component=IgbDashboardTile) to an instance of [`IgbLocalDataSource`](mcp:get_api_reference?platform=blazor&component=IgbLocalDataSource).
### Enhancements
#### Toolbar
-
- Value layers added from the toolbar now appear on the legend.
- The zoom reset tool has been moved to the zoom drop-down.
#### Data Pie Chart
-
- The chart now exposes a `GetOthersContext()` method. This will return the contents of the "others" slice.
### Bug Fixes
| Bug Number | Control | Description |
|------------|---------|------------------|
-|25997 | `DataGrid` | Summaries are only showing for first grouped child row|
-|37023 | `DataChart` | Tooltips are cut-off/offscreen if overflow hidden is set.|
+|25997 | [`IgbDataGrid`](mcp:get_api_reference?platform=blazor&component=IgbDataGrid) | Summaries are only showing for first grouped child row|
+|37023 | [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) | Tooltips are cut-off/offscreen if overflow hidden is set.|
|37244 | Excel Library | Custom Data Validation is not working|
## **24.2.122 (May 2025)**
@@ -575,7 +631,7 @@ The following properties of these components are now nullable:
| Bug Number | Control | Description |
|------------|---------|------------------|
|37271 | [`IgbHierarchicalGrid`](mcp:get_api_reference?platform=blazor&component=IgbHierarchicalGrid) | ParentRowData included to IGridCreatedEventArgs|
-|37681 | `DataChart` | Category Chart - values labels are should appear above columns when there is adequate space|
+|37681 | [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) | Category Chart - values labels are should appear above columns when there is adequate space|
|37244 | Excel Library | Custom Data Validation is not working|
## **24.2.111 (April 2025)**
@@ -587,25 +643,23 @@ The following properties of these components are now nullable:
### Enhancements
#### List
-
-- Added new property on [`IgbListItem`](mcp:get_api_reference?platform=blazor&component=IgbListItem) called [`Selected`](mcp:get_api_reference?platform=blazor&component=IgbListItem&member=Selected)
+- Added new property on [`IgbListItem`](mcp:get_api_reference?platform=blazor&component=IgbListItem) called [`Selected`](mcp:get_api_reference?platform=blazor&component=IgbTabs&member=selected)
#### Accordion
-
-- Added new events `Open` and `Close`
+- Added new events [`Open`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=open) and `Close`
### IgniteUI.Blazor
- **All Grids**
- - Allow applying initial filtering through [`FilteringExpressionsTree`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=FilteringExpressionsTree) property
+ - Allow applying initial filtering through [`IgbFilteringExpressionsTree`](mcp:get_api_reference?platform=blazor&component=IgbFilteringExpressionsTree) property
### Bug Fixes
| Bug Number | Control | Description |
|------------|---------|------------------|
-|25602 | `DataGrid` | Loading a layout with one of the date-specific filter operators results in a TypeError console error|
-|28480 | [`IgbCombo`](mcp:get_api_reference?platform=blazor&component=IgbCombo) | Undefined reference error is thrown when a datasource is replaced|
-|32598 | `DataGrid` | Multi-selection is not working correctly
+|25602 | [`IgbDataGrid`](mcp:get_api_reference?platform=blazor&component=IgbDataGrid) | Loading a layout with one of the date-specific filter operators results in a TypeError console error|
+|28480 | `IgbCombo` | Undefined reference error is thrown when a datasource is replaced|
+|32598 | [`IgbDataGrid`](mcp:get_api_reference?platform=blazor&component=IgbDataGrid) | Multi-selection is not working correctly
|36374 | [`IgbInput`](mcp:get_api_reference?platform=blazor&component=IgbInput) | A previous value was bound when a form was submitted on any touch device|
|37214|General|Intermittent error in Blazor's WebCallback.Register()
@@ -614,7 +668,7 @@ The following properties of these components are now nullable:
### IgniteUI.Blazor
- **All Grids**
- - Added new `DisabledSummaries` for the columns of the grid, allowing the developers to skip some of the summaries
+ - Added new [`DisabledSummaries`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=disabledSummaries) for the columns of the grid, allowing the developers to skip some of the summaries
- Encapsulate internal grid action button
### Bug Fixes
@@ -629,9 +683,9 @@ The following properties of these components are now nullable:
#### Toolbar
-- Added new `GroupHeaderTextStyle` property to [`Toolbar`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=Toolbar) and [`IgbToolPanel`](mcp:get_api_reference?platform=blazor&component=IgbToolPanel). If set, it will apply to all [`IgbToolActionGroupHeader`](mcp:get_api_reference?platform=blazor&component=IgbToolActionGroupHeader) actions.
-- Added new property on [`IgbToolAction`](mcp:get_api_reference?platform=blazor&component=IgbToolAction) called [`TitleHorizontalAlignment`](mcp:get_api_reference?platform=blazor&component=IgbToolAction&member=TitleHorizontalAlignment) which controls the horizontal alignment of the title text.
-- Added new property on [`IgbToolActionSubPanel`](mcp:get_api_reference?platform=blazor&component=IgbToolActionSubPanel) called [`ItemSpacing`](mcp:get_api_reference?platform=blazor&component=IgbToolActionSubPanel&member=ItemSpacing) which controls the spacing between items inside the panel.
+- Added new `GroupHeaderTextStyle` property to [`Toolbar`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=toolbar) and [`IgbToolPanel`](mcp:get_api_reference?platform=blazor&component=IgbToolPanel). If set, it will apply to all [`IgbToolActionGroupHeader`](mcp:get_api_reference?platform=blazor&component=IgbToolActionGroupHeader) actions.
+- Added new property on [`IgbToolAction`](mcp:get_api_reference?platform=blazor&component=IgbToolAction) called [`TitleHorizontalAlignment`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=titleHorizontalAlignment) which controls the horizontal alignment of the title text.
+- Added new property on [`IgbToolActionSubPanel`](mcp:get_api_reference?platform=blazor&component=IgbToolActionSubPanel) called [`ItemSpacing`](mcp:get_api_reference?platform=blazor&component=IgbToolPanel&member=itemSpacing) which controls the spacing between items inside the panel.
### Bug Fixes
@@ -639,19 +693,19 @@ The following table lists the bug fixes made for the Ignite UI for Blazor toolse
| Bug Number | Control | Description |
|------------|---------|------------------|
-|29998 | [`IgbCombo`](mcp:get_api_reference?platform=blazor&component=IgbCombo) | The Change event callback was fired multiple times in .NET 8|
-|30286 | `DataChart` | Bubble Series tooltip content is switched to that of nearby bubble data in clicking a bubble|
-|34776 | `DataChart` | Repeatedly showing and hiding the IgbDataChart causes memory leakage in JS Heap|
-|32906 | `DataChart` | IgbDataChart is showing two xAxis on the top|
-|33605 | `DataChart` | ScatterLineSeries is not showing the color of the line correctly in the legend|
-|35498 | `DataChart` | Tooltips for the series specified in IncludedSeries are not displayed|
-|31344 | `Grid` | Two way binding for the SelectedRows doesn't work|
-|34149 | `Grid` | Repeatedly showing and hiding the IgbGrid causes memory leakage in JS Heap|
-|34224 | `Grid` | 'There are multiple .NET runtimes present' error is thrown when the app changes from Server mode to WebAssembly mode if 'InteractiveAuto' is used for the render mode|
-|34654 | `Grid` | NullReferenceException is thrown if a data contains an empty list|
-|35439 | `Grid` | CPU usage and Memory consumption are abnormally high when the app is opened in multiple tabs|
-|36024 | `Grid` | The JS heap size never reduced when moving back and forth between two pages with IgbGrid component|
-|34053 | `RadialGauge` | The position of the scale label is shifted|
+|29998 | `IgbCombo` | The Change event callback was fired multiple times in .NET 8|
+|30286 | [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) | Bubble Series tooltip content is switched to that of nearby bubble data in clicking a bubble|
+|34776 | [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) | Repeatedly showing and hiding the IgbDataChart causes memory leakage in JS Heap|
+|32906 | [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) | IgbDataChart is showing two xAxis on the top|
+|33605 | [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) | ScatterLineSeries is not showing the color of the line correctly in the legend|
+|35498 | [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) | Tooltips for the series specified in IncludedSeries are not displayed|
+|31344 | [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) | Two way binding for the SelectedRows doesn't work|
+|34149 | [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) | Repeatedly showing and hiding the IgbGrid causes memory leakage in JS Heap|
+|34224 | [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) | 'There are multiple .NET runtimes present' error is thrown when the app changes from Server mode to WebAssembly mode if 'InteractiveAuto' is used for the render mode|
+|34654 | [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) | NullReferenceException is thrown if a data contains an empty list|
+|35439 | [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) | CPU usage and Memory consumption are abnormally high when the app is opened in multiple tabs|
+|36024 | [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) | The JS heap size never reduced when moving back and forth between two pages with IgbGrid component|
+|34053 | [`IgbRadialGauge`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge) | The position of the scale label is shifted|
|36176 | Excel Library | Exception occurs when loading an Excel workbook that has a LET function|
|36379 | Excel Library | Colors with any alpha channel in an excel workbook fail to load|
|26218 | Excel Library | Chart's plot area right margin becomes narrower and fill pattern and fill foreground are gone just by loading an Excel file|
@@ -671,21 +725,19 @@ The following table lists the bug fixes made for the Ignite UI for Blazor toolse
### IgniteUI.Blazor (Charts)
-- [Dashboard Tile](dashboard-tile.md) component is a container control that analyzes and visualizes a bound ItemsSource collection or single point and returns an appropriate data visualization based on the schema and count of the data. This control utilizes a built-in [Toolbar](menus/toolbar.md) component to allow you to make changes to the visualization at runtime, allowing you to see many different visualizations of your data with minimal code.
+- [Dashboard Tile](./dashboard-tile.md) component is a container control that analyzes and visualizes a bound ItemsSource collection or single point and returns an appropriate data visualization based on the schema and count of the data. This control utilizes a built-in [Toolbar](./menus/toolbar.md) component to allow you to make changes to the visualization at runtime, allowing you to see many different visualizations of your data with minimal code.
### IgniteUI.Blazor (Inputs)
-- [Color Editor](inputs/color-editor.md) can be used as a standalone color picker and is now integrated into ToolAction of [Toolbar](menus/toolbar.md) component to update visualizations at runtime.
+- [Color Editor](./inputs/color-editor.md) can be used as a standalone color picker and is now integrated into ToolAction of [Toolbar](./menus/toolbar.md) component to update visualizations at runtime.
**Breaking Changes**
- With the release of version 2024.2 and per the [Microsoft .NET lifecycle](https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core), we no longer support .NET 3.1, .NET 5, or .NET 7.
-
## **24.2.19 (November 2024)**
### General
-
-- New [Carousel](layouts/carousel.md) component.
+- New [Carousel](./layouts/carousel.md) component.
- [`IgbInput`](mcp:get_api_reference?platform=blazor&component=IgbInput)
- Changed `change` event argument type from [`IgbComponentDataValueChangedEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbComponentDataValueChangedEventArgs) to [`IgbComponentValueChangedEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbComponentValueChangedEventArgs)
@@ -693,11 +745,11 @@ The following table lists the bug fixes made for the Ignite UI for Blazor toolse
### IgniteUI.Blazor (Charts)
-- New [Data Pie Chart](charts/types/data-pie-chart.md) - The [`IgbDataPieChart`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart) is a new component that renders a pie chart. This component works similarly to the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart), in that it will automatically detect the properties on your underlying data model while allowing selection, highlighting, animation and legend support via the ItemLegend component.
+- New [Data Pie Chart](./charts/types/data-pie-chart.md) - The [`IgbDataPieChart`](mcp:get_api_reference?platform=blazor&component=IgbDataPieChart) is a new component that renders a pie chart. This component works similarly to the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart), in that it will automatically detect the properties on your underlying data model while allowing selection, highlighting, animation and legend support via the ItemLegend component.
-- New [Proportional Category Angle Axis](charts/types/radial-chart.md) - New axes for the Radial Pie Series in the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart), to plot slices similar to a pie chart, a type of data visualization where data points are represented as segments within a circular graph.
+- New [Proportional Category Angle Axis](./charts/types/radial-chart.md) - New axes for the Radial Pie Series in the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart), to plot slices similar to a pie chart, a type of data visualization where data points are represented as segments within a circular graph.
-- [`Toolbar`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=Toolbar)
+- [`Toolbar`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=toolbar)
- New ToolActionCheckboxList
A new CheckboxList ToolAction that displays a collection of items with checkboxes for selecting. A grid inside ToolAction CheckboxList grows in height up to 5 items, then a scrollbar is displayed.
@@ -712,48 +764,48 @@ The following table lists the bug fixes made for the Ignite UI for Blazor toolse
### General
-- New [Banner](notifications/banner.md) component.
-- New [DatePicker](scheduling/date-picker.md) component.
+- New [Banner](./notifications/banner.md) component.
+- New [DatePicker](./scheduling/date-picker.md) component.
- New [`IgbDivider`](mcp:get_api_reference?platform=blazor&component=IgbDivider) component.
- [`IgbIcon`](mcp:get_api_reference?platform=blazor&component=IgbIcon)
- - Added [`SetIconRef`](mcp:get_api_reference?platform=blazor&component=IgbIcon&member=SetIconRef) method. This allows to register and replace icons by SVG files.
+ - Added [`SetIconRef`](mcp:get_api_reference?platform=blazor&component=IgbIcon&member=setIconRef) method. This allows to register and replace icons by SVG files.
- All components now use icons by reference internally so that it's easy to replace them without explicitly providing custom templates.
-- [`IgbCombo`](mcp:get_api_reference?platform=blazor&component=IgbCombo), `DatePicker`, [`IgbDialog`](mcp:get_api_reference?platform=blazor&component=IgbDialog), [`IgbDropdown`](mcp:get_api_reference?platform=blazor&component=IgbDropdown), [`IgbExpansionPanel`](mcp:get_api_reference?platform=blazor&component=IgbExpansionPanel), [`IgbNavDrawer`](mcp:get_api_reference?platform=blazor&component=IgbNavDrawer), [`IgbToast`](mcp:get_api_reference?platform=blazor&component=IgbToast), [`IgbSnackbar`](mcp:get_api_reference?platform=blazor&component=IgbSnackbar), **IgbSelectComponent**
- - Toggle methods `Show`, `Hide`, `Toggle` methods return **true** now on success. Otherwise **false**.
+- [`IgbCombo`](mcp:get_api_reference?platform=blazor&component=IgbComboModule), [`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker), [`IgbDialog`](mcp:get_api_reference?platform=blazor&component=IgbDialog), [`IgbDropdown`](mcp:get_api_reference?platform=blazor&component=IgbDropdown), [`IgbExpansionPanel`](mcp:get_api_reference?platform=blazor&component=IgbExpansionPanel), [`IgbNavDrawer`](mcp:get_api_reference?platform=blazor&component=IgbNavDrawer), [`IgbToast`](mcp:get_api_reference?platform=blazor&component=IgbToast), [`IgbSnackbar`](mcp:get_api_reference?platform=blazor&component=IgbSnackbar), **IgbSelectComponent**
+ - Toggle methods [`Show`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=show), [`Hide`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=hide), [`Toggle`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=toggle) methods return **true** now on success. Otherwise **false**.
- [`IgbRadioGroup`](mcp:get_api_reference?platform=blazor&component=IgbRadioGroup)
- - Added `Name` and [`Value`](mcp:get_api_reference?platform=blazor&component=IgbRadioGroup&member=Value) properties. [`Value`](mcp:get_api_reference?platform=blazor&component=IgbRadioGroup&member=Value) also supports two-way binding.
+ - Added [`Name`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=name) and [`Value`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=value) properties. [`Value`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=value) also supports two-way binding.
**Breaking Changes**
- Renamed old **IgbDatePicker** to **IgbXDatePicker**.
-- Removed `Form` component. Use native form instead.
+- Removed [`Form`](mcp:get_api_reference?platform=blazor&component=IgbButton&member=form) component. Use native form instead.
- Removed `size` property in favor of the `--ig-size` CSS custom property for the following components:
- [`IgbAvatar`](mcp:get_api_reference?platform=blazor&component=IgbAvatar), [`IgbButton`](mcp:get_api_reference?platform=blazor&component=IgbButton),[`IgbIconButton`](mcp:get_api_reference?platform=blazor&component=IgbIconButton), [`IgbCalendar`](mcp:get_api_reference?platform=blazor&component=IgbCalendar), [`IgbChip`](mcp:get_api_reference?platform=blazor&component=IgbChip), [`IgbDropdown`](mcp:get_api_reference?platform=blazor&component=IgbDropdown), [`IgbIcon`](mcp:get_api_reference?platform=blazor&component=IgbIcon), [`IgbInput`](mcp:get_api_reference?platform=blazor&component=IgbInput), [`IgbList`](mcp:get_api_reference?platform=blazor&component=IgbList), [`IgbRating`](mcp:get_api_reference?platform=blazor&component=IgbRating), [`IgbSnackbar`](mcp:get_api_reference?platform=blazor&component=IgbSnackbar), [`IgbTabs`](mcp:get_api_reference?platform=blazor&component=IgbTabs), [`IgbTree`](mcp:get_api_reference?platform=blazor&component=IgbTree)
- [`IgbBadge`](mcp:get_api_reference?platform=blazor&component=IgbBadge), [`IgbChip`](mcp:get_api_reference?platform=blazor&component=IgbChip), [`IgbLinearProgress`](mcp:get_api_reference?platform=blazor&component=IgbLinearProgress), [`IgbCircularProgress`](mcp:get_api_reference?platform=blazor&component=IgbCircularProgress)
- - Renamed `Variant` property type to `StyleVariant`.
+ - Renamed [`Variant`](mcp:get_api_reference?platform=blazor&component=IgbButton&member=variant) property type to [`IgbStyleVariant`](mcp:get_api_reference?platform=blazor&component=StyleVariant).
- [`IgbCalendar`](mcp:get_api_reference?platform=blazor&component=IgbCalendar)
- - Renamed `WeekStart` property type to `WeekDays`.
+ - Renamed [`WeekStart`](mcp:get_api_reference?platform=blazor&component=IgbFieldPipeArgs&member=weekStart) property type to [`IgbWeekDays`](mcp:get_api_reference?platform=blazor&component=WeekDays).
- [`IgbCheckbox`](mcp:get_api_reference?platform=blazor&component=IgbCheckbox), [`IgbSwitch`](mcp:get_api_reference?platform=blazor&component=IgbSwitch)
- Changed `Change` event argument type from [`IgbComponentBoolValueChangedEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbComponentBoolValueChangedEventArgs) to [`IgbCheckboxChangeEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbCheckboxChangeEventArgs).
-- [`IgbCombo`](mcp:get_api_reference?platform=blazor&component=IgbCombo)
- - The [`IgbCombo`](mcp:get_api_reference?platform=blazor&component=IgbCombo) is now of generic type and the [`Value`](mcp:get_api_reference?platform=blazor&component=IgbCombo&member=Value) type is now of type `T[]`. This means that either you need to specify `T` or it will be inferred by the assigned [`Value`](mcp:get_api_reference?platform=blazor&component=IgbCombo&member=Value) type.
- - Removed [`IgbPositionStrategy`](mcp:get_api_reference?platform=blazor&component=IgbPositionStrategy), `Flip`, `SameWidth` properties.
+- [`IgbCombo`](mcp:get_api_reference?platform=blazor&component=IgbComboModule)
+ - The `IgbCombo` is now of generic type and the [`Value`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=value) type is now of type `T[]`. This means that either you need to specify `T` or it will be inferred by the assigned [`Value`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=value) type.
+ - Removed [`IgbPositionStrategy`](mcp:get_api_reference?platform=blazor&component=IgbPositionStrategy), [`Flip`](mcp:get_api_reference?platform=blazor&component=IgbDropdown&member=flip), [`SameWidth`](mcp:get_api_reference?platform=blazor&component=IgbDropdown&member=sameWidth) properties.
- **IgbSelectComponent**
- - Removed [`IgbPositionStrategy`](mcp:get_api_reference?platform=blazor&component=IgbPositionStrategy), `Flip`, `SameWidth` properties.
+ - Removed [`IgbPositionStrategy`](mcp:get_api_reference?platform=blazor&component=IgbPositionStrategy), [`Flip`](mcp:get_api_reference?platform=blazor&component=IgbDropdown&member=flip), [`SameWidth`](mcp:get_api_reference?platform=blazor&component=IgbDropdown&member=sameWidth) properties.
- [`IgbDateTimeInput`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput)
- - Removed `MaxValue` and `MinValue` properties. Use [`Max`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=Max) and [`Min`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=Min) instead.
+ - Removed `MaxValue` and `MinValue` properties. Use [`Max`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=max) and [`Min`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=min) instead.
- [`IgbDropdown`](mcp:get_api_reference?platform=blazor&component=IgbDropdown)
- Removed [`IgbPositionStrategy`](mcp:get_api_reference?platform=blazor&component=IgbPositionStrategy) property.
- [`IgbInput`](mcp:get_api_reference?platform=blazor&component=IgbInput)
- - Removed old named `Maxlength` and `Minlength` properties. Use [`MaxLength`](mcp:get_api_reference?platform=blazor&component=IgbInput&member=MaxLength) and [`MinLength`](mcp:get_api_reference?platform=blazor&component=IgbInput&member=MinLength).
- - Removed old named `Readonly` and `Inputmode` properties. Use [`ReadOnly`](mcp:get_api_reference?platform=blazor&component=IgbMaskInput&member=ReadOnly) and [`InputMode`](mcp:get_api_reference?platform=blazor&component=IgbInput&member=InputMode).
- - Changed [`InputMode`](mcp:get_api_reference?platform=blazor&component=IgbInput&member=InputMode) type also to `string`.
+ - Removed old named `Maxlength` and `Minlength` properties. Use [`MaxLength`](mcp:get_api_reference?platform=blazor&component=IgbInput&member=maxLength) and [`MinLength`](mcp:get_api_reference?platform=blazor&component=IgbInput&member=minLength).
+ - Removed old named `Readonly` and `Inputmode` properties. Use [`ReadOnly`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=readOnly) and [`InputMode`](mcp:get_api_reference?platform=blazor&component=IgbInput&member=inputMode).
+ - Changed [`InputMode`](mcp:get_api_reference?platform=blazor&component=IgbInput&member=inputMode) type also to `string`.
- [`IgbRadio`](mcp:get_api_reference?platform=blazor&component=IgbRadio)
- Changed `Change` event argument type from [`IgbComponentBoolValueChangedEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbComponentBoolValueChangedEventArgs) to [`IgbRadioChangeEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbRadioChangeEventArgs).
- [`IgbRangeSlider`](mcp:get_api_reference?platform=blazor&component=IgbRangeSlider)
- - Removed `AriaThumbLower` and `AriaThumbUpper` properties. Use [`ThumbLabelLower`](mcp:get_api_reference?platform=blazor&component=IgbRangeSlider&member=ThumbLabelLower) and [`ThumbLabelUpper`](mcp:get_api_reference?platform=blazor&component=IgbRangeSlider&member=ThumbLabelUpper) instead.
+ - Removed `AriaThumbLower` and `AriaThumbUpper` properties. Use [`ThumbLabelLower`](mcp:get_api_reference?platform=blazor&component=IgbRangeSlider&member=thumbLabelLower) and [`ThumbLabelUpper`](mcp:get_api_reference?platform=blazor&component=IgbRangeSlider&member=thumbLabelUpper) instead.
- [`IgbRating`](mcp:get_api_reference?platform=blazor&component=IgbRating)
- - Renamed `Readonly` property to [`ReadOnly`](mcp:get_api_reference?platform=blazor&component=IgbRating&member=ReadOnly).
+ - Renamed `Readonly` property to [`ReadOnly`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=readOnly).
### IgniteUI.Blazor
@@ -761,79 +813,76 @@ The following table lists the bug fixes made for the Ignite UI for Blazor toolse
- Added `GetColumns` / `GetColumnsAsync` methods, which return the grid columns collection.
- Added new `RowClick` event.
- [`IgbPivotGrid`](mcp:get_api_reference?platform=blazor&component=IgbPivotGrid)
- - Added `Sortable` property for a [`IgbPivotDimension`](mcp:get_api_reference?platform=blazor&component=IgbPivotDimension).
- - Added horizontal layout. Can be enabled inside the new `PivotUI` property as `RowLayout` `Horizontal`.
- - Added row dimension summaries for horizontal layout only. Can be enabled for each [`IgbPivotDimension`](mcp:get_api_reference?platform=blazor&component=IgbPivotDimension) by setting [`HorizontalSummary`](mcp:get_api_reference?platform=blazor&component=IgbPivotDimension&member=HorizontalSummary) to **true**.
- - Added `HorizontalSummariesPosition` property to the `PivotUI`, configuring horizontal summaries position.
- - Added row headers for the row dimensions. Can be enabled inside the new `PivotUI` property as `ShowHeaders` **true**.
+ - Added [`Sortable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=sortable) property for a [`IgbPivotDimension`](mcp:get_api_reference?platform=blazor&component=IgbPivotDimension).
+ - Added horizontal layout. Can be enabled inside the new [`PivotUI`](mcp:get_api_reference?platform=blazor&component=IgbPivotGrid&member=pivotUI) property as `RowLayout` `Horizontal`.
+ - Added row dimension summaries for horizontal layout only. Can be enabled for each [`IgbPivotDimension`](mcp:get_api_reference?platform=blazor&component=IgbPivotDimension) by setting [`HorizontalSummary`](mcp:get_api_reference?platform=blazor&component=IgbPivotDimension&member=horizontalSummary) to **true**.
+ - Added `HorizontalSummariesPosition` property to the [`PivotUI`](mcp:get_api_reference?platform=blazor&component=IgbPivotGrid&member=pivotUI), configuring horizontal summaries position.
+ - Added row headers for the row dimensions. Can be enabled inside the new [`PivotUI`](mcp:get_api_reference?platform=blazor&component=IgbPivotGrid&member=pivotUI) property as `ShowHeaders` **true**.
- Keyboard navigation now can move in to row headers back and forth from any row dimension headers or column headers.
- Added keyboard interactions for row dimension collapse using ALT + ↑↓←→ arrows and row headers sorting using CTRL + ↑↓ arrows.
**Breaking Changes**
-
- **All Grids**
- [`IgbRowIsland`](mcp:get_api_reference?platform=blazor&component=IgbRowIsland)
- Removed `DisplayDensity` deprecated property.
- - Renamed [`Columns`](mcp:get_api_reference?platform=blazor&component=IgbRowIsland&member=Columns), `ActualColumns`, `ContentColumns` properties to [`ColumnList`](mcp:get_api_reference?platform=blazor&component=IgbRowIsland&member=ColumnList), [`ActualColumnList`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=ActualColumnList) and `ContentColumnList`. Recommended to use the new `GetColumns` method instead.
+ - Renamed [`Columns`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=Columns), [`ActualColumns`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=actualColumns), `ContentColumns` properties to [`ColumnList`](mcp:get_api_reference?platform=blazor&component=IgbGridBaseDirective&member=columnList), [`ActualColumnList`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=actualColumnList) and `ContentColumnList`. Recommended to use the new `GetColumns` method instead.
- Renamed `RowDelete` and `RowAdd` event argument type to [`IgbRowDataCancelableEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbRowDataCancelableEventArgs).
- Renamed `ContextMenu` event argument type to [`IgbGridContextMenuEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbGridContextMenuEventArgs).
- - Removed [`IgbGridEditEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbGridEditEventArgs), [`IgbGridEditDoneEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbGridEditDoneEventArgs), [`IgbPinRowEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbPinRowEventArgs) events `RowID` and [`PrimaryKey`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=PrimaryKey) properties. Use `RowKey` instead.
+ - Removed [`IgbGridEditEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbGridEditEventArgs), [`IgbGridEditDoneEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbGridEditDoneEventArgs), [`IgbPinRowEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbPinRowEventArgs) events `RowID` and [`PrimaryKey`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=primaryKey) properties. Use `RowKey` instead.
- [`IgbPivotGrid`](mcp:get_api_reference?platform=blazor&component=IgbPivotGrid)
- - removed `ShowPivotConfigurationUI` property. Use [`PivotUI`](mcp:get_api_reference?platform=blazor&component=IgbPivotGrid&member=PivotUI) and set inside it the new `ShowConfiguration` option.
+ - removed `ShowPivotConfigurationUI` property. Use [`PivotUI`](mcp:get_api_reference?platform=blazor&component=IgbPivotGrid&member=pivotUI) and set inside it the new `ShowConfiguration` option.
- [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn)
- - Removed `Movable` property. Use Grid's [`Moving`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=Moving) property now.
- - Removed `ColumnChildren` property. Use [`ChildColumns`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=ChildColumns) instead.
+ - Removed `Movable` property. Use Grid's [`Moving`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=moving) property now.
+ - Removed `ColumnChildren` property. Use [`ChildColumns`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=childColumns) instead.
- [`IgbColumnGroup`](mcp:get_api_reference?platform=blazor&component=IgbColumnGroup)
- - Removed [`Children`](mcp:get_api_reference?platform=blazor&component=IgbColumnGroup&member=Children) property. Use `ChildColumns` instead.
+ - Removed [`Children`](mcp:get_api_reference?platform=blazor&component=IgbColumnGroup&member=children) property. Use [`ChildColumns`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=childColumns) instead.
- [`IgbPaginator`](mcp:get_api_reference?platform=blazor&component=IgbPaginator)
- - Removed `IsFirstPageDisabled` and `IsLastPageDisabled` properties. Use [`IsFirstPage`](mcp:get_api_reference?platform=blazor&component=IgbPaginator&member=IsFirstPage) and [`IsLastPage`](mcp:get_api_reference?platform=blazor&component=IgbPaginator&member=IsLastPage) instead.
+ - Removed `IsFirstPageDisabled` and `IsLastPageDisabled` properties. Use [`IsFirstPage`](mcp:get_api_reference?platform=blazor&component=IgbPaginator&member=isFirstPage) and [`IsLastPage`](mcp:get_api_reference?platform=blazor&component=IgbPaginator&member=isLastPage) instead.
## **23.2.257 (June 2024)**
### General
-
-- [`IgbInput`](mcp:get_api_reference?platform=blazor&component=IgbInput), [`IgbTextarea`](mcp:get_api_reference?platform=blazor&component=IgbTextarea) - exposed [`ValidateOnly`](mcp:get_api_reference?platform=blazor&component=IgbTextarea&member=ValidateOnly) to enable validation rules being enforced without restricting user input.
+- [`IgbInput`](mcp:get_api_reference?platform=blazor&component=IgbInput), [`IgbTextarea`](mcp:get_api_reference?platform=blazor&component=IgbTextarea) - exposed [`ValidateOnly`](mcp:get_api_reference?platform=blazor&component=IgbInput&member=validateOnly) to enable validation rules being enforced without restricting user input.
- [`IgbDropdown`](mcp:get_api_reference?platform=blazor&component=IgbDropdown) - [`IgbPositionStrategy`](mcp:get_api_reference?platform=blazor&component=IgbPositionStrategy) property is deprecated. The dropdown now uses the `Popover` API to render its container in the top layer of the browser viewport, making the property obsolete.
-- [`IgbDockManager`](mcp:get_api_reference?platform=blazor&component=IgbDockManager) - [`IgbSplitPane`](mcp:get_api_reference?platform=blazor&component=IgbSplitPane) [`IsMaximized`](mcp:get_api_reference?platform=blazor&component=IgbSplitPane&member=IsMaximized) is deprecated. Having isMaximized set to true on a split pane level has no real effect as split panes serve as containers only, meaning they have no actual content to be shown maximized. Use the [`IsMaximized`](mcp:get_api_reference?platform=blazor&component=IgbSplitPane&member=IsMaximized) property of [`IgbTabGroupPane`](mcp:get_api_reference?platform=blazor&component=IgbTabGroupPane) and/or [`IgbContentPane`](mcp:get_api_reference?platform=blazor&component=IgbContentPane) instead.
+- [`IgbDockManager`](mcp:get_api_reference?platform=blazor&component=IgbDockManager) - [`IgbSplitPane`](mcp:get_api_reference?platform=blazor&component=IgbSplitPane) [`IsMaximized`](mcp:get_api_reference?platform=blazor&component=IgbSplitPane&member=isMaximized) is deprecated. Having isMaximized set to true on a split pane level has no real effect as split panes serve as containers only, meaning they have no actual content to be shown maximized. Use the [`IsMaximized`](mcp:get_api_reference?platform=blazor&component=IgbSplitPane&member=isMaximized) property of [`IgbTabGroupPane`](mcp:get_api_reference?platform=blazor&component=IgbTabGroupPane) and/or [`IgbContentPane`](mcp:get_api_reference?platform=blazor&component=IgbContentPane) instead.
### IgniteUI.Blazor
+- `DisplayDensity` deprecated in favor of the `--ig-size` CSS custom property. Check out the [Grid Size](./grids/grid/size.md) topic for more.
+- [`IgbPivotGrid`](mcp:get_api_reference?platform=blazor&component=IgbPivotGrid) - The type of Columns, Rows, Filters from [`IgbPivotConfiguration`](mcp:get_api_reference?platform=blazor&component=IgbPivotConfiguration) option is now array of IgbPivotDimension - `IgbPivotDimension[]`, it was `IgbPivotDimensionCollection` previously.
-- `DisplayDensity` deprecated in favor of the `--ig-size` CSS custom property. Check out the [Grid Size](grids/grid/size.md) topic for more.
-- [`IgbPivotGrid`](mcp:get_api_reference?platform=blazor&component=IgbPivotGrid) - The type of Columns, Rows, Filters from [`PivotConfiguration`](mcp:get_api_reference?platform=blazor&component=IgbPivotGrid&member=PivotConfiguration) option is now array of IgbPivotDimension - `PivotDimension[]`, it was `PivotDimensionCollection` previously.
-
-The type of Values from [`PivotConfiguration`](mcp:get_api_reference?platform=blazor&component=IgbPivotGrid&member=PivotConfiguration) option is now array of IgbPivotValue - `PivotValue[]`, it was `PivotValueCollection` previously.
+The type of Values from [`IgbPivotConfiguration`](mcp:get_api_reference?platform=blazor&component=IgbPivotConfiguration) option is now array of IgbPivotValue - `IgbPivotValue[]`, it was `IgbPivotValueCollection` previously.
### IgniteUI.Blazor (Charts)
-- [Data Legend Grouping](charts/features/chart-data-legend.md#blazor-data-legend-grouping) & [Data Tooltip Grouping](charts/features/chart-data-tooltip.md#blazor-data-tooltip-grouping-for-data-chart) - New grouping feature added. The property `GroupRowVisible` toggles grouping with each series opting in can assign group text via the [`DataLegendGroup`](mcp:get_api_reference?platform=blazor&component=IgbCrosshairLayer&member=DataLegendGroup) property. If the same value is applied to more than one series then they will appear grouped. Useful for large datasets that need to be categorized and organized for all users.
+- [Data Legend Grouping](./charts/features/chart-data-legend.md#blazor-data-legend-grouping) & [Data Tooltip Grouping](./charts/features/chart-data-tooltip.md#blazor-data-tooltip-grouping-for-data-chart) - New grouping feature added. The property [`GroupRowVisible`](mcp:get_api_reference?platform=blazor&component=IgbDataLegend&member=groupRowVisible) toggles grouping with each series opting in can assign group text via the [`DataLegendGroup`](mcp:get_api_reference?platform=blazor&component=IgbCrosshairLayer&member=dataLegendGroup) property. If the same value is applied to more than one series then they will appear grouped. Useful for large datasets that need to be categorized and organized for all users.
-- [Chart Selection](charts/features/chart-data-selection.md) - New series selection styling. This is adopted broadly across all category, financial and radial series for [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) and [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart). Series can be clicked and shown a different color, brightened or faded, and focus outlines. Manage which items are effected through individual series or entire data item. Multiple series and markers are supported. Useful for illustrating various differences or similarities between values of a particular data item. Also `SelectedSeriesItemsChanged` event and [`SelectedSeriesItems`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=SelectedSeriesItems) are available for additional help to build out robust business requirements surrounding other actions that can take place within an application such as a popup or other screen with data analysis based on the selection.
+- [Chart Selection](./charts/features/chart-data-selection.md) - New series selection styling. This is adopted broadly across all category, financial and radial series for [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) and [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart). Series can be clicked and shown a different color, brightened or faded, and focus outlines. Manage which items are effected through individual series or entire data item. Multiple series and markers are supported. Useful for illustrating various differences or similarities between values of a particular data item. Also `SelectedSeriesItemsChanged` event and [`SelectedSeriesItems`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=selectedSeriesItems) are available for additional help to build out robust business requirements surrounding other actions that can take place within an application such as a popup or other screen with data analysis based on the selection.
-- [Proportional Category Angle Axis](charts/types/radial-chart.md) - New axes for the Radial Pie Series in the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart), to enable creating pie charts in the allowing robust visualizations using all the added power of the data chart.
+- [Proportional Category Angle Axis](./charts/types/radial-chart.md) - New axes for the Radial Pie Series in the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart), to enable creating pie charts in the allowing robust visualizations using all the added power of the data chart.
-- [Treemap Highlighting](charts/types/treemap-chart.md#blazor-treemap-highlighting) - Now exposes a [`HighlightingMode`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=HighlightingMode) property that allows you to configure the mouse-over highlighting of the items in the tree map. This property takes two options: `Brighten` where the highlight will apply to the item that you hover the mouse over only, and `FadeOthers` where the highlight of the hovered item will remain the same, but everything else will fade out. This highlight is animated, and can be controlled using the [`HighlightingTransitionDuration`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=HighlightingTransitionDuration) property.
+- [Treemap Highlighting](./charts/types/treemap-chart.md#blazor-treemap-highlighting) - Now exposes a [`HighlightingMode`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=highlightingMode) property that allows you to configure the mouse-over highlighting of the items in the tree map. This property takes two options: `Brighten` where the highlight will apply to the item that you hover the mouse over only, and `FadeOthers` where the highlight of the hovered item will remain the same, but everything else will fade out. This highlight is animated, and can be controlled using the [`HighlightingTransitionDuration`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=highlightingTransitionDuration) property.
-- [Treemap Percent-based Highlighting](charts/types/treemap-chart.md#blazor-treemap-percent-based-highlighting) - New percent-based highlighting, allowing nodes to represent progress or subset of a collection. The appearance is shown as a fill-in of its backcolor up to a specific value either by a member on your data item or by supplying a new [`HighlightedDataSource`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=HighlightedDataSource). Can be toggled via [`HighlightedValuesDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=HighlightedValuesDisplayMode) and styled via `FillBrushes`.
+- [Treemap Percent-based Highlighting](./charts/types/treemap-chart.md#blazor-treemap-percent-based-highlighting) - New percent-based highlighting, allowing nodes to represent progress or subset of a collection. The appearance is shown as a fill-in of its backcolor up to a specific value either by a member on your data item or by supplying a new [`HighlightedItemsSource`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=highlightedDataSource). Can be toggled via [`HighlightedValuesDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=highlightedValuesDisplayMode) and styled via [`FillBrushes`](mcp:get_api_reference?platform=blazor&component=IgbTreemap&member=fillBrushes).
-- [`Toolbar`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=Toolbar) - New `IsHighlighted` option for ToolAction for outlining a border around specific tools of choice.
+- [`Toolbar`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=toolbar) - New [`IsHighlighted`](mcp:get_api_reference?platform=blazor&component=IgbToolActionGroupHeader&member=isHighlighted) option for ToolAction for outlining a border around specific tools of choice.
### IgniteUI.Blazor (Gauges)
- [`IgbRadialGauge`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge)
- - New label for the highlight needle. [`HighlightLabelText`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge&member=HighlightLabelText) and [`HighlightLabelSnapsToNeedlePivot`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge&member=HighlightLabelSnapsToNeedlePivot) and many other styling related properties for the HighlightLabel were added.
+ - New label for the highlight needle. [`HighlightLabelText`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge&member=highlightLabelText) and [`HighlightLabelSnapsToNeedlePivot`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge&member=highlightLabelSnapsToNeedlePivot) and many other styling related properties for the HighlightLabel were added.
## **23.2.204 (March 2024)**
### IgniteUI.Blazor (Charts)
-Data Filtering via the [`InitialFilter`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=InitialFilter) property. Apply filter expressions to filter the chart data to a subset of records. Can be used for drill down large data.
+Data Filtering via the [`InitialFilter`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=initialFilter) property. Apply filter expressions to filter the chart data to a subset of records. Can be used for drill down large data.
- [`IgbBulletGraph`](mcp:get_api_reference?platform=blazor&component=IgbBulletGraph)
- - The Performance bar will now reflect a difference between the value and new [`HighlightValue`](mcp:get_api_reference?platform=blazor&component=IgbBulletGraph&member=HighlightValue) when the [`HighlightValueDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbBulletGraph&member=HighlightValueDisplayMode) is applied to the 'Overlay' setting. The highlight value will show a filtered/subset measured percentage as a filled in color while the remaining bar's appearance will appear faded to the assigned value, illustrating the performance in real-time.
+ - The Performance bar will now reflect a difference between the value and new [`HighlightValue`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge&member=highlightValue) when the [`HighlightValueDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge&member=highlightValueDisplayMode) is applied to the 'Overlay' setting. The highlight value will show a filtered/subset measured percentage as a filled in color while the remaining bar's appearance will appear faded to the assigned value, illustrating the performance in real-time.
- [`IgbLinearGauge`](mcp:get_api_reference?platform=blazor&component=IgbLinearGauge)
- - New highlight needle was added. [`HighlightValue`](mcp:get_api_reference?platform=blazor&component=IgbLinearGauge&member=HighlightValue) and [`HighlightValueDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbLinearGauge&member=HighlightValueDisplayMode) when both are provided a value and 'Overlay' setting, this will make the main needle to appear faded and a new needle will appear.
+ - New highlight needle was added. [`HighlightValue`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge&member=highlightValue) and [`HighlightValueDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge&member=highlightValueDisplayMode) when both are provided a value and 'Overlay' setting, this will make the main needle to appear faded and a new needle will appear.
- [`IgbRadialGauge`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge)
- - New highlight needle was added. [`HighlightValue`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge&member=HighlightValue) and [`HighlightValueDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge&member=HighlightValueDisplayMode) when both are provided a value and 'Overlay' setting, this will make the main needle to appear faded and a new needle will appear.
+ - New highlight needle was added. [`HighlightValue`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge&member=highlightValue) and [`HighlightValueDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge&member=highlightValueDisplayMode) when both are provided a value and 'Overlay' setting, this will make the main needle to appear faded and a new needle will appear.
## **23.2.191 (April 2024)**
@@ -843,50 +892,52 @@ Data Filtering via the [`InitialFilter`](mcp:get_api_reference?platform=blazor&c
### New Components
-- [Hierarchical Grid](grids/hierarchical-grid/overview.md) component
-- [Text Area](inputs/text-area.md) component
-- [Button Group](inputs/button-group.md) component
+- [Hierarchical Grid](./grids/hierarchical-grid/overview.md) component
+- [Text Area](./inputs/text-area.md) component
+- [Button Group](./inputs/button-group.md) component
### New Features
- [`IgbDockManager`](mcp:get_api_reference?platform=blazor&component=IgbDockManager)
- - New [`ProximityDock`](mcp:get_api_reference?platform=blazor&component=IgbDockManager&member=ProximityDock) property. If enabled, docking indicators are not visible and the end user can dock the dragged pane by dragging it close to the target pane edges.
- - New [`ContainedInBoundaries`](mcp:get_api_reference?platform=blazor&component=IgbDockManager&member=ContainedInBoundaries) property. Determines whether the floating panes are kept inside the Dock Manager boundaries. Defaults to `false`.
- - New [`ShowPaneHeaders`](mcp:get_api_reference?platform=blazor&component=IgbDockManager&member=ShowPaneHeaders) property. Determines whether pane headers are only shown on hover or always visible. Defaults to `always`.
+ - New [`ProximityDock`](mcp:get_api_reference?platform=blazor&component=IgbDockManager&member=proximityDock) property. If enabled, docking indicators are not visible and the end user can dock the dragged pane by dragging it close to the target pane edges.
+ - New [`ContainedInBoundaries`](mcp:get_api_reference?platform=blazor&component=IgbDockManager&member=containedInBoundaries) property. Determines whether the floating panes are kept inside the Dock Manager boundaries. Defaults to `false`.
+ - New [`ShowPaneHeaders`](mcp:get_api_reference?platform=blazor&component=IgbDockManager&member=showPaneHeaders) property. Determines whether pane headers are only shown on hover or always visible. Defaults to `always`.
- [`IgbTree`](mcp:get_api_reference?platform=blazor&component=IgbTree)
- Added `toggleNodeOnClick` property that determines whether clicking over a node will change its expanded state or not. Defaults to `false`.
- [`IgbRating`](mcp:get_api_reference?platform=blazor&component=IgbRating)
- `allowReset` added. When enabled selecting the same value will reset the component. **Behavioral change** - In previous releases this was the default behavior of the rating component. Make sure to set `allowReset` if you need to keep this behavior in your application.
-- [`Select`](mcp:get_api_reference?platform=blazor&component=IgbMultiColumnComboBox&member=Select), [`IgbDropdown`](mcp:get_api_reference?platform=blazor&component=IgbDropdown)
+- [`Select`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=select), [`IgbDropdown`](mcp:get_api_reference?platform=blazor&component=IgbDropdown)
- exposed `selectedItem`, `items` and `groups` getters
- [`IgbRadialGauge`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge)
- - New title/subtitle properties. [`TitleText`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge&member=TitleText), [`SubtitleText`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge&member=SubtitleText) will appear near the bottom the gauge. In addition, the various title/subtitle font properties were added such as `TitleFontSize`, `TitleFontFamily`, `TitleFontStyle`, `TitleFontWeight` and [`TitleExtent`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge&member=TitleExtent). Finally, the new [`TitleDisplaysValue`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge&member=TitleDisplaysValue) will allow the value to correspond with the needle's position.
- - New [`OpticalScalingEnabled`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge&member=OpticalScalingEnabled) and [`OpticalScalingSize`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge&member=OpticalScalingSize) properties for the [`IgbRadialGauge`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge). This new feature will manage the size at which labels, titles, and subtitles of the gauge have 100% optical scaling. You can read more about this new feature in this [topic](radial-gauge.md#optical-scaling)
- - New highlight needle was added. [`HighlightValue`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge&member=HighlightValue) and [`HighlightValueDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge&member=HighlightValueDisplayMode) when both are provided a value and 'Overlay' setting, this will make the main needle to appear faded and a new needle will appear.
-- `XamRadialChart`
+ - New title/subtitle properties. [`TitleText`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge&member=titleText), [`SubtitleText`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge&member=subtitleText) will appear near the bottom the gauge. In addition, the various title/subtitle font properties were added such as `TitleFontSize`, `TitleFontFamily`, `TitleFontStyle`, `TitleFontWeight` and [`TitleExtent`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge&member=titleExtent). Finally, the new [`TitleDisplaysValue`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge&member=titleDisplaysValue) will allow the value to correspond with the needle's position.
+ - New [`OpticalScalingEnabled`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge&member=opticalScalingEnabled) and [`OpticalScalingSize`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge&member=opticalScalingSize) properties for the [`IgbRadialGauge`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge). This new feature will manage the size at which labels, titles, and subtitles of the gauge have 100% optical scaling. You can read more about this new feature in this [topic](./radial-gauge.md#optical-scaling)
+ - New highlight needle was added. [`HighlightValue`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge&member=highlightValue) and [`HighlightValueDisplayMode`](mcp:get_api_reference?platform=blazor&component=IgbRadialGauge&member=highlightValueDisplayMode) when both are provided a value and 'Overlay' setting, this will make the main needle to appear faded and a new needle will appear.
+- `RadialChart`
- New Label Mode
- The [`IgbCategoryAngleAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryAngleAxis) for the now exposes a [`LabelMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryAngleAxis&member=LabelMode) property that allows you to further configure the location of the labels. This allows you to toggle between the default mode by selecting the `Center` enum, or use the new mode, `ClosestPoint`, which will bring the labels closer to the circular plot area.
+ The [`IgbCategoryAngleAxis`](mcp:get_api_reference?platform=blazor&component=IgbCategoryAngleAxis) for the now exposes a [`LabelMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryAngleAxis&member=labelMode) property that allows you to further configure the location of the labels. This allows you to toggle between the default mode by selecting the `Center` enum, or use the new mode, `ClosestPoint`, which will bring the labels closer to the circular plot area.
### General
- [`IgbInput`](mcp:get_api_reference?platform=blazor&component=IgbInput), [`IgbMaskInput`](mcp:get_api_reference?platform=blazor&component=IgbMaskInput), [`IgbDateTimeInput`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput), [`IgbRating`](mcp:get_api_reference?platform=blazor&component=IgbRating)
- - `Readonly` has been renamed to [`ReadOnly`](mcp:get_api_reference?platform=blazor&component=IgbRating&member=ReadOnly)
+ - `Readonly` has been renamed to [`ReadOnly`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=readOnly)
- [`IgbInput`](mcp:get_api_reference?platform=blazor&component=IgbInput)
- - `Maxlength` has been renamed to [`MaxLength`](mcp:get_api_reference?platform=blazor&component=IgbInput&member=MaxLength)
- - `Minlength` has been renamed to [`MinLength`](mcp:get_api_reference?platform=blazor&component=IgbInput&member=MinLength)
+ - `Maxlength` has been renamed to [`MaxLength`](mcp:get_api_reference?platform=blazor&component=IgbInput&member=maxLength)
+ - `Minlength` has been renamed to [`MinLength`](mcp:get_api_reference?platform=blazor&component=IgbInput&member=minLength)
### Deprecations
- The `size` property and attribute have been deprecated for all components. Use the `--ig-size` CSS custom property instead. The following example sets the size of the avatar component to small:
+
```css
.avatar {
--ig-size: var(--ig-size-small);
}
```
+
- [`IgbDateTimeInput`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput)
- - `MinValue` and `MaxValue` properties have been deprecated. Please, use [`Min`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=Min) and [`Max`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput&member=Max) instead.
+ - `MinValue` and `MaxValue` properties have been deprecated. Please, use [`Min`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=min) and [`Max`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=max) instead.
- [`IgbRangeSlider`](mcp:get_api_reference?platform=blazor&component=IgbRangeSlider)
- - `AriaLabelLower` and `AriaLabelUpper` properties have been deprecated. Please, use [`ThumbLabelLower`](mcp:get_api_reference?platform=blazor&component=IgbRangeSlider&member=ThumbLabelLower) and [`ThumbLabelUpper`](mcp:get_api_reference?platform=blazor&component=IgbRangeSlider&member=ThumbLabelUpper) instead.
+ - `AriaLabelLower` and `AriaLabelUpper` properties have been deprecated. Please, use [`ThumbLabelLower`](mcp:get_api_reference?platform=blazor&component=IgbRangeSlider&member=thumbLabelLower) and [`ThumbLabelUpper`](mcp:get_api_reference?platform=blazor&component=IgbRangeSlider&member=thumbLabelUpper) instead.
### Removed
@@ -904,46 +955,45 @@ Data Filtering via the [`InitialFilter`](mcp:get_api_reference?platform=blazor&c
### IgniteUI.Blazor (Charts)
-- [Chart Highlight Filter](charts/features/chart-highlight-filter.md) - The [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) and [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) now expose a way to highlight and animate in and out of a subset of data. The display of this highlight depends on the series type. For column and area series, the subset will be shown on top of the total set of data where the subset will be colored by the actual brush of the series, and the total set will have a reduced opacity. For line series, the subset will be shown as a dotted line.
+- [Chart Highlight Filter](./charts/features/chart-highlight-filter.md) - The [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) and [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) now expose a way to highlight and animate in and out of a subset of data. The display of this highlight depends on the series type. For column and area series, the subset will be shown on top of the total set of data where the subset will be colored by the actual brush of the series, and the total set will have a reduced opacity. For line series, the subset will be shown as a dotted line.
## **23.2.97 (December 2023)**
-### IgniteUI.Blazor - Toolbar -
+### IgniteUI.Blazor - Toolbar -
- Save tool action has been added to save the chart to an image via the clipboard.
-- Vertical orientation has been added via the toolbar's [`Orientation`](mcp:get_api_reference?platform=blazor&component=IgbToolbar&member=Orientation) property. By default the toolbar is horizontal, now the toolbar can be shown in vertical orientation where the tools will popup to the left/right respectfully.
+- Vertical orientation has been added via the toolbar's [`Orientation`](mcp:get_api_reference?platform=blazor&component=IgbToolbar&member=orientation) property. By default the toolbar is horizontal, now the toolbar can be shown in vertical orientation where the tools will popup to the left/right respectfully.
- Custom SVG icons support was added via the toolbar's `renderImageFromText` method, further enhancing custom tool creation.
### IgniteUI.Blazor (Grid)
-- Added New Features - [State Persistence](grids/grid/state-persistence.md)
+- Added New Features - [State Persistence](./grids/grid/state-persistence.md)
## **23.1.37 (June 2023)**
### New Components
-- [Toolbar](menus/toolbar.md) - component is a companion container for UI operations to be used primarily with our charting components. The toolbar will dynamically update with a preset of properties and tools when linked to our [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) or [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) components, but it also gives you the ability to create custom tools for your project.
+- [Toolbar](./menus/toolbar.md) - component is a companion container for UI operations to be used primarily with our charting components. The toolbar will dynamically update with a preset of properties and tools when linked to our [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart) or [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) components, but it also gives you the ability to create custom tools for your project.
### IgniteUI.Blazor (Charts)
-- [ValueLayer](charts/features/chart-overlays.md#blazor-value-layer) - A new series type named the [`IgbValueLayer`](mcp:get_api_reference?platform=blazor&component=IgbValueLayer) is now exposed which can allow you to render an overlay for different focal points of the plotted data such as Maximum, Minimum, and Average. This is applied to the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) and [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart) by adding to the new [`ValueLines`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=ValueLines) collection.
+- [ValueLayer](./charts/features/chart-overlays.md#blazor-value-layer) - A new series type named the [`IgbValueLayer`](mcp:get_api_reference?platform=blazor&component=IgbValueLayer) is now exposed which can allow you to render an overlay for different focal points of the plotted data such as Maximum, Minimum, and Average. This is applied to the [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart) and [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart) by adding to the new [`ValueLines`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=valueLines) collection.
-- It is now possible to apply a **dash array** to the different parts of the series of the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart). You can apply this to the [series](charts/types/line-chart.md#blazor-styling-line-chart) plotted in the chart, the [gridlines](charts/features/chart-axis-gridlines.md#blazor-axis-gridlines-properties) of the chart, and the [trendlines](charts/features/chart-trendlines.md#blazor-chart-trendlines-dash-array-example) of the series plotted in the chart.
+- It is now possible to apply a **dash array** to the different parts of the series of the [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart). You can apply this to the [series](./charts/types/line-chart.md#blazor-styling-line-chart) plotted in the chart, the [gridlines](./charts/features/chart-axis-gridlines.md#blazor-axis-gridlines-properties) of the chart, and the [trendlines](./charts/features/chart-trendlines.md#blazor-chart-trendlines-dash-array-example) of the series plotted in the chart.
## **22.2.65 (April 2023)**
-
### New Components
-- [Stepper](layouts/stepper.md)
+- [Stepper](./layouts/stepper.md)
### New Components
-- [Dialog](notifications/dialog.md)
-- [Select](inputs/select.md)
+- [Dialog](./notifications/dialog.md)
+- [Select](./inputs/select.md)
### IgniteUI.Blazor (Data Grid)
-- A new argument [`PrimaryKey`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=PrimaryKey) has been introduced to [`IgbRowDataEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbRowDataEventArgs) from [`Detail`](mcp:get_api_reference?platform=blazor&component=IgbRowDataEventArgs&member=Detail), and part of the event arguments that are emitted by the `RowAdded` and `RowDeleted` events. When the grid has a primary key attribute added, then the emitted primaryKey event argument represents the row ID, otherwise it defaults to null.
+- A new argument [`PrimaryKey`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=primaryKey) has been introduced to [`IgbRowDataEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbRowDataEventArgs) from [`Detail`](mcp:get_api_reference?platform=blazor&component=IgbActiveStepChangingEventArgs&member=detail), and part of the event arguments that are emitted by the `RowAdded` and `RowDeleted` events. When the grid has a primary key attribute added, then the emitted primaryKey event argument represents the row ID, otherwise it defaults to null.
- `RowSelectionChanging` event arguments are changed. Now, the `OldSelection`, `NewSelection`, `Added` and `Removed` collections no longer consist of the row keys of the selected elements when the grid has set a primaryKey, but now in any case the row data is emitted.
- When the grid is working with remote data and a primary key has been set, the selected rows that are not currently part of the grid view will be emitted for a partial row data object.
- When selected row is deleted from the grid component `RowSelectionChanging` event will no longer be emitted.
@@ -952,34 +1002,34 @@ Data Filtering via the [`InitialFilter`](mcp:get_api_reference?platform=blazor&c
### IgniteUI.Blazor (Pivot Grid)
-- The [`IgbPivotDateDimension`](mcp:get_api_reference?platform=blazor&component=IgbPivotDateDimension) properties `InBaseDimension` and `InOption` have been deprecated and renamed to [`BaseDimension`](mcp:get_api_reference?platform=blazor&component=IgbPivotDateDimension&member=BaseDimension) and [`Options`](mcp:get_api_reference?platform=blazor&component=IgbPivotDateDimension&member=Options) respectively.
+- The [`IgbPivotDateDimension`](mcp:get_api_reference?platform=blazor&component=IgbPivotDateDimension) properties `InBaseDimension` and `InOption` have been deprecated and renamed to `BaseDimension` and `Options` respectively.
### IgniteUI.Blazor (Inputs)
- [`IgbDateTimeInput`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput), the StepDownAsync(DateTimeInputDatePart.Date, SpinDelta.Date) is now trimmed down to DatePart instead of DateTimeInputDatePart
- [`IgbRadio`](mcp:get_api_reference?platform=blazor&component=IgbRadio) and [`IgbRadioGroup`](mcp:get_api_reference?platform=blazor&component=IgbRadioGroup), added component validation along with styles for invalid state
-- [`Mask`](mcp:get_api_reference?platform=blazor&component=IgbMaskInput&member=Mask), added the capability to escape mask pattern literals.
-- [`IgbBadge`](mcp:get_api_reference?platform=blazor&component=IgbBadge) added a [`Shape`](mcp:get_api_reference?platform=blazor&component=IgbBadge&member=Shape) property that controls the shape of the badge and can be either `Square` or `Rounded`. The default shape of the badge is rounded.
-- [`IgbAvatar`](mcp:get_api_reference?platform=blazor&component=IgbAvatar), the `RoundShape` property has been deprecated and will be removed in a future version. Users can control the shape of the avatar by the newly added [`Shape`](mcp:get_api_reference?platform=blazor&component=IgbAvatar&member=Shape) attribute that can be `Square`, `Rounded` or `Circle`. The default shape of the avatar is `Square`.
+- `IgbMask`, added the capability to escape mask pattern literals.
+- [`IgbBadge`](mcp:get_api_reference?platform=blazor&component=IgbBadge) added a [`Shape`](mcp:get_api_reference?platform=blazor&component=IgbAvatar&member=shape) property that controls the shape of the badge and can be either [`Square`](mcp:get_api_reference?platform=blazor&component=MarkerType&member=Square) or `Rounded`. The default shape of the badge is rounded.
+- [`IgbAvatar`](mcp:get_api_reference?platform=blazor&component=IgbAvatar), the `RoundShape` property has been deprecated and will be removed in a future version. Users can control the shape of the avatar by the newly added [`Shape`](mcp:get_api_reference?platform=blazor&component=IgbAvatar&member=shape) attribute that can be [`Square`](mcp:get_api_reference?platform=blazor&component=MarkerType&member=Square), `Rounded` or [`Circle`](mcp:get_api_reference?platform=blazor&component=MarkerType&member=Circle). The default shape of the avatar is [`Square`](mcp:get_api_reference?platform=blazor&component=MarkerType&member=Square).
### IgniteUI.Blazor (DockManager)
-- [Dock Manager's](layouts/dock-manager.md) Panes collection now has a protected setter; requires you to call Add rather than set panes in a nested structure when creating them.
+- [Dock Manager's](./layouts/dock-manager.md) Panes collection now has a protected setter; requires you to call Add rather than set panes in a nested structure when creating them.
## **22.2.50 (December 2022)**
### New Components
-- [Combo](inputs/combo/overview.md)
-- [Pivot Grid](grids/pivot-grid/overview.md)
+- [Combo](./inputs/combo/overview.md)
+- [Pivot Grid](./grids/pivot-grid/overview.md)
- .NET 7.0
## **22.1.76 (November 2022)**
### New Components
-- [Grid](grids/data-grid.md)
-- [TreeGrid](grids/tree-grid/overview.md)
+- [Grid](./grids/data-grid.md)
+- [TreeGrid](./grids/tree-grid/overview.md)
### IgniteUI.Blazor (Charts)
@@ -988,13 +1038,13 @@ Added significant improvements to default behaviors, and refined the Category Ch
- Responsive layouts for horizontal label rotation based on browser / screen size.
- Enhanced rendering for rounded labels on all platforms.
- Added marker properties to StackedFragmentSeries.
-- Added [`ShouldPanOnMaximumZoom`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=ShouldPanOnMaximumZoom) property.
+- Added [`ShouldPanOnMaximumZoom`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=shouldPanOnMaximumZoom) property.
- New Category Axis Properties:
- ZoomMaximumCategoryRange
- ZoomMaximumItemSpan
- ZoomToCategoryRange
- ZoomToItemSpan
-- New [Chart Aggregation](charts/features/chart-data-aggregations.md) API for Grouping, Sorting and Summarizing Category string and numeric values, eliminating the need to pre-aggregate or calculate chart data:
+- New [Chart Aggregation](./charts/features/chart-data-aggregations.md) API for Grouping, Sorting and Summarizing Category string and numeric values, eliminating the need to pre-aggregate or calculate chart data:
- InitialSortDescriptions
- InitialSorts
- SortDescriptions
@@ -1008,147 +1058,143 @@ Added significant improvements to default behaviors, and refined the Category Ch
- GroupSorts
- GroupSortDescriptions
-> [!Note]
-> [Chart Aggregation](charts/features/chart-data-aggregations.md) will not work when using [`IncludedProperties`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=IncludedProperties) | [`ExcludedProperties`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=ExcludedProperties). These properties on the chart are meant for non-aggregated data. Once you attempt to aggregate data these properties should no longer be used. The reason it does not work is because aggregation replaces the collection that is passed to the chart for render. The include/exclude properties are designed to filter in/out properties of that data and those properties no longer exist in the new aggregated collection.
+[Chart Aggregation](./charts/features/chart-data-aggregations.md) will not work when using [`IncludedProperties`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=includedProperties) | [`ExcludedProperties`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=excludedProperties). These properties on the chart are meant for non-aggregated data. Once you attempt to aggregate data these properties should no longer be used. The reason it does not work is because aggregation replaces the collection that is passed to the chart for render. The include/exclude properties are designed to filter in/out properties of that data and those properties no longer exist in the new aggregated collection.
### IgniteUI.Blazor (Data Grid)
- Changed **IgbColumn** to [`IgbDataGridColumn`](mcp:get_api_reference?platform=blazor&component=IgbDataGridColumn)
- Changed **GridCellEventArgs** to [`IgbDataGridCellEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbDataGridCellEventArgs)
-- Changed **GridSelectionMode** to `DataGridSelectionMode`
-- Changed **SummaryOperand** to `DataSourceSummaryOperand`
+- Changed **GridSelectionMode** to [`IgbDataGridSelectionMode`](mcp:get_api_reference?platform=blazor&component=DataGridSelectionMode)
+- Changed **SummaryOperand** to [`IgbDataSourceSummaryOperand`](mcp:get_api_reference?platform=blazor&component=DataSourceSummaryOperand)
## **22.1.41 (June 2022)**
### IgniteUI.Blazor (Charts)
-- Added the highly-configurable [DataLegend](charts/features/chart-data-legend.md) component, which works much like the [`Legend`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=Legend), but it shows values of series and provides many configuration properties for filtering series rows and values columns, styling and formatting values.
-- Added the highly-configurable [DataToolTip](charts/features/chart-data-tooltip.md) which displays values and titles of series as well as legend badges of series in a tooltip. This is now the default tooltip for all chart types.
-- Added animation and transition-in support for Stacked Series. Animations can be enabled by setting the [`IsTransitionInEnabled`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=IsTransitionInEnabled) property to true. From there, you can set the [`TransitionInDuration`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=TransitionInDuration) property to determine how long your animation should take to complete and the [`TransitionInMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=TransitionInMode) to determine the type of animation that takes place.
-- Added `AssigningCategoryStyle` event, is now available to all series in [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart). This event is handled when you want to conditionally configure aspects of the series items such as `Fill` background-color and highlighting.
-- New [`AllowedPositions`](mcp:get_api_reference?platform=blazor&component=IgbCalloutLayer&member=AllowedPositions) enumeration for CalloutLayer. Used to limit where the callouts are to be placed within the chart. By default, the callouts are intelligently placed in the best place but this used to force for example `TopLeft`, `TopRight`, `BottomLeft` or `BottomRight`.
+- Added the highly-configurable [DataLegend](./charts/features/chart-data-legend.md) component, which works much like the [`Legend`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=Legend), but it shows values of series and provides many configuration properties for filtering series rows and values columns, styling and formatting values.
+- Added the highly-configurable [DataToolTip](./charts/features/chart-data-tooltip.md) which displays values and titles of series as well as legend badges of series in a tooltip. This is now the default tooltip for all chart types.
+- Added animation and transition-in support for Stacked Series. Animations can be enabled by setting the [`IsTransitionInEnabled`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=isTransitionInEnabled) property to true. From there, you can set the [`TransitionInDuration`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=transitionInDuration) property to determine how long your animation should take to complete and the [`TransitionInMode`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=transitionInMode) to determine the type of animation that takes place.
+- Added `AssigningCategoryStyle` event, is now available to all series in [`IgbDataChart`](mcp:get_api_reference?platform=blazor&component=IgbDataChart). This event is handled when you want to conditionally configure aspects of the series items such as [`Fill`](mcp:get_api_reference?platform=blazor&component=IgbCrosshairLayer&member=fill) background-color and highlighting.
+- New [`AllowedPositions`](mcp:get_api_reference?platform=blazor&component=IgbCalloutLayer&member=allowedPositions) enumeration for CalloutLayer. Used to limit where the callouts are to be placed within the chart. By default, the callouts are intelligently placed in the best place but this used to force for example `TopLeft`, `TopRight`, `BottomLeft` or `BottomRight`.
- New corner radius properties added for Annotation Layers; used to round-out the corners of each of the callouts. Note, a corner radius has now been added by default.
- - [`CalloutCornerRadius`](mcp:get_api_reference?platform=blazor&component=IgbCalloutLayer&member=CalloutCornerRadius) for CalloutLayer
- - [`AxisAnnotationBackgroundCornerRadius`](mcp:get_api_reference?platform=blazor&component=IgbFinalValueLayer&member=AxisAnnotationBackgroundCornerRadius) for FinalValueLayer
- - [`XAxisAnnotationBackgroundCornerRadius`](mcp:get_api_reference?platform=blazor&component=IgbCrosshairLayer&member=XAxisAnnotationBackgroundCornerRadius) and [`YAxisAnnotationBackgroundCornerRadius`](mcp:get_api_reference?platform=blazor&component=IgbCrosshairLayer&member=YAxisAnnotationBackgroundCornerRadius) for CrosshairLayer
-- New [`HorizontalViewScrollbarMode`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=HorizontalViewScrollbarMode) and [`VerticalViewScrollbarMode`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=VerticalViewScrollbarMode) enumeration to enable scrollbars in various ways. When paired with [`IsVerticalZoomEnabled`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=IsVerticalZoomEnabled) or [`IsHorizontalZoomEnabled`](mcp:get_api_reference?platform=blazor&component=IgbDataChart&member=IsHorizontalZoomEnabled), you'll be able to persist or fade-in and out the scrollbars along the axes to navigate the chart.
-- New `FavorLabellingScaleEnd`, determines whether the axis should favor emitting a label at the end of the scale. Only compatible with numeric axes (e.g. [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis), [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis), `PercentChangeAxis`).
-- New [`IsSplineShapePartOfRange`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=IsSplineShapePartOfRange) determines whether to include the spline shape in the axis range requested of the axis.
-- New [`XAxisMaximumGap`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisMaximumGap), determines the maximum allowed value for the plotted series when using [`XAxisGap`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisGap). The gap determines the amount of space between columns or bars of plotted series.
-- New [`XAxisMinimumGapSize`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisMinimumGapSize), determines the minimum allowed pixel-based value for the plotted series when using [`XAxisGap`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=XAxisGap) to ensure there is always some spacing between each category.
+ - [`CalloutCornerRadius`](mcp:get_api_reference?platform=blazor&component=IgbCalloutLayer&member=calloutCornerRadius) for CalloutLayer
+ - [`AxisAnnotationBackgroundCornerRadius`](mcp:get_api_reference?platform=blazor&component=IgbFinalValueLayer&member=axisAnnotationBackgroundCornerRadius) for FinalValueLayer
+ - [`XAxisAnnotationBackgroundCornerRadius`](mcp:get_api_reference?platform=blazor&component=IgbCrosshairLayer&member=xAxisAnnotationBackgroundCornerRadius) and [`YAxisAnnotationBackgroundCornerRadius`](mcp:get_api_reference?platform=blazor&component=IgbCrosshairLayer&member=yAxisAnnotationBackgroundCornerRadius) for CrosshairLayer
+- New [`HorizontalViewScrollbarMode`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=horizontalViewScrollbarMode) and [`VerticalViewScrollbarMode`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=verticalViewScrollbarMode) enumeration to enable scrollbars in various ways. When paired with [`IsVerticalZoomEnabled`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=isVerticalZoomEnabled) or [`IsHorizontalZoomEnabled`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=isHorizontalZoomEnabled), you'll be able to persist or fade-in and out the scrollbars along the axes to navigate the chart.
+- New [`FavorLabellingScaleEnd`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis&member=favorLabellingScaleEnd), determines whether the axis should favor emitting a label at the end of the scale. Only compatible with numeric axes (e.g. [`IgbNumericXAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericXAxis), [`IgbNumericYAxis`](mcp:get_api_reference?platform=blazor&component=IgbNumericYAxis), `PercentChangeAxis`).
+- New [`IsSplineShapePartOfRange`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=isSplineShapePartOfRange) determines whether to include the spline shape in the axis range requested of the axis.
+- New [`XAxisMaximumGap`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisMaximumGap), determines the maximum allowed value for the plotted series when using [`XAxisGap`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisGap). The gap determines the amount of space between columns or bars of plotted series.
+- New [`XAxisMinimumGapSize`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisMinimumGapSize), determines the minimum allowed pixel-based value for the plotted series when using [`XAxisGap`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart&member=xAxisGap) to ensure there is always some spacing between each category.
### IgniteUI.Blazor (Data Grid)
-Added New Feature - `Row Paging` which is used to split a large set of data into a sequence of pages that have similar content. With pagination, data can be displayed in a set number of rows, letting users “scroll” through their data, without needing a scroll bar. The UI for table pagination usually includes things like the current page, total pages, and clickable Previous and Next arrows/buttons that let users flip through the pages of data.
+Added New Feature - [Row Paging](./grids/grid/paging.md) which is used to split a large set of data into a sequence of pages that have similar content. With pagination, data can be displayed in a set number of rows, letting users “scroll” through their data, without needing a scroll bar. The UI for table pagination usually includes things like the current page, total pages, and clickable Previous and Next arrows/buttons that let users flip through the pages of data.
### IgniteUI.Blazor (Dock Manager)
-- The Blazor Dock Manager is now in state, that provides a way to manage a complex layout using different type of panes with various sizes, positions, and behaviors, and that can be docked to various locations within an app. The [Dock Manager](layouts/dock-manager.md) allows your end-users to customize it further by pinning, resizing, moving, floating, and hiding panes.
+- The Blazor Dock Manager is now in state, that provides a way to manage a complex layout using different type of panes with various sizes, positions, and behaviors, and that can be docked to various locations within an app. The [Dock Manager](./layouts/dock-manager.md) allows your end-users to customize it further by pinning, resizing, moving, floating, and hiding panes.
### New Components
-- [Chip](inputs/chip.md)
-- [Circular Progress](inputs/circular-progress.md)
-- [Linear Progress](inputs/linear-progress.md)
-- [Drop Down](inputs/dropdown.md)
-- [Slider & Range Slider](inputs/slider.md)
-- [Snackbar](notifications/snackbar.md)
-- [Toast](notifications/toast.md)
+- [Chip](./inputs/chip.md)
+- [Circular Progress](./inputs/circular-progress.md)
+- [Linear Progress](./inputs/linear-progress.md)
+- [Drop Down](./inputs/dropdown.md)
+- [Slider & Range Slider](./inputs/slider.md)
+- [Snackbar](./notifications/snackbar.md)
+- [Toast](./notifications/toast.md)
## **21.2.52 (December 2021)**
-> [!Note]
-> The following breaking changes were introduced
+**Note:**
+The following breaking changes were introduced
### IgniteUI.Blazor (Data Grid)
-- Changed [`ValueField`](mcp:get_api_reference?platform=blazor&component=IgbMultiColumnComboBox&member=ValueField) property from type string\[] to string.
+- Changed [`ValueField`](mcp:get_api_reference?platform=blazor&component=IgbComboEditor&member=valueField) property from type string[] to string.
### IgniteUI.Blazor (Inputs)
-- A new `ValueChanged` event supports 2-way binding and should only be handled if you have not bound the [`Value`](mcp:get_api_reference?platform=blazor&component=IgbMultiColumnComboBox&member=Value) property. In order to read the Value field from the control without data binding the `ValueChanged` event should be handled, otherwise if your data is not bound you should use GetCurrentValueAsync to read the controls Value.
+- A new `ValueChanged` event supports 2-way binding and should only be handled if you have not bound the [`Value`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=value) property. In order to read the Value field from the control without data binding the `ValueChanged` event should be handled, otherwise if your data is not bound you should use GetCurrentValueAsync to read the controls Value.
#### Date Picker
-
- Changed `ValueChanged` event to `SelectedValueChanged`.
#### Multi-Column ComboBox
-
- Changed `TextChanged` event to `TextValueChanged`.
- Changed `ValueChanged` event to `SelectedValueChanged`.
## **21.2.22 (November 2021)**
-> [!Note]
-> The **Igb** prefix is now required for the Ignite UI for Blazor components and nested elements within each component. This API change was necessary to avoid ambiguity between Infragistics controls and 3rd party controls.
->
-> For example, `` instead of ``
+**Note:**
+The **Igb** prefix is now required for the Ignite UI for Blazor components and nested elements within each component. This API change was necessary to avoid ambiguity between Infragistics controls and 3rd party controls.
+
+For example, ``` ``` instead of ``` ```
### New Components
-- [Avatar](layouts/avatar.md)
-- [Badge](inputs/badge.md)
-- [Button & Icon Button](inputs/button.md)
-- [Card](layouts/card.md)
-- [Checkbox](inputs/checkbox.md)
+- [Avatar](./layouts/avatar.md)
+- [Badge](./inputs/badge.md)
+- [Button & Icon Button](./inputs/button.md)
+- [Card](./layouts/card.md)
+- [Checkbox](./inputs/checkbox.md)
- Form
-- [Icon](layouts/icon.md)
-- [List](grids/list.md)
-- [Navigation Bar](menus/navbar.md)
-- [Navigation Drawer](menus/navigation-drawer.md)
-- [Radio & Radio Group](inputs/radio.md)
-- [Ripple](inputs/ripple.md)
-- [Switch](inputs/switch.md)
+- [Icon](./layouts/icon.md)
+- [List](./grids/list.md)
+- [Navigation Bar](./menus/navbar.md)
+- [Navigation Drawer](./menus/navigation-drawer.md)
+- [Radio & Radio Group](./inputs/radio.md)
+- [Ripple](./inputs/ripple.md)
+- [Switch](./inputs/switch.md)
### Chart and Map Improvements
This release introduces a few improvements and simplifications to visual design and configuration options for the geographic map and all chart components.
-- Changed [`YAxisLabelLocation`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=YAxisLabelLocation) property's type to **YAxisLabelLocation** from **AxisLabelLocation** in [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart) and [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart)
-- Changed [`XAxisLabelLocation`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=XAxisLabelLocation) property's type to **XAxisLabelLocation** from **AxisLabelLocation** in [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart)
-- Added [`XAxisLabelLocation`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=XAxisLabelLocation) property to [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart)
+- Changed [`YAxisLabelLocation`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=yAxisLabelLocation) property's type to **YAxisLabelLocation** from **AxisLabelLocation** in [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart) and [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart)
+- Changed [`XAxisLabelLocation`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=xAxisLabelLocation) property's type to **XAxisLabelLocation** from **AxisLabelLocation** in [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart)
+- Added [`XAxisLabelLocation`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=xAxisLabelLocation) property to [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart)
- Added support for representing geographic series of [`IgbGeographicMap`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap) in a legend
- Added crosshair lines by default in [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart) and [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart)
- Added crosshair annotations by default in [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart) and [`IgbCategoryChart`](mcp:get_api_reference?platform=blazor&component=IgbCategoryChart)
- Added final value annotation by default in [`IgbFinancialChart`](mcp:get_api_reference?platform=blazor&component=IgbFinancialChart)
- Added new properties in Category Chart and Financial Chart:
- - [`CrosshairsLineThickness`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=CrosshairsLineThickness) and other properties for customizing crosshairs lines
- - [`CrosshairsAnnotationXAxisBackground`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=CrosshairsAnnotationXAxisBackground) and other properties for customizing crosshairs annotations
- - [`FinalValueAnnotationsBackground`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=FinalValueAnnotationsBackground) and other properties for customizing final value annotations
- - [`AreaFillOpacity`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=AreaFillOpacity) that allow changing opacity of series fill (e.g. Area chart)
- - [`MarkerThickness`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=MarkerThickness) that allows changing thickness of markers
+ - [`CrosshairsLineThickness`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=crosshairsLineThickness) and other properties for customizing crosshairs lines
+ - [`CrosshairsAnnotationXAxisBackground`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=crosshairsAnnotationXAxisBackground) and other properties for customizing crosshairs annotations
+ - [`FinalValueAnnotationsBackground`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=finalValueAnnotationsBackground) and other properties for customizing final value annotations
+ - [`AreaFillOpacity`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=areaFillOpacity) that allow changing opacity of series fill (e.g. Area chart)
+ - [`MarkerThickness`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=markerThickness) that allows changing thickness of markers
- Added new properties in Category Chart, Financial Chart, Data Chart, and Geographic Map:
- - [`MarkerAutomaticBehavior`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=MarkerAutomaticBehavior) that allows which marker type is assigned to multiple series in the same chart
- - [`LegendItemBadgeShape`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=LegendItemBadgeShape) for setting badge shape of all series represented in a legend
- - [`LegendItemBadgeMode`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=LegendItemBadgeMode) for setting badge complexity on all series in a legend
+ - [`MarkerAutomaticBehavior`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=markerAutomaticBehavior) that allows which marker type is assigned to multiple series in the same chart
+ - [`LegendItemBadgeShape`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=legendItemBadgeShape) for setting badge shape of all series represented in a legend
+ - [`LegendItemBadgeMode`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=legendItemBadgeMode) for setting badge complexity on all series in a legend
- Added new properties in Series in Data Chart and Geographic Map:
- - [`LegendItemBadgeShape`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=LegendItemBadgeShape) for setting badge shape on specific series represented in a legend
- - [`LegendItemBadgeMode`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=LegendItemBadgeMode) for setting badge complexity on specific series in a legend
+ - [`LegendItemBadgeShape`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=legendItemBadgeShape) for setting badge shape on specific series represented in a legend
+ - [`LegendItemBadgeMode`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=legendItemBadgeMode) for setting badge complexity on specific series in a legend
- Changed default vertical crosshair line stroke from #000000 to #BBBBBB in category chart and series
-- Changed shape of markers to circle for all series plotted in the same chart. This can be reverted by setting chart's [`MarkerAutomaticBehavior`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=MarkerAutomaticBehavior) property to `SmartIndexed` enum value
-- Simplified shapes of series in chart's legend to display only circle, line, or square. This can be reverted by setting chart's [`LegendItemBadgeMode`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=LegendItemBadgeMode) property to `MatchSeries` enum value
+- Changed shape of markers to circle for all series plotted in the same chart. This can be reverted by setting chart's [`MarkerAutomaticBehavior`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=markerAutomaticBehavior) property to `SmartIndexed` enum value
+- Simplified shapes of series in chart's legend to display only circle, line, or square. This can be reverted by setting chart's [`LegendItemBadgeMode`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=legendItemBadgeMode) property to `MatchSeries` enum value
- Changed color palette of series and markers displayed in all charts to improve accessibility
| Old brushes/outlines | New outline/brushes |
| -------------------- | ------------------- |
-| #8BDC5C #8B5BB1 #6DB1FF #F8A15F #EE5879 #735656 #F7D262 #8CE7D9 #E051A9 #A8A8B7 | #8BDC5C #8961A9 #6DB1FF #82E9D9 #EA3C63 #735656 #F8CE4F #A8A8B7 #E051A9 #FF903B |
+| #8BDC5C #8B5BB1 #6DB1FF #F8A15F #EE5879 #735656 #F7D262 #8CE7D9 #E051A9 #A8A8B7 | #8BDC5C #8961A9 #6DB1FF #82E9D9 #EA3C63 #735656 #F8CE4F #A8A8B7 #E051A9 #FF903B |
### IgniteUI.Blazor (Data Grid)
- New Features Added:
- - `Filter Row`
- - `Load/Save Layout Customizations`
- - `GroupBy Area for column grouping`
- - `Cell Merging`
+ - [Filter Row](./grids/grid/filtering.md)
+ - [Load/Save Layout Customizations](./grids/grid/state-persistence.md)
+ - [GroupBy Area for column grouping](./grids/grid/groupby.md)
+ - [Cell Merging](./grids/grid/cell-merging.md)
- New API:
- Added `SelectionChanged` event. Used to detect changes on selection interactions
- e.g. Multiple row selection.
+ e.g. Multiple row selection.
- Breaking Changes:
- - Changed grid's SummaryScope property's type to SummaryScope from `DataSourceSummaryScope`
- - Changed GroupHeaderDisplayMode property's type to GroupHeaderDisplayMode from `DataSourceSectionHeaderDisplayMode`
+ - Changed grid's SummaryScope property's type to SummaryScope from [`IgbDataSourceSummaryScope`](mcp:get_api_reference?platform=blazor&component=DataSourceSummaryScope)
+ - Changed GroupHeaderDisplayMode property's type to GroupHeaderDisplayMode from [`IgbDataSourceSectionHeaderDisplayMode`](mcp:get_api_reference?platform=blazor&component=DataSourceSectionHeaderDisplayMode)
## **21.1.52 (April 2021)**
-
### New Visual Designs
#### Charts & Maps
@@ -1160,23 +1206,23 @@ This release introduces several new and improved visual design and configuration
- Changed Scatter High Density series’ colors for heat max property from #ee5879 to #ee5879
- Changed Financial/Waterfall series’ `NegativeBrush` and `NegativeOutline` properties from #C62828 to #ee5879
- Changed marker's thickness to 2px from 1px
-- Changed marker's fill to match the marker's outline for [`IgbPointSeries`](mcp:get_api_reference?platform=blazor&component=IgbPointSeries), [`IgbBubbleSeries`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries), [`IgbScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbScatterSeries), [`IgbPolarScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbPolarScatterSeries). You can use set [`MarkerFillMode`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=MarkerFillMode) property to Normal to undo this change
+- Changed marker's fill to match the marker's outline for [`IgbPointSeries`](mcp:get_api_reference?platform=blazor&component=IgbPointSeries), [`IgbBubbleSeries`](mcp:get_api_reference?platform=blazor&component=IgbBubbleSeries), [`IgbScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbScatterSeries), [`IgbPolarScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbPolarScatterSeries). You can use set [`MarkerFillMode`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=markerFillMode) property to Normal to undo this change
- Compressed labelling for the [`IgbTimeXAxis`](mcp:get_api_reference?platform=blazor&component=IgbTimeXAxis) and [`IgbOrdinalTimeXAxis`](mcp:get_api_reference?platform=blazor&component=IgbOrdinalTimeXAxis)
- New Marker Properties:
- - series.[`MarkerFillMode`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=MarkerFillMode) - Can be set to `MatchMarkerOutline` so the marker depends on the outline
- - series.[`MarkerFillOpacity`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=MarkerFillOpacity) - Can be set to a value 0 to 1
- - series.[`MarkerOutlineMode`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=MarkerOutlineMode) - Can be set to `MatchMarkerBrush` so the marker's outline depends on the fill brush color
+ - series.[`MarkerFillMode`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=markerFillMode) - Can be set to `MatchMarkerOutline` so the marker depends on the outline
+ - series.[`MarkerFillOpacity`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=markerFillOpacity) - Can be set to a value 0 to 1
+ - series.[`MarkerOutlineMode`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=markerOutlineMode) - Can be set to `MatchMarkerBrush` so the marker's outline depends on the fill brush color
- New Series Property:
- - series.[`OutlineMode`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=OutlineMode) - Can be set to toggle the series outline visibility. Note, for Data Chart, the property is on the series
-- New chart properties that define bleed over area introduced into the viewport when the chart is at the default zoom level. A common use case is to provide space between the axes and first/last data points. Note, the [`ComputedPlotAreaMarginMode`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=ComputedPlotAreaMarginMode), listed below, will automatically set the margin when markers are enabled. The others are designed to specify a `Double` to represent the thickness, where PlotAreaMarginLeft etc. adjusts the space to all four sides of the chart:
- - chart.[`PlotAreaMarginLeft`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=PlotAreaMarginLeft)
- - chart.[`PlotAreaMarginTop`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=PlotAreaMarginTop)
- - chart.[`PlotAreaMarginRight`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=PlotAreaMarginRight)
- - chart.[`PlotAreaMarginBottom`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=PlotAreaMarginBottom)
- - chart.[`ComputedPlotAreaMarginMode`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=ComputedPlotAreaMarginMode)
+ - series.[`OutlineMode`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=outlineMode) - Can be set to toggle the series outline visibility. Note, for Data Chart, the property is on the series
+- New chart properties that define bleed over area introduced into the viewport when the chart is at the default zoom level. A common use case is to provide space between the axes and first/last data points. Note, the [`ComputedPlotAreaMarginMode`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=computedPlotAreaMarginMode), listed below, will automatically set the margin when markers are enabled. The others are designed to specify a `Double` to represent the thickness, where PlotAreaMarginLeft etc. adjusts the space to all four sides of the chart:
+ - chart.[`PlotAreaMarginLeft`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=plotAreaMarginLeft)
+ - chart.[`PlotAreaMarginTop`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=plotAreaMarginTop)
+ - chart.[`PlotAreaMarginRight`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=plotAreaMarginRight)
+ - chart.[`PlotAreaMarginBottom`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=plotAreaMarginBottom)
+ - chart.[`ComputedPlotAreaMarginMode`](mcp:get_api_reference?platform=blazor&component=IgbXYChart&member=computedPlotAreaMarginMode)
- New Highlighting Properties
- - chart.[`HighlightingMode`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=HighlightingMode) - Sets whether hovered or non-hovered series to fade, brighten
- - chart.[`HighlightingBehavior`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=HighlightingBehavior) - Sets whether the series highlights depending on mouse position e.g. directly over or nearest item
+ - chart.[`HighlightingMode`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=highlightingMode) - Sets whether hovered or non-hovered series to fade, brighten
+ - chart.[`HighlightingBehavior`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=highlightingBehavior) - Sets whether the series highlights depending on mouse position e.g. directly over or nearest item
- Note, in previous releases the highlighting was limited to fade on hover.
- Added Highlighting Stacked, Scatter, Polar, Radial, and Shape series:
- Added Annotation layers to Stacked, Scatter, Polar, Radial, and Shape series:
@@ -1188,24 +1234,24 @@ This release introduces several new and improved visual design and configuration
| Old brushes/outlines | New outline/brushes |
| -------------------- | ------------------- |
-| #7446B9 #9FB328 #F96232 #2E9CA6 #DC3F76 #FF9800 #3F51B5 #439C47 #795548 #9A9A9A | #8bdc5c #8b5bb1 #6db1ff #f8a15f #ee5879 #735656 #f7d262 #8ce7d9 #e051a9 #a8a8b7 |
+| #7446B9 #9FB328 #F96232 #2E9CA6 #DC3F76 #FF9800 #3F51B5 #439C47 #795548 #9A9A9A | #8bdc5c #8b5bb1 #6db1ff #f8a15f #ee5879 #735656 #f7d262 #8ce7d9 #e051a9 #a8a8b7 |
for example:
| | |
|---|---|
-| | |
-| | |
+| | |
+| | |
#### Chart Legend
-- Added horizontal [`Orientation`](mcp:get_api_reference?platform=blazor&component=IgbToolbar&member=Orientation) property to ItemLegend that can be used with Bubble, Donut, and Pie Chart
-- Added [`LegendHighlightingMode`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=LegendHighlightingMode) property - Enables series highlighting when hovering over legend items
+- Added horizontal [`Orientation`](mcp:get_api_reference?platform=blazor&component=IgbToolbar&member=orientation) property to ItemLegend that can be used with Bubble, Donut, and Pie Chart
+- Added [`LegendHighlightingMode`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=legendHighlightingMode) property - Enables series highlighting when hovering over legend items
#### Geographic Map
-> [!Note]
-> These features are CTP
+**Note:**
+These features are CTP
- Added support for wrap around display of the map (scroll infinitely horizontally)
- Added support for shifting display of some map series while wrapping around the coordinate origin
@@ -1214,29 +1260,29 @@ for example:
### IgniteUI.Blazor (Data Grid)
-- Added `EditOnKeyPress` aka Excel-style Editing, instantly begin editing when typing.
-- Added `EditModeClickAction` property - By default double-clicking is required to enter edit mode. This can be set to `SingleClick` to allow for edit mode to occur when selecting a new cell.
-- Added `EnterKeyBehaviors` property - aka Excel-style Navigation (Enter Behavior) – controls the behavior of the enter key, e.g. Options are (none, edit, move up, down, left, right)
-- Added `EnterKeyBehaviorAfterEdit` property - While in edit-mode, this property controls when enter is pressed, e.g. Options are (moves to the cell below, above, right, left)
-- Added [`SelectAllRows`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=SelectAllRows) - method.
-- Added Row Range Selection - With `GridSelectionMode` property set to MultipleRow the following new functionality is now included:
+- Added [`EditOnKeyPress`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=editOnKeyPress) aka Excel-style Editing, instantly begin editing when typing.
+- Added [`IgbEditModeClickAction`](mcp:get_api_reference?platform=blazor&component=EditModeClickAction) property - By default double-clicking is required to enter edit mode. This can be set to [`SingleClick`](mcp:get_api_reference?platform=blazor&component=EditModeClickAction&member=SingleClick) to allow for edit mode to occur when selecting a new cell.
+- Added [`IgbEnterKeyBehaviors`](mcp:get_api_reference?platform=blazor&component=EnterKeyBehaviors) property - aka Excel-style Navigation (Enter Behavior) – controls the behavior of the enter key, e.g. Options are (none, edit, move up, down, left, right)
+- Added [`IgbEnterKeyBehaviorAfterEdit`](mcp:get_api_reference?platform=blazor&component=EnterKeyBehaviorAfterEdit) property - While in edit-mode, this property controls when enter is pressed, e.g. Options are (moves to the cell below, above, right, left)
+- Added [`SelectAllRows`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=selectAllRows) - method.
+- Added Row Range Selection - With [`IgbGridSelectionMode`](mcp:get_api_reference?platform=blazor&component=GridSelectionMode) property set to MultipleRow the following new functionality is now included:
- Click and drag to select rows
- SHIFT and click to select multiple rows.
- SHIFT and press the ↑ + ↓ arrow keys to select multiple rows.
-- Pressing space bar toggles selection of active row via `GridSelectionMode` property set to MultipleRow or SingleRow
+- Pressing space bar toggles selection of active row via [`IgbGridSelectionMode`](mcp:get_api_reference?platform=blazor&component=GridSelectionMode) property set to MultipleRow or SingleRow
- Added Column Summaries to Column Options Dialog.
### IgniteUI.Blazor (Inputs)
#### Date Picker
-- `ShowTodayButton` - Toggles Today button visibility
-- [`Label`](mcp:get_api_reference?platform=blazor&component=IgbMultiColumnComboBox&member=Label) - Adds a label above the date value
-- [`Placeholder`](mcp:get_api_reference?platform=blazor&component=IgbMultiColumnComboBox&member=Placeholder) property - adds custom text when no value is selected
-- `FormatString` - Customize input date string e.g. (`yyyy-MM-dd`)
-- `DateFormat` - Specifies whether to display selected dates as LongDate or ShortDate
-- `FirstDayOfWeek` - Specifies first day of week
-- `FirstWeekOfYear` - Specifies when to display first week of the year, e.g. (First Full Week, First Four day Week)
-- `ShowWeekNumbers` - Toggles Week number visibility
-- `MinDate` & `MaxDate` - Date limits, specifying a range of available selectable dates.
+- [`ShowTodayButton`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=showTodayButton) - Toggles Today button visibility
+- [`Label`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=label) - Adds a label above the date value
+- [`Placeholder`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=placeholder) property - adds custom text when no value is selected
+- [`FormatString`](mcp:get_api_reference?platform=blazor&component=IWorksheetCellFormat&member=formatString) - Customize input date string e.g. (`yyyy-MM-dd`)
+- [`DateFormat`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=dateFormat) - Specifies whether to display selected dates as LongDate or ShortDate
+- [`FirstDayOfWeek`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=firstDayOfWeek) - Specifies first day of week
+- [`FirstWeekOfYear`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=firstWeekOfYear) - Specifies when to display first week of the year, e.g. (First Full Week, First Four day Week)
+- [`ShowWeekNumbers`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=showWeekNumbers) - Toggles Week number visibility
+- [`MinDate`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=minDate) & [`MaxDate`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=maxDate) - Date limits, specifying a range of available selectable dates.
- Added Accessibility
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-cli-overview.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-cli-overview.md
new file mode 100644
index 000000000..6a43063f7
--- /dev/null
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-cli-overview.md
@@ -0,0 +1,342 @@
+---
+title: "Blazor CLI - Ignite UI for Blazor"
+description: "The Ignite UI for Blazor CLI scaffolds Blazor projects, adds pre-configured component views, and connects AI coding assistants via a built-in MCP server."
+keywords: "Blazor cli, command line interface, Ignite UI for Blazor, Infragistics"
+mentionedTypes: []
+license: MIT
+last_updated: "2026-04-21"
+llms:
+ description: "The Ignite UI CLI (igniteui-cli) is a standalone global command-line tool for creating and scaffolding Blazor applications with Ignite UI for Blazor."
+_tocName: Ignite UI CLI
+---
+# Ignite UI CLI for Blazor
+
+The [Ignite UI CLI](https://github.com/IgniteUI/igniteui-cli) (`igniteui-cli`) is a standalone global command-line tool for creating and scaffolding Blazor applications with Ignite UI for Blazor. It provides project templates pre-configured for Ignite UI for Blazor, a guided step-by-step wizard for first-time setup, non-interactive `new` and `add` commands for scripted workflows, a development server, and a built-in MCP server for connecting AI coding assistants to live Ignite UI for Blazor documentation.
+
+The Ignite UI CLI does not replace the build tooling for your framework - projects it creates are standard Blazor applications that remain fully compatible with their native build commands and configuration after scaffolding.
+
+## Install the Ignite UI CLI
+
+Install the Ignite UI CLI globally using npm:
+
+```bash
+npm install -g igniteui-cli
+```
+
+Or, using yarn:
+
+```cmd
+yarn global add igniteui-cli
+```
+
+Verify the installation:
+
+```cmd
+ig version
+```
+
+## Create a New Project
+
+The Ignite UI CLI provides two modes for project creation: a guided interactive wizard and a direct command with arguments.
+
+### Use the guided wizard
+
+The guided wizard is the recommended starting point for new projects. It prompts you to choose a framework, project type, template, and theme, then scaffolds and commits the project automatically.
+
+To activate the wizard, run:
+
+```cmd
+ig
+```
+
+or:
+
+```cmd
+ig new
+```
+
+For a step-by-step walkthrough of the wizard options, see [Step-by-Step Guide Using Ignite UI CLI](./general-step-by-step-guide-using-cli.md).
+
+### Create a project directly
+
+Blazor projects are scaffolded through the **.NET CLI**, so a **.NET SDK 10.0 or newer** is required. On first use the CLI automatically installs the
+[`IgniteUI.Blazor.Templates`](https://www.nuget.org/packages/IgniteUI.Blazor.Templates) package if it isn't already present.
+
+To create a Blazor project non-interactively, provide `blazor` as the framework and choose a hosting model:
+
+```cmd
+ig new --framework blazor --hosting Server
+```
+
+A more complete example that also sets the theme, the theme variant and skips package restore:
+
+```cmd
+ig new MyApp --framework blazor --hosting Auto --theme material --variant dark --skip-install
+```
+
+### Blazor options
+
+| Option | Alias | Values | Default | Description |
+| :---------------- | :---- | :---------------------------------------------- | :---------- | :----------------------------------------------------------------- |
+| `--hosting` | | `Server`, `Wasm`, `Auto` | `Server` | Blazor hosting model (Blazor only). |
+| `--theme` | `-th` | `bootstrap`, `material`, `fluent`, `indigo` | `bootstrap` | Ignite UI theme applied to the project. |
+| `--variant` | | `light`, `dark` | `light` | Theme color variant (Blazor only). |
+| `--skip-install` | `-si` | — | `false` | Skip the package restore after scaffolding. |
+| `--skip-git` | `-sg` | — | `false` | Do not initialize a git repository for the project. |
+
+> [!NOTE]
+> `--hosting` and `--variant` are only valid for the Blazor framework and are ignored by other frameworks.
+
+### Base project templates
+
+The following base project templates are available for Blazor:
+
+| Template ID | Description |
+| :---------- | :------------------------------------------------------------------------------- |
+| empty | Minimal Blazor Web App scaffolded via the `IgniteUI.Blazor.Templates` package. |
+
+Once the project is created, run it with the standard .NET tooling:
+
+```cmd
+cd
+dotnet run
+```
+
+The following arguments are available when creating a project:
+
+| Argument | Alias | Description |
+| :--------------- | :----- | :-------------------------------------------------------------------------------------------------------------------- |
+| `name` | `-n` | The name of the application. The application is created inside a directory with the same name. |
+| `--framework` | `-f` | The framework for the generated project. Default: `jquery`. Supported: `jquery`, `angular`, `react`, `webcomponents`. |
+| `--type` | `-t` | The project type for the selected framework. Use `igr-ts` for React or `igc-ts` for Web Components. |
+| `--template` | | The project template to use. See the template tables above for available options per framework. |
+| `--skip-git` | `--sg` | Skips automatic Git repository initialization. Uses the global `skip-git` config value if omitted. |
+| `--skip-install` | `--si` | Skips npm package installation on project creation. |
+| `--assistants` | | Configures MCP servers for the specified AI coding assistants. Values: `generic`, `vscode`, `cursor`, `gemini`, `junie`, `none`. |
+| `--agents` | | Copies Agent Skill files into the specified agents' skill directories. Values: `generic`, `claude`, `copilot`, `cursor`, `codex`, `windsurf`, `gemini`, `junie`, `none`. |
+
+### AI Configuration During Project Creation
+
+When `--agents` and `--assistants` flags are not provided, `ig new` prompts you to configure AI tooling as part of the project creation flow. After scaffolding the project, the wizard displays the following prompts:
+
+```bash
+? Which AI coding assistants do you want to configure MCP servers for? (Press to select)
+❯◉ VS Code (GitHub Copilot)
+ ◉ Cursor
+ ◯ Generic (.mcp.json)
+ ◯ Gemini CLI
+ ◯ JetBrains (AI Assistant)
+ ◯ None
+```
+
+```bash
+? Which AI agents should receive skill files? (Press to select)
+❯◉ GitHub Copilot (.agents/skills/)
+ ◉ Claude (.claude/skills/)
+ ◉ Cursor (.cursor/rules/)
+ ◯ Codex (.codex/)
+ ◯ Windsurf (.windsurfrules)
+ ◯ Gemini CLI (.gemini/)
+ ◯ JetBrains Junie (.junie/guidelines/)
+ ◯ None
+```
+
+Navigate through the options using the arrow keys, toggle selections with SPACE, and confirm with ENTER.
+
+To skip the AI configuration prompts entirely during project creation, pass `--assistants none --agents none`:
+
+```cmd
+ig new my-app --framework=react --template=side-nav --assistants none --agents none
+```
+
+To auto-configure AI tools without prompting, specify the desired values:
+
+```cmd
+ig new my-app --framework=react --template=side-nav --assistants vscode --agents copilot claude
+```
+
+## Add a Component Template
+
+Once you have created a project, you can add additional component views at any point. Running `ig add` without arguments launches an interactive template browser:
+
+```cmd
+ig add
+```
+
+To add a specific component template directly, provide the template ID and a name for the new component:
+
+```cmd
+ig add [component-template] [component-name]
+```
+
+For example, to add a data grid component named `MyGrid`:
+
+```cmd
+ig add grid MyGrid
+```
+
+To list all available templates in the current project:
+
+```cmd
+ig list
+```
+
+For a guided walkthrough of the component addition wizard, see [Step-by-Step Guide Using Ignite UI CLI](./general-step-by-step-guide-using-cli.md#add-view).
+
+**Note:**
+Your routing file will be updated with the path to the newly generated page. For example, a component named `MyGrid` will be navigable at `/my-grid`.
+
+## Run the Application
+
+The `start` command builds the application, starts a local web server, and opens it in your default browser:
+
+```cmd
+ig start
+```
+
+## AI Assistant Integration (MCP)
+
+The Ignite UI CLI includes a built-in **MCP (Model Context Protocol) server** that connects AI coding assistants - GitHub Copilot, Claude, Cursor, and others - directly to Ignite UI for Blazor component documentation and API references. Once configured, your AI assistant can scaffold projects, add and modify components, search docs, look up API details, and generate accurate Ignite UI for Blazor code without leaving your editor.
+
+The CLI MCP server starts via `npx` without requiring a global install:
+
+```cmd
+npx -y igniteui-cli mcp
+```
+
+Or, if you have Ignite UI CLI installed globally:
+
+```cmd
+ig mcp
+```
+
+### Quick Setup with `ig ai-config`
+
+The `ai-config` command configures MCP servers, copies framework-specific skill files into each agent's skills directory, and sets up instruction files - all in a single step. Run it from your project root:
+
+```cmd
+npx igniteui-cli ai-config
+```
+
+If you have the CLI installed globally:
+
+```cmd
+ig ai-config
+```
+
+**Note:**
+Without a version pin, `npx` may pull an older CLI version that does not recognize the `ai-config` subcommand and will instead launch an interactive project-creation prompt, scaffolding a new project inside your existing one. Make sure that you have installed CLI version 16.x.
+
+#### Interactive Mode
+
+If no parameters are provided, the command enters interactive mode. You are first prompted to select which AI coding assistants should receive MCP server configuration:
+
+```bash
+? Which AI coding assistants do you want to configure MCP servers for? (Press to select)
+❯◉ VS Code (GitHub Copilot) - writes .vscode/mcp.json
+ ◉ Cursor - writes .cursor/mcp.json
+ ◯ Generic (.mcp.json) - writes .mcp.json
+ ◯ Gemini CLI - writes .gemini/settings.json
+ ◯ JetBrains (AI Assistant) - writes .junie/mcp.json
+ ◯ None
+```
+
+Next, you are prompted to select which AI agents should receive skill files:
+
+```bash
+? Which AI agents should receive skill files? (Press to select)
+❯◉ GitHub Copilot (.agents/skills/) - copies skills to .agents/skills/
+ ◉ Claude (.claude/skills/) - copies skills to .claude/skills/
+ ◉ Cursor (.cursor/rules/) - copies skills to .cursor/rules/
+ ◯ Codex (.codex/) - copies skills to .codex/
+ ◯ Windsurf (.windsurfrules) - copies skills to .windsurfrules/
+ ◯ Gemini CLI (.gemini/) - copies skills to .gemini/
+ ◯ JetBrains Junie (.junie/) - copies skills to .junie/guidelines/
+ ◯ None
+```
+
+Navigate through the options using the arrow keys, toggle selections with SPACE, and confirm with ENTER.
+
+#### Non-Interactive Mode
+
+Use `--assistants` to choose which coding assistants receive MCP config and `--agents` to choose which agents receive skill files:
+
+```cmd
+ig ai-config --assistants vscode --agents copilot
+```
+
+Target multiple assistants and agents in a single run:
+
+```cmd
+ig ai-config --assistants generic vscode --agents claude copilot cursor
+```
+
+| Flag | Values | Default |
+|:-----|:-------|:--------|
+| `--assistants` | `generic`, `vscode`, `cursor`, `gemini`, `junie`, `none` | Prompted interactively |
+| `--agents` | `generic`, `claude`, `copilot`, `cursor`, `codex`, `windsurf`, `gemini`, `junie`, `none` | Prompted interactively |
+
+#### Start the Servers
+
+After the command finishes, start the MCP servers in your AI client. The servers are configured but not yet running - the client needs to launch each server before its tools are available to the agent.
+
+**VS Code with GitHub Copilot:** Open `.vscode/mcp.json`. VS Code displays an inline **Start** button above each server entry. Click **Start** for both `igniteui` and `igniteui-theming`. Once started, VS Code shows the available tool count next to each server (for example, _"13 tools | 1 prompt"_). Alternatively, run **MCP: List Servers** from the Command Palette (`Ctrl+Shift+P` / `Cmd+Shift+P`), select each server, and choose **Start**.
+
+For full setup instructions across all AI clients and Agent Skills wiring, see [Agent Skills](./ai/skills.md) and [Ignite UI CLI MCP](./ai/cli-mcp.md).
+
+Configure your AI client to use the CLI MCP server manually. Most teams connect both the CLI MCP and the Theming MCP together - CLI MCP handles project and component workflows while Theming MCP handles palettes, themes, and design tokens.
+
+**VS Code** - create or edit `.vscode/mcp.json` in your project root:
+
+```json
+{
+ "servers": {
+ "igniteui-cli": {
+ "command": "npx",
+ "args": ["-y", "igniteui-cli", "mcp"]
+ },
+ "igniteui-theming": {
+ "command": "npx",
+ "args": ["-y", "igniteui-theming", "igniteui-theming-mcp"]
+ }
+ }
+}
+```
+
+**Cursor, Claude Desktop, Claude Code, JetBrains, and other MCP clients:**
+
+```json
+{
+ "mcpServers": {
+ "igniteui-cli": {
+ "command": "npx",
+ "args": ["-y", "igniteui-cli", "mcp"]
+ },
+ "igniteui-theming": {
+ "command": "npx",
+ "args": ["-y", "igniteui-theming", "igniteui-theming-mcp"]
+ }
+ }
+}
+```
+
+For per-client setup guides (VS Code, GitHub, Cursor, Claude Desktop, Claude Code, JetBrains) and a full description of available tools, see [Ignite UI CLI MCP](./ai/cli-mcp.md).
+
+## Ignite UI CLI Commands
+
+A full list of available Ignite UI CLI commands is maintained on the [Ignite UI CLI wiki](https://github.com/IgniteUI/igniteui-cli/wiki):
+
+| Command | Alias | Description |
+| :-------------------------------------------------------------------- | :---- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| [ig start](https://github.com/IgniteUI/igniteui-cli/wiki/start) | | Builds the application, starts a web server, and opens it in the default browser. |
+| [ig build](https://github.com/IgniteUI/igniteui-cli/wiki/build) | | Builds the application into an output directory. |
+| [ig generate](https://github.com/IgniteUI/igniteui-cli/wiki/generate) | g | Generates a new custom template for supported frameworks and project types. |
+| [ig help](https://github.com/IgniteUI/igniteui-cli/wiki/help) | -h | Lists available commands with brief descriptions. |
+| [ig config](https://github.com/IgniteUI/igniteui-cli/wiki/config) | | Reads and writes Ignite UI CLI configuration settings. |
+| [ig doc](https://github.com/IgniteUI/igniteui-cli/wiki/doc) | | Searches the Infragistics knowledge base for a given term. |
+| [ig list](https://github.com/IgniteUI/igniteui-cli/wiki/list) | l | Lists available templates for the project's framework and type. When run inside a project folder, uses the project's framework and type regardless of provided arguments. |
+| [ig test](https://github.com/IgniteUI/igniteui-cli/wiki/test) | | Executes the tests for the current project. |
+| ig upgrade-packages | | Upgrades Ignite UI packages in the project from Trial to Licensed. |
+| ig mcp | | Starts the built-in MCP server for connecting AI coding assistants to Ignite UI for Blazor component documentation. |
+| [ig ai-config](https://github.com/IgniteUI/igniteui-cli/wiki/ai-config) | | Configures MCP servers and copies Agent Skills into each agent's skills directory. Supports `--assistants` and `--agents` flags or interactive mode. |
+| ig version | -v | Shows the Ignite UI CLI version installed locally, or globally if no local installation is found. |
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-getting-started-blazor-client.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-getting-started-blazor-client.md
index f080e1c19..36243d2ed 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-getting-started-blazor-client.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-getting-started-blazor-client.md
@@ -1,38 +1,32 @@
---
title: Getting Started | Ignite UI for Blazor | Infragistics
-_description: Use Infragistics' Blazor components to create apps and improve data visualization with the world’s fastest, virtualized, real-time Blazor data grid and streaming financial and business and financial charts.
-_keywords: Ignite UI for Blazor, Infragistics, Getting Started
+description: Use Infragistics' Blazor components to create apps and improve data visualization with the world’s fastest, virtualized, real-time Blazor data grid and streaming financial and business and financial charts.
+keywords: "Ignite UI for Blazor, Infragistics, Getting Started"
mentionedTypes: []
+llms:
+ description: "The steps below describe how to create a new Blazor WebAssembly project."
_tocName: Blazor WebAssembly App
---
-
# Getting Started with Ignite UI for Blazor WebAssembly
This topic provides step-by-step instructions for creating Blazor WebAssembly applications with Ignite UI for Blazor using Visual Studio.
## Create a New Blazor WebAssembly Project
-
The steps below describe how to create a new Blazor WebAssembly project. If you want to add Ignite UI for Blazor to an existing application, go to the [**Install Ignite UI for Blazor Package**](#install-ignite-ui-for-blazor) section.
Start Visual Studio 2022 and click **Create a new project** on the start page, select the **Blazor WebAssembly App** template, and click **Next**.
-
-
Provide a project name and location, and click **Next**
-
-
Specify additional project options, and click **Create**
-
-
## Install Ignite UI for Blazor
Ignite UI for Blazor is delivered via NuGet packages. To use the Ignite UI for Blazor components in your Blazor applications, you must first install the appropriate NuGet packages.
In Visual Studio, open the NuGet package manager by selecting **Tools** → **NuGet Package Manager** → **Manage NuGet Packages for Solution**. Search for and install the **IgniteUI.Blazor** NuGet package.
-For more information on installing Ignite UI for Blazor using NuGet, read the [Installing Ignite UI for Blazor](general-installing-blazor.md) topic.
+For more information on installing Ignite UI for Blazor using NuGet, read the [Installing Ignite UI for Blazor](./general-installing-blazor.md) topic.
## Register Ignite UI for Blazor
@@ -48,13 +42,13 @@ builder.Services.AddIgniteUIBlazor();
await builder.Build().RunAsync();
```
-2 - Add the **IgniteUI.Blazor.Controls** namespace in the **\_Imports.razor** file:
+2 - Add the **IgniteUI.Blazor.Controls** namespace in the **_Imports.razor** file:
```razor
@using IgniteUI.Blazor.Controls
```
-3 - Add the Style Sheet in the **\** element of the **wwwroot/index.html** file:
+3 - Add the Style Sheet in the **``** element of the **wwwroot/index.html** file:
```razor
@@ -82,7 +76,7 @@ public static async Task Main(string[] args)
}
```
-2 - Continue with step 2 in the [.NET 6 and Later Applications](general-getting-started-blazor-client.md#net-6-and-later-applications) section
+2 - Continue with step 2 in the [.NET 6 and Later Applications](./general-getting-started-blazor-client.md#net-6-and-later-applications) section
## Add Ignite UI for Blazor Component
@@ -110,4 +104,3 @@ Add an Ignite UI for Blazor component to your razor page:
Build and run the Blazor app.
-
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-getting-started-blazor-maui.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-getting-started-blazor-maui.md
index 31a526ede..b73d838ec 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-getting-started-blazor-maui.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-getting-started-blazor-maui.md
@@ -1,11 +1,12 @@
---
title: Build a Blazor Hybrid App with .NET MAUI - Ignite UI for Blazor
-_description: This article provides a step-step instruction on how to create a blazor hybrid app with .Net Maui using Ignite UI for Blazor. Try it Now!
-_keywords: Ignite UI for Blazor, Infragistics, Getting Started
+description: This article provides a step-step instruction on how to create a blazor hybrid app with .Net Maui using Ignite UI for Blazor. Try it Now!
+keywords: "Ignite UI for Blazor, Infragistics, Getting Started"
mentionedTypes: []
+llms:
+ description: "Blazor hybrid is something between Blazor Server and Blazor Web Assembly."
_tocName: .NET MAUI Blazor App
---
-
# Getting Started: Build a Blazor Hybrid App with .NET MAUI
This topic provides step-by-step instructions for creating .NET MAUI Blazor applications with Ignite UI for Blazor using Visual Studio 2022.
@@ -33,31 +34,46 @@ The steps below describe how to create a new .NET MAUI Blazor project. If you wa
Start Visual Studio 2022 and click **Create a new project** on the start page, select the **.NET MAUI Blazor App** template, and click **Next**.
-
-
Provide a project name and location, and click **Create**
-
-
## Install Ignite UI for Blazor
Ignite UI for Blazor is delivered via NuGet packages. To use the Ignite UI for Blazor components in your Blazor applications, you must first install the appropriate NuGet packages.
In Visual Studio, open the NuGet package manager by selecting **Tools** → **NuGet Package Manager** → **Manage NuGet Packages for Solution**. Search for and install the **IgniteUI.Blazor** NuGet package.
-For more information on installing Ignite UI for Blazor using NuGet, read the [Installing Ignite UI for Blazor](general-installing-blazor.md) topic.
+For more information on installing Ignite UI for Blazor using NuGet, read the [Installing Ignite UI for Blazor](./general-installing-blazor.md) topic.
## Register Ignite UI for Blazor
1 - Open the **MauiProgram.cs** file and register the Ignite UI for Blazor Service by calling **builder.Services.AddIgniteUIBlazor** function:
-2 - Add the **IgniteUI.Blazor.Controls** namespace in the **\_Imports.razor** file:
+```cs
+public static class MauiProgram
+{
+ public static MauiApp CreateMauiApp()
+ {
+ var builder = MauiApp.CreateBuilder();
+ // ...
+ builder.Services.AddMauiBlazorWebView();
+#if DEBUG
+ builder.Services.AddBlazorWebViewDeveloperTools();
+#endif
+
+ //register IgniteUI for Blazor
+ builder.Services.AddIgniteUIBlazor();
+ return builder.Build();
+ }
+}
+```
+
+2 - Add the **IgniteUI.Blazor.Controls** namespace in the **_Imports.razor** file:
```razor
@using IgniteUI.Blazor.Controls
```
-3 - Add the Style Sheet in the **\** element of the **wwwroot/index.html** file:
+3 - Add the Style Sheet in the **``** element of the **wwwroot/index.html** file:
```razor
@@ -98,7 +114,5 @@ Add an Ignite UI for Blazor component to your razor page:
Build and run the .NET MAUI Blazor app for Windows.
-
-
-> [!Note]
-> For more information about building cross-platform applications with .NET MAUI, visit the [Microsoft Documentation](https://docs.microsoft.com/en-us/dotnet/maui/get-started/first-app?pivots=devices-android).
+**Note:**
+For more information about building cross-platform applications with .NET MAUI, visit the [Microsoft Documentation](https://docs.microsoft.com/en-us/dotnet/maui/get-started/first-app?pivots=devices-android).
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-getting-started-blazor-web-app.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-getting-started-blazor-web-app.md
index 20fc99598..6c20e0284 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-getting-started-blazor-web-app.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-getting-started-blazor-web-app.md
@@ -1,40 +1,34 @@
---
title: Getting Started | Ignite UI for Blazor | Infragistics
-_description: Use Infragistics' Blazor components to create apps and improve data visualization with the world’s fastest, virtualized, real-time Blazor data grid and streaming financial and business and financial charts.
-_keywords: Ignite UI for Blazor, Infragistics, Getting Started
+description: Use Infragistics' Blazor components to create apps and improve data visualization with the world’s fastest, virtualized, real-time Blazor data grid and streaming financial and business and financial charts.
+keywords: "Ignite UI for Blazor, Infragistics, Getting Started"
mentionedTypes: []
+llms:
+ description: "The steps below describe how to create a new Blazor Web App project."
_tocName: Blazor Web App
---
-
# Getting Started with Ignite UI for Blazor Web App
This topic provides step-by-step instructions for creating Blazor Web App applications with Ignite UI for Blazor using Visual Studio.
## Create a New Blazor Web App Project
-
The steps below describe how to create a new Blazor Web App project. If you want to add Ignite UI for Blazor to an existing application, go to the [**Install Ignite UI for Blazor Package**](#install-ignite-ui-for-blazor) section.
Start Visual Studio 2022 and click **Create a new project** on the start page, select the **Blazor Web App** template, and click **Next**.
-
-
Provide a project name and location, and click **Next**
-
-
-In the next step, keep note of the optional Interactivity location setup, as it defaults to per-page, within the Client project. eg. @rendermode InteractiveAuto. The other option, Global, moves the Interactivity render mode setup to App.razor, in one location, within the shared Blazor project. eg. \
+In the next step, keep note of the optional Interactivity location setup, as it defaults to per-page, within the Client project. eg. `@rendermode InteractiveAuto`. The other option, Global, moves the Interactivity render mode setup to App.razor, in one location, within the shared Blazor project. eg. ``
Specify additional project options, and click **Create**
-
-
## Install Ignite UI for Blazor
Ignite UI for Blazor is delivered via NuGet packages. To use the Ignite UI for Blazor components in your Blazor applications, you must first install the appropriate NuGet packages.
In Visual Studio, open the NuGet package manager by selecting **Tools** → **NuGet Package Manager** → **Manage NuGet Packages for Solution**. Select all target projects for package installation, then search for and install the **IgniteUI.Blazor** NuGet package.
-For more information on installing Ignite UI for Blazor using NuGet, read the [Installing Ignite UI for Blazor](general-installing-blazor.md) topic.
+For more information on installing Ignite UI for Blazor using NuGet, read the [Installing Ignite UI for Blazor](./general-installing-blazor.md) topic.
## Register Ignite UI for Blazor
@@ -63,13 +57,13 @@ builder.Services.AddIgniteUIBlazor();
await builder.Build().RunAsync();
```
-2 - Add the **IgniteUI.Blazor.Controls** namespace in the **\_Imports.razor** files in both the client and server projects:
+2 - Add the **IgniteUI.Blazor.Controls** namespace in the **_Imports.razor** files in both the client and server projects:
```razor
@using IgniteUI.Blazor.Controls
```
-3 - Add the Style Sheet in the **\** element of the **Components/App.razor** file in the server project:
+3 - Add the Style Sheet in the **``** element of the **Components/App.razor** file in the server project:
```razor
@@ -124,4 +118,3 @@ Add an Ignite UI for Blazor component to your razor page (Please note that Ignit
Build and run the Blazor app.
-
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-getting-started-oss.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-getting-started-oss.md
index d14376bda..8b7d4e20a 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-getting-started-oss.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-getting-started-oss.md
@@ -1,11 +1,12 @@
---
title: Getting Started | Ignite UI for Blazor Open-Source Libraries | Infragistics
-_description: Use Infragistics' Open-Source Blazor components to create apps with lightweight, MIT licensed components including Grid Lite. Try now.
-_keywords: Ignite UI for Blazor, Infragistics, Getting Started, Open-Source, MIT License
+description: Use Infragistics' Open-Source Blazor components to create apps with lightweight, MIT licensed components including Grid Lite. Try now.
+keywords: "Ignite UI for Blazor, Infragistics, Getting Started, Open-Source, MIT License"
mentionedTypes: []
+llms:
+ description: "Ignite UI for Blazor offers open-source UI components under the MIT license."
_tocName: Open-Source Libraries
---
-
# Getting Started with Open-Source Libraries
This topic provides step-by-step instructions for creating Blazor applications with the Ignite UI for Blazor open-source libraries using Visual Studio.
@@ -23,8 +24,8 @@ The open-source libraries include:
- Start Visual Studio and click **Create a new project** on the start page, select a Blazor template such as **Blazor Server App**, **Blazor WebAssembly App**, or **Blazor Web App**, and click **Next**.
-> [!Note]
-> When using **Blazor Server App**, ensure you add `@rendermode InteractiveServer` in the pages where the components are used.
+**Note:**
+When using **Blazor Server App**, ensure you add `@rendermode InteractiveServer` in the pages where the components are used.
- Provide a project name and location, then click **Next**.
@@ -34,8 +35,8 @@ The open-source libraries include:
The IgniteUI.Blazor.Lite package contains open-source UI components delivered via NuGet.
-> [!Note]
-> You should not combine the **IgniteUI.Blazor** and **IgniteUI.Blazor.Lite** packages in the same project. They use the same namespaces and contain duplicate components, so only one of them should be used.
+**Note:**
+You should not combine the **IgniteUI.Blazor** and **IgniteUI.Blazor.Lite** packages in the same project. They use the same namespaces and contain duplicate components, so only one of them should be used.
In Visual Studio, open the NuGet package manager by selecting **Tools** → **NuGet Package Manager** → **Manage NuGet Packages for Solution**. Search for and install the **IgniteUI.Blazor.Lite** NuGet package.
@@ -69,7 +70,7 @@ builder.Services.AddIgniteUIBlazor();
var app = builder.Build();
```
-2 - Add the **IgniteUI.Blazor.Controls** namespace in the **\_Imports.razor** file:
+2 - Add the **IgniteUI.Blazor.Controls** namespace in the **_Imports.razor** file:
```razor
@using IgniteUI.Blazor.Controls
@@ -113,11 +114,11 @@ Add an Ignite UI for Blazor component to your razor page, for example:
```
-For more detailed information about which components are included in the light package, see the - [Open-Source vs Premium Components](general-open-source-vs-premium.md) topic.
+For more detailed information about which components are included in the light package, see the - [Open-Source vs Premium Components](./general-open-source-vs-premium.md) topic.
-For more detailed information about Grid Lite features and configuration, see the [Grid Lite Overview](grid-lite/overview.md) topic.
+For more detailed information about Grid Lite features and configuration, see the [Grid Lite Overview](./grid-lite/overview.md) topic.
## Additional Resources
-- [Open-Source vs Premium Components](general-open-source-vs-premium.md)
-- [Grid Lite Overview](grid-lite/overview.md)
+- [Open-Source vs Premium Components](./general-open-source-vs-premium.md)
+- [Grid Lite Overview](./grid-lite/overview.md)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-getting-started.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-getting-started.md
index 623109ed4..ff82e124b 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-getting-started.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-getting-started.md
@@ -1,41 +1,33 @@
---
title: Getting Started | Ignite UI for Blazor | Infragistics
-_description: Install Ignite UI for Blazor and render your first component. Covers CLI scaffolding, manual package setup, and AI tooling with Agent Skills and MCP servers.
-_keywords: Ignite UI for Blazor, Infragistics, Getting Started
+description: "Install Ignite UI for Blazor and render your first component. Covers CLI scaffolding, manual package setup, and AI tooling with Agent Skills and MCP servers."
+keywords: "Ignite UI for Blazor, Infragistics, Getting Started"
last_updated: "2025-04-06"
mentionedTypes: []
+llms:
+ description: "Ignite UI for Blazor is a complete set of UI widgets, components, and Figma UI kits for Blazor by Infragistics."
_tocName: Blazor Server App
---
-
-
-
# Getting Started With Ignite UI for Blazor
This topic provides step-by-step instructions for creating Blazor Server applications with Ignite UI for Blazor using Visual Studio.
## Create a New Blazor Server Project
-
The steps below describe how to create a new Blazor Server project. If you want to add Ignite UI for Blazor to an existing application, go to the [**Install Ignite UI for Blazor Package**](#install-ignite-ui-for-blazor) section.
Start Visual Studio 2022 and click **Create a new project** on the start page, select the **Blazor Server App** template, and click **Next**.
-
-
Provide a project name and location, and click **Next**
-
-
Specify additional project options, and click **Create**
-
-
## Install Ignite UI for Blazor
Ignite UI for Blazor is delivered via NuGet packages. To use the Ignite UI for Blazor components in your Blazor applications, you must first install the appropriate NuGet packages.
In Visual Studio, open the NuGet package manager by selecting **Tools** → **NuGet Package Manager** → **Manage NuGet Packages for Solution**. Search for and install the **IgniteUI.Blazor** NuGet package.
-For more information on installing Ignite UI for Blazor using NuGet, read the [Installing Ignite UI for Blazor](general-installing-blazor.md) topic.
+For more information on installing Ignite UI for Blazor using NuGet, read the [Installing Ignite UI for Blazor](./general-installing-blazor.md) topic.
## Register Ignite UI for Blazor
@@ -55,13 +47,13 @@ builder.Services.AddIgniteUIBlazor();
var app = builder.Build();
```
-2 - Add the **IgniteUI.Blazor.Controls** namespace in the **\_Imports.razor** file:
+2 - Add the **IgniteUI.Blazor.Controls** namespace in the **_Imports.razor** file:
```razor
@using IgniteUI.Blazor.Controls
```
-3a - Add the Style Sheet in the **\** element of the **Pages/\_Layout.cshtml** or **Pages/\_Host.cshtml** file:
+3a - Add the Style Sheet in the **``** element of the **Pages/_Layout.cshtml** or **Pages/_Host.cshtml** file:
```razor
@@ -88,13 +80,13 @@ public void ConfigureServices(IServiceCollection services)
}
```
-2 - Add the **IgniteUI.Blazor.Controls** namespace in the **\_Imports.razor** file:
+2 - Add the **IgniteUI.Blazor.Controls** namespace in the **_Imports.razor** file:
```razor
@using IgniteUI.Blazor.Controls
```
-3a - Add the Style Sheet in the **\** element of the **Pages/\_Host.cshtml** file:
+3a - Add the Style Sheet in the **``** element of the **Pages/_Host.cshtml** file:
```razor
@@ -102,7 +94,7 @@ public void ConfigureServices(IServiceCollection services)
```
-3b - Add Script Reference to the **Pages/\_Host.cshtml** file:
+3b - Add Script Reference to the **Pages/_Host.cshtml** file:
```razor
@@ -135,4 +127,3 @@ Add an Ignite UI for Blazor component to your razor page:
Build and run the Blazor app.
-
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-installing-blazor.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-installing-blazor.md
index 17a4ba8f8..2d5f8194c 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-installing-blazor.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-installing-blazor.md
@@ -1,47 +1,43 @@
---
title: Installing Ignite UI for Blazor
-_description: How to install Blazor using nuget packages.
-_keywords: Blazor, NuGet, Feed, Infragistics, Install
+description: How to install Blazor using nuget packages.
+keywords: "Blazor, NuGet, Feed, Infragistics, Install"
mentionedTypes: []
+llms:
+ description: "Ignite UI for Blazor is delivered via NuGet packages."
_tocName: Installing Ignite UI for Blazor
---
-
# Installing Ignite UI for Blazor
Ignite UI for Blazor is delivered via NuGet packages. To use the Ignite UI for Blazor components in your Blazor applications, you must first install the appropriate NuGet packages.
There are three ways to install Ignite UI for Blazor using NuGet:
-
- [Using Visual Studio](#using-visual-studio)
- [Using the .NET CLI](#using-the-net-cli)
- [Using the Package Manager](#using-the-package-manager)
Licensed users should use the official licensed Ignite UI for Blazor NuGet packages provided on the [Infragistics Private NuGet Feed](./general-nuget-feed.md).
-> [!Note]
-> Trial users can install the **IgniteUI.Blazor** trial NuGet package found on [NuGet.org](https://www.nuget.org/packages/IgniteUI.Blazor).
+**Note:**
+Trial users can install the **IgniteUI.Blazor** trial NuGet package found on [NuGet.org](https://www.nuget.org/packages/IgniteUI.Blazor).
## Using Visual Studio
Right click the Solution, or Project, and select **Manage NuGet Packages for Solution**.
-
-
In the package manager dialog, open the **Browse** tab, select the **Infragistics** package source, and install the **IgniteUI.Blazor** NuGet package into the project.
-
-
-> [!Note]
-> If you do not have an Infragistics package source available, learn how to add it by reading the [Infragistics NuGet feed topic](./general-nuget-feed.md).
+**Note:**
+If you do not have an Infragistics package source available, learn how to add it by reading the [Infragistics NuGet feed topic](./general-nuget-feed.md).
## Using the .NET CLI
```cmd
-> dotnet add package IgniteUI.Blazor --version 25.2.83 (March 2026)
+> dotnet add package IgniteUI.Blazor --version 26.1.98
```
## Using the Package Manager
```cmd
-PM> Install-Package IgniteUI.Blazor -Version 25.2.83 (March 2026)
-```
+PM> Install-Package IgniteUI.Blazor -Version 26.1.98
+```
\ No newline at end of file
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-nuget-feed.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-nuget-feed.md
index 85af00e3e..a429dda19 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-nuget-feed.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-nuget-feed.md
@@ -1,11 +1,12 @@
---
title: Infragistics NuGet Feed
-_description: Infragistics NuGet Feed for Blazor components.
-_keywords: Blazor, NuGet, Feed, Infragistics
+description: Infragistics NuGet Feed for Blazor components.
+keywords: "Blazor, NuGet, Feed, Infragistics"
mentionedTypes: []
+llms:
+ description: "Infragistics provides a private NuGet feed for licensed users to consume and add licensed Ignite UI for Blazor NuGet packages to their applications via the NuGet Package Manager."
_tocName: Adding Licensed NuGet Feed
---
-
# Infragistics NuGet Feed
Infragistics provides a private NuGet feed for licensed users to consume and add licensed Ignite UI for Blazor NuGet packages to their applications via the NuGet Package Manager.
@@ -19,22 +20,17 @@ This topic contains the following sections:
1 - In Visual Studio, select **Tools → NuGet Package Manager → Package Manager Settings**.
-
-
2 - In the **Package Sources** section, add a new package source by clicking the **plus icon** in the top right corner of the dialog.
-
- Set the Name to **Infragistics**
- Set the Source to **https://packages.infragistics.com/nuget/licensed/v3/index.json** if you prefer using the NuGet protocol version 3. Otherwise this must be set to **https://packages.infragistics.com/nuget/licensed/**
-> [!Note]
-> For more details on whether to use v3 or older please visit: **https://devblogs.microsoft.com/nuget/nuget-3-what-and-why/**. Protocol v3 is applicable only when using newer versions of NuGet clients (after 2015). Older NuGet clients may or may not be compatible with v3.
+**Note:**
+For more details on whether to use v3 or older please visit: **https://devblogs.microsoft.com/nuget/nuget-3-what-and-why/**. Protocol v3 is applicable only when using newer versions of NuGet clients (after 2015). Older NuGet clients may or may not be compatible with v3.
Click the **Update** button, and then click **OK** to close the dialog.
-
-
-> [!Note]
-> When adding a NuGet package from this source for the first time, you will be prompted for your Infragistics credentials.
+**Note:**
+When adding a NuGet package from this source for the first time, you will be prompted for your Infragistics credentials.
## Adding with the NuGet CLI
@@ -50,5 +46,5 @@ nuget sources add -name "Infragistics" -source "https://packages.infragistics.co
nuget sources add -name "Infragistics" -source "https://packages.infragistics.com/nuget/licensed" -username "your login email" -password "your password"
```
-> [!Note]
-> The password will be stored encrypted in the NuGet config file and can only be decrypted in the same user context as it was encrypted. The default location of the config file can be found here `%AppData%\NuGet\NuGet.config`
+**Note:**
+The password will be stored encrypted in the NuGet config file and can only be decrypted in the same user context as it was encrypted. The default location of the config file can be found here `%AppData%\NuGet\NuGet.config`
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-open-source-vs-premium.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-open-source-vs-premium.md
index e64c03785..158d80a22 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-open-source-vs-premium.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-open-source-vs-premium.md
@@ -1,10 +1,11 @@
---
title: Open Source vs Premium | Ignite UI for Blazor | Infragistics
-_description: Ignite UI for Angular is a complete set of native Angular UI components, which allow you to build fast, feature-rich and Material designed applications!
-_keywords: Ignite UI for Blazor, getting started, angular components
+description: Ignite UI for Angular is a complete set of native Angular UI components, which allow you to build fast, feature-rich and Material designed applications!
+keywords: "Ignite UI for Blazor, getting started, angular components"
+llms:
+ description: "Ignite UI for Blazor offers two distinct paths for building modern, data-driven applications: Open-Source Components and Premium Components."
_tocName: Open-Source vs Premium
---
-
# Open-Source vs Premium in Ignite UI for Blazor
Ignite UI for Blazor offers two distinct paths for building modern, data-driven applications: Open-Source Components and Premium Components. This dual approach ensures flexibility for developers at every stage of their project.
@@ -27,7 +28,7 @@ Our Ignite UI Premium components come with advanced enterprise features and are
- [Dock Manager](../components/layouts/dock-manager.md)
- [Charting library](../components/charts/chart-overview.md)
- [Maps library](../components/geo-map.md)
-- [Excel Library](../components/excel-library.md)
+- [Excel Library](../components/excel-library.md)
- Gauges - [Bullet Graph](../components/bullet-graph.md), [Linear Gauge](../components/linear-gauge.md) and [Radial Gauge](../components/radial-gauge.md)
- [Toolbar](../components/menus/toolbar.md)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-step-by-step-guide-using-cli.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-step-by-step-guide-using-cli.md
new file mode 100644
index 000000000..d978f6eff
--- /dev/null
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/general-step-by-step-guide-using-cli.md
@@ -0,0 +1,162 @@
+---
+title: "Step-by-Step Guide Using Ignite UI CLI | Ignite UI for Blazor | Infragistics"
+description: "Walk through the Ignite UI CLI interactive wizard to create a new Blazor project, choose a template and theme, and add Ignite UI for Blazor component views."
+keywords: "Blazor cli, ignite ui cli, Ignite UI for Blazor, scaffolding, step-by-step, Infragistics"
+mentionedTypes: []
+last_updated: "2025-04-08"
+llms:
+ description: "The Ignite UI CLI step-by-step mode is an interactive wizard that guides you through project creation, template selection, theming, and component view addition for Ignite UI for Blazor projects."
+_tocName: Step-by-Step Guide Using Ignite UI CLI
+---
+# Step-by-Step Guide Using Ignite UI CLI
+
+The Ignite UI CLI step-by-step mode is an interactive wizard that guides you through project creation, template selection, theming, and component view addition for Ignite UI for Blazor projects. It covers the same operations as the non-interactive `ig new` and `ig add` commands but prompts you at each step rather than requiring all arguments upfront.
+
+The step-by-step mode does not support scripted or non-interactive use - for that, use the `ig new` and `ig add` commands with explicit arguments. The wizard relies on `Inquirer.js`; see [supported terminals](https://github.com/SBoudrias/Inquirer.js#support-os-terminals) for compatibility. For the full CLI reference, see [Ignite UI CLI Overview](./general-cli-overview.md).
+
+To activate the wizard, run:
+
+```cmd
+ig
+```
+
+or:
+
+```cmd
+ig new
+```
+
+## Create a New Project
+
+The wizard walks through project naming, framework and type selection, template choice, and theming in sequence. Each step displays its options as an interactive list - navigate with the arrow keys and confirm with ENTER.
+
+### Enter a project name
+
+First, you will be prompted to enter a name for your application. The project is created inside a directory with the same name.
+
+### Select a framework
+
+Navigate through the options using the arrow keys and press ENTER to confirm:
+
+Select **Blazor** to scaffold a project pre-configured for Ignite UI for Blazor.
+
+### Select a project type
+
+### Select a project template
+
+Choose one of the available project templates. Navigate through the options using the arrow keys and press ENTER to confirm:
+
+| Template | Description |
+| :--------------- | :-------------------------------------------------- |
+| Empty | Minimal project structure scaffolded via the IgniteUI.Blazor.Templates package |
+
+If you select **Side Navigation** or **Side Navigation Mini**, the wizard prompts you with an additional step asking whether to add authentication to the project. Answering yes generates the corresponding auth variant (`side-nav-auth` or `side-nav-mini-auth`). If you select **Empty**, the authentication prompt is skipped.
+
+### Select a theme
+
+Choose a theme for your application:
+
+- The **default** option includes a pre-compiled CSS file with the default Ignite UI for Blazor theme.
+- The **custom** option generates a Sass-based color palette and theme configuration using the [Theming API](./themes/overview.md).
+
+### Choose a hosting Model
+
+Choose a hosting model for your application:
+
+```bash
+? Choose the hosting model: (Use arrow keys)
+❯ Server
+ Wasm
+ Auto
+ ```
+
+### Choose a theme variant
+
+Choose a theme variant for your application:
+
+```bash
+? Choose the theme variant: (Use arrow keys)
+❯ light
+ dark
+```
+
+### Configure AI Tooling
+
+After theming, the wizard prompts you to configure AI coding assistants. First, select which assistants should receive MCP server configuration:
+
+```bash
+? Which AI coding assistants do you want to configure MCP servers for? (Press to select)
+❯◉ VS Code (GitHub Copilot)
+ ◉ Cursor
+ ◯ Generic (.mcp.json)
+ ◯ Gemini CLI
+ ◯ JetBrains (AI Assistant)
+ ◯ None
+```
+
+Next, select which AI agents should receive skill files:
+
+```bash
+? Which AI agents should receive skill files? (Press to select)
+❯◉ GitHub Copilot (.agents/skills/)
+ ◉ Claude (.claude/skills/)
+ ◉ Cursor (.cursor/rules/)
+ ◯ Codex (.codex/)
+ ◯ Windsurf (.windsurfrules)
+ ◯ Gemini CLI (.gemini/)
+ ◯ JetBrains Junie (.junie/guidelines/)
+ ◯ None
+```
+
+Navigate through the options using the arrow keys, toggle selections with SPACE, and confirm with ENTER. Selecting **None** for both skips AI configuration entirely.
+
+To bypass these prompts in non-interactive mode, pass `--assistants` and `--agents` flags directly to `ig new`:
+
+```cmd
+ig new my-app --framework=react --type=igr-ts --template=side-nav --assistants vscode --agents copilot claude
+```
+
+For more details on the available flag values, see [Ignite UI CLI Overview](./general-cli-overview.md#ai-configuration-during-project-creation).
+
+### Complete or continue
+
+After completing the above steps, the project structure is generated, a Git repository is initialized, and the project is committed. You will then be asked whether to complete the process or add a new view to your application.
+
+## Add View
+
+The Ignite UI CLI supports multiple component templates that can be added to an existing project. This mode is available either as a continuation of project creation or inside an existing project using:
+
+```cmd
+ig add
+```
+
+You will be provided with a list of available component templates, grouped by category. Use the arrow keys to navigate through the groups and ENTER to select. For some templates, such as `Custom Grid`, you will be provided with a list of optional features that can be toggled on or off with the SPACE key before confirming your selection.
+
+After selecting a group, choose a specific template from the list and enter a name for the new component. If you choose to add a scenario template, you will also be presented with a list of available scenario templates.
+
+After adding a template, you will be asked whether to add more views or complete the process. On completion, any remaining package dependencies are installed and the application is built and opened in your default browser.
+
+To add more views to a project later without the wizard, use the direct `add` command:
+
+```cmd
+ig add [template] [name]
+```
+
+For example:
+
+```cmd
+ig add grid MyGrid
+```
+
+**Note:**
+Your routing file will be updated with the path to the newly generated page. For example, a component named `MyGrid` will be navigable at `/my-grid`.
+
+## Run the Application
+
+Once your project is complete, run it at any time with:
+
+```cmd
+ig start
+```
+
+This builds the project, starts a local web server, and opens the application in your default browser.
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-binding-data-csv.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-binding-data-csv.md
index cab0a81b4..b32ea35b8 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-binding-data-csv.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-binding-data-csv.md
@@ -1,14 +1,15 @@
---
-title: Blazor Map | Data Visualization Tools | Binding CSV Data | Infragistics
-_description: Learn how to use Infragistics' Blazor map to display data that contains geographic locations from view models or geographic locations loaded from CSV files. View Ignite UI for Blazor map demos!
-_keywords: Blazor map, plot data, Ignite UI for Blazor, Infragistics, data binding
-_license: commercial
-mentionedTypes: ["XamGeographicMap", "GeographicHighDensityScatterSeries"]
+title: "Blazor Map | Data Visualization Tools | Binding CSV Data | Infragistics"
+description: Learn how to use Infragistics' Blazor map to display data that contains geographic locations from view models or geographic locations loaded from CSV files. View Ignite UI for Blazor map demos!
+keywords: "Blazor map, plot data, Ignite UI for Blazor, Infragistics, data binding"
+license: commercial
+mentionedTypes: ["GeographicMap", "GeographicHighDensityScatterSeries"]
namespace: Infragistics.Controls.Maps
+llms:
+ description: "With the Ignite UI for Blazor map component, you can plot geographic data loaded from various file types."
_tocName: Binding CSV File
_premium: true
---
-
# Blazor Binding CSV Files with Geographic Locations
With the Ignite UI for Blazor map component, you can plot geographic data loaded from various file types. For example, you can load geographic locations from a comma separated values (CSV) file.
@@ -84,12 +85,15 @@ With the Ignite UI for Blazor map component, you can plot geographic data loaded
}
```
-
-
## Data Example
-
Here is an example of data from CSV file:
+```csv
+City,Lat,Lon,State,Code,County,Density,Population
+New York,40.7856,-74.0093,New Jersey,NJ,Hudson,21057,54227
+Dundee,42.5236,-76.9775,New York,NY,Yates,579,1650
+```
+
```razor
City,Lat,Lon,State,Code,County,Density,Population
New York,40.7856,-74.0093,New Jersey,NJ,Hudson,21057,54227
@@ -97,7 +101,6 @@ Dundee,42.5236,-76.9775,New York,NY,Yates,579,1650
```
## Code Snippet
-
The following code loads and binds [`IgbGeographicHighDensityScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries) in the map component to an array of objects created from loaded CSV file with geographic locations.
```razor
@@ -164,11 +167,4 @@ The following code loads and binds [`IgbGeographicHighDensityScatterSeries`](mcp
```
## API References
-
-- [`IgbGeographicHighDensityScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries)
-- `DataSource`
-- [`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=LatitudeMemberPath)
-- [`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=LongitudeMemberPath)
-- [`HeatMaximumColor`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=HeatMaximumColor)
-- [`HeatMinimumColor`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=HeatMinimumColor)
-- [`PointExtent`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=PointExtent)
+[`IgbGeographicHighDensityScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-binding-data-json-points.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-binding-data-json-points.md
index fcce41630..03dfec1c3 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-binding-data-json-points.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-binding-data-json-points.md
@@ -1,14 +1,15 @@
---
-title: Blazor Map | Data Visualization Tools | Binding JSON Files | Infragistics
-_description: Learn how to use Infragistics' Blazor map to display data that contains geographic locations from view models or geographic locations loaded from JSON files. View Ignite UI for Blazor map demos!
-_keywords: Blazor map, JSON files, Ignite UI for Blazor, Infragistics, data binding
-_license: commercial
-mentionedTypes: ["XamGeographicMap", "Series"]
+title: "Blazor Map | Data Visualization Tools | Binding JSON Files | Infragistics"
+description: Learn how to use Infragistics' Blazor map to display data that contains geographic locations from view models or geographic locations loaded from JSON files. View Ignite UI for Blazor map demos!
+keywords: "Blazor map, JSON files, Ignite UI for Blazor, Infragistics, data binding"
+license: commercial
+mentionedTypes: ["GeographicMap", "Series"]
namespace: Infragistics.Controls.Maps
+llms:
+ description: "With the Ignite UI for Blazor map, you can plot geographic data loaded from various file types."
_tocName: Binding JSON File
_premium: true
---
-
# Blazor Binding JSON Files with Geographic Locations
With the Ignite UI for Blazor map, you can plot geographic data loaded from various file types. For example, you can load geographic locations from JavaScript Object Notation (JSON) file.
@@ -63,10 +64,7 @@ With the Ignite UI for Blazor map, you can plot geographic data loaded from vari
}
```
-
-
## Data Example
-
Here is an example of data from JSON file:
```json
@@ -79,7 +77,6 @@ Here is an example of data from JSON file:
```
## Code Snippet
-
The following code loads and binds [`IgbGeographicHighDensityScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries) in the map component to an array of objects created from loaded JSON file with geographic locations:
```razor
@@ -123,10 +120,9 @@ The following code loads and binds [`IgbGeographicHighDensityScatterSeries`](mcp
```
## API References
-
-- [`IgbGeographicHighDensityScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries)
-- [`IgbGeographicSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries)
-- `GeographicMap`
-- `DataSource`
-- [`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries&member=LatitudeMemberPath)
-- [`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries&member=LongitudeMemberPath)
+[`IgbGeographicHighDensityScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries)
+[`IgbGeographicSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries)
+[`IgbGeographicMap`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap)
+[`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=dataSource)
+[`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries&member=latitudeMemberPath)
+[`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries&member=longitudeMemberPath)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-binding-data-model.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-binding-data-model.md
index 7285aee0f..94659df39 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-binding-data-model.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-binding-data-model.md
@@ -1,17 +1,18 @@
---
-title: Blazor Map | Data Visualization Tools | Binding Geographic Data Models | Infragistics
-_description: Use Infragistics' Blazor JavaScript map to display geo-spatial data from shape files and/or geographic locations from data models on geographic imagery maps. View Ignite UI for Blazor map demos!
-_keywords: Blazor map, binding data models, Ignite UI for Blazor, Infragistics, data binding
-_license: commercial
-mentionedTypes: ["XamGeographicMap", "GeographicScatterAreaSeries", "GeographicHighDensityScatterSeries", "GeographicProportionalSymbolSeries", "GeographicScatterAreaSeries", "GeographicContourLineSeries", "GeographicShapeSeries", "GeographicPolylineSeries", "Series", "GeographicShapeSeriesBase"]
+title: "Blazor Map | Data Visualization Tools | Binding Geographic Data Models | Infragistics"
+description: Use Infragistics' Blazor JavaScript map to display geo-spatial data from shape files and/or geographic locations from data models on geographic imagery maps. View Ignite UI for Blazor map demos!
+keywords: "Blazor map, binding data models, Ignite UI for Blazor, Infragistics, data binding"
+license: commercial
+mentionedTypes: ["GeographicMap", "GeographicScatterAreaSeries", "GeographicHighDensityScatterSeries", "GeographicProportionalSymbolSeries", "GeographicScatterAreaSeries", "GeographicContourLineSeries", "GeographicShapeSeries", "GeographicPolylineSeries", "Series", "GeographicShapeSeriesBase"]
namespace: Infragistics.Controls.Maps
+llms:
+ description: "The Ignite UI for Blazor map component is designed to display geo-spatial data from shape files and/or geographic locations from data models on geographic imagery maps."
_tocName: Binding Data Model
_premium: true
---
-
# Blazor Binding Geographic Data Models
-The Ignite UI for Blazor map component is designed to display geo-spatial data from shape files and/or geographic locations from data models on geographic imagery maps. The [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=DataSource) property of geographic series is used for the purpose of binding to data models. This property can be bound an array of custom objects.
+The Ignite UI for Blazor map component is designed to display geo-spatial data from shape files and/or geographic locations from data models on geographic imagery maps. The [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=dataSource) property of geographic series is used for the purpose of binding to data models. This property can be bound an array of custom objects.
## Blazor Binding Geographic Data Models Example
@@ -94,27 +95,25 @@ The Ignite UI for Blazor map component is designed to display geo-spatial data f
}
```
-
-
The following table summarized data structures required for each type of geographic series:
| Geographic Series | Properties | Description |
|--------------|---------------| ---------------|
-| [`IgbGeographicSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries) | [`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries&member=LongitudeMemberPath), [`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries&member=LatitudeMemberPath) | Specifies names of 2 numeric longitude and latitude coordinates |
-| [`IgbGeographicHighDensityScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries) | [`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=LongitudeMemberPath), [`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=LatitudeMemberPath) | Specifies names of 2 numeric longitude and latitude coordinates |
-| [`IgbGeographicProportionalSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries) | [`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries&member=LongitudeMemberPath), [`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries&member=LatitudeMemberPath), [`RadiusMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries&member=RadiusMemberPath) | Specifies names of 2 numeric longitude and latitude coordinates and 1 numeric column for size/radius of symbols |
-| [`IgbGeographicScatterAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries) | [`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=LongitudeMemberPath), [`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=LatitudeMemberPath), [`ColorMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=ColorMemberPath) | Specifies names of 2 numeric longitude and latitude coordinates and 1 numeric column for triangulation of values |
-| [`IgbGeographicContourLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries) | [`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=LongitudeMemberPath), [`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=LatitudeMemberPath), [`ValueMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=ValueMemberPath) | Specifies names of 2 numeric longitude and latitude coordinates and 1 numeric column for triangulation of values |
-|[`IgbGeographicShapeSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicShapeSeries)|[`ShapeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicShapeSeries&member=ShapeMemberPath)|Specifies the name of data column of [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=DataSource) items that contains the geographic points of shapes. This property must be mapped to an array of arrays of objects with x and y properties. |
-|[`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries)|[`ShapeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicShapeSeries&member=ShapeMemberPath)|Specifies the name of data column of [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=DataSource) items that contains the geographic coordinates of lines. This property must be mapped to an array of arrays of objects with x and y properties. |
+| [`IgbGeographicSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries) | [`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=longitudeMemberPath), [`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=latitudeMemberPath) | Specifies names of 2 numeric longitude and latitude coordinates |
+| [`IgbGeographicHighDensityScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries) | [`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=longitudeMemberPath), [`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=latitudeMemberPath) | Specifies names of 2 numeric longitude and latitude coordinates |
+| [`IgbGeographicProportionalSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries) | [`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=longitudeMemberPath), [`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=latitudeMemberPath), [`RadiusMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries&member=radiusMemberPath) | Specifies names of 2 numeric longitude and latitude coordinates and 1 numeric column for size/radius of symbols |
+| [`IgbGeographicScatterAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries) | [`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=longitudeMemberPath), [`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=latitudeMemberPath), [`ColorMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=colorMemberPath) | Specifies names of 2 numeric longitude and latitude coordinates and 1 numeric column for triangulation of values |
+| [`IgbGeographicContourLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries) | [`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=longitudeMemberPath), [`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=latitudeMemberPath), [`ValueMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=valueMemberPath) | Specifies names of 2 numeric longitude and latitude coordinates and 1 numeric column for triangulation of values |
+|[`IgbGeographicShapeSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicShapeSeries)|[`ShapeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicShapeSeries&member=shapeMemberPath)|Specifies the name of data column of [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=dataSource) items that contains the geographic points of shapes. This property must be mapped to an array of arrays of objects with x and y properties. |
+|[`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries)|[`ShapeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicShapeSeries&member=shapeMemberPath)|Specifies the name of data column of [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=dataSource) items that contains the geographic coordinates of lines. This property must be mapped to an array of arrays of objects with x and y properties. |
## Code Snippet
-
-The following code shows how to bind the [`IgbGeographicSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries) to a custom data model that contains geographic locations of some cities of the world stored using longitude and latitude coordinates. Also, we use the [`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries) to plot shortest geographic path between these locations using the [WorldUtility](geo-map-resources-world-util.md)
+The following code shows how to bind the [`IgbGeographicSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries) to a custom data model that contains geographic locations of some cities of the world stored using longitude and latitude coordinates. Also, we use the [`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries) to plot shortest geographic path between these locations using the [WorldUtility](./geo-map-resources-world-util.md)
```razor
@using IgniteUI.Blazor.Controls
+
@for (int i = 0; i < this.DataSource.Count; i++)
{
@@ -207,16 +206,9 @@ The following code shows how to bind the [`IgbGeographicSymbolSeries`](mcp:get_a
```
## API References
-
-- [`ColorMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=ColorMemberPath)
-- [`IgbGeographicContourLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries)
-- [`IgbGeographicHighDensityScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries)
-- [`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries)
-- [`IgbGeographicProportionalSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries)
-- [`IgbGeographicScatterAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries)
-- [`IgbGeographicSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries)
-- [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=DataSource)
-- [`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries&member=LatitudeMemberPath)
-- [`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries&member=LongitudeMemberPath)
-- [`RadiusMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries&member=RadiusMemberPath)
-- [`ValueMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=ValueMemberPath)
+[`IgbGeographicContourLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries)
+[`IgbGeographicHighDensityScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries)
+[`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries)
+[`IgbGeographicProportionalSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries)
+[`IgbGeographicScatterAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries)
+[`IgbGeographicSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-binding-multiple-shapes.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-binding-multiple-shapes.md
index 6b058ab19..eac513b89 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-binding-multiple-shapes.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-binding-multiple-shapes.md
@@ -1,14 +1,15 @@
---
-title: Blazor Map | Data Visualization Tools | Binding Multiple Data Shapes | Infragistics
-_description: Use Infragistics' Blazor to add multiple geographic series objects to overlay a few shapefiles with geo-spacial data. View Ignite UI for Blazor map tutorials!
-_keywords: Blazor map, shape files, Ignite UI for Blazor, Infragistics, data binding
-_license: commercial
-mentionedTypes: ["XamGeographicMap", "ShapefileConverter", "Series", "GeographicShapeSeriesBase"]
+title: "Blazor Map | Data Visualization Tools | Binding Multiple Data Shapes | Infragistics"
+description: Use Infragistics' Blazor to add multiple geographic series objects to overlay a few shapefiles with geo-spacial data. View Ignite UI for Blazor map tutorials!
+keywords: "Blazor map, shape files, Ignite UI for Blazor, Infragistics, data binding"
+license: commercial
+mentionedTypes: ["GeographicMap", "ShapefileRecord", "Series", "GeographicShapeSeriesBase"]
namespace: Infragistics.Controls.Maps
+llms:
+ description: "In the Ignite UI for Blazor map, you can add multiple geographic series objects to overlay a few shapefiles with geo-spacial data."
_tocName: Binding Multiple Shapes
_premium: true
---
-
# Blazor Binding and Overlaying Multiple Shape Files
In the Ignite UI for Blazor map, you can add multiple geographic series objects to overlay a few shapefiles with geo-spacial data. For example, [`IgbGeographicSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries) for plotting geographic locations of ports, the [`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries) for plotting routes between ports, and the [`IgbGeographicShapeSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicShapeSeries) for plotting shapes of countries.
@@ -58,9 +59,7 @@ In the Ignite UI for Blazor map, you can add multiple geographic series objects
}
```
-
-
-This topic takes you step-by-step towards displaying multiple geographic series in the map component. All geographic series plot following geo-spatial data loaded from shape files using the [`IgbShapeDataSource`](mcp:get_api_reference?platform=blazor&component=IgbShapeDataSource) class. Refer to the [Binding Shape Files](geo-map-binding-shp-file.md) topic for more information about [`IgbShapeDataSource`](mcp:get_api_reference?platform=blazor&component=IgbShapeDataSource) object.
+This topic takes you step-by-step towards displaying multiple geographic series in the map component. All geographic series plot following geo-spatial data loaded from shape files using the [`IgbShapefileRecord`](mcp:get_api_reference?platform=blazor&component=IgbShapefileRecord) class. Refer to the [Binding Shape Files](./geo-map-binding-shp-file.md) topic for more information about [`IgbShapefileRecord`](mcp:get_api_reference?platform=blazor&component=IgbShapefileRecord) object.
- [`IgbGeographicSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries) – displays locations of major cities
- [`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries) – displays routes between major ports
@@ -72,7 +71,7 @@ You can use geographic series in above or other combinations to plot desired dat
First, let's import required components and modules:
-```razor
+```csharp
// in Program.cs file
builder.Services.AddIgniteUIBlazor(
@@ -94,7 +93,7 @@ Next, we need to create a map with a few Geographic Series that will later load
## Loading Shapefiles
-Next, in constructor of your page, add a [`IgbShapeDataSource`](mcp:get_api_reference?platform=blazor&component=IgbShapeDataSource) for each shapefile that you want to display in the geographic map component.
+Next, in constructor of your page, add a [`IgbShapefileRecord`](mcp:get_api_reference?platform=blazor&component=IgbShapefileRecord) for each shapefile that you want to display in the geographic map component.
```razor
public IgbShapeDataSource AsiaShape;
@@ -131,6 +130,7 @@ For your convenience, all above code snippets are combined into one code block b
```razor
@using IgniteUI.Blazor.Controls
+
@@ -159,8 +159,7 @@ For your convenience, all above code snippets are combined into one code block b
```
## API References
-
-- [`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries)
-- [`IgbGeographicShapeSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicShapeSeries)
-- [`IgbGeographicSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries)
-- [`IgbShapeDataSource`](mcp:get_api_reference?platform=blazor&component=IgbShapeDataSource)
+[`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries)
+[`IgbGeographicShapeSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicShapeSeries)
+[`IgbGeographicSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries)
+[`IgbShapefileRecord`](mcp:get_api_reference?platform=blazor&component=IgbShapefileRecord)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-binding-multiple-sources.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-binding-multiple-sources.md
index 1b3aeee64..eea5056b1 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-binding-multiple-sources.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-binding-multiple-sources.md
@@ -1,13 +1,14 @@
---
-title: Blazor Map | Data Visualization Tools | Binding Multiple Data Source | Infragistics
-_description: Use Infragistics' Blazor JavaScript map to add multiple geographic series objects to overlay custom data sources with geo-spacial data. View Ignite UI for Blazor map tutorials!
-_keywords: Blazor map, geographic series, Ignite UI for Blazor, Infragistics, data binding
-_license: commercial
-mentionedTypes: ["XamGeographicMap", "SeriesViewer", "Series", "GeographicShapeSeriesBase"]
+title: "Blazor Map | Data Visualization Tools | Binding Multiple Data Source | Infragistics"
+description: Use Infragistics' Blazor JavaScript map to add multiple geographic series objects to overlay custom data sources with geo-spacial data. View Ignite UI for Blazor map tutorials!
+keywords: "Blazor map, geographic series, Ignite UI for Blazor, Infragistics, data binding"
+license: commercial
+mentionedTypes: ["GeographicMap", "SeriesViewer", "Series", "GeographicShapeSeriesBase"]
+llms:
+ description: "In the Ignite UI for Blazor map, you can add multiple geographic series objects to overlay custom data sources with geo-spacial data."
_tocName: Binding Multiple Sources
_premium: true
---
-
# Blazor Binding Multiple Data Sources
In the Ignite UI for Blazor map, you can add multiple geographic series objects to overlay custom data sources with geo-spacial data. For example, [`IgbGeographicSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries) for plotting geographic locations of airports, the [`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries) for plotting flights between airports, and 2nd [`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries) for plotting gridlines of major geographic coordinates.
@@ -48,8 +49,6 @@ In the Ignite UI for Blazor map, you can add multiple geographic series objects
}
```
-
-
This topic takes you step-by-step towards displaying multiple geographic series that will plot following geo-spatial data:
- [`IgbGeographicSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries) – displays locations of major airports
@@ -60,7 +59,7 @@ You can use geographic series in this or other combinations to plot desired data
## Creating Data Sources
-Create data sources for all geographic series that you want to display in the Ignite UI for Blazor map. For example, you can the use [WorldConnections](geo-map-resources-world-connections.md) script.
+Create data sources for all geographic series that you want to display in the Ignite UI for Blazor map. For example, you can the use [WorldConnections](./geo-map-resources-world-connections.md) script.
```razor
@code {
@@ -119,6 +118,7 @@ For your convenience, all above code snippets are combined into one code block b
```razor
@using IgniteUI.Blazor.Controls
+
@@ -146,6 +146,5 @@ For your convenience, all above code snippets are combined into one code block b
```
## API References
-
-- [`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries)
-- [`IgbGeographicSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries)
+[`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries)
+[`IgbGeographicSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-binding-shp-file.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-binding-shp-file.md
index f43418b27..fe180e335 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-binding-shp-file.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-binding-shp-file.md
@@ -1,16 +1,17 @@
---
-title: Blazor Map | Data Visualization Tools | Binding Geographic Shape Files | Infragistics
-_description: Use Infragistics' Blazor JavaScript map to load geo-spatial data from shape files. View Ignite UI for Blazor map demos!
-_keywords: Blazor map, shapefiles, Ignite UI for Blazor, Infragistics, data binding
-_license: commercial
-mentionedTypes: ["XamGeographicMap", "ShapefileConverter", "Series", "GeographicShapeSeriesBase"]
+title: "Blazor Map | Data Visualization Tools | Binding Geographic Shape Files | Infragistics"
+description: Use Infragistics' Blazor JavaScript map to load geo-spatial data from shape files. View Ignite UI for Blazor map demos!
+keywords: "Blazor map, shapefiles, Ignite UI for Blazor, Infragistics, data binding"
+license: commercial
+mentionedTypes: ["GeographicMap", "ShapefileRecord", "Series", "GeographicShapeSeriesBase"]
+llms:
+ description: "The Ignite UI for Blazor map component, the ShapefileRecord class loads geo-spatial data (points/locations, polylines, polygons) from shape files and converts it to a collection of IgxShapefileRecord objects."
_tocName: Binding Shape File
_premium: true
---
-
# Blazor Binding Shape Files with Geo-spatial Data
-The Ignite UI for Blazor map component, the [`IgbShapeDataSource`](mcp:get_api_reference?platform=blazor&component=IgbShapeDataSource) class loads geo-spatial data (points/locations, polylines, polygons) from shape files and converts it to a collection of [`IgbShapefileRecord`](mcp:get_api_reference?platform=blazor&component=IgbShapefileRecord) objects.
+The Ignite UI for Blazor map component, the [`IgbShapefileRecord`](mcp:get_api_reference?platform=blazor&component=IgbShapefileRecord) class loads geo-spatial data (points/locations, polylines, polygons) from shape files and converts it to a collection of `IgxShapefileRecord` objects.
## Blazor Binding Shape Files with Geo-spatial Data Example
@@ -44,30 +45,22 @@ The Ignite UI for Blazor map component, the [`IgbShapeDataSource`](mcp:get_api_r
}
```
-
-
-The following table explains properties of the [`IgbShapeDataSource`](mcp:get_api_reference?platform=blazor&component=IgbShapeDataSource) class for loading shape files.
+The following table explains properties of the [`IgbShapefileRecord`](mcp:get_api_reference?platform=blazor&component=IgbShapefileRecord) class for loading shape files.
| Property | Type | Description |
|----------|------|---------------|
-| [`ShapefileSource`](mcp:get_api_reference?platform=blazor&component=IgbShapeDataSource&member=ShapefileSource) | string |Specifies the Uri to a shape file (.shp) that contains geo-spatial data items.|
-|[`DatabaseSource`](mcp:get_api_reference?platform=blazor&component=IgbShapeDataSource&member=DatabaseSource) | string |Specifies the Uri to a shape database file (.dbf) that contains a data table for geo-spatial data items.|
-
-
+| `ShapefileSource` | string |Specifies the Uri to a shape file (.shp) that contains geo-spatial data items.|
+|`DatabaseSource` | string |Specifies the Uri to a shape database file (.dbf) that contains a data table for geo-spatial data items.|
-
-
-When both source properties are set to non-null values, then the [`IgbShapeDataSource`](mcp:get_api_reference?platform=blazor&component=IgbShapeDataSource) object’s ImportAsync method is invoked which in return performs fetching and reading the shape files and finally doing the conversion. After this operation is complete, the [`IgbShapeDataSource`](mcp:get_api_reference?platform=blazor&component=IgbShapeDataSource) is populated with [`IgbShapefileRecord`](mcp:get_api_reference?platform=blazor&component=IgbShapefileRecord) objects and the `ImportCompleted` event is raised in order to notify about completed process of loading and converting geo-spatial data from shape files.
+When both source properties are set to non-null values, then the [`IgbShapefileRecord`](mcp:get_api_reference?platform=blazor&component=IgbShapefileRecord) object’s ImportAsync method is invoked which in return performs fetching and reading the shape files and finally doing the conversion. After this operation is complete, the [`IgbShapefileRecord`](mcp:get_api_reference?platform=blazor&component=IgbShapefileRecord) is populated with `IgxShapefileRecord` objects and the `ImportCompleted` event is raised in order to notify about completed process of loading and converting geo-spatial data from shape files.
## Loading Shapefiles
-
-The following code creates an instance of the [`IgbShapeDataSource`](mcp:get_api_reference?platform=blazor&component=IgbShapeDataSource) object for loading a shape file that contains locations of major cities in the world. It also demonstrates how to handle the `ImportCompleted` event as a prerequisite for binding data to the map component.
+The following code creates an instance of the [`IgbShapefileRecord`](mcp:get_api_reference?platform=blazor&component=IgbShapefileRecord) object for loading a shape file that contains locations of major cities in the world. It also demonstrates how to handle the `ImportCompleted` event as a prerequisite for binding data to the map component.
## Binding Shapefiles
+In the map component, Geographic Series are used for displaying geo-spatial data that is loaded from shape files. All types of Geographic Series have an [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=dataSource) property which can be bound to an array of objects. The [`IgbShapefileRecord`](mcp:get_api_reference?platform=blazor&component=IgbShapefileRecord) is an example such array because it contains a list of `IgxShapefileRecord` objects.
-In the map component, Geographic Series are used for displaying geo-spatial data that is loaded from shape files. All types of Geographic Series have an [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=DataSource) property which can be bound to an array of objects. The [`IgbShapeDataSource`](mcp:get_api_reference?platform=blazor&component=IgbShapeDataSource) is an example such array because it contains a list of [`IgbShapefileRecord`](mcp:get_api_reference?platform=blazor&component=IgbShapefileRecord) objects.
-
-The [`IgbShapefileRecord`](mcp:get_api_reference?platform=blazor&component=IgbShapefileRecord) class provides properties for storing geo-spatial data, listed in the following table.
+The `ShapefileRecord` class provides properties for storing geo-spatial data, listed in the following table.
| Property | Description |
|--------------|---------------|
@@ -77,13 +70,13 @@ The [`IgbShapefileRecord`](mcp:get_api_reference?platform=blazor&component=IgbSh
This data structure is suitable for use in most Geographic Series as long as appropriate data columns are mapped to them.
## Code Snippet
-
-This code example assumes that shape files were loaded using the [`IgbShapeDataSource`](mcp:get_api_reference?platform=blazor&component=IgbShapeDataSource).
-The following code binds [`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries) in the map component to the [`IgbShapeDataSource`](mcp:get_api_reference?platform=blazor&component=IgbShapeDataSource) and maps the `Points` property of all [`IgbShapefileRecord`](mcp:get_api_reference?platform=blazor&component=IgbShapefileRecord) objects.
+This code example assumes that shape files were loaded using the [`IgbShapefileRecord`](mcp:get_api_reference?platform=blazor&component=IgbShapefileRecord).
+The following code binds [`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries) in the map component to the [`IgbShapefileRecord`](mcp:get_api_reference?platform=blazor&component=IgbShapefileRecord) and maps the `Points` property of all `IgxShapefileRecord` objects.
```razor
@using IgniteUI.Blazor.Controls
+
PREVIEW
+# Blazor Imagery from Azure Maps
The Blazor [`IgbAzureMapsImagery`](mcp:get_api_reference?platform=blazor&component=IgbAzureMapsImagery) is geographic imagery mapping service provided by Microsoft®. It provides several styles of geographic imagery tiles of the world. This geographic imagery service is accessible directly on the www.azure.microsoft.com web site. The Ignite UI for Blazor map component can display geographic imagery from Azure Maps in the map’s background content using the [`IgbAzureMapsImagery`](mcp:get_api_reference?platform=blazor&component=IgbAzureMapsImagery) class.
## Blazor Displaying Imagery from Azure Maps - Overview
-
-
-
-
```razor
@using IgniteUI.Blazor.Controls
@inject NavigationManager NavManager
@@ -257,7 +254,6 @@ igc-dialog::part(content) {
```
## Blazor Displaying Imagery from Azure Maps - Code Example
-
The following code snippet shows how to display geographic imagery tiles from Azure Maps in Blazor [`IgbGeographicMap`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap) using [`IgbAzureMapsImagery`](mcp:get_api_reference?platform=blazor&component=IgbAzureMapsImagery) class.
```razor
@@ -297,17 +293,11 @@ When working with the [`IgbGeographicTileSeries`](mcp:get_api_reference?platform
- **Hybrid Styles**: Variants like `HybridRoadOverlay` and `HybridDarkGreyOverlay` already combine a base style with overlays (labels, roads, etc.), so you don’t need to manage multiple layers manually.
This design allows you to build richer maps, for example:
-
- Displaying **Satellite imagery** with a **TrafficOverlay** to highlight congestion on real-world images.
- Using **Terra** with **WeatherRadarOverlay** to visualize terrain with precipitation.
- Applying **DarkGrey** with **LabelsRoadOverlay** for a dashboard-friendly, contrast-heavy view.
-
-
-
-
## Blazor Overlaying Imagery from Azure Maps - Code Example
-
The following code snippet shows how to display geographic imagery tiles on top of a background imagery joining eg. traffic with a dark grey map for the Blazor [`IgbGeographicMap`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap) using [`IgbAzureMapsImagery`](mcp:get_api_reference?platform=blazor&component=IgbAzureMapsImagery) and [`IgbGeographicTileSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicTileSeries) classes.
```razor
@@ -350,16 +340,13 @@ The following code snippet shows how to display geographic imagery tiles on top
```
## Properties
-
The following table summarizes properties of the [`IgbAzureMapsImagery`](mcp:get_api_reference?platform=blazor&component=IgbAzureMapsImagery) class:
| Property Name | Property Type | Description |
|----------------|-----------------|---------------|
-|[`ApiKey`](mcp:get_api_reference?platform=blazor&component=IgbAzureMapsImagery&member=ApiKey)|string|Represents the property for setting an API key required for the Azure Maps imagery service. You must obtain this key from the azure.microsoft.com website.|
-|[`ImageryStyle`](mcp:get_api_reference?platform=blazor&component=IgbAzureMapsImagery&member=ImageryStyle)|`AzureMapsImageryStyle`|Represents the property for setting the Azure Maps imagery tiles map style. This property can be set to the following `AzureMapsImageryStyle` enumeration values:
Satellite - Specifies the Satellite map style without road or labels overlay
Road - Specifies the Aerial map style with road and labels overlay
DarkGrey - Specifies a dark grey basemap style for contrast and highlighting overlays
TerraOverlay - Specifies a terrain map style with shaded relief to highlight elevation and landscape features
LabelsRoadOverlay - One of several overlays of city labels without an aerial overlay
HybridRoadOverlay - Satellite background combined with road and label overlays
HybridDarkGreyOverlay - Satellite background combined with dark grey label overlays
LabelsDarkGreyOverlay - One of several overlays of city labels over a dark grey basemap
TrafficDelayOverlay - Displays traffic delays and congestion areas in real time
TrafficAbsoluteOverlay - Displays current traffic speeds as absolute values
TrafficReducedOverlay - Displays reduced traffic flow with light-based visualization
TrafficRelativeOverlay - Displays traffic speeds relative to normal conditions
TrafficRelativeDarkOverlay - Displays traffic speeds relative to normal conditions over a dark basemap for enhanced contrast
WeatherRadarOverlay - Displays near real-time radar imagery of precipitation
WeatherInfraredOverlay - Displays infrared satellite imagery of cloud cover
|
+|[`ApiKey`](mcp:get_api_reference?platform=blazor&component=IgbAzureMapsImagery&member=apiKey)|string|Represents the property for setting an API key required for the Azure Maps imagery service. You must obtain this key from the azure.microsoft.com website.|
+|[`ImageryStyle`](mcp:get_api_reference?platform=blazor&component=IgbAzureMapsImagery&member=imageryStyle)|`IgxAzureMapsImageryStyle`|Represents the property for setting the Azure Maps imagery tiles map style. This property can be set to the following `IgxAzureMapsImageryStyle` enumeration values:
Satellite - Specifies the Satellite map style without road or labels overlay
Road - Specifies the Aerial map style with road and labels overlay
DarkGrey - Specifies a dark grey basemap style for contrast and highlighting overlays
TerraOverlay - Specifies a terrain map style with shaded relief to highlight elevation and landscape features
LabelsRoadOverlay - One of several overlays of city labels without an aerial overlay
HybridRoadOverlay - Satellite background combined with road and label overlays
HybridDarkGreyOverlay - Satellite background combined with dark grey label overlays
LabelsDarkGreyOverlay - One of several overlays of city labels over a dark grey basemap
TrafficDelayOverlay - Displays traffic delays and congestion areas in real time
TrafficAbsoluteOverlay - Displays current traffic speeds as absolute values
TrafficReducedOverlay - Displays reduced traffic flow with light-based visualization
TrafficRelativeOverlay - Displays traffic speeds relative to normal conditions
TrafficRelativeDarkOverlay - Displays traffic speeds relative to normal conditions over a dark basemap for enhanced contrast
WeatherRadarOverlay - Displays near real-time radar imagery of precipitation
WeatherInfraredOverlay - Displays infrared satellite imagery of cloud cover
-
## Geographic Coordinates
You navigate map content within geographic region bound by these coordinates:
-
- horizontally from 180°E (negative) to 180°W (positive) longitudes
- vertically from 85°S (negative) to 85°N (positive) latitudes
@@ -157,7 +155,6 @@ this.GeoMap.ZoomToGeographic(new Rect() { Left = -134.5, Top = 16.5, Width = 70.
## Window Coordinates
Also, you can navigate map content within window rectangle bound by these relative coordinates:
-
- horizontally from 0.0 to 1.0 values
- vertically from 0.0 to 1.0 values
@@ -172,23 +169,18 @@ this.GeoMap.WindowScale = 0.5;
```
## Properties
-
The following table summarizes properties that can be used in navigation of the [`IgbGeographicMap`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap) control:
| Property Name | Property Type | Description |
|----------------|-----------------|---------------|
|[`WindowRect`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=WindowRect)| Rect | Sets new position and size of the navigation window in viewable area of the map content. Rect with 0, 0, 1, 1 values will zoom out the entire map content in the navigation window. |
-|[`WindowScale`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=WindowScale)| number | Sets new size of the navigation window in of the map control. It is equivalent smallest value of Width or Height stored in the [`WindowRect`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=WindowRect) property |
-|[`WindowPositionHorizontal`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=WindowPositionHorizontal)| number | Sets new horizontal position of the navigation window’s anchor point from the left edge of the map control. It is equivalent to value stored in the Left of the [`WindowRect`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=WindowRect) property. |
-|[`WindowPositionVertical`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=WindowPositionVertical)| number | Sets new vertical position of the navigation window’s anchor point from the top edge of the map control. It is equivalent to value stored in the Top of the [`WindowRect`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=WindowRect) property. |
-|[`ActualWindowRect`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=ActualWindowRect)| Rect | Indicates current position and size of the navigation window in viewable area of the map content. Rect with 0, 0, 1, 1 values displays the entire map content in the navigation window. |
-|[`ActualWindowScale`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=ActualWindowScale)| number | Indicates current size of the navigation window in of the map control. It is equivalent to smallest value of Width or Height stored in the [`ActualWindowRect`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=ActualWindowRect) property |
-|[`ActualWindowPositionHorizontal`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=ActualWindowPositionHorizontal)| number | Indicates current horizontal position of the navigation window’s anchor point from the left edge of the map control. It is equivalent to value stored in the Left of the [`ActualWindowRect`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=ActualWindowRect) property. |
-|[`ActualWindowPositionVertical`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=ActualWindowPositionVertical)| number | Indicates vertical position of the navigation window’s anchor point from the top edge of the map control. It is equivalent to value stored in the Top of the [`ActualWindowRect`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=ActualWindowRect) property. |
+|[`WindowScale`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=windowScale)| number | Sets new size of the navigation window in of the map control. It is equivalent smallest value of Width or Height stored in the [`WindowRect`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=WindowRect) property |
+|[`WindowPositionHorizontal`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=windowPositionHorizontal)| number | Sets new horizontal position of the navigation window’s anchor point from the left edge of the map control. It is equivalent to value stored in the Left of the [`WindowRect`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=WindowRect) property. |
+|[`WindowPositionVertical`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=windowPositionVertical)| number | Sets new vertical position of the navigation window’s anchor point from the top edge of the map control. It is equivalent to value stored in the Top of the [`WindowRect`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=WindowRect) property. |
+|[`ActualWindowRect`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=actualWindowRect)| Rect | Indicates current position and size of the navigation window in viewable area of the map content. Rect with 0, 0, 1, 1 values displays the entire map content in the navigation window. |
+|[`ActualWindowScale`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=actualWindowScale)| number | Indicates current size of the navigation window in of the map control. It is equivalent to smallest value of Width or Height stored in the [`ActualWindowRect`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=actualWindowRect) property |
+|[`ActualWindowPositionHorizontal`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=actualWindowPositionHorizontal)| number | Indicates current horizontal position of the navigation window’s anchor point from the left edge of the map control. It is equivalent to value stored in the Left of the [`ActualWindowRect`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=actualWindowRect) property. |
+|[`ActualWindowPositionVertical`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=actualWindowPositionVertical)| number | Indicates vertical position of the navigation window’s anchor point from the top edge of the map control. It is equivalent to value stored in the Top of the [`ActualWindowRect`](mcp:get_api_reference?platform=blazor&component=IgbSeriesViewer&member=actualWindowRect) property. |
## API References
-
-- [`ActualWindowRect`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=ActualWindowRect)
-- [`WindowRect`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=WindowRect)
-- [`IgbGeographicMap`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap)
-- [`Zoomable`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=Zoomable)
+[`IgbGeographicMap`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-resources-esri.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-resources-esri.md
index f55232866..cebe2a9a9 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-resources-esri.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-resources-esri.md
@@ -1,20 +1,88 @@
---
-title: Blazor Map | Data Visualization Tools | ESRI Map Resources | Infragistics
-_description: Use Infragistics' Blazor to display imagery from ESRI maps. View Ignite UI for Blazor map tutorials!
-_keywords: Blazor map, ESRI, Ignite UI for Blazor, Infragistics, imagery tile source, map background
-_license: commercial
-mentionedTypes: ["XamGeographicMap"]
+title: "Blazor Map | Data Visualization Tools | ESRI Map Resources | Infragistics"
+description: Use Infragistics' Blazor to display imagery from ESRI maps. View Ignite UI for Blazor map tutorials!
+keywords: "Blazor map, ESRI, Ignite UI for Blazor, Infragistics, imagery tile source, map background"
+license: commercial
+mentionedTypes: ["GeographicMap"]
+llms:
+ description: "The resource topic provides implementation of an utility that helps with using ArcGISOnlineMapImagery provided by Esri Maps in GeographicMap."
_tocName: Esri Utility
_premium: true
---
-
# Blazor Esri Utility
The resource topic provides implementation of an utility that helps with using [`IgbArcGISOnlineMapImagery`](mcp:get_api_reference?platform=blazor&component=IgbArcGISOnlineMapImagery) provided by Esri Maps in [`IgbGeographicMap`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap).
## Code Snippet
-```razor
+```ts
+
+export class EsriUtility {
+
+ public static getUri(style: EsriStyle): string {
+ let isHttpSecured = window.location.toString().startsWith("https:");
+ // resolving Esri Server uri based on hosting website
+ let uri: string = style;
+ if (!isHttpSecured) {
+ uri = uri.replace("https:", "http:");
+ }
+ return uri;
+ }
+}
+
+/**
+ * Describes available links to imagery tile sources on public ArcGIS/Esri servers.
+ * You can find up-to-date list on https://services.arcgisonline.com/arcgis/rest/services
+ */
+export enum EsriStyle {
+
+ // these Esri maps show geographic tiles for the whole of world
+ WorldStreetMap = "https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer",
+ WorldTopographicMap = "https://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer",
+ WorldImageryMap = "https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",
+ WorldOceansMap = "https://services.arcgisonline.com/ArcGIS/rest/services/Ocean_Basemap/MapServer",
+ WorldNationalGeoMap = "https://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer",
+ WorldTerrainMap = "https://services.arcgisonline.com/ArcGIS/rest/services/World_Terrain_Base/MapServer",
+ WorldDeLormesMap = "https://services.arcgisonline.com/ArcGIS/rest/services/Specialty/DeLorme_World_Base_Map/MapServer",
+ WorldLightGrayMap = "https://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer",
+ WorldShadedReliefMap = "https://services.arcgisonline.com/ArcGIS/rest/services/World_Shaded_Relief/MapServer",
+ WorldPhysicalMap = "https://services.arcgisonline.com/ArcGIS/rest/services/World_Physical_Map/MapServer",
+
+ // these Esri maps show geographic tiles for the whole of world without contours of continents
+ // therefore the Map should also load a shapefile of continents when using them
+ WorldAdminOverlay = "https://services.arcgisonline.com/ArcGIS/rest/services/Reference/World_Reference_Overlay/MapServer",
+ WorldTransportationOverlay = "https://services.arcgisonline.com/ArcGIS/rest/services/Reference/World_Transportation/MapServer",
+ WorldBoundariesDarkOverlay ="https://services.arcgisonline.com/ArcGIS/rest/services/Reference/World_Boundaries_and_Places/MapServer",
+ WorldBoundariesLightOverlay = "https://services.arcgisonline.com/ArcGIS/rest/services/Reference/World_Boundaries_and_Places_Alternate/MapServer",
+ WorldLabelsLightGrayOverlay = "https://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Reference/MapServer",
+
+ // these Esri maps show only geographic tiles for the USA
+ // therefore the Map should be zoomed in to geographic bounds of USA when using them
+ UsaOwnerOccupiedHousing = "https://services.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_Owner_Occupied_Housing/MapServer",
+ UsaSoilSurvey = "https://services.arcgisonline.com/ArcGIS/rest/services/Specialty/Soil_Survey_Map/MapServer",
+ UsaPopulationOlderThanAge64 = "https://services.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_Percent_Over_64/MapServer",
+ UsaPopulationYoungerThan18 = "https://services.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_Percent_Under_18/MapServer",
+ UsaPopulationGrowth2015 = "https://services.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_Projected_Population_Change/MapServer",
+ UsaUnemploymentRate = "https://services.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_Unemployment_Rate/MapServer",
+ UsaSocialVulnerability = "https://services.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_Social_Vulnerability_Index/MapServer",
+ UsaRetailSpendingPotential = "https://services.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_Retail_Spending_Potential/MapServer",
+ UsaPopulationChange2010 = "https://services.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_Recent_Population_Change/MapServer",
+ UsaPopulationChange2000 = "https://services.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_1990-2000_Population_Change/MapServer",
+ UsaPopulationDensity = "https://services.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_Population_Density/MapServer",
+ UsaPopulationByGender = "https://services.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_Population_by_Sex/MapServer",
+ UsaMedianHouseholdIncome = "https://services.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_Median_Household_Income/MapServer",
+ UsaMedianNetWorth = "https://services.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_Median_Net_Worth/MapServer",
+ UsaMedianHomeValue = "https://services.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_Median_Home_Value/MapServer",
+ UsaMedianAge = "https://services.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_Median_Age/MapServer",
+ UsaLaborForceParticipation = "https://services.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_Labor_Force_Participation_Rate/MapServer",
+ UsaAverageHouseholdSize = "https://services.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_Average_Household_Size/MapServer",
+ UsaDiversityIndex = "https://services.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_Diversity_Index/MapServer",
+ UsaRailNetwork = "https://services.arcgisonline.com/ArcGIS/rest/services/Reference/World_Reference_Overlay/MapServer",
+
+}
+```
+
+```csharp
public class EsriStyle
{
// these Esri maps show geographic tiles for the whole of world
@@ -63,6 +131,5 @@ public class EsriStyle
```
## API References
-
-- [`IgbArcGISOnlineMapImagery`](mcp:get_api_reference?platform=blazor&component=IgbArcGISOnlineMapImagery)
-- [`IgbGeographicMap`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap)
+[`IgbArcGISOnlineMapImagery`](mcp:get_api_reference?platform=blazor&component=IgbArcGISOnlineMapImagery)
+[`IgbGeographicMap`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-resources-world-connections.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-resources-world-connections.md
index 14d3a0893..a26dce4c9 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-resources-world-connections.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-resources-world-connections.md
@@ -1,20 +1,148 @@
---
-title: Blazor Map | World Connections | Data Source | Infragistics
-_description: Use Infragistics' Blazor JavaScript map data utility to generate locations of airports, flight paths and geographic gridlines. View Ignite UI for Blazor map demos!
-_keywords: Blazor map, map data, Ignite UI for Blazor, Infragistics
-_license: commercial
-mentionedTypes: ["XamGeographicMap"]
+title: "Blazor Map | World Connections | Data Source | Infragistics"
+description: Use Infragistics' Blazor JavaScript map data utility to generate locations of airports, flight paths and geographic gridlines. View Ignite UI for Blazor map demos!
+keywords: "Blazor map, map data, Ignite UI for Blazor, Infragistics"
+license: commercial
+mentionedTypes: ["GeographicMap"]
+llms:
+ description: "The resource topic provides implementation of data utility for generating locations of airports, flight paths, and geographic gridlines."
_tocName: World Connections
_premium: true
---
-
# Blazor World Connections
-The resource topic provides implementation of data utility for generating locations of airports, flight paths, and geographic gridlines. You can use these data sources as reference point for creating your own geographic data. Note that this utility depends on [WorldUtil](geo-map-resources-world-util.md) and [WorldLocations](geo-map-resources-world-locations.md) scripts.
+The resource topic provides implementation of data utility for generating locations of airports, flight paths, and geographic gridlines. You can use these data sources as reference point for creating your own geographic data. Note that this utility depends on [WorldUtil](./geo-map-resources-world-util.md) and [WorldLocations](./geo-map-resources-world-locations.md) scripts.
## Code Snippet
-```razor
+```ts
+import WorldLocations from "./WorldLocations";
+import WorldUtils from "./WorldUtils"
+
+export default class WorldConnections {
+
+ private static airports: any[] = [];
+ private static airportsLookup = new Map();
+
+ private static flights: any[] = [];
+ private static flightsLookup: string[] = [];
+
+ public static getFlights(): any[] {
+ if (this.flights.length == 0) this.init();
+ return this.flights;
+ }
+
+ public static getAirports(): any[] {
+ if (this.airports.length == 0) this.init();
+ return this.airports;
+ }
+
+ public static comparePopulation(a: any, b: any): number {
+ if (a.pop < b.pop) {
+ return 1;
+ }
+ if (a.pop > b.pop) {
+ return -1;
+ }
+ return 0;
+ }
+
+ public static init() {
+
+ const cities: any[] = WorldLocations.getAll();
+ cities.sort(this.comparePopulation);
+ let count = cities.length;
+ let minDistance = 200;
+ let maxDistance = 9000;
+ let flightsLimit = 1500;
+ let flightsCount = 0;
+
+ for (let i = 0; i < count; i++) {
+ let origin = cities[i];
+ let connectionsCount = 0;
+ let connectionsMax = Math.min(20, Math.round(origin.pop * 4));
+
+ for (let ii = 0; ii < count; ii++)
+ {
+ let dest = cities[ii];
+ if (origin.name != dest.name)
+ {
+ let route = [origin.name, dest.name].sort().join('-');
+ let routeIsValid = this.flightsLookup.indexOf(route) == -1;
+ let distance = Math.round(WorldUtils.calcDistance(origin, dest));
+ let distanceIsValid = distance > minDistance && distance < maxDistance;
+ let pass = Math.round((Math.random() * 200)) + 150;
+ let time = distance / 800;
+ let trafficIsValid = origin.pop > 3 && dest.pop > 1.0;
+
+ if (routeIsValid && distanceIsValid && trafficIsValid) {
+ this.flightsLookup.push(route);
+
+ let paths = WorldUtils.calcPaths(origin, dest);
+ flightsCount++;
+ connectionsCount++;
+ let id = origin.name.substring(0,3).toUpperCase() + "-" + flightsCount;
+ let flight = { id: id, origin: origin, dest: dest, time: time, passengers: pass, distance: distance, points: paths };
+ this.flights.push(flight);
+ }
+ if (connectionsCount > connectionsMax) {
+ break;
+ }
+ }
+ }
+ if (flightsCount > flightsLimit) {
+ break;
+ }
+ }
+
+ for (const flight of this.flights) {
+ this.addAirport(flight.origin);
+ this.addAirport(flight.dest);
+ }
+
+ this.airports = Array.from(this.airportsLookup.values());
+ }
+
+ private static addAirport(city: any) {
+ if (this.airportsLookup.has(city.name)) {
+ this.airportsLookup.get(city.name).flights += 1;
+ } else {
+ let airport = Object.assign({flights: 1}, city );
+ this.airportsLookup.set(city.name, airport);
+ }
+ }
+
+ public static getGridlines(): any[] {
+ let gridlines = [];
+ // longitude lines
+ for (let lon = -180; lon <= 180; lon += 30) {
+
+ let line: any[] = [{x: lon, y: -90}, {x: lon, y: 90}];
+ let points: any[] = [line];
+
+ let coordinateLine = {points: points,
+ degree: lon,
+ direction: lon > 0 ? "E" : "W"
+ };
+ gridlines.push(coordinateLine);
+ }
+ // latitude lines
+ for (let lat = -90; lat <= 90; lat += 30) {
+
+ let line: any[] = [{x: -180, y: lat}, {x: 180, y: lat}];
+ let points: any[] = [line];
+ let coordinateLine = {points: points,
+ degree: lat,
+ direction: lat > 0 ? "N" : "S"
+ };
+ gridlines.push(coordinateLine);
+ }
+ return gridlines;
+ }
+}
+```
+
+```csharp
public class WorldConnections
{
@@ -182,5 +310,4 @@ The resource topic provides implementation of data utility for generating locati
```
## API References
-
-- [`IgbGeographicMap`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap)
+[`IgbGeographicMap`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-resources-world-locations.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-resources-world-locations.md
index 27381e01b..143411283 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-resources-world-locations.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-resources-world-locations.md
@@ -1,19 +1,663 @@
---
-title: Blazor Map | World Locations | Data Source | Infragistics
-_description: Use Infragistics' Blazor JavaScript map data utility to generate geographic locations of cities and capitals of countries. View Ignite UI for Blazor map demos!
-_keywords: Blazor map, map data, Ignite UI for Blazor, Infragistics
-_license: commercial
-mentionedTypes: ["XamGeographicMap"]
+title: "Blazor Map | World Locations | Data Source | Infragistics"
+description: Use Infragistics' Blazor JavaScript map data utility to generate geographic locations of cities and capitals of countries. View Ignite UI for Blazor map demos!
+keywords: "Blazor map, map data, Ignite UI for Blazor, Infragistics"
+license: commercial
+mentionedTypes: ["GeographicMap"]
+llms:
+ description: "The resource topic provides implementation of data utility for generating geographic locations of cities and capitals of countries."
_tocName: World Locations
_premium: true
---
-
# Blazor World Locations
The resource topic provides implementation of data utility for generating geographic locations of cities and capitals of countries.
## Code Snippet
+```ts
+export default class WorldLocations {
+
+ private static locations: any[] = [];
+ private static capitals: any[] = [];
+ private static cities: any[] = [];
+
+ // get location of cities and capitals
+ public static getAll(): any[] {
+ if (this.locations.length == 0) this.init();
+ return this.locations;
+ }
+
+ // get location of cities
+ public static getCities(): any[] {
+ if (this.cities.length == 0) this.init();
+ return this.cities;
+ }
+
+ // get location of capitals
+ public static getCapitals(): any[] {
+ if (this.capitals.length == 0) this.init();
+ return this.capitals;
+ }
+
+ public static init() {
+ // console.log("WorldLocations init");
+ this.locations = [
+ { cap: false, pop: 0.468, lat: 68.9635467529297, lon: 33.0860404968262, country: "Russia", name: "Murmansk" },
+ { cap: false, pop: 0.416, lat: 64.5206680297852, lon: 40.6461601257324, country: "Russia", name: "Arkhangelsk" },
+ { cap: false, pop: 5.825, lat: 59.9518890380859, lon: 30.4533271789551, country: "Russia", name: "Saint Petersburg" },
+ { cap: false, pop: 0.152, lat: 59.5709991455078, lon: 150.780014038086, country: "Russia", name: "Magadan" },
+ { cap: false, pop: 1.160, lat: 58.0002365112305, lon: 56.2324638366699, country: "Russia", name: "Perm'" },
+ { cap: false, pop: 1.620, lat: 56.8465423583984, lon: 60.6101303100586, country: "Russia", name: "Yekaterinburg" },
+ { cap: false, pop: 2.025, lat: 56.2896766662598, lon: 43.9406700134277, country: "Russia", name: "Nizhniy Novgorod" },
+ { cap: false, pop: 1.800, lat: 55.8628082275391, lon: -4.26994752883911, country: "UK", name: "Glasgow" },
+ { cap: false, pop: 1.140, lat: 55.7330055236816, lon: 49.1454658508301, country: "Russia", name: "Kazan'" },
+ { cap: false, pop: 1.325, lat: 55.1450004577637, lon: 61.3926124572754, country: "Russia", name: "Chelyabinsk" },
+ { cap: false, pop: 1.175, lat: 55.063304901123, lon: 73.2502899169922, country: "Russia", name: "Omsk" },
+ { cap: false, pop: 1.600, lat: 55.0321006774902, lon: 82.9428482055664, country: "Russia", name: "Novosibirsk" },
+ { cap: false, pop: 1.100, lat: 54.8217353820801, lon: 56.0961265563965, country: "Russia", name: "Ufa" },
+ { cap: true, pop: 0.582, lat: 54.6885681152344, lon: 25.2759666442871, country: "Lithuania", name: "Vilnius" },
+ { cap: false, pop: 0.685, lat: 54.5869255065918, lon: -5.90966033935547, country: "UK", name: "Belfast" },
+ { cap: false, pop: 0.909, lat: 54.3662033081055, lon: 18.624942779541, country: "Poland", name: "Gdansk" },
+ { cap: true, pop: 1.650, lat: 53.8999366760254, lon: 27.5755672454834, country: "Byelarus", name: "Minsk" },
+ { cap: false, pop: 1.540, lat: 53.8087120056152, lon: -1.49752748012543, country: "UK", name: "Leeds" },
+ { cap: false, pop: 2.225, lat: 53.5711212158203, lon: 10.027606010437, country: "Germany", name: "Hamburg" },
+ { cap: false, pop: 2.775, lat: 53.479663848877, lon: -2.26177859306335, country: "UK", name: "Manchester" },
+ { cap: false, pop: 0.710, lat: 53.3740425109863, lon: -1.46298921108246, country: "UK", name: "Sheffield" },
+ { cap: true, pop: 1.140, lat: 53.3415603637695, lon: -6.25734663009644, country: "Ireland", name: "Dublin" },
+ { cap: false, pop: 1.505, lat: 53.1385955810547, lon: 50.0961799621582, country: "Russia", name: "Samara" },
+ { cap: false, pop: 0.800, lat: 53.0801048278809, lon: 8.85762596130371, country: "Germany", name: "Bremen" },
+ { cap: true, pop: 5.061, lat: 52.5162734985352, lon: 13.3275728225708, country: "Germany", name: "Berlin" },
+ { cap: false, pop: 2.675, lat: 52.4927520751953, lon: -1.86334776878357, country: "UK", name: "Birmingham" },
+ { cap: true, pop: 1.860, lat: 52.3730430603027, lon: 4.89483308792114, country: "Netherlands", name: "Amsterdam" },
+ { cap: false, pop: 0.626, lat: 52.3174324035645, lon: 104.247833251953, country: "Russia", name: "Irkutsk" },
+ { cap: true, pop: 2.323, lat: 52.244945526123, lon: 21.0118789672852, country: "Poland", name: "Warsaw" },
+ { cap: false, pop: 1.110, lat: 51.925594329834, lon: 4.48515224456787, country: "Netherlands", name: "Rotterdam" },
+ { cap: false, pop: 1.061, lat: 51.7779083251953, lon: 19.4764404296875, country: "Poland", name: "Lodz" },
+ { cap: false, pop: 0.568, lat: 51.5138130187988, lon: 7.46641826629639, country: "Germany", name: "Dortmund" },
+ { cap: false, pop: 0.515, lat: 51.4893379211426, lon: 6.77530431747437, country: "Germany", name: "Duisburg" },
+ { cap: true, pop: 11.100, lat: 51.4879112243652, lon: -0.177998125553131, country: "UK", name: "london" },
+ { cap: false, pop: 3.867, lat: 51.3540420532227, lon: 7.12243509292603, country: "Germany", name: "Essen" },
+ { cap: false, pop: 0.700, lat: 51.3493309020996, lon: 12.3980741500854, country: "Germany", name: "Leipzig" },
+ { cap: false, pop: 1.100, lat: 51.207347869873, lon: 4.42605447769165, country: "Belgium", name: "Antwerpen" },
+ { cap: false, pop: 0.640, lat: 51.1218185424805, lon: 17.0381278991699, country: "Poland", name: "Wroclaw" },
+ { cap: false, pop: 0.465, lat: 51.0475540161133, lon: 3.73629117012024, country: "Belgium", name: "Gent" },
+ { cap: false, pop: 0.670, lat: 51.0456809997559, lon: 13.7053575515747, country: "Germany", name: "Dresden" },
+ { cap: false, pop: 0.671, lat: 51.0299987792969, lon: -114.050003051758, country: "Canada", name: "Calgary" },
+ { cap: false, pop: 1.760, lat: 50.9423446655273, lon: 6.93487167358398, country: "Germany", name: "Koln" },
+ { cap: true, pop: 2.385, lat: 50.8370475769043, lon: 4.36761236190796, country: "Belgium", name: "Bruxelles" },
+ { cap: false, pop: 0.570, lat: 50.7345581054688, lon: 7.09981870651245, country: "Germany", name: "Bonn" },
+ { cap: false, pop: 1.020, lat: 50.6320838928223, lon: 3.06290125846863, country: "France", name: "Lille" },
+ { cap: false, pop: 0.750, lat: 50.6225280761719, lon: 5.56943559646606, country: "Belgium", name: "Liege" },
+ { cap: true, pop: 2.900, lat: 50.4481582641602, lon: 30.5021114349365, country: "Ukraine", name: "Kiev" },
+ { cap: false, pop: 1.855, lat: 50.129997253418, lon: 8.66816711425781, country: "Germany", name: "Frankfurt am Main" },
+ { cap: true, pop: 1.325, lat: 50.1058959960938, lon: 14.4565200805664, country: "Czech Repub", name: "Prague" },
+ { cap: false, pop: 0.828, lat: 50.0622406005859, lon: 19.9450569152832, country: "Poland", name: "Krakow" },
+ { cap: false, pop: 0.625, lat: 49.9211692810059, lon: -97.1244430541992, country: "Canada", name: "Winnipeg" },
+ { cap: false, pop: 0.614, lat: 49.879207611084, lon: 73.20263671875, country: "Kazakhstan", name: "Karaganda" },
+ { cap: false, pop: 0.790, lat: 49.8373107910156, lon: 24.0345211029053, country: "Ukraine", name: "Lvov" },
+ { cap: false, pop: 0.450, lat: 49.2029800415039, lon: 16.6162452697754, country: "Czech Repub", name: "Brno" },
+ { cap: true, pop: 9.775, lat: 48.8815536499023, lon: 2.43283271789551, country: "France", name: "Paris" },
+ { cap: false, pop: 1.360, lat: 48.7102470397949, lon: 44.4836311340332, country: "Russia", name: "Volgograd" },
+ { cap: false, pop: 0.400, lat: 48.5834350585938, lon: 7.76799440383911, country: "France", name: "Strasbourg" },
+ { cap: false, pop: 0.335, lat: 48.2975959777832, lon: 14.2939014434814, country: "Austria", name: "Linz" },
+ { cap: true, pop: 1.875, lat: 48.2021179199219, lon: 16.3209857940674, country: "Austria", name: "Vienna" },
+ { cap: false, pop: 1.955, lat: 48.1409759521484, lon: 11.5429534912109, country: "Germany", name: "Munchen" },
+ { cap: false, pop: 2.200, lat: 48.0401458740234, lon: 37.7370529174805, country: "Ukraine", name: "Donets'k" },
+ { cap: true, pop: 0.548, lat: 47.928596496582, lon: 106.912353515625, country: "Mongolia", name: "Ulaanbaatar" },
+ { cap: true, pop: 2.565, lat: 47.5146255493164, lon: 19.0942497253418, country: "Hungary", name: "Budapest" },
+ { cap: false, pop: 1.150, lat: 47.3440055847168, lon: 123.964965820313, country: "China", name: "Qiqihar" },
+ { cap: false, pop: 0.185, lat: 47.2654609680176, lon: 11.3499822616577, country: "Austria", name: "Innsbruck" },
+ { cap: false, pop: 1.165, lat: 47.2320976257324, lon: 39.6880378723145, country: "Russia", name: "Rostov-na-Donu" },
+ { cap: false, pop: 0.465, lat: 47.2194328308105, lon: -1.56156122684479, country: "France", name: "Nantes" },
+ { cap: false, pop: 0.325, lat: 47.0649223327637, lon: 15.4311008453369, country: "Austria", name: "Graz" },
+ { cap: true, pop: 0.299, lat: 46.9482078552246, lon: 7.44573640823364, country: "Switzerland", name: "Bern" },
+ { cap: false, pop: 0.603, lat: 46.802074432373, lon: -71.2449340820313, country: "Canada", name: "Quebec" },
+ { cap: false, pop: 1.185, lat: 46.5722007751465, lon: 30.6839370727539, country: "Ukraine", name: "Odessa" },
+ { cap: false, pop: 2.670, lat: 45.7552185058594, lon: 126.622634887695, country: "China", name: "Harbin" },
+ { cap: false, pop: 1.275, lat: 45.7470817565918, lon: 4.85540056228638, country: "France", name: "Lyon" },
+ { cap: false, pop: 2.921, lat: 45.541015625, lon: -73.6535339355469, country: "Canada", name: "Montreal" },
+ { cap: false, pop: 3.750, lat: 45.4733810424805, lon: 9.19046401977539, country: "Italy", name: "Milano" },
+ { cap: false, pop: 0.420, lat: 45.4247741699219, lon: 12.370719909668, country: "Italy", name: "Venezia" },
+ { cap: true, pop: 0.819, lat: 45.3742179870605, lon: -75.650749206543, country: "Canada", name: "Ottawa" },
+ { cap: false, pop: 1.550, lat: 45.0748748779297, lon: 7.66642618179321, country: "Italy", name: "Torino" },
+ { cap: false, pop: 2.012, lat: 44.924186706543, lon: -93.3077926635742, country: "US", name: "Minneapolis" },
+ { cap: false, pop: 0.640, lat: 44.8414726257324, lon: -0.599498748779297, country: "France", name: "Bordeaux" },
+ { cap: true, pop: 1.400, lat: 44.7996826171875, lon: 20.4125556945801, country: "Serbia", name: "Beograd" },
+ { cap: true, pop: 2.250, lat: 44.4304847717285, lon: 26.1229763031006, country: "Romania", name: "Bucuresti" },
+ { cap: false, pop: 1.740, lat: 43.8813171386719, lon: 125.312652587891, country: "China", name: "Changchung" },
+ { cap: false, pop: 1.170, lat: 43.8502159118652, lon: 126.56706237793, country: "China", name: "Jilin" },
+ { cap: false, pop: 1.040, lat: 43.7826652526855, lon: 87.5865173339844, country: "China", name: "Urumqi" },
+ { cap: false, pop: 0.640, lat: 43.7815742492676, lon: 11.207745552063, country: "Italy", name: "Firenze" },
+ { cap: false, pop: 3.427, lat: 43.7207679748535, lon: -79.4126358032227, country: "Canada", name: "Toronto" },
+ { cap: false, pop: 0.541, lat: 43.5999603271484, lon: 1.43798303604126, country: "France", name: "Toulouse" },
+ { cap: false, pop: 0.985, lat: 43.2821578979492, lon: -2.97378325462341, country: "Spain", name: "Bilbao" },
+ { cap: true, pop: 1.190, lat: 43.2550621032715, lon: 76.9126281738281, country: "Kazakhstan", name: "Almaty" },
+ { cap: false, pop: 0.816, lat: 43.2104644775391, lon: -77.635612487793, country: "US", name: "Rochester" },
+ { cap: false, pop: 1.375, lat: 43.0679473876953, lon: -87.9907379150391, country: "US", name: "Milwaukee" },
+ { cap: false, pop: 1.900, lat: 43.0552520751953, lon: 141.345474243164, country: "Japan", name: "Sapporo" },
+ { cap: false, pop: 1.483, lat: 42.8986625671387, lon: -78.8484344482422, country: "US", name: "Buffalo" },
+ { cap: true, pop: 1.205, lat: 42.7072639465332, lon: 23.3318710327148, country: "Bulgaria", name: "Sofia" },
+ { cap: false, pop: 4.692, lat: 42.3943138122559, lon: -83.0789260864258, country: "US", name: "Detroit" },
+ { cap: false, pop: 3.972, lat: 42.3752975463867, lon: -71.1025848388672, country: "US", name: "Boston" },
+ { cap: false, pop: 1.270, lat: 41.8591575622559, lon: 123.905570983887, country: "China", name: "Fushun" },
+ { cap: false, pop: 7.717, lat: 41.826545715332, lon: -87.6413040161133, country: "US", name: "Chicago" },
+ { cap: false, pop: 3.840, lat: 41.8021621704102, lon: 123.383056640625, country: "China", name: "Shenyang" },
+ { cap: true, pop: 1.460, lat: 41.721809387207, lon: 44.7831268310547, country: "Georgia", name: "Tbilisi" },
+ { cap: false, pop: 0.575, lat: 41.6512641906738, lon: -0.878205060958862, country: "Spain", name: "Zaragoza" },
+ { cap: false, pop: 2.218, lat: 41.3907165527344, lon: -81.7275085449219, country: "US", name: "Cleveland" },
+ { cap: true, pop: 0.211, lat: 41.3316535949707, lon: 19.8318042755127, country: "Albania", name: "Tirane" },
+ { cap: false, pop: 1.300, lat: 41.1152458190918, lon: 122.977012634277, country: "China", name: "Anshan" },
+ { cap: false, pop: 5.750, lat: 41.0659561157227, lon: 29.0060691833496, country: "Turkey", name: "Istanbul" },
+ { cap: false, pop: 0.682, lat: 40.693920135498, lon: -111.89217376709, country: "US", name: "Salt Lake City" },
+ { cap: false, pop: 2.219, lat: 40.4972038269043, lon: -79.9970855712891, country: "US", name: "Pittsburgh" },
+ { cap: true, pop: 4.650, lat: 40.4422187805176, lon: -3.69096946716309, country: "Spain", name: "Madrid" },
+ { cap: true, pop: 2.020, lat: 40.3242988586426, lon: 49.8162384033203, country: "Azerbaijan", name: "Baku" },
+ { cap: true, pop: 1.315, lat: 40.2080230712891, lon: 44.5326690673828, country: "Armenia", name: "Yerevan" },
+ { cap: false, pop: 0.964, lat: 40.0446434020996, lon: -82.9927062988281, country: "US", name: "Columbus" },
+ { cap: true, pop: 2.400, lat: 39.929328918457, lon: 32.853271484375, country: "Turkey", name: "Ankara" },
+ { cap: false, pop: 5.209, lat: 39.9275512695313, lon: -75.2182235717773, country: "US", name: "Philadelphia" },
+ { cap: true, pop: 6.450, lat: 39.906192779541, lon: 116.388038635254, country: "China", name: "Beijing" },
+ { cap: false, pop: 0.246, lat: 39.9044532775879, lon: 41.2918243408203, country: "Turkey", name: "Erzurum" },
+ { cap: false, pop: 0.366, lat: 39.6575813293457, lon: 66.9476013183594, country: "Uzbekistan", name: "Samarkand" },
+ { cap: false, pop: 1.060, lat: 39.6154441833496, lon: 118.180213928223, country: "China", name: "Tangshan" },
+ { cap: false, pop: 1.270, lat: 39.4709167480469, lon: -0.367400944232941, country: "Spain", name: "Valencia" },
+ { cap: false, pop: 1.960, lat: 39.3218841552734, lon: -76.6183776855469, country: "US", name: "Baltimore" },
+ { cap: false, pop: 0.305, lat: 39.2251434326172, lon: 9.10890960693359, country: "Italy", name: "Cagliari" },
+ { cap: false, pop: 1.480, lat: 39.1480102539063, lon: -84.4770202636719, country: "US", name: "Cincinnati" },
+ { cap: false, pop: 4.880, lat: 39.1284141540527, lon: 117.18522644043, country: "China", name: "Tianjin" },
+ { cap: true, pop: 1.600, lat: 39.0285148620605, lon: 125.757514953613, country: "Korea D P Rp", name: "Pyongyang" },
+ { cap: false, pop: 1.272, lat: 38.9941177368164, lon: -94.6265640258789, country: "US", name: "Kansas City" },
+ { cap: true, pop: 3.221, lat: 38.8909111022949, lon: -76.9538345336914, country: "US", name: "Washington D.C." },
+ { cap: false, pop: 2.203, lat: 38.6388854980469, lon: -90.3419799804688, country: "US", name: "St. Louis" },
+ { cap: false, pop: 0.866, lat: 38.5670166015625, lon: -121.422706604004, country: "US", name: "Sacramento" },
+ { cap: false, pop: 0.971, lat: 38.0809783935547, lon: 46.2901191711426, country: "Iran", name: "Tabriz" },
+ { cap: false, pop: 1.190, lat: 38.0770950317383, lon: 114.559707641602, country: "China", name: "Shijiazhuang" },
+ { cap: true, pop: 0.398, lat: 37.9504203796387, lon: 58.3901329040527, country: "Turkmenistan", name: "Ashkhabad" },
+ { cap: false, pop: 1.660, lat: 37.8930549621582, lon: 112.551704406738, country: "China", name: "Taiyuan" },
+ { cap: true, pop: 15.850, lat: 37.542350769043, lon: 126.935249328613, country: "Korea Rep", name: "Seoul" },
+ { cap: false, pop: 0.945, lat: 37.3726463317871, lon: -5.97083187103271, country: "Spain", name: "Sevilla" },
+ { cap: false, pop: 0.778, lat: 36.9999809265137, lon: 35.3243637084961, country: "Turkey", name: "Adana" },
+ { cap: false, pop: 0.796, lat: 36.8792915344238, lon: -76.2685699462891, country: "US", name: "Norfolk" },
+ { cap: true, pop: 1.225, lat: 36.8188133239746, lon: 10.1659603118896, country: "Tunisia", name: "Tunis" },
+ { cap: false, pop: 0.830, lat: 36.7914962768555, lon: 118.062042236328, country: "China", name: "Zibo" },
+ { cap: false, pop: 1.460, lat: 36.6555366516113, lon: 116.967056274414, country: "China", name: "Jinan" },
+ { cap: false, pop: 0.571, lat: 36.3355674743652, lon: 43.1371269226074, country: "Iraq", name: "Mosul" },
+ { cap: false, pop: 1.464, lat: 36.2900695800781, lon: 59.596851348877, country: "Iran", name: "Mashhad" },
+ { cap: false, pop: 1.216, lat: 36.2155456542969, lon: 37.1592826843262, country: "Syria", name: "Aleppo" },
+ { cap: false, pop: 1.270, lat: 36.1134300231934, lon: 103.599594116211, country: "China", name: "Lanzhou" },
+ { cap: false, pop: 2.206, lat: 35.8635368347168, lon: 128.591384887695, country: "Korea Rep", name: "Taegu" },
+ { cap: true, pop: 6.400, lat: 35.7744750976563, lon: 51.4476509094238, country: "Iran", name: "Tehran" },
+ { cap: true, pop: 23.620, lat: 35.6830558776855, lon: 139.809188842773, country: "Japan", name: "Tokyo" },
+ { cap: false, pop: 1.089, lat: 35.5045700073242, lon: 139.72721862793, country: "Japan", name: "Kawasaki" },
+ { cap: false, pop: 0.742, lat: 35.4895896911621, lon: -97.5302963256836, country: "US", name: "Oklahoma City" },
+ { cap: false, pop: 2.993, lat: 35.437385559082, lon: 139.619659423828, country: "Japan", name: "Yokohama" },
+ { cap: false, pop: 0.479, lat: 35.2058143615723, lon: -80.8356857299805, country: "US", name: "Charlotte" },
+ { cap: false, pop: 3.800, lat: 35.1578674316406, lon: 129.0546875, country: "Korea Rep", name: "Pusan" },
+ { cap: false, pop: 4.800, lat: 35.1549224853516, lon: 136.920593261719, country: "Japan", name: "Nagoya" },
+ { cap: false, pop: 0.853, lat: 35.1147270202637, lon: -90.0003280639648, country: "US", name: "Memphis" },
+ { cap: false, pop: 1.479, lat: 35.0091285705566, lon: 135.754821777344, country: "Japan", name: "Kyoto" },
+ { cap: false, pop: 1.170, lat: 34.757682800293, lon: 113.641777038574, country: "China", name: "Zhengzhou" },
+ { cap: false, pop: 0.431, lat: 34.7338752746582, lon: 36.7181739807129, country: "Syria", name: "Homs" },
+ { cap: false, pop: 0.740, lat: 34.6713485717773, lon: 112.361236572266, country: "China", name: "Luoyang" },
+ { cap: false, pop: 15.040, lat: 34.6355285644531, lon: 135.519119262695, country: "Japan", name: "Osaka" },
+ { cap: true, pop: 1.179, lat: 34.5309066772461, lon: 69.1367568969727, country: "Afghanistan", name: "Kabul" },
+ { cap: false, pop: 1.575, lat: 34.377555847168, lon: 132.444778442383, country: "Japan", name: "Hiroshima" },
+ { cap: false, pop: 2.050, lat: 34.265697479248, lon: 108.883361816406, country: "China", name: "Xian" },
+ { cap: false, pop: 0.535, lat: 34.0435676574707, lon: -4.99554777145386, country: "Morocco", name: "Fes" },
+ { cap: false, pop: 1.963, lat: 33.7957000732422, lon: -84.3492279052734, country: "US", name: "Atlanta" },
+ { cap: true, pop: 0.204, lat: 33.7181510925293, lon: 73.060546875, country: "Pakistan", name: "Islamabad" },
+ { cap: false, pop: 0.836, lat: 33.6058044433594, lon: 73.0437469482422, country: "Pakistan", name: "Rawalpindi" },
+ { cap: true, pop: 1.850, lat: 33.5193023681641, lon: 36.3134536743164, country: "Syria", name: "Damascus" },
+ { cap: false, pop: 1.482, lat: 33.5090217590332, lon: -112.110260009766, country: "US", name: "Phoenix" },
+ { cap: true, pop: 3.841, lat: 33.3340377807617, lon: 44.397834777832, country: "Iraq", name: "Baghdad" },
+ { cap: false, pop: 2.727, lat: 32.763729095459, lon: -96.663688659668, country: "US", name: "Dallas" },
+ { cap: false, pop: 0.987, lat: 32.6513900756836, lon: 51.6791877746582, country: "Iran", name: "Esfahan" },
+ { cap: false, pop: 2.290, lat: 32.0483665466309, lon: 118.768905639648, country: "China", name: "Nanjing" },
+ { cap: true, pop: 1.250, lat: 31.9493827819824, lon: 35.9329071044922, country: "Jordan", name: "Amman" },
+ { cap: false, pop: 0.595, lat: 31.6308898925781, lon: 74.8715515136719, country: "India", name: "Amritsar" },
+ { cap: false, pop: 3.025, lat: 31.5450534820557, lon: 74.3406753540039, country: "Pakistan", name: "Lahore" },
+ { cap: false, pop: 1.104, lat: 31.4089508056641, lon: 73.0834579467773, country: "Pakistan", name: "Faisalabad" },
+ { cap: false, pop: 9.300, lat: 31.2478694915771, lon: 121.47265625, country: "China", name: "Shanghai" },
+ { cap: false, pop: 1.810, lat: 30.6700687408447, lon: 104.071273803711, country: "China", name: "Chengdu" },
+ { cap: false, pop: 3.490, lat: 30.5724983215332, lon: 114.279220581055, country: "China", name: "Wuhan" },
+ { cap: false, pop: 0.617, lat: 30.503490447998, lon: 47.7608642578125, country: "Iraq", name: "Al Basra" },
+ { cap: false, pop: 1.270, lat: 30.2526245117188, lon: 120.165077209473, country: "China", name: "Hangzhou" },
+ { cap: true, pop: 9.300, lat: 30.0779113769531, lon: 31.2507972717285, country: "Egypt", name: "Cairo" },
+ { cap: false, pop: 1.185, lat: 29.9563789367676, lon: -90.0986862182617, country: "US", name: "New Orleans" },
+ { cap: false, pop: 2.755, lat: 29.7718296051025, lon: -95.407112121582, country: "US", name: "Houston" },
+ { cap: false, pop: 0.084, lat: 29.6507034301758, lon: 91.1320877075195, country: "China", name: "Lhasa" },
+ { cap: false, pop: 2.450, lat: 29.5441036224365, lon: 106.522689819336, country: "China", name: "Chongqing" },
+ { cap: false, pop: 0.968, lat: 29.4299221038818, lon: -98.5245742797852, country: "US", name: "San Antonio" },
+ { cap: false, pop: 1.030, lat: 28.6712398529053, lon: 115.88941192627, country: "China", name: "Nanchang" },
+ { cap: true, pop: 0.273, lat: 28.5687255859375, lon: 77.2167510986328, country: "India", name: "New Delhi" },
+ { cap: false, pop: 7.200, lat: 28.5264587402344, lon: 77.2243728637695, country: "India", name: "Delhi" },
+ { cap: false, pop: 1.190, lat: 28.1976413726807, lon: 112.968482971191, country: "China", name: "Changsha" },
+ { cap: true, pop: 0.320, lat: 27.7120170593262, lon: 85.3129501342773, country: "Nepal", name: "Kathmandu" },
+ { cap: true, pop: 0.012, lat: 27.44260597229, lon: 89.6673278808594, country: "Bhutan", name: "Thimbu" },
+ { cap: false, pop: 1.025, lat: 26.9051132202148, lon: 75.8012771606445, country: "India", name: "Jaipur" },
+ { cap: false, pop: 1.060, lat: 26.8494281768799, lon: 80.9197235107422, country: "India", name: "Lucknow" },
+ { cap: false, pop: 1.010, lat: 26.5719413757324, lon: 106.700302124023, country: "China", name: "Guiyang" },
+ { cap: false, pop: 1.875, lat: 26.4578304290771, lon: 80.3178634643555, country: "India", name: "Kanpur" },
+ { cap: false, pop: 0.890, lat: 26.0710163116455, lon: 119.303520202637, country: "China", name: "Fuzhou" },
+ { cap: false, pop: 2.827, lat: 25.8321304321289, lon: -80.2702178955078, country: "US", name: "Miami" },
+ { cap: false, pop: 2.015, lat: 25.6773529052734, lon: -100.317085266113, country: "Mexico", name: "Monterrey" },
+ { cap: false, pop: 1.025, lat: 25.6138973236084, lon: 85.1353454589844, country: "India", name: "Patna" },
+ { cap: false, pop: 0.800, lat: 25.3801860809326, lon: 68.3664703369141, country: "Pakistan", name: "Hyderabad" },
+ { cap: false, pop: 0.925, lat: 25.2820110321045, lon: 82.9563369750977, country: "India", name: "Benares" },
+ { cap: true, pop: 0.310, lat: 25.2036418914795, lon: 51.4972343444824, country: "Qatar", name: "Doha" },
+ { cap: false, pop: 1.280, lat: 25.0510330200195, lon: 102.702125549316, country: "China", name: "Kunming" },
+ { cap: true, pop: 6.130, lat: 25.0350914001465, lon: 121.506729125977, country: "Taiwan", name: "Taipei" },
+ { cap: false, pop: 0.715, lat: 24.1436424255371, lon: 120.670280456543, country: "Taiwan", name: "T`ai-chung" },
+ { cap: true, pop: 3.430, lat: 23.7099189758301, lon: 90.4071426391602, country: "Bangladesh", name: "Dhaka" },
+ { cap: false, pop: 3.050, lat: 23.0961952209473, lon: 113.293609619141, country: "China", name: "Guangzhou" },
+ { cap: false, pop: 2.400, lat: 23.0397911071777, lon: 72.5668640136719, country: "India", name: "Ahmadabad" },
+ { cap: false, pop: 0.648, lat: 22.8426475524902, lon: 89.5582427978516, country: "Bangladesh", name: "Khulna" },
+ { cap: false, pop: 11.100, lat: 22.5435371398926, lon: 88.3342208862305, country: "India", name: "Calcutta" },
+ { cap: false, pop: 0.435, lat: 22.2432346343994, lon: -97.8426284790039, country: "Mexico", name: "Tampico" },
+ { cap: false, pop: 0.533, lat: 21.975944519043, lon: 96.0841522216797, country: "Burma", name: "Mandalay" },
+ { cap: false, pop: 0.550, lat: 21.4273815155029, lon: 39.8148384094238, country: "Saudi Arabia", name: "Mecca" },
+ { cap: false, pop: 1.302, lat: 21.1557579040527, lon: 79.089111328125, country: "India", name: "Nagpur" },
+ { cap: true, pop: 1.500, lat: 21.0319480895996, lon: 105.81990814209, country: "Vietnam", name: "Hanoi" },
+ { cap: false, pop: 0.385, lat: 20.8613586425781, lon: 106.679794311523, country: "Vietnam", name: "Haiphong" },
+ { cap: false, pop: 0.400, lat: 20.8218688964844, lon: -89.552864074707, country: "Mexico", name: "Merida" },
+ { cap: false, pop: 2.325, lat: 20.6735916137695, lon: -103.343795776367, country: "Mexico", name: "Guadalajara" },
+ { cap: false, pop: 0.207, lat: 19.6157131195068, lon: 37.2196884155273, country: "Sudan", name: "Bur Sudan" },
+ { cap: true, pop: 14.100, lat: 19.4270458221436, lon: -99.127571105957, country: "Mexico", name: "Mexico City" },
+ { cap: false, pop: 1.055, lat: 19.0486316680908, lon: -98.1929473876953, country: "Mexico", name: "Puebla de Zaragoza" },
+ { cap: false, pop: 1.775, lat: 18.5357475280762, lon: 73.8522720336914, country: "India", name: "Pune" },
+ { cap: true, pop: 0.880, lat: 18.5266170501709, lon: -72.3431091308594, country: "Haiti", name: "Port-au-Prince" },
+ { cap: true, pop: 1.775, lat: 18.4006156921387, lon: -66.0817565917969, country: "Puerto Rico", name: "San Juan" },
+ { cap: true, pop: 0.770, lat: 18.0157127380371, lon: -76.7973022460938, country: "Jamaica", name: "Kingston" },
+ { cap: false, pop: 2.750, lat: 17.3945465087891, lon: 78.4850311279297, country: "India", name: "Hyderabad" },
+ { cap: true, pop: 2.800, lat: 16.8722229003906, lon: 96.1248931884766, country: "Burma", name: "Rangoon" },
+ { cap: true, pop: 0.427, lat: 15.3614444732666, lon: 44.2095031738281, country: "Yemen", name: "Sanaa" },
+ { cap: true, pop: 1.400, lat: 14.6180076599121, lon: -90.52490234375, country: "Guatemala", name: "Guatemala" },
+ { cap: true, pop: 0.552, lat: 14.0990505218506, lon: -87.2030944824219, country: "Honduras", name: "Tegucigalpa" },
+ { cap: true, pop: 6.450, lat: 13.7455711364746, lon: 100.552665710449, country: "Thailand", name: "Bangkok" },
+ { cap: true, pop: 0.920, lat: 13.7014122009277, lon: -89.2002334594727, country: "El Salvador", name: "San Salvador" },
+ { cap: true, pop: 0.398, lat: 13.6045436859131, lon: 2.08344984054565, country: "Niger", name: "Niamey" },
+ { cap: false, pop: 4.475, lat: 13.0615034103394, lon: 80.2478256225586, country: "India", name: "Madras" },
+ { cap: false, pop: 2.950, lat: 12.9747505187988, lon: 77.5877304077148, country: "India", name: "Bangalore" },
+ { cap: true, pop: 0.646, lat: 12.6529502868652, lon: -7.98648166656494, country: "Mali", name: "Bamako" },
+ { cap: true, pop: 0.682, lat: 12.1514730453491, lon: -86.2730331420898, country: "Nicaragua", name: "Managua" },
+ { cap: true, pop: 0.700, lat: 11.564736366272, lon: 104.913192749023, country: "Cambodia", name: "Phnom Penh" },
+ { cap: false, pop: 3.100, lat: 10.7591819763184, lon: 106.662452697754, country: "Vietnam", name: "Ho Chi Minh City" },
+ { cap: false, pop: 0.891, lat: 10.6450433731079, lon: -71.6371459960938, country: "Venezuela", name: "Maracaibo" },
+ { cap: true, pop: 3.600, lat: 10.4960489273071, lon: -66.8982849121094, country: "Venezuela", name: "Caracas" },
+ { cap: false, pop: 0.498, lat: 10.0656652450562, lon: -69.3391952514648, country: "Venezuela", name: "Barquisimeto" },
+ { cap: true, pop: 0.670, lat: 9.93047618865967, lon: -84.07861328125, country: "Costa Rica", name: "San Jose" },
+ { cap: false, pop: 0.960, lat: 9.91398620605469, lon: 78.1217269897461, country: "India", name: "Madurai" },
+ { cap: false, pop: 1.144, lat: 7.37884044647217, lon: 3.8952784538269, country: "Nigeria", name: "Ibadan" },
+ { cap: false, pop: 0.409, lat: 7.08008003234863, lon: 125.613677978516, country: "Philippines", name: "Davao" },
+ { cap: false, pop: 0.253, lat: 6.45053863525391, lon: 7.4920802116394, country: "Nigeria", name: "Enugu" },
+ { cap: false, pop: 2.095, lat: 6.24114656448364, lon: -75.5920333862305, country: "Colombia", name: "Medellin" },
+ { cap: true, pop: 1.250, lat: 5.55856275558472, lon: -0.200923636555672, country: "Ghana", name: "Accra" },
+ { cap: true, pop: 1.950, lat: 5.32485723495483, lon: -4.02188682556152, country: "Ivory Coast", name: "Abidjan" },
+ { cap: true, pop: 4.260, lat: 4.63021993637085, lon: -74.0805130004883, country: "Colombia", name: "Bogota" },
+ { cap: true, pop: 0.474, lat: 4.3658561706543, lon: 18.5623416900635, country: "Cent Af Rep", name: "Bangui" },
+ { cap: true, pop: 0.654, lat: 3.86512303352356, lon: 11.5136413574219, country: "Cameroon", name: "Yaounde" },
+ { cap: false, pop: 1.374, lat: 3.58524203300476, lon: 98.6755981445313, country: "Indonesia", name: "Medan" },
+ { cap: false, pop: 1.400, lat: 3.45685529708862, lon: -76.5224380493164, country: "Colombia", name: "Cali" },
+ { cap: true, pop: 1.475, lat: 3.1502103805542, lon: 101.707672119141, country: "Malaysia", name: "Kuala Lumpur" },
+ { cap: true, pop: 0.600, lat: 2.04117751121521, lon: 45.3441429138184, country: "Somalia", name: "Muqdisho" },
+ { cap: false, pop: 0.283, lat: 0.519284904003143, lon: 25.1961479187012, country: "Zaire", name: "Kisangani" },
+ { cap: true, pop: 1.050, lat: -0.229498133063316, lon: -78.524284362793, country: "Ecuador", name: "Quito" },
+ { cap: false, pop: 0.179, lat: -3.75289535522461, lon: -73.1914901733398, country: "Peru", name: "Iquitos" },
+ { cap: false, pop: 1.825, lat: -3.78332185745239, lon: -38.5889015197754, country: "Brazil", name: "Fortaleza" },
+ { cap: true, pop: 0.586, lat: -4.28518676757813, lon: 15.2851486206055, country: "Congo", name: "Brazzaville" },
+ { cap: false, pop: 0.291, lat: -5.89221096038818, lon: 22.4027786254883, country: "Zaire", name: "Kananga" },
+ { cap: true, pop: 1.300, lat: -6.81735897064209, lon: 39.2533493041992, country: "Tanzania", name: "Dar es Salaam" },
+ { cap: false, pop: 1.800, lat: -6.91243028640747, lon: 107.606903076172, country: "Indonesia", name: "Bandung" },
+ { cap: false, pop: 2.625, lat: -8.08516788482666, lon: -34.9146385192871, country: "Brazil", name: "Recife" },
+ { cap: false, pop: 0.155, lat: -12.7177352905273, lon: 13.464879989624, country: "Angola", name: "Benguela" },
+ { cap: true, pop: 1.568, lat: -15.7921094894409, lon: -47.8977470397949, country: "Brazil", name: "Brasilia" },
+ { cap: false, pop: 0.447, lat: -16.3975391387939, lon: -71.5227432250977, country: "Peru", name: "Arequipa" },
+ { cap: true, pop: 0.993, lat: -16.4990062713623, lon: -68.1462478637695, country: "Bolivia", name: "La Paz" },
+ { cap: false, pop: 0.990, lat: -16.7266998291016, lon: -49.254810333252, country: "Brazil", name: "Goiania" },
+ { cap: false, pop: 0.442, lat: -17.7887916564941, lon: -63.1974182128906, country: "Bolivia", name: "Santa Cruz de La Sierra" },
+ { cap: false, pop: 0.087, lat: -19.0421352386475, lon: -65.2558822631836, country: "Bolivia", name: "Sucre" },
+ { cap: false, pop: 2.950, lat: -19.8517208099365, lon: -43.9090690612793, country: "Brazil", name: "Belo Horizonte" },
+ { cap: false, pop: 10.150, lat: -22.7215728759766, lon: -43.4551773071289, country: "Brazil", name: "Rio de Janeiro" },
+ { cap: false, pop: 15.175, lat: -23.5813045501709, lon: -46.6228981018066, country: "Brazil", name: "Sao Paulo" },
+ { cap: false, pop: 1.065, lat: -23.9547004699707, lon: -46.3094940185547, country: "Brazil", name: "Santos" },
+ { cap: true, pop: 0.095, lat: -24.6614418029785, lon: 25.7948017120361, country: "Botswana", name: "Gaborone" },
+ { cap: false, pop: 1.700, lat: -25.4304790496826, lon: -49.2845077514648, country: "Brazil", name: "Curitiba" },
+ { cap: true, pop: 0.960, lat: -25.7313461303711, lon: 28.2183723449707, country: "South Africa", name: "Pretoria" },
+ { cap: true, pop: 1.070, lat: -25.9621543884277, lon: 32.5736923217773, country: "Mozambique", name: "Maputo" },
+ { cap: false, pop: 3.650, lat: -26.1789569854736, lon: 28.0043087005615, country: "South Africa", name: "Johannesburg" },
+ { cap: false, pop: 1.149, lat: -27.4539127349854, lon: 153.026489257813, country: "Australia", name: "Brisbane" },
+ { cap: false, pop: 1.550, lat: -29.8363723754883, lon: 30.9421882629395, country: "South Africa", name: "Durban" },
+ { cap: false, pop: 2.600, lat: -30.0395336151123, lon: -51.2079887390137, country: "Brazil", name: "Porto Alegre" },
+ { cap: false, pop: 1.070, lat: -31.3162784576416, lon: -64.1798553466797, country: "Argentina", name: "Cordoba" },
+ { cap: false, pop: 0.292, lat: -31.6168975830078, lon: -60.6978416442871, country: "Argentina", name: "Santa Fe" },
+ { cap: false, pop: 0.650, lat: -32.8974380493164, lon: -68.8297348022461, country: "Argentina", name: "Mendoza" },
+ { cap: false, pop: 1.045, lat: -32.9377365112305, lon: -60.6639404296875, country: "Argentina", name: "Rosario" },
+ { cap: true, pop: 4.100, lat: -33.475025177002, lon: -70.6475143432617, country: "Chile", name: "Santiago" },
+ { cap: false, pop: 0.690, lat: -33.8815765380859, lon: 25.4842987060547, country: "South Africa", name: "Port Elizabeth" },
+ { cap: false, pop: 3.365, lat: -33.8897743225098, lon: 151.028198242188, country: "Australia", name: "Sydney" },
+ { cap: true, pop: 10.750, lat: -34.6654014587402, lon: -58.4095916748047, country: "Argentina", name: "Buenos Aires" },
+ { cap: true, pop: 0.271, lat: -35.349925994873, lon: 149.041625976563, country: "Australia", name: "Canberra" },
+ { cap: false, pop: 0.850, lat: -36.893253326416, lon: 174.801055908203, country: "New Zealand", name: "Auckland" },
+ { cap: false, pop: 2.833, lat: -37.8529586791992, lon: 145.075103759766, country: "Australia", name: "Melbourne" },
+ { cap: false, pop: 0.224, lat: -38.7252731323242, lon: -62.2740669250488, country: "Argentina", name: "Bahia Blanca" },
+ { cap: false, pop: 0.320, lat: -43.5489158630371, lon: 172.683654785156, country: "New Zealand", name: "Christchurch" },
+ { cap: true, pop: 0.900, lat: 60.1964225769043, lon: 24.9766998291016, country: "Finland", name: "Helsinki" },
+ { cap: false, pop: 0.310, lat: 34.745231628418, lon: 10.7592582702637, country: "Tunisia", name: "Sfax" },
+ { cap: false, pop: 1.411, lat: 34.6638412475586, lon: 135.181838989258, country: "Japan", name: "Kobe" },
+ { cap: false, pop: 0.490, lat: 31.7737464904785, lon: 35.2252197265625, country: "Israel", name: "Jerusalem" },
+ { cap: false, pop: 0.616, lat: 10.1782207489014, lon: -68.0031127929688, country: "Venezuela", name: "Valencia" },
+ { cap: false, pop: 1.255, lat: -2.20381617546082, lon: -79.9093933105469, country: "Ecuador", name: "Guayaquil" },
+ { cap: false, pop: 4.054, lat: 37.7275123596191, lon: -122.308815002441, country: "US", name: "San Francisco" },
+ { cap: false, pop: 0.630, lat: 55.8752517700195, lon: -3.29878330230713, country: "UK", name: "Edinburgh" },
+ { cap: false, pop: 0.239, lat: 45.7002830505371, lon: 13.9328374862671, country: "Italy", name: "Trieste" },
+ { cap: false, pop: 1.750, lat: 33.3099060058594, lon: 130.317184448242, country: "Japan", name: "Fukuoka" },
+ { cap: false, pop: 1.525, lat: 33.6818656921387, lon: 130.797454833984, country: "Japan", name: "Kita Kyushu" },
+ { cap: true, pop: 0.303, lat: 12.1041393280029, lon: 15.2408237457275, country: "Chad", name: "N'Djamena" },
+ { cap: true, pop: 0.991, lat: 32.7516174316406, lon: 13.2118225097656, country: "Libya", name: "Tripoli" },
+ { cap: false, pop: 1.550, lat: 38.4389190673828, lon: 27.2057685852051, country: "Turkey", name: "Izmir" },
+ { cap: true, pop: 3.000, lat: -4.38867473602295, lon: 15.4692935943604, country: "Zaire", name: "Kinshasa" },
+ { cap: false, pop: 0.978, lat: -34.9185371398926, lon: 138.870681762695, country: "Australia", name: "Adelaide" },
+ { cap: true, pop: 8.600, lat: -6.29390430450439, lon: 106.762466430664, country: "Indonesia", name: "Jakarta" },
+ { cap: false, pop: 1.025, lat: -7.02784442901611, lon: 110.444259643555, country: "Indonesia", name: "Semarang" },
+ { cap: false, pop: 0.264, lat: -12.0435400009155, lon: -76.8356323242188, country: "Peru", name: "Callao" },
+ { cap: false, pop: 1.200, lat: -1.60532903671265, lon: -48.316276550293, country: "Brazil", name: "Belem" },
+ { cap: false, pop: 1.270, lat: 36.1483535766602, lon: 120.434127807617, country: "China", name: "Qingdao" },
+ { cap: true, pop: 0.377, lat: 18.0017318725586, lon: 102.680236816406, country: "Laos", name: "Vientiane" },
+ { cap: false, pop: 0.220, lat: 47.8011703491211, lon: 13.0908985137939, country: "Austria", name: "Salzburg" },
+ { cap: true, pop: 0.698, lat: 45.8070755004883, lon: 15.9643859863281, country: "Croatia", name: "Zagreb" },
+ { cap: true, pop: 0.273, lat: -3.26908373832703, lon: 29.5335865020752, country: "Burundi", name: "Bujumbura" },
+ { cap: true, pop: 0.185, lat: 35.1650695800781, lon: 33.3851623535156, country: "Cyprus", name: "Nicosia" },
+ { cap: true, pop: 0.182, lat: -2.11793518066406, lon: 29.9914855957031, country: "Rwanda", name: "Kigali" },
+ { cap: true, pop: 0.233, lat: 46.068302154541, lon: 14.639612197876, country: "Slovenia", name: "Ljubljana" },
+ { cap: true, pop: 0.109, lat: -29.2567100524902, lon: 27.8903884887695, country: "Lesotho", name: "Maseru" },
+ { cap: true, pop: 0.133, lat: 49.740406036377, lon: 6.27325582504272, country: "Luxembourg", name: "Luxembourg" },
+ { cap: false, pop: 0.770, lat: 51.903621673584, lon: 4.30062437057495, country: "Netherlands", name: "The Hague" },
+ { cap: true, pop: 0.435, lat: 48.2745094299316, lon: 17.2698059082031, country: "Slovakia", name: "Bratislava" },
+ { cap: false, pop: 0.201, lat: 52.1100006103516, lon: -106.629997253418, country: "Canada", name: "Saskatoon" },
+ { cap: false, pop: 0.187, lat: 50.4099998474121, lon: -104.650001525879, country: "Canada", name: "Regina" },
+ { cap: false, pop: 1.038, lat: 31.7800006866455, lon: -106.449996948242, country: "US", name: "El Paso" },
+ { cap: false, pop: 0.636, lat: 30.3299999237061, lon: -81.6600036621094, country: "US", name: "Jacksonville" },
+ { cap: false, pop: 0.002, lat: 51.3300018310547, lon: -80.7300033569336, country: "Canada", name: "Moosonee" },
+ { cap: false, pop: 0.002, lat: 54.8600006103516, lon: -67.0100021362305, country: "Canada", name: "Schefferville" },
+ { cap: false, pop: 0.008, lat: 53.310001373291, lon: -60.5499992370605, country: "Canada", name: "Goose Bay" },
+ { cap: false, pop: 0.202, lat: -8.75, lon: -63.9000015258789, country: "Brazil", name: "Porto Velho" },
+ { cap: false, pop: 0.185, lat: -13.6000003814697, lon: -71.8600006103516, country: "Peru", name: "Cuzco" },
+ { cap: false, pop: 0.280, lat: -15.5500001907349, lon: -56.0499992370605, country: "Brazil", name: "Cuiaba" },
+ { cap: false, pop: 0.220, lat: -27.3999996185303, lon: -58.9000015258789, country: "Argentina", name: "Resistencia" },
+ { cap: false, pop: 0.032, lat: 16.7600002288818, lon: -3.00999999046326, country: "Mali", name: "Tombouctoo" },
+ { cap: false, pop: 0.255, lat: 11.8800001144409, lon: 13.2600002288818, country: "Niger", name: "Maiduguri" },
+ { cap: false, pop: 0.145, lat: -5.80999994277954, lon: 13.4499998092651, country: "Zaire", name: "Matadi" },
+ { cap: false, pop: 0.203, lat: -12.7299995422363, lon: 15.7799997329712, country: "Angola", name: "Huambo" },
+ { cap: false, pop: 0.145, lat: -28.6599998474121, lon: 24.8299999237061, country: "South Africa", name: "Kimberley" },
+ { cap: false, pop: 0.320, lat: -33.0299987792969, lon: 27.8999996185303, country: "South Africa", name: "East london" },
+ { cap: false, pop: 0.247, lat: -7.32999992370605, lon: 19, country: "Zaire", name: "Kahemba" },
+ { cap: false, pop: 0.054, lat: -6.17999982833862, lon: 35.75, country: "Tanzania", name: "Dodoma" },
+ { cap: false, pop: 0.019, lat: 68.3499984741211, lon: 17.2999992370605, country: "Norway", name: "Narvik" },
+ { cap: false, pop: 0.160, lat: 34.4599990844727, lon: 62.2099990844727, country: "Afghanistan", name: "Herat" },
+ { cap: false, pop: 0.006, lat: 55.8800010681152, lon: 37.75, country: "Russia", name: "Druzba" },
+ { cap: false, pop: 0.146, lat: 39.4799995422363, lon: 76, country: "China", name: "Kashi" },
+ { cap: false, pop: 9.415, lat: 24.9799995422363, lon: 121.529998779297, country: "Taiwan", name: "Chingmei" },
+ { cap: false, pop: 0.166, lat: 16.4599990844727, lon: 107.699996948242, country: "Vietnam", name: "Hue" },
+ { cap: false, pop: 0.073, lat: 1.5, lon: 110.430000305176, country: "Malaysia", name: "Kuching" },
+ { cap: false, pop: 0.208, lat: -1.21000003814697, lon: 116.860000610352, country: "Indonesia", name: "Balikpapan" },
+ { cap: false, pop: 0.168, lat: 50.3300018310547, lon: 110.75, country: "Russia", name: "Chatanga" },
+ { cap: false, pop: 0.006, lat: 52.0499992370605, lon: 113.580001831055, country: "Russia", name: "Chita" },
+ { cap: false, pop: 0.001, lat: 67.5800018310547, lon: 133.410003662109, country: "Russia", name: "Verkhoyansk" },
+ { cap: false, pop: 0.187, lat: 62.0099983215332, lon: 129.830001831055, country: "Russia", name: "Yakutsk" },
+ { cap: false, pop: 0.006, lat: 59.3300018310547, lon: 143.25, country: "Russia", name: "Okhotsk" },
+ { cap: false, pop: 0.000, lat: 50.0800018310547, lon: 45.5299987792969, country: "Russia", name: "Nikolayevsk" },
+ { cap: false, pop: 0.000, lat: 46.9599990844727, lon: 142.75, country: "Russia", name: "Yuzhno-Sakhalinsk" },
+ { cap: false, pop: 0.000, lat: -23.6299991607666, lon: 133.929992675781, country: "Australia", name: "Alice Springs" },
+ { cap: false, pop: 0.039, lat: -16.8500003814697, lon: 145.710006713867, country: "Australia", name: "Cairns" },
+ { cap: false, pop: 0.106, lat: -19.2999992370605, lon: 146.830001831055, country: "Australia", name: "Townsville" },
+ { cap: false, pop: 0.059, lat: -23.4300003051758, lon: 150.479995727539, country: "Australia", name: "Rockhampton" },
+ { cap: false, pop: 0.405, lat: -33, lon: 151.910003662109, country: "Australia", name: "Newcastle" },
+ { cap: false, pop: 0.175, lat: -43, lon: 147.5, country: "Australia", name: "Hobart" },
+ { cap: false, pop: 0.109, lat: -45.8600006103516, lon: 170.5, country: "New Zealand", name: "Dunedin" },
+ { cap: false, pop: 0.256, lat: 48.6545677185059, lon: -123.569107055664, country: "Canada", name: "Victoria" },
+ { cap: true, pop: 0.164, lat: 6.60109615325928, lon: 2.63250279426575, country: "Benin", name: "Porto Novo" },
+ { cap: false, pop: 1.030, lat: 4.13665008544922, lon: 9.706374168396, country: "Cameroon", name: "Douala" },
+ { cap: false, pop: 0.708, lat: -5.19043016433716, lon: 119.722793579102, country: "Indonesia", name: "Vjuag Padang" },
+ { cap: false, pop: 0.112, lat: -3.3865532875061, lon: 129.312927246094, country: "Indonesia", name: "Ambon" },
+ { cap: false, pop: 1.604, lat: 37.5894508361816, lon: 126.767440795898, country: "Korea Rep", name: "Inch`on" },
+ { cap: false, pop: 1.680, lat: 39.0317153930664, lon: 121.598197937012, country: "China", name: "Dalian" },
+ { cap: false, pop: 1.227, lat: 45.4421310424805, lon: -122.641677856445, country: "US", name: "Portland" },
+ { cap: false, pop: 0.810, lat: -3.12230491638184, lon: -60.0146179199219, country: "Brazil", name: "Manaus" },
+ { cap: false, pop: 0.227, lat: -2.46000003814697, lon: -54.6100006103516, country: "Brazil", name: "Santarem" },
+ { cap: false, pop: 0.053, lat: -46.4099998474121, lon: 168.449996948242, country: "New Zealand", name: "Invercargill" },
+ { cap: false, pop: 0.049, lat: -10.2600002288818, lon: 40.1800003051758, country: "Tanzania", name: "Mtwara" },
+ { cap: false, pop: 0.100, lat: -18.2299995422363, lon: 49.4099998474121, country: "Madagascar", name: "Toamasina" },
+ { cap: false, pop: 0.235, lat: -29.1499996185303, lon: 26.2600002288818, country: "South Africa", name: "Bloemfontein" },
+ { cap: false, pop: 0.414, lat: -20.2000007629395, lon: 28.7099990844727, country: "Zimbabwe", name: "Bulawayo" },
+ { cap: false, pop: 0.061, lat: -17.8299999237061, lon: 25.8799991607666, country: "Zambia", name: "Livingstone" },
+ { cap: false, pop: 0.290, lat: 24.4300003051758, lon: 39.7000007629395, country: "Saudi Arabia", name: "Al Madinah" },
+ { cap: false, pop: 0.000, lat: 21.7600002288818, lon: 31.2800006866455, country: "Sudan", name: "Wadi Halfa" },
+ { cap: false, pop: 0.191, lat: 24.0799999237061, lon: 32.9500007629395, country: "Egypt", name: "Aswan" },
+ { cap: false, pop: 0.000, lat: 25.9099998474121, lon: 13.9099998474121, country: "Libya", name: "Murzuq" },
+ { cap: false, pop: 0.000, lat: 27.7000007629395, lon: -8.15999984741211, country: "Algeria", name: "Tindouf" },
+ { cap: false, pop: 0.050, lat: 16.9599990844727, lon: 7.98000001907349, country: "Niger", name: "Agadez" },
+ { cap: false, pop: 0.140, lat: 13.1800003051758, lon: 30.1599998474121, country: "Sudan", name: "El Obeid" },
+ { cap: false, pop: 0.125, lat: 0.0500000007450581, lon: 18.4599990844727, country: "Zaire", name: "Mbandaka" },
+ { cap: false, pop: 0.015, lat: 60.6500015258789, lon: -135.009994506836, country: "Canada", name: "Whitehorse" },
+ { cap: false, pop: 0.095, lat: -53.1500015258789, lon: -70.8000030517578, country: "Chile", name: "Punte Arenas" },
+ { cap: false, pop: 0.084, lat: -41.4799995422363, lon: -73, country: "Chile", name: "Puerto Montt" },
+ { cap: false, pop: 0.000, lat: -51.7099990844727, lon: -69.4100036621094, country: "Argentina", name: "Rio Gallegos" },
+ { cap: false, pop: 0.097, lat: -45.8300018310547, lon: -67.5, country: "Argentina", name: "Comodoro Rivadavia" },
+ { cap: false, pop: 0.327, lat: 29.9599990844727, lon: 32.560001373291, country: "Egypt", name: "Suez" },
+ { cap: false, pop: 3.350, lat: 31.0746040344238, lon: 29.9778099060059, country: "Egypt", name: "Alexandria" },
+ { cap: false, pop: 0.000, lat: -15.0500001907349, lon: 40.7000007629395, country: "Mozambique", name: "Mocambique" },
+ { cap: false, pop: 9.950, lat: 19.0453472137451, lon: 73.1723480224609, country: "India", name: "Bombay" },
+ { cap: true, pop: 2.548, lat: 36.596492767334, lon: 2.99369311332703, country: "Algeria", name: "Algiers" },
+ { cap: false, pop: 1.940, lat: 49.989673614502, lon: 36.2083129882813, country: "Ukraine", name: "Kharkov" },
+ { cap: false, pop: 1.600, lat: 48.4228897094727, lon: 35.1378936767578, country: "Ukraine", name: "Dnepropetrovsk" },
+ { cap: true, pop: 0.482, lat: 59.2775726318359, lon: 24.7520561218262, country: "Estonia", name: "Tallinn" },
+ { cap: false, pop: 0.000, lat: 47.810001373291, lon: 97, country: "Mongolia", name: "Uliastay" },
+ { cap: true, pop: 1.313, lat: 18.4997291564941, lon: -69.9104919433594, country: "Dominican Rp", name: "Santo Domingo" },
+ { cap: true, pop: 0.064, lat: 4.93300008773804, lon: 114.967002868652, country: "Brunei", name: "Bandar Seri Begawan" },
+ { cap: true, pop: 0.095, lat: 13.4452724456787, lon: -16.4946155548096, country: "Gambia", name: "Banjul" },
+ { cap: true, pop: 0.370, lat: 10.6397342681885, lon: -61.490062713623, country: "Trinidad", name: "Port of Spain" },
+ { cap: false, pop: 0.302, lat: 16.97438621521, lon: -99.9314956665039, country: "Mexico", name: "Acapulco" },
+ { cap: false, pop: 0.000, lat: 64.4001617431641, lon: 177.130187988281, country: "Russia", name: "Anadyr" },
+ { cap: false, pop: 0.003, lat: 65.6699981689453, lon: -37.3118667602539, country: "Greenland", name: "Angmagssalik" },
+ { cap: false, pop: 0.185, lat: -23.8325366973877, lon: -70.2254486083984, country: "Chile", name: "Antofagasta" },
+ { cap: false, pop: 0.294, lat: 40.75, lon: 140.669998168945, country: "Japan", name: "Aomori" },
+ { cap: false, pop: 0.436, lat: 32.0430526733398, lon: 20.3086757659912, country: "Libya", name: "Banghazi" },
+ { cap: false, pop: 0.000, lat: -15.75, lon: 133.220001220703, country: "Australia", name: "Birdum" },
+ { cap: false, pop: 0.000, lat: 2.75, lon: -60.5, country: "Brazil", name: "Boa Vista" },
+ { cap: false, pop: 0.280, lat: -6.61999988555908, lon: -79.8300018310547, country: "Peru", name: "Chiclayo" },
+ { cap: false, pop: 0.223, lat: -8.930100440979, lon: -78.4531478881836, country: "Peru", name: "Chimbote" },
+ { cap: false, pop: 0.001, lat: 58.710765838623, lon: -94.1800003051758, country: "Canada", name: "Churchill" },
+ { cap: false, pop: 0.686, lat: 9.98798847198486, lon: 76.5217819213867, country: "India", name: "Cochin" },
+ { cap: false, pop: 0.675, lat: -36.8832969665527, lon: -72.8516387939453, country: "Chile", name: "Concepcion" },
+ { cap: false, pop: 0.062, lat: -31, lon: -71.0199966430664, country: "Chile", name: "Coquimbo" },
+ { cap: false, pop: 0.073, lat: -12.7014999389648, lon: 130.994552612305, country: "Australia", name: "Darwin" },
+ { cap: true, pop: 0.120, lat: 11.5, lon: 43.0999984741211, country: "Djibouti", name: "Djibouti" },
+ { cap: false, pop: 0.022, lat: -32.0441665649414, lon: 115.9345703125, country: "Australia", name: "Fremantle" },
+ { cap: false, pop: 0.495, lat: 5.34999990463257, lon: 100.547142028809, country: "Malaysia", name: "George Town" },
+ { cap: false, pop: 0.001, lat: 69.3831405639648, lon: -53.6300010681152, country: "Greenland", name: "Godhavn" },
+ { cap: true, pop: 0.012, lat: 64.2711868286133, lon: -51.5800018310547, country: "Greenland", name: "Godthab" },
+ { cap: false, pop: 0.296, lat: 44.6300010681152, lon: -63.5800018310547, country: "Canada", name: "Halifax" },
+ { cap: false, pop: 0.007, lat: 70.3913269042969, lon: 23.9063415527344, country: "Norway", name: "Hammerfest" },
+ { cap: false, pop: 0.000, lat: 67.3499984741211, lon: 86.5500030517578, country: "Russia", name: "Igarka" },
+ { cap: false, pop: 0.019, lat: 27.2000007629395, lon: 2.52999997138977, country: "Algeria", name: "In Salah" },
+ { cap: false, pop: 0.003, lat: 68.2699966430664, lon: -133.669998168945, country: "Canada", name: "Inuvik" },
+ { cap: false, pop: 0.050, lat: -4.94999980926514, lon: 30, country: "Tanzania", name: "Kigoma" },
+ { cap: false, pop: 0.069, lat: 61.1500015258789, lon: 47, country: "Russia", name: "Kotlas" },
+ { cap: false, pop: 0.094, lat: 27, lon: -13.1800003051758, country: "W Sahara", name: "Laayoune" },
+ { cap: false, pop: 0.217, lat: 1.420086145401, lon: 124.884239196777, country: "Indonesia", name: "Manado" },
+ { cap: false, pop: 0.306, lat: 12.9499998092651, lon: 75.1608810424805, country: "India", name: "Mangalore" },
+ { cap: false, pop: 0.535, lat: 31.1499996185303, lon: -8, country: "Morocco", name: "Marrakech" },
+ { cap: true, pop: 0.038, lat: -26.3033809661865, lon: 31.1912975311279, country: "Swaziland", name: "Mbabne" },
+ { cap: false, pop: 0.449, lat: 32.8827476501465, lon: 129.857467651367, country: "Japan", name: "Nagasaki" },
+ { cap: false, pop: 0.510, lat: -5.78000020980835, lon: -35.25, country: "Brazil", name: "Natal" },
+ { cap: false, pop: 0.033, lat: -41.2999992370605, lon: 173.270004272461, country: "New Zealand", name: "Nelson" },
+ { cap: false, pop: 0.004, lat: 64.5862808227539, lon: -165.270004272461, country: "US", name: "Nome" },
+ { cap: false, pop: 0.174, lat: 69.3300018310547, lon: 88.0999984741211, country: "Russia", name: "Noril`sk" },
+ { cap: false, pop: 0.022, lat: 20.8999996185303, lon: -16.825647354126, country: "Mauritania", name: "Nouadnibou" },
+ { cap: false, pop: 0.600, lat: 53.7000007629395, lon: 87.1699981689453, country: "Russia", name: "Novokuznetsk" },
+ { cap: false, pop: 0.097, lat: 46.9199981689453, lon: -122.879997253418, country: "US", name: "Olympia" },
+ { cap: false, pop: 0.297, lat: -0.917578816413879, lon: 100.475059509277, country: "Indonesia", name: "Padang" },
+ { cap: false, pop: 0.787, lat: -3, lon: 104.830001831055, country: "Indonesia", name: "Palembang" },
+ { cap: false, pop: 0.155, lat: 38.1412391662598, lon: 21.8831691741943, country: "Greece", name: "Patras" },
+ { cap: false, pop: 0.269, lat: 53.2000007629395, lon: 158.720001220703, country: "Russia", name: "Petropavloski-Kamchatskiy" },
+ { cap: true, pop: 0.083, lat: 42.5, lon: 19.3999996185303, country: "Montenegro", name: "Podgorica" },
+ { cap: false, pop: 0.294, lat: -4.63870811462402, lon: 12.0580930709839, country: "Congo", name: "Pointe Noire" },
+ { cap: false, pop: 0.124, lat: -0.819999992847443, lon: 9.15334415435791, country: "Gabon", name: "Port Gentil" },
+ { cap: false, pop: 0.016, lat: 54.420280456543, lon: -130.048080444336, country: "Canada", name: "Prince Rupert" },
+ { cap: false, pop: 0.121, lat: 45.338134765625, lon: -65.6499481201172, country: "Canada", name: "Saint John" },
+ { cap: false, pop: 0.091, lat: 15.9512100219727, lon: -16.2978382110596, country: "Senegal", name: "Saint Louis" },
+ { cap: false, pop: 0.000, lat: 66.5699996948242, lon: 66.5800018310547, country: "Russia", name: "Salekhard" },
+ { cap: false, pop: 0.241, lat: 41.3199996948242, lon: 36.3699989318848, country: "Turkey", name: "Samsun" },
+ { cap: false, pop: 0.600, lat: -2.5, lon: -44.4300575256348, country: "Brazil", name: "Sao Luis" },
+ { cap: true, pop: 0.341, lat: 43.8699989318848, lon: 18.4300003051758, country: "Bosnia/Herz", name: "Sarajevo" },
+ { cap: false, pop: 0.000, lat: 70.5285720825195, lon: -22.9963226318359, country: "Greenland", name: "Scoresbyund" },
+ { cap: false, pop: 0.029, lat: 50.2825469970703, lon: -66.4025421142578, country: "Canada", name: "Sept-Iles" },
+ { cap: false, pop: 0.003, lat: 60.1199989318848, lon: -149.449996948242, country: "US", name: "Seward" },
+ { cap: true, pop: 0.445, lat: 42, lon: 21.5300006866455, country: "Macedonia", name: "Skopje" },
+ { cap: false, pop: 0.000, lat: 22.8299999237061, lon: 5.55000019073486, country: "Algeria", name: "Tamanrasset" },
+ { cap: false, pop: 0.000, lat: 77.6699981689453, lon: -69, country: "Greenland", name: "Thule" },
+ { cap: false, pop: 0.000, lat: 71.6999969482422, lon: 128.75, country: "Russia", name: "Tiksi" },
+ { cap: false, pop: 0.055, lat: -23.2901554107666, lon: 44.0190925598145, country: "Madagascar", name: "Toliara" },
+ { cap: false, pop: 0.354, lat: -7.92999982833862, lon: -79, country: "Peru", name: "Trujillo" },
+ { cap: false, pop: 0.604, lat: 17.75, lon: 83.3300018310547, country: "India", name: "Vishakhapatnam" },
+ { cap: false, pop: 0.116, lat: 67.8000030517578, lon: 64.3300018310547, country: "Russia", name: "Vorkuta" },
+ { cap: false, pop: 0.230, lat: 31.9699993133545, lon: 54.4500007629395, country: "Iran", name: "Yazd" },
+ { cap: false, pop: 0.282, lat: 29.6000003814697, lon: 60.8300018310547, country: "Iran", name: "Zahedan" },
+ { cap: false, pop: 0.318, lat: 12.861159324646, lon: 45.1800003051758, country: "Yemen", name: "Aden" },
+ { cap: true, pop: 1.500, lat: 9.02999973297119, lon: 38.7000007629395, country: "Ethiopia", name: "Adis Abeba" },
+ { cap: true, pop: 1.375, lat: 29.1949901580811, lon: 48.0027770996094, country: "Kuwait", name: "Al Kuwayt" },
+ { cap: true, pop: 0.663, lat: -18.8700008392334, lon: 47.5, country: "Madagascar", name: "Antananarivo" },
+ { cap: true, pop: 1.250, lat: 24.6499996185303, lon: 46.7700004577637, country: "Saudi Arabia", name: "Ar Riyad" },
+ { cap: true, pop: 0.275, lat: 15.3299999237061, lon: 38.9700012207031, country: "Eritrea", name: "Asmara" },
+ { cap: true, pop: 0.700, lat: -25.2199993133545, lon: -57.6699981689453, country: "Paraguay", name: "Asuncion" },
+ { cap: true, pop: 3.027, lat: 38.1216011047363, lon: 23.6548633575439, country: "Greece", name: "Athens" },
+ { cap: false, pop: 1.120, lat: 40.6500015258789, lon: 109.980003356934, country: "China", name: "Baotou" },
+ { cap: false, pop: 4.040, lat: 41.5299987792969, lon: 2.17000007629395, country: "Spain", name: "Barcelona" },
+ { cap: false, pop: 1.140, lat: 11.0142946243286, lon: -74.6800003051758, country: "Colombia", name: "Barranquilla" },
+ { cap: false, pop: 0.292, lat: -19.7692832946777, lon: 35.0231704711914, country: "Mozambique", name: "Beira" },
+ { cap: true, pop: 1.675, lat: 33.7799987792969, lon: 35.6579437255859, country: "Lebanon", name: "Beirut" },
+ { cap: true, pop: 0.005, lat: 17.1200008392334, lon: -88.8000030517578, country: "Belize", name: "Belmopan" },
+ { cap: false, pop: 0.239, lat: 60.3499984741211, lon: 5.49067831039429, country: "Norway", name: "Bergen" },
+ { cap: true, pop: 0.109, lat: 11.9109897613525, lon: -15.6499996185303, country: "GuineaBissau", name: "Bissau" },
+ { cap: false, pop: 1.790, lat: -33.8040084838867, lon: 18.6904315948486, country: "South Africa", name: "cape Town" },
+ { cap: false, pop: 0.625, lat: 51.5, lon: -3.15000009536743, country: "UK", name: "Cardiff" },
+ { cap: false, pop: 2.475, lat: 33.5444107055664, lon: -7.53409194946289, country: "Morocco", name: "Casablanca" },
+ { cap: true, pop: 0.038, lat: 4.92000007629395, lon: -52.4000015258789, country: "Fr Guiana", name: "Cayenne" },
+ { cap: false, pop: 1.392, lat: 22.4799995422363, lon: 91.8327941894531, country: "Bangladesh", name: "Chittagong" },
+ { cap: true, pop: 2.050, lat: 7.01999998092651, lon: 80.0883331298828, country: "Sri Lanka", name: "Colombo" },
+ { cap: true, pop: 0.800, lat: 9.52000045776367, lon: -12.8000001907349, country: "Guinea", name: "Conakry" },
+ { cap: true, pop: 1.428, lat: 14.6300001144409, lon: -16.8480949401855, country: "Senegal", name: "Dakar" },
+ { cap: false, pop: 1.405, lat: 39.75, lon: -105.069999694824, country: "US", name: "Denver" },
+ { cap: true, pop: 0.595, lat: 38.6300010681152, lon: 68.9000015258789, country: "Tajikistan", name: "Dushanfe" },
+ { cap: false, pop: 0.785, lat: 53.5699996948242, lon: -113.269996643066, country: "Canada", name: "Edmonton" },
+ { cap: false, pop: 1.871, lat: 30.4699993133545, lon: 30.8500003814697, country: "Egypt", name: "Giza" },
+ { cap: true, pop: 0.525, lat: 8.38277053833008, lon: -12.9102764129639, country: "Sierra Leone", name: "Freetown" },
+ { cap: true, pop: 0.616, lat: 42.8800010681152, lon: 74.7699966430664, country: "Kyrgyzstan", name: "Frunze" },
+ { cap: false, pop: 0.805, lat: 44.4550895690918, lon: 8.92229557037354, country: "Italy", name: "Genova" },
+ { cap: true, pop: 0.188, lat: 6.76999998092651, lon: -58.1699981689453, country: "Guyana", name: "Georgetown" },
+ { cap: false, pop: 0.711, lat: 57.75, lon: 12, country: "Sweden", name: "Goteborg" },
+ { cap: true, pop: 0.890, lat: -17.8299999237061, lon: 31.0200004577637, country: "Zimbabwe", name: "Harare" },
+ { cap: true, pop: 2.125, lat: 23.0489521026611, lon: -82.4164505004883, country: "Cuba", name: "Havana" },
+ { cap: false, pop: 1.300, lat: 21.6200008392334, lon: 39.3733062744141, country: "Saudi Arabia", name: "Jiddah" },
+ { cap: true, pop: 0.460, lat: 0.319999992847443, lon: 32.5800018310547, country: "Uganda", name: "Kampala" },
+ { cap: false, pop: 0.538, lat: 11.9200000762939, lon: 8.52000045776367, country: "Nigeria", name: "Kano" },
+ { cap: false, pop: 1.845, lat: 22.6734161376953, lon: 120.341484069824, country: "Taiwan", name: "Kao-Hsiung" },
+ { cap: false, pop: 5.300, lat: 24.8500003814697, lon: 67.0299987792969, country: "Pakistan", name: "Karachi" },
+ { cap: false, pop: 0.601, lat: 48.5299987792969, lon: 135.070007324219, country: "Russia", name: "Khabarovsk" },
+ { cap: true, pop: 0.924, lat: 15.5500001907349, lon: 32.5299987792969, country: "Sudan", name: "Khartoum" },
+ { cap: true, pop: 0.665, lat: 47, lon: 28.8299999237061, country: "Moldova", name: "Kishinev" },
+ { cap: true, pop: 1.685, lat: 55.7200012207031, lon: 12.5500001907349, country: "Denmark", name: "Kobenhavn" },
+ { cap: true, pop: 3.800, lat: 6.44999980926514, lon: 3.29999995231628, country: "Nigeria", name: "Lagos" },
+ { cap: false, pop: 0.255, lat: 49.3240203857422, lon: 0.219999998807907, country: "France", name: "Le Havre" },
+ { cap: true, pop: 0.236, lat: -0.504144549369812, lon: 9.49045658111572, country: "Gabon", name: "Libreville" },
+ { cap: true, pop: 0.234, lat: -13.9200000762939, lon: 33.8199996948242, country: "Malawi", name: "Lilongwe" },
+ { cap: true, pop: 4.344, lat: -12.0679960250854, lon: -76.8235549926758, country: "Peru", name: "Lima" },
+ { cap: true, pop: 2.250, lat: 38.7299995422363, lon: -9.13000011444092, country: "Portugal", name: "Lisboa" },
+ { cap: false, pop: 1.525, lat: 53.4226875305176, lon: -2.76683640480042, country: "UK", name: "Liverpool" },
+ { cap: true, pop: 0.400, lat: 6.28000020980835, lon: 1.35000002384186, country: "Togo", name: "Lome" },
+ { cap: false, pop: 9.764, lat: 34, lon: -118.25, country: "US", name: "Los Angeles" },
+ { cap: true, pop: 1.460, lat: -9, lon: 13.4617786407471, country: "Angola", name: "Luanda" },
+ { cap: false, pop: 0.543, lat: -11.6800003051758, lon: 27.5499992370605, country: "Zaire", name: "Lumumbashi" },
+ { cap: true, pop: 0.536, lat: -15.4300003051758, lon: 28.1700000762939, country: "Zambia", name: "Lusaka" },
+ { cap: true, pop: 0.031, lat: 3.64468479156494, lon: 8.81999969482422, country: "Eq Guinea", name: "Malabo" },
+ { cap: true, pop: 5.474, lat: 14.5500001907349, lon: 121.173408508301, country: "Philippines", name: "Manila" },
+ { cap: false, pop: 1.225, lat: 43.2999992370605, lon: 5.38000011444092, country: "France", name: "Marseille" },
+ { cap: true, pop: 0.050, lat: 23.5166397094727, lon: 58.6274795532227, country: "Oman", name: "Masqat" },
+ { cap: false, pop: 0.200, lat: 23.3615112304688, lon: -106.269996643066, country: "Mexico", name: "Mazatlan" },
+ { cap: false, pop: 0.442, lat: -4.01999998092651, lon: 39.6699981689453, country: "Kenya", name: "Mombasa" },
+ { cap: true, pop: 0.465, lat: 6.51743936538696, lon: -10.7700004577637, country: "Liberia", name: "Monrovia" },
+ { cap: true, pop: 1.550, lat: -34.9199981689453, lon: -56.1699981689453, country: "Uruguay", name: "Montevideo" },
+ { cap: true, pop: 13.100, lat: 55.75, lon: 37.7000007629395, country: "Russia", name: "Moscow" },
+ { cap: true, pop: 1.286, lat: -1.16999995708466, lon: 36.8300018310547, country: "Kenya", name: "Nairobi" },
+ { cap: false, pop: 2.875, lat: 40.8300018310547, lon: 14.2700004577637, country: "Italy", name: "Napoli" },
+ { cap: false, pop: 16.472, lat: 40.75, lon: -74.0999984741211, country: "US", name: "New York" },
+ { cap: false, pop: 0.329, lat: 40.7200012207031, lon: -74.1999969482422, country: "US", name: "Newark" },
+ { cap: true, pop: 0.285, lat: 18.0300006866455, lon: -15.7828607559204, country: "Mauritania", name: "Nouakchott" },
+ { cap: false, pop: 0.138, lat: 55.574535369873, lon: 9.90299892425537, country: "Denmark", name: "Odense" },
+ { cap: false, pop: 0.526, lat: 15.6199998855591, lon: 32.4799995422363, country: "Sudan", name: "Omdurman" },
+ { cap: false, pop: 0.629, lat: 35.75, lon: -0.519999980926514, country: "Algeria", name: "Oran" },
+ { cap: true, pop: 0.720, lat: 59.9300003051758, lon: 10.7200002670288, country: "Norway", name: "Oslo" },
+ { cap: true, pop: 0.442, lat: 12.4799995422363, lon: -1.66999995708466, country: "Burkina Faso", name: "Ouagadouou" },
+ { cap: false, pop: 0.724, lat: 38.1300010681152, lon: 13.3999996185303, country: "Italy", name: "Palermo" },
+ { cap: true, pop: 0.625, lat: 8.94999980926514, lon: -79.4000015258789, country: "Panama", name: "Panama" },
+ { cap: true, pop: 0.241, lat: 5.92999982833862, lon: -55.2299995422363, country: "Suriname", name: "Paramaribo" },
+ { cap: false, pop: 0.994, lat: -31.9758644104004, lon: 115.923370361328, country: "Australia", name: "Perth" },
+ { cap: true, pop: 0.152, lat: -9.55000019073486, lon: 147.414520263672, country: "Papua N Guin", name: "Port Moresby" },
+ { cap: false, pop: 1.225, lat: 41.1500015258789, lon: -8.48794841766357, country: "Portugal", name: "Porto" },
+ { cap: false, pop: 0.203, lat: 31.6000003814697, lon: 65.5, country: "Afghanistan", name: "Qandahar" },
+ { cap: false, pop: 1.326, lat: 14.6499996185303, lon: 121.029998779297, country: "Philippines", name: "Quezon City" },
+ { cap: true, pop: 0.980, lat: 33.9201965332031, lon: -6.74804067611694, country: "Morocco", name: "Rabat" },
+ { cap: true, pop: 0.138, lat: 64.3132629394531, lon: -21.336820602417, country: "Iceland", name: "Reykjavik" },
+ { cap: true, pop: 1.005, lat: 56.8800010681152, lon: 24.0499992370605, country: "latvia", name: "Riga" },
+ { cap: true, pop: 3.175, lat: 41.8800010681152, lon: 12.5200004577637, country: "Italy", name: "Roma" },
+ { cap: false, pop: 2.050, lat: -12.6002569198608, lon: -38.4799995422363, country: "Brazil", name: "Salvador" },
+ { cap: false, pop: 0.848, lat: 29.6299991607666, lon: 52.5699996948242, country: "Iran", name: "Shiraz" },
+ { cap: true, pop: 1.450, lat: 59.2446327209473, lon: 18.0842685699463, country: "Sweden", name: "Stockholm" },
+ { cap: false, pop: 2.028, lat: -7.40000009536743, lon: 112.684371948242, country: "Indonesia", name: "Surabaja" },
+ { cap: false, pop: 0.657, lat: 23.1700000762939, lon: 120.230003356934, country: "Taiwan", name: "T`ai-nan" },
+ { cap: false, pop: 0.595, lat: 27.9973583221436, lon: -82.5930252075195, country: "US", name: "Tampa" },
+ { cap: true, pop: 1.670, lat: 31.9171981811523, lon: 34.8568344116211, country: "Israel", name: "Tel Aviv-Yafo" },
+ { cap: false, pop: 0.706, lat: 40.6300010681152, lon: 22.7999992370605, country: "Greece", name: "Thessaloniki" },
+ { cap: true, pop: 2.325, lat: 41.247932434082, lon: 69.3498687744141, country: "Uzbekistan", name: "Toshkent" },
+ { cap: false, pop: 0.198, lat: 34.3437576293945, lon: 36.0070686340332, country: "Lebanon", name: "Tripoli" },
+ { cap: false, pop: 0.675, lat: -32.9000015258789, lon: -71.2993392944336, country: "Chile", name: "Valparaiso" },
+ { cap: false, pop: 1.381, lat: 49.274299621582, lon: -122.963066101074, country: "Canada", name: "Vancouver" },
+ { cap: false, pop: 0.648, lat: 43.1300010681152, lon: 131.960433959961, country: "Russia", name: "Vladivostok" },
+ { cap: false, pop: 0.017, lat: -23.1018676757813, lon: 14.6171045303345, country: "Namibia", name: "Walvis Bay" },
+ { cap: true, pop: 0.115, lat: -22.5699996948242, lon: 17.1000003814697, country: "Namibia", name: "Windhoek" },
+ { cap: true, pop: 0.350, lat: -41.2103958129883, lon: 175.144943237305, country: "New Zealand", name: "Wellington" },
+ { cap: false, pop: 2.077, lat: 47.5885543823242, lon: -122.316650390625, country: "US", name: "Seattle" },
+ { cap: false, pop: 2.099, lat: 32.7614593505859, lon: -117.125495910645, country: "US", name: "San Diego" },
+ { cap: false, pop: 0.110, lat: -20.2600002288818, lon: -69.9132614135742, country: "Chile", name: "Iquique" },
+ { cap: true, pop: 0.243, lat: 24.2360076904297, lon: 54.619270324707, country: "Untd Arab Em", name: "Abu Zaby" },
+ { cap: false, pop: 0.199, lat: 7.57660102844238, lon: -72.0054550170898, country: "Venezuela", name: "San Cristobal" },
+ { cap: false, pop: 0.509, lat: 46.25, lon: 48, country: "Russia", name: "Astrakhan" },
+ { cap: false, pop: 0.000, lat: 30.1386032104492, lon: 9.81835079193115, country: "Libya", name: "Ghadamis" },
+ { cap: false, pop: 0.077, lat: -31.3051528930664, lon: -57.7087745666504, country: "Uruguay", name: "Salto" },
+ { cap: false, pop: 0.012, lat: 62.5206146240234, lon: -114.061363220215, country: "Canada", name: "Yellowknife" },
+ { cap: false, pop: 0.043, lat: 19.7148151397705, lon: -155.067291259766, country: "US", name: "Hilo" },
+ { cap: false, pop: 0.763, lat: 21.3211765289307, lon: -157.806182861328, country: "US", name: "Honolulu" },
+ { cap: false, pop: 0.184, lat: 61.188648223877, lon: -149.172973632813, country: "US", name: "Anchorage" },
+ { cap: false, pop: 0.040, lat: 64.8387451171875, lon: -147.651184082031, country: "US", name: "Fairbanks" },
+ { cap: false, pop: 0.020, lat: 58.3910064697266, lon: -134.132476806641, country: "US", name: "Juneau" },
+ { cap: false, pop: 0.629, lat: 37.30810546875, lon: -121.847457885742, country: "US", name: "San Jose" },
+ { cap: false, pop: 0.386, lat: 28.5581398010254, lon: -105.966636657715, country: "Mexico", name: "Chihuaha" },
+ { cap: false, pop: 0.385, lat: 19.0096759796143, lon: -96.0840606689453, country: "Mexico", name: "Veracruz" },
+ { cap: false, pop: 0.154, lat: 16.9209060668945, lon: -96.9420394897461, country: "Mexico", name: "Oaxaca" },
+ { cap: false, pop: 0.000, lat: 78.1999969482422, lon: 15.6599998474121, country: "Norway", name: "longyearbyen" },
+ { cap: true, pop: 5.396, lat: 22.4284057617188, lon: 114.145706176758, country: "UK", name: "Hong Kong" },
+ { cap: false, pop: 0.775, lat: 22.3798961639404, lon: 114.230117797852, country: "UK", name: "Kowloon" },
+ { cap: false, pop: 3.025, lat: 1.22979354858398, lon: 104.177116394043, country: "Singapore", name: "Singapore" },
+ ];
+
+ this.capitals = this.locations.filter(city => city.cap);
+ this.cities = this.locations.filter(city => !city.cap);
+ return this.locations
+ }
+}
+```
+
```razor
public static class WorldLocations
{
@@ -652,5 +1296,4 @@ The resource topic provides implementation of data utility for generating geogra
```
## API References
-
-- [`IgbGeographicMap`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap)
+[`IgbGeographicMap`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-resources-world-util.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-resources-world-util.md
index e1ad7362a..1d54bfe70 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-resources-world-util.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-resources-world-util.md
@@ -1,19 +1,201 @@
---
-title: Blazor Map | World Utility | Data Source | Infragistics
-_description: Use Infragistics' Blazor JavaScript map data utility to generate geographic data. View Ignite UI for Blazor map demos!
-_keywords: Blazor map, map data, Ignite UI for Blazor, Infragistics
-_license: commercial
-mentionedTypes: ["XamGeographicMap"]
+title: "Blazor Map | World Utility | Data Source | Infragistics"
+description: Use Infragistics' Blazor JavaScript map data utility to generate geographic data. View Ignite UI for Blazor map demos!
+keywords: "Blazor map, map data, Ignite UI for Blazor, Infragistics"
+license: commercial
+mentionedTypes: ["GeographicMap"]
+llms:
+ description: "The resource topic provides implementation of utility that helps with generating Blazor geographic data."
_tocName: World Utility
_premium: true
---
-
# Blazor World Utility
The resource topic provides implementation of utility that helps with generating Blazor geographic data.
## Code Snippet
+```ts
+export default class WorldUtils {
+
+ // calculate geo-paths between two locations using great circle formula
+ public static calcPaths(origin: any, dest: any): any[] {
+ let interval = 200;
+ let paths: any[] = [[]];
+ let pathID = 0;
+ let distance = this.calcDistance(origin, dest);
+ if (distance <= interval) {
+ paths[pathID].push({ x: origin.lon, y: origin.lat });
+ paths[pathID].push({ x: dest.lon, y: dest.lat });
+ } else {
+ let current = origin;
+ let previous = origin;
+
+ for (let dist = interval; dist <= distance; dist += interval)
+ {
+ previous = current
+ paths[pathID].push({ x: current.lon, y: current.lat });
+
+ let bearing = this.calcBearing(current, dest);
+ current = this.calcDestination(current, bearing, interval);
+ // ensure geo-path wrap around the world through the new date-line
+ if (previous.lon > 150 && current.lon < -150) {
+ paths[pathID].push({ x: 180, y: current.lat });
+ paths.push([]);
+ pathID++
+ current = { lon: -180, lat: current.lat }
+ } else if (previous.lon < -150 && current.lon > 150) {
+ paths[pathID].push({ x: -180, y: current.lat });
+ paths.push([]);
+ pathID++
+ current = { lon: 180, lat: current.lat }
+ }
+ }
+ paths[pathID].push({ x: dest.lon, y: dest.lat });
+ }
+ return paths;
+ }
+
+ // calculate bearing angle between two locations
+ public static calcBearing(origin: any, dest: any) : number
+ {
+ origin = this.toRadianLocation(origin);
+ dest = this.toRadianLocation(dest);
+ let range = (dest.lon - origin.lon);
+ let y = Math.sin(range) * Math.cos(dest.lat);
+ let x = Math.cos(origin.lat) * Math.sin(dest.lat) -
+ Math.sin(origin.lat) * Math.cos(dest.lat) * Math.cos(range);
+ let angle = Math.atan2(y, x);
+ return this.toDegreesNormalized(angle);
+ }
+
+ // calculate destination for origin location and travel distance
+ public static calcDestination(origin: any, bearing: number, distance: number): any {
+ let radius = 6371.0;
+ origin = this.toRadianLocation(origin);
+ bearing = this.toRadians(bearing);
+ distance = distance / radius; // angular distance in radians
+
+ let lat = Math.asin(Math.sin(origin.lat) * Math.cos(distance) +
+ Math.cos(origin.lat) * Math.sin(distance) * Math.cos(bearing));
+ let x = Math.sin(bearing) * Math.sin(distance) * Math.cos(origin.lat);
+ let y = Math.cos(distance) - Math.sin(origin.lat) * Math.sin(origin.lat);
+ let lon = origin.lon + Math.atan2(x, y);
+ // normalize lon to coordinate between -180º and +180º
+ lon = (lon + 3 * Math.PI) % (2 * Math.PI) - Math.PI;
+
+ lon = this.toDegrees(lon);
+ lat = this.toDegrees(lat);
+
+ return { lon: lon, lat: lat };
+ }
+
+ // calculate distance between two locations
+ public static calcDistance(origin: any, dest: any) : number {
+ origin = this.toRadianLocation(origin);
+ dest = this.toRadianLocation(dest);
+ let sinProd = Math.sin(origin.lat) * Math.sin(dest.lat);
+ let cosProd = Math.cos(origin.lat) * Math.cos(dest.lat);
+ let lonDelta = (dest.lon - origin.lon);
+
+ let angle = Math.acos(sinProd + cosProd * Math.cos(lonDelta));
+ let distance = angle * 6371.0;
+ return distance; // * 6371.0; // in km
+ }
+
+ public static toRadianLocation(geoPoint: any) : any {
+ let x = this.toRadians(geoPoint.lon);
+ let y = this.toRadians(geoPoint.lat);
+ return { lon: x, lat: y };
+ }
+
+ public static toRadians(degrees: number) : number
+ {
+ return degrees * Math.PI / 180;
+ }
+
+ public static toDegrees(radians: number) : number {
+ return (radians * 180.0 / Math.PI);
+ }
+
+ public static toDegreesNormalized(radians: number) : number
+ {
+ let degrees = this.toDegrees(radians);
+ degrees = (degrees + 360) % 360;
+ return degrees;
+ }
+
+ // converts latitude coordinate to a string
+ public static toStringLat(latitude: number) : string {
+ let str = Math.abs(latitude).toFixed(1) + "°";
+ return latitude > 0 ? str + "N" : str + "S";
+ }
+
+ // converts longitude coordinate to a string
+ public static toStringLon(coordinate: number) : string {
+ let val = Math.abs(coordinate);
+ let str = val < 100 ? val.toFixed(1) : val.toFixed(0);
+ return coordinate > 0 ? str + "°E" : str + "°W";
+ }
+
+ public static toStringAbbr(value: number) : string {
+ if (value > 1000000000000) {
+ return (value / 1000000000000).toFixed(1) + " T"
+ } else if (value > 1000000000) {
+ return (value / 1000000000).toFixed(1) + " B"
+ } else if (value > 1000000) {
+ return (value / 1000000).toFixed(1) + " M"
+ } else if (value > 1000) {
+ return (value / 1000).toFixed(1) + " K"
+ }
+ return value.toFixed(0);
+ }
+
+ public static getLongitude(location: any) : number {
+ if (location.x) return location.x;
+ if (location.lon) return location.lon;
+ if (location.longitude) return location.longitude;
+ return Number.NaN;
+ }
+
+ public static getLatitude(location: any) : number {
+ if (location.y) return location.y;
+ if (location.lat) return location.lat;
+ if (location.latitude) return location.latitude;
+ return Number.NaN;
+ }
+
+ public static getBounds(locations: any[]) : any {
+ let minLat = 90;
+ let maxLat = -90;
+ let minLon = 180;
+ let maxLon = -180;
+
+ for (const location of locations) {
+ const crrLon = this.getLongitude(location);
+ if (!Number.isNaN(crrLon)) {
+ minLon = Math.min(minLon, crrLon);
+ maxLon = Math.max(maxLon, crrLon);
+ }
+
+ const crrLat = this.getLatitude(location);
+ if (!Number.isNaN(crrLat)) {
+ minLat = Math.min(minLat, crrLat);
+ maxLat = Math.max(maxLat, crrLat);
+ }
+ }
+
+ const geoBounds = {
+ left: minLon,
+ top: minLat,
+ width: Math.abs(maxLon - minLon),
+ height: Math.abs(maxLat - minLat)
+ };
+ return geoBounds;
+ }
+}
+```
+
```razor
public static class WorldUtils
{
@@ -234,5 +416,4 @@ The resource topic provides implementation of utility that helps with generating
```
## API References
-
-- [`IgbGeographicMap`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap)
+[`IgbGeographicMap`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-shape-files-reference.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-shape-files-reference.md
index 1835f1bad..d77023883 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-shape-files-reference.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-shape-files-reference.md
@@ -1,13 +1,14 @@
---
-title: Blazor Map | Data Visualization Tools | Shape Files Reference | Shape Files Editing | Infragistics
-_description: Learn about shape files format to use with Infragistics' Blazor map. Check out Ignite UI for Blazor map tutorials!
-_keywords: Blazor map, shape files, Ignite UI for Blazor, Infragistics, shape editing
-_license: commercial
-mentionedTypes: ["XamGeographicMap", "GeographicShapeSeriesBase", "Series"]
+title: "Blazor Map | Data Visualization Tools | Shape Files Reference | Shape Files Editing | Infragistics"
+description: Learn about shape files format to use with Infragistics' Blazor map. Check out Ignite UI for Blazor map tutorials!
+keywords: "Blazor map, shape files, Ignite UI for Blazor, Infragistics, shape editing"
+license: commercial
+mentionedTypes: ["GeographicMap", "GeographicShapeSeriesBase", "Series"]
+llms:
+ description: "Before plotting geo-spatial data in the control, one should get familiar with the following resources which provide general information about maps and geo-spatial data."
_tocName: Shape Files Reference
_premium: true
---
-
# Blazor Shape Files Reference
## Purpose
@@ -90,13 +91,10 @@ The following list provides resources for obtaining shape files. Also, samples f
The following topics provide additional information related to this topic.
-- [Binding Shape Files](geo-map-binding-shp-file.md)
+- [Binding Shape Files](./geo-map-binding-shp-file.md)
## API References
-
-- [`IgbGeographicMap`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap)
-- [`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries)
-- [`IgbGeographicShapeSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicShapeSeries)
-- [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicShapeSeriesBase&member=DataSource)
-- [`ShapeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicShapeSeriesBase&member=ShapeMemberPath)
-- [`IgbShapeDataSource`](mcp:get_api_reference?platform=blazor&component=IgbShapeDataSource)
+[`IgbGeographicMap`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap)
+[`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries)
+[`IgbGeographicShapeSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicShapeSeries)
+[`IgbShapefileRecord`](mcp:get_api_reference?platform=blazor&component=IgbShapefileRecord)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-type-scatter-area-series.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-type-scatter-area-series.md
index ba2611683..cdb97778c 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-type-scatter-area-series.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-type-scatter-area-series.md
@@ -1,13 +1,14 @@
---
-title: Blazor Map | Data Visualization Tools | Scatter Area Series | Data Binding | Infragistics
-_description: Use Infragistics Blazor map's scatter area series to draw a colored area surface based on a triangulation of longitude and latitude data with a numeric value assigned to each point. Learn more about Ignite UI for Blazor map's series!
-_keywords: Blazor map, scatter area series, Ignite UI for Blazor, Infragistics
-_license: commercial
-mentionedTypes: ["XamGeographicMap","GeographicScatterAreaSeries","CustomPaletteColorScale", "Series"]
+title: "Blazor Map | Data Visualization Tools | Scatter Area Series | Data Binding | Infragistics"
+description: Use Infragistics Blazor map's scatter area series to draw a colored area surface based on a triangulation of longitude and latitude data with a numeric value assigned to each point. Learn more about Ignite UI for Blazor map's series!
+keywords: "Blazor map, scatter area series, Ignite UI for Blazor, Infragistics"
+license: commercial
+mentionedTypes: ["GeographicMap","GeographicScatterAreaSeries","CustomPaletteColorScale", "Series"]
+llms:
+ description: "In Blazor map component, you can use the GeographicScatterAreaSeries to draw a colored surface, in a geographic context, based on a triangulation of longitude and latitude data with a numeric value assigned to each point."
_tocName: Geographic Area Map
_premium: true
---
-
# Blazor Geographic Area Map
In Blazor map component, you can use the [`IgbGeographicScatterAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries) to draw a colored surface, in a geographic context, based on a triangulation of longitude and latitude data with a numeric value assigned to each point. This type of geographic series is useful for rendering scattered data, defined by geographic locations such as weather temperature, precipitation, population distribution, air pollution, etc.
@@ -55,51 +56,46 @@ In Blazor map component, you can use the [`IgbGeographicScatterAreaSeries`](mcp:
}
```
-
-
The [`IgbGeographicScatterAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries) works a lot like the [`IgbGeographicContourLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries) except that it represents data as interpolated and colored surface instead of contour lines connecting data points with the same values.
## Data Requirements
-
-Similar to other types of geographic series in the map component, the [`IgbGeographicScatterAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries) has the [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=DataSource) property which can be bound to an array of objects. In addition, each item in the items source must have three data columns, two that store a geographic longitude and latitude coordinates and one data column that stores a value associated with the geographic location. The [`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=LongitudeMemberPath), [`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=LatitudeMemberPath), and [`ColorMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=ColorMemberPath) properties of the geographic series identify these data column.
-The [`IgbGeographicScatterAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries) automatically performs built-in data triangulation on items in the ItemsSource if no triangulation is set to the [`TrianglesSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=TrianglesSource) property. However, computing triangulation can be a very time-consuming process, so the runtime performance will be better when specifying a TriangulationSource for this property, especially when a large number of data items are present.
+Similar to other types of geographic series in the map component, the [`IgbGeographicScatterAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries) has the `ItemsSource` property which can be bound to an array of objects. In addition, each item in the items source must have three data columns, two that store a geographic longitude and latitude coordinates and one data column that stores a value associated with the geographic location. The `LongitudeMemberPath`, `LatitudeMemberPath`, and `ColorMemberPath` properties of the geographic series identify these data column.
+The [`IgbGeographicScatterAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries) automatically performs built-in data triangulation on items in the ItemsSource if no triangulation is set to the `TrianglesSource` property. However, computing triangulation can be a very time-consuming process, so the runtime performance will be better when specifying a TriangulationSource for this property, especially when a large number of data items are present.
## Data Binding
-
The following table summarizes properties of GeographicScatterAreaSeries used for data binding.
| Property Name | Property Type | Description |
|--------------|---------------| ---------------|
-|[`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=DataSource)|any|The source of data items to perform triangulation on if the [`TrianglesSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=TrianglesSource) property provides no triangulation data.|
-|[`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=LongitudeMemberPath)|string|The name of the property containing the Longitude for all items bound to the [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=DataSource).|
-|[`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=LatitudeMemberPath)|string|The name of the property containing the Latitude for all items bound to the [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=DataSource).|
-|[`ColorMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=ColorMemberPath)|string|The name of the property containing a value at Latitude and Longitude coordinates of each data item. This numeric value will be be converted to a color when the [`ColorScale`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=ColorScale) property is set.|
-|[`TrianglesSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=TrianglesSource)|any|The source of triangulation data. Setting Triangles of the `TriangulationSource` object to this property improves both runtime performance and geographic series rendering.|
-|[`TriangleVertexMemberPath1`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=TriangleVertexMemberPath1)|string|The name of the property of the [`TrianglesSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=TrianglesSource) items which, for each triangle, contains the index of the first vertex point in the ItemsSource. It is not mandatory to set this property. It is taken by default unless custom triangulation logic is provided.|
-|[`TriangleVertexMemberPath2`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=TriangleVertexMemberPath2)|string|The name of the property of the [`TrianglesSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=TrianglesSource) items which, for each triangle, contains the index of the first vertex point in the ItemsSource. It is not mandatory to set this property. It is taken by default unless custom triangulation logic is provided.|
-|[`TriangleVertexMemberPath3`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=TriangleVertexMemberPath3)|string|The name of the property of the [`TrianglesSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=TrianglesSource) items which, for each triangle, contains the index of the first vertex point in the ItemsSource. It is not mandatory to set this property. It is taken by default unless custom triangulation logic is provided.|
+|[`ItemsSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=triangulationDataSource)|any|The source of data items to perform triangulation on if the [`TrianglesSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=trianglesSource) property provides no triangulation data.|
+|[`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=longitudeMemberPath)|string|The name of the property containing the Longitude for all items bound to the [`ItemsSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=triangulationDataSource).|
+|[`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=latitudeMemberPath)|string|The name of the property containing the Latitude for all items bound to the [`ItemsSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=triangulationDataSource).|
+|[`ColorMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=colorMemberPath)|string|The name of the property containing a value at Latitude and Longitude coordinates of each data item. This numeric value will be be converted to a color when the `ColorScale` property is set.|
+|[`TrianglesSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=trianglesSource)|any|The source of triangulation data. Setting Triangles of the `TriangulationSource` object to this property improves both runtime performance and geographic series rendering.|
+|[`TriangleVertexMemberPath1`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=triangleVertexMemberPath1)|string|The name of the property of the [`TrianglesSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=trianglesSource) items which, for each triangle, contains the index of the first vertex point in the ItemsSource. It is not mandatory to set this property. It is taken by default unless custom triangulation logic is provided.|
+|[`TriangleVertexMemberPath2`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=triangleVertexMemberPath2)|string|The name of the property of the [`TrianglesSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=trianglesSource) items which, for each triangle, contains the index of the first vertex point in the ItemsSource. It is not mandatory to set this property. It is taken by default unless custom triangulation logic is provided.|
+|[`TriangleVertexMemberPath3`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=triangleVertexMemberPath3)|string|The name of the property of the [`TrianglesSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries&member=trianglesSource) items which, for each triangle, contains the index of the first vertex point in the ItemsSource. It is not mandatory to set this property. It is taken by default unless custom triangulation logic is provided.|
## Color Scale
-
Use the ColorScale property of the [`IgbGeographicScatterAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries) to resolve colors values of points and thus fill surface of the geographic series. The colors are smoothly interpolated around the shape of the surface by applying a pixel-wise triangle rasterizer to a triangulation data. Because rendering of the surface is pixel-wise, the color scale uses colors instead of brushes.
The provided [`IgbCustomPaletteColorScale`](mcp:get_api_reference?platform=blazor&component=IgbCustomPaletteColorScale) class should satisfy most coloring needs, but the ColorScale base class can be inherited by the application for custom coloring logic.
-The following table list properties of the [`IgbCustomPaletteColorScale`](mcp:get_api_reference?platform=blazor&component=IgbCustomPaletteColorScale) affecting surface coloring of the GeographicScatterAreaSeries.
+The following table list properties of the `CustomPaletteColorScale` affecting surface coloring of the GeographicScatterAreaSeries.
| Property Name | Property Type | Description |
|--------------|---------------| ---------------|
-|[`Palette`](mcp:get_api_reference?platform=blazor&component=IgbCustomPaletteColorScale&member=Palette)| ObservableCollection |Gets or sets the collection of colors to select from or to interpolate between.|
-|[`InterpolationMode`](mcp:get_api_reference?platform=blazor&component=IgbCustomPaletteColorScale&member=InterpolationMode)|`ColorScaleInterpolationMode`|Gets or sets the method getting a color from the Palette.|
-|[`MaximumValue`](mcp:get_api_reference?platform=blazor&component=IgbCustomPaletteColorScale&member=MaximumValue)|double|The highest value to assign a color. Any given value greater than this value will be Transparent.|
-|[`MinimumValue`](mcp:get_api_reference?platform=blazor&component=IgbCustomPaletteColorScale&member=MinimumValue)|double|The lowest value to assign a color. Any given value less than this value will be Transparent.|
+|[`Palette`](mcp:get_api_reference?platform=blazor&component=IgbCustomPaletteColorScale&member=palette)| `ObservableCollection` |Gets or sets the collection of colors to select from or to interpolate between.|
+|[`InterpolationMode`](mcp:get_api_reference?platform=blazor&component=IgbCustomPaletteColorScale&member=interpolationMode)|`ColorScaleInterpolationMode`|Gets or sets the method getting a color from the Palette.|
+|[`MaximumValue`](mcp:get_api_reference?platform=blazor&component=IgbCustomPaletteColorScale&member=maximumValue)|double|The highest value to assign a color. Any given value greater than this value will be Transparent.|
+|[`MinimumValue`](mcp:get_api_reference?platform=blazor&component=IgbCustomPaletteColorScale&member=minimumValue)|double|The lowest value to assign a color. Any given value less than this value will be Transparent.|
## Code Snippet
-
The following code shows how to bind the [`IgbGeographicScatterAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries) to triangulation data representing surface temperatures in the world.
```razor
@using IgniteUI.Blazor.Controls
+
-
The demo above shows the [`IgbGeographicProportionalSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries) series and how to specify data binding options of the series. Automatic marker selection is configured along with marker collision avoidance logic, and marker outline and fill colors are specified too.
## Configuration Summary
-
-Similar to other types of scatter series in the map control, the [`IgbGeographicProportionalSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries) series has the [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=DataSource) property which can be bound to an array of objects. In addition, each data item in the items source must have two data columns that store geographic longitude and latitude coordinates and uses the [`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries&member=LongitudeMemberPath) and [`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries&member=LatitudeMemberPath) properties to map these data columns. The [`RadiusScale`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries&member=RadiusScale) and [`RadiusMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries&member=RadiusMemberPath) will settings configures the radius for the bubbles.
+Similar to other types of scatter series in the map control, the [`IgbGeographicProportionalSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries) series has the [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=dataSource) property which can be bound to an array of objects. In addition, each data item in the items source must have two data columns that store geographic longitude and latitude coordinates and uses the [`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries&member=longitudeMemberPath) and [`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries&member=latitudeMemberPath) properties to map these data columns. The [`RadiusScale`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries&member=radiusScale) and [`RadiusMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries&member=radiusMemberPath) will settings configures the radius for the bubbles.
The following table summarizes the GeographicHighDensityScatterSeries series properties used for data binding.
| Property|Type|Description |
| ---|---|--- |
-| [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=DataSource)|any|Gets or sets the items source |
-| [`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries&member=LongitudeMemberPath)|string|Uses the ItemsSource property to determine the location of the longitude values on the assigned items |
-| [`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries&member=LatitudeMemberPath)|string|Uses the ItemsSource property to determine the location of the latitude values on the assigned items |
-| [`RadiusMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries&member=RadiusMemberPath)|string|Sets the path to use to get the radius values for the series. |
-| [`RadiusScale`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries&member=RadiusScale)|[`IgbSizeScale`](mcp:get_api_reference?platform=blazor&component=IgbSizeScale)|Gets or sets the radius scale property for the current bubble series. |
-| [`MinimumValue`](mcp:get_api_reference?platform=blazor&component=IgbSizeScale&member=MinimumValue)|any|Configure the minimum value for calculating value sub ranges. |
-| [`MaximumValue`](mcp:get_api_reference?platform=blazor&component=IgbSizeScale&member=MaximumValue)|any|Configure the maximum value for calculating value sub ranges. |
+| [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=dataSource)|any|Gets or sets the items source |
+| [`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries&member=longitudeMemberPath)|string|Uses the DataSource property to determine the location of the longitude values on the assigned items |
+| [`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries&member=latitudeMemberPath)|string|Uses the DataSource property to determine the location of the latitude values on the assigned items |
+| [`RadiusMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries&member=radiusMemberPath)|string|Sets the path to use to get the radius values for the series. |
+| [`RadiusScale`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries&member=radiusScale)|[`IgbSizeScale`](mcp:get_api_reference?platform=blazor&component=IgbSizeScale)|Gets or sets the radius scale property for the current bubble series. |
+| [`MinimumValue`](mcp:get_api_reference?platform=blazor&component=IgbSizeScale&member=minimumValue)|any|Configure the minimum value for calculating value sub ranges. |
+| [`MaximumValue`](mcp:get_api_reference?platform=blazor&component=IgbSizeScale&member=maximumValue)|any|Configure the maximum value for calculating value sub ranges. |
## Code Snippet
```razor
@using IgniteUI.Blazor.Controls
+
+[`RadiusScale`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries&member=radiusScale)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-type-scatter-contour-series.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-type-scatter-contour-series.md
index c160e067e..762a5e15f 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-type-scatter-contour-series.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-type-scatter-contour-series.md
@@ -1,13 +1,14 @@
---
-title: Blazor Map | Data Visualization Tools | Scatter Contour Series | Data Binding | Infragistics
-_description: Use Infragistics Blazor map's scatter contour series to draw colored contour lines, in a geographic context, based on a triangulation of longitude and latitude data with a numeric value assigned to each point. Learn more about Ignite UI for Blazor map's series!
-_keywords: Blazor map, scatter contour series, Ignite UI for Blazor, Infragistics
-_license: commercial
-mentionedTypes: ["XamGeographicMap","GeographicContourLineSeries","CustomPaletteColorScale", "Series"]
+title: "Blazor Map | Data Visualization Tools | Scatter Contour Series | Data Binding | Infragistics"
+description: Use Infragistics Blazor map's scatter contour series to draw colored contour lines, in a geographic context, based on a triangulation of longitude and latitude data with a numeric value assigned to each point. Learn more about Ignite UI for Blazor map's series!
+keywords: "Blazor map, scatter contour series, Ignite UI for Blazor, Infragistics"
+license: commercial
+mentionedTypes: ["GeographicMap","GeographicContourLineSeries","CustomPaletteColorScale", "Series"]
+llms:
+ description: "In Blazor map component, you can use the GeographicContourLineSeries to draw colored contour lines, in a geographic context, based on a triangulation of longitude and latitude data with a numeric value assigned to each point."
_tocName: Geographic Contour Map
_premium: true
---
-
# Blazor Geographic Contour Map
In Blazor map component, you can use the [`IgbGeographicContourLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries) to draw colored contour lines, in a geographic context, based on a triangulation of longitude and latitude data with a numeric value assigned to each point. This type of geographic series is useful for rendering scattered data defined by geographic locations such as weather temperature, atmospheric pressure, precipitation, population distribution, topographic data, etc.
@@ -55,41 +56,36 @@ In Blazor map component, you can use the [`IgbGeographicContourLineSeries`](mcp:
}
```
-
-
The [`IgbGeographicContourLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries) works a lot like the [`IgbGeographicScatterAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries) except that it represents data as contour lines, colored using a fill scale and the geographic scatter area series, represents data as a surface interpolated using a color scale.
## Data Requirements
-
-Similar to other types of geographic series in the map component, the [`IgbGeographicContourLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries) has the [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=DataSource) property which can be bound to an array of objects. In addition, each item in the items source must have three data columns, two that store geographic location (longitude and latitude coordinates) and one data column that stores a value associated with the geographic location. These data column, are identified by [`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=LongitudeMemberPath), [`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=LatitudeMemberPath), and [`ValueMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=ValueMemberPath) properties of the geographic series.
-The [`IgbGeographicContourLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries) automatically performs built-in data triangulation on items in the ItemsSource if no triangulation is set to the [`TrianglesSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=TrianglesSource) property. However, computing triangulation can be a very time-consuming process, so the runtime performance will be better when specifying a `TriangulationSource` for this property, especially when a large number of data items are present.
+Similar to other types of geographic series in the map component, the [`IgbGeographicContourLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries) has the [`ItemsSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=triangulationDataSource) property which can be bound to an array of objects. In addition, each item in the items source must have three data columns, two that store geographic location (longitude and latitude coordinates) and one data column that stores a value associated with the geographic location. These data column, are identified by [`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=longitudeMemberPath), [`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=latitudeMemberPath), and [`ValueMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=valueMemberPath) properties of the geographic series.
+The [`IgbGeographicContourLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries) automatically performs built-in data triangulation on items in the ItemsSource if no triangulation is set to the [`TrianglesSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=trianglesSource) property. However, computing triangulation can be a very time-consuming process, so the runtime performance will be better when specifying a `TriangulationSource` for this property, especially when a large number of data items are present.
## Data Binding
-
The following table summarizes properties of [`IgbGeographicContourLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries) used for data binding.
| Property Name | Property Type | Description |
|--------------|---------------| ---------------|
-|[`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=DataSource)|any|The source of data items to perform triangulation on if the [`TrianglesSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=TrianglesSource) property provides no triangulation data.|
-|[`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=LongitudeMemberPath)|string|The name of the property containing the Longitude for all items bound to the [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=DataSource).|
-|[`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=LatitudeMemberPath)|string|The name of the property containing the Latitude for all items bound to to the [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=DataSource).|
-|[`ValueMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=ValueMemberPath)|string|The name of the property containing a value at Latitude and Longitude coordinates of each data item. This numeric value will be be converted to a color when the [`FillScale`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=FillScale) property is set.|
-|[`TrianglesSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=TrianglesSource)|any|Gets or sets the source of triangulation data. Setting Triangles of the TriangulationSource object to this property improves both runtime performance and geographic series rendering.|
-|[`TriangleVertexMemberPath1`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=TriangleVertexMemberPath1)|string|The name of the property of the TrianglesSource items which, for each triangle, contains the index of the first vertex point in the ItemsSource. It is not mandatory to set this property. It is taken by default unless custom triangulation logic is provided.|
-|[`TriangleVertexMemberPath2`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=TriangleVertexMemberPath2)|string| The name of the property of the TrianglesSource items which, for each triangle, contains the index of the first vertex point in the ItemsSource. It is not mandatory to set this property. It is taken by default unless custom triangulation logic is provided.|
-|[`TriangleVertexMemberPath3`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=TriangleVertexMemberPath3)|string|The name of the property of the TrianglesSource items which, for each triangle, contains the index of the first vertex point in the ItemsSource. It is not mandatory to set this property. It is taken by default unless custom triangulation logic is provided.|
+|[`ItemsSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=triangulationDataSource)|any|The source of data items to perform triangulation on if the [`TrianglesSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=trianglesSource) property provides no triangulation data.|
+|[`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=longitudeMemberPath)|string|The name of the property containing the Longitude for all items bound to the [`ItemsSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=triangulationDataSource).|
+|[`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=latitudeMemberPath)|string|The name of the property containing the Latitude for all items bound to to the [`ItemsSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=triangulationDataSource).|
+|[`ValueMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=valueMemberPath)|string|The name of the property containing a value at Latitude and Longitude coordinates of each data item. This numeric value will be be converted to a color when the [`FillScale`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=fillScale) property is set.|
+|[`TrianglesSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=trianglesSource)|any|Gets or sets the source of triangulation data. Setting Triangles of the TriangulationSource object to this property improves both runtime performance and geographic series rendering.|
+|[`TriangleVertexMemberPath1`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=triangleVertexMemberPath1)|string|The name of the property of the TrianglesSource items which, for each triangle, contains the index of the first vertex point in the ItemsSource. It is not mandatory to set this property. It is taken by default unless custom triangulation logic is provided.|
+|[`TriangleVertexMemberPath2`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=triangleVertexMemberPath2)|string| The name of the property of the TrianglesSource items which, for each triangle, contains the index of the first vertex point in the ItemsSource. It is not mandatory to set this property. It is taken by default unless custom triangulation logic is provided.|
+|[`TriangleVertexMemberPath3`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=triangleVertexMemberPath3)|string|The name of the property of the TrianglesSource items which, for each triangle, contains the index of the first vertex point in the ItemsSource. It is not mandatory to set this property. It is taken by default unless custom triangulation logic is provided.|
## Contour Fill Scale
-
-Use the [`FillScale`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=FillScale) property of the [`IgbGeographicContourLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries) to resolve fill brushes of the contour lines of the geographic series.
-The provided \`ValueBrushScale class should satisfy most of your coloring needs, but the application for custom coloring logic can inherit the ValueBrushScale class.
+Use the [`FillScale`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries&member=fillScale) property of the [`IgbGeographicContourLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries) to resolve fill brushes of the contour lines of the geographic series.
+The provided `ValueBrushScale class should satisfy most of your coloring needs, but the application for custom coloring logic can inherit the ValueBrushScale class.
The following table list properties of the CustomPaletteColorScale affecting the surface coloring of the GeographicContourLineSeries.
| Property Name | Property Type | Description |
|--------------|---------------| ---------------|
-|[`Brushes`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=Brushes)|BrushCollection|Gets or sets the collection of brushes for filling contours of the [`IgbGeographicContourLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries)|
-|[`MaximumValue`](mcp:get_api_reference?platform=blazor&component=IgbCustomPaletteColorScale&member=MaximumValue)|double|The highest value to assign a brush in a fill scale.|
-|[`MinimumValue`](mcp:get_api_reference?platform=blazor&component=IgbCustomPaletteColorScale&member=MinimumValue)|double|The lowest value to assign a brush in a fill scale.|
+|[`Brushes`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=brushes)|BrushCollection|Gets or sets the collection of brushes for filling contours of the [`IgbGeographicContourLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries)|
+|[`MaximumValue`](mcp:get_api_reference?platform=blazor&component=IgbCustomPaletteColorScale&member=maximumValue)|double|The highest value to assign a brush in a fill scale.|
+|[`MinimumValue`](mcp:get_api_reference?platform=blazor&component=IgbCustomPaletteColorScale&member=minimumValue)|double|The lowest value to assign a brush in a fill scale.|
## Code Snippet
@@ -98,6 +94,7 @@ The following code shows how to bind the [`IgbGeographicContourLineSeries`](mcp:
```razor
@using IgniteUI.Blazor.Controls
+
+[`IgbGeographicContourLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries)
+[`IgbGeographicScatterAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries)
+[`IgbValueBrushScale`](mcp:get_api_reference?platform=blazor&component=IgbValueBrushScale)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-type-scatter-density-series.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-type-scatter-density-series.md
index 38e1bf9c8..e891504b5 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-type-scatter-density-series.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-type-scatter-density-series.md
@@ -1,13 +1,14 @@
---
-title: Blazor Map | Data Visualization Tools | Scatter High Density Series | Data Binding | Infragistics
-_description: Use Infragistics Blazor map's scatter high density series to bind and show scatter data ranging from hundreds to millions of data points requiring exceedingly little loading time. Learn more about Ignite UI for Blazor map's series!
-_keywords: Blazor map, scatter high density series, Ignite UI for Blazor, Infragistics
-_license: commercial
-mentionedTypes: ["XamGeographicMap", "Series"]
+title: "Blazor Map | Data Visualization Tools | Scatter High Density Series | Data Binding | Infragistics"
+description: Use Infragistics Blazor map's scatter high density series to bind and show scatter data ranging from hundreds to millions of data points requiring exceedingly little loading time. Learn more about Ignite UI for Blazor map's series!
+keywords: "Blazor map, scatter high density series, Ignite UI for Blazor, Infragistics"
+license: commercial
+mentionedTypes: ["GeographicMap", "Series"]
+llms:
+ description: "In Blazor map component, you can use the GeographicHighDensityScatterSeries to bind and show scatter data ranging from hundreds to millions of data points requiring exceedingly little loading time."
_tocName: Geographic High Density Map
_premium: true
---
-
# Blazor Geographic High Density Map
In Blazor map component, you can use the [`IgbGeographicHighDensityScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries) to bind and show scatter data ranging from hundreds to millions of data points requiring exceedingly little loading time.
@@ -71,40 +72,35 @@ In Blazor map component, you can use the [`IgbGeographicHighDensityScatterSeries
}
```
-
-
The demo above shows the [`IgbGeographicHighDensityScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries) series in the map component bound to hundreds or even thousands of data points representing Australia’s population density. The map plot area with more densely populated data points represented as coalescences of red pixels and loosely distributed data points by discrete blue pixels.
Because there are so many data points, the series displays the scatter data as tiny dots as opposed to full size markers, and displays areas with the most data using a higher color density representing a cluster of data points.
## Data Requirements
-
-Similar to other types of scatter series in the map control, the [`IgbGeographicHighDensityScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries) series has the [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=DataSource) property which can be bound to an array of objects. In addition, each data item in the items source must have two data columns that store geographic longitude and latitude coordinates and uses the [`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=LongitudeMemberPath) and [`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=LatitudeMemberPath) properties to map these data columns.
+Similar to other types of scatter series in the map control, the [`IgbGeographicHighDensityScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries) series has the [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=dataSource) property which can be bound to an array of objects. In addition, each data item in the items source must have two data columns that store geographic longitude and latitude coordinates and uses the [`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=longitudeMemberPath) and [`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=latitudeMemberPath) properties to map these data columns.
### Data Binding
-
The following table summarizes the GeographicHighDensityScatterSeries series properties used for data binding.
| Property|Type|Description |
| ---|---|--- |
-| [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=DataSource)|any|Gets or sets the items source |
-| [`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=LongitudeMemberPath)|string|Uses the ItemsSource property to determine the location of the longitude values on the assigned items |
-| [`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=LatitudeMemberPath)|string|Uses the ItemsSource property to determine the location of the latitude values on the assigned items |
+| [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=dataSource)|any|Gets or sets the items source |
+| [`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=longitudeMemberPath)|string|Uses the DataSource property to determine the location of the longitude values on the assigned items |
+| [`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=latitudeMemberPath)|string|Uses the DataSource property to determine the location of the latitude values on the assigned items |
## Heat Color Scale
-
The Heat Color Scale, an optional feature, determines the color pattern within the series. The following table summarizes the properties used for determining the color scale.
| Property |Type|Description |
| ---|---|--- |
-| [`HeatMinimum`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=HeatMinimum)|Double|Defines the double value representing the minimum end of the color scale |
-| [`HeatMaximum`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=HeatMaximum)|Double|Defines the double value representing the maximum end of the color scale |
-| [`HeatMinimumColor`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=HeatMinimumColor)|Color|Defines the point density color used at the bottom end of the color scale |
-| [`HeatMaximumColor`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=HeatMaximumColor)|Color|Defines the point density color used at the top end of the color scale |
+| [`HeatMinimum`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=heatMinimum)|Double|Defines the double value representing the minimum end of the color scale |
+| [`HeatMaximum`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=heatMaximum)|Double|Defines the double value representing the maximum end of the color scale |
+| [`HeatMinimumColor`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=heatMinimumColor)|Color|Defines the point density color used at the bottom end of the color scale |
+| [`HeatMaximumColor`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=heatMaximumColor)|Color|Defines the point density color used at the top end of the color scale |
## Code Example
-The following code demonstrates how set the [`HeatMinimumColor`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=HeatMinimumColor) and [`HeatMaximumColor`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=HeatMaximumColor) properties of the [`IgbGeographicHighDensityScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries)
+The following code demonstrates how set the [`HeatMinimumColor`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=heatMinimumColor) and [`HeatMaximumColor`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=heatMaximumColor) properties of the [`IgbGeographicHighDensityScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries)
```razor
@using IgniteUI.Blazor.Controls
@@ -169,11 +165,4 @@ The following code demonstrates how set the [`HeatMinimumColor`](mcp:get_api_ref
```
## API References
-
-- [`IgbGeographicHighDensityScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries)
-- [`IgbGeographicHighDensityScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries)
-- [`HeatMaximumColor`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=HeatMaximumColor)
-- [`HeatMinimumColor`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=HeatMinimumColor)
-- [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=DataSource)
-- [`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=LatitudeMemberPath)
-- [`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries&member=LongitudeMemberPath)
+[`IgbGeographicHighDensityScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-type-scatter-symbol-series.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-type-scatter-symbol-series.md
index 3e4bfe1a7..5e647adeb 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-type-scatter-symbol-series.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-type-scatter-symbol-series.md
@@ -1,13 +1,14 @@
---
-title: Blazor Map | Data Visualization Tools | Scatter Symbol Series | Data Binding | Infragistics
-_description: Use Infragistics Blazor map's scatter symbol series to display geo-spatial data using points or markers in a geographic context.. Learn more about Ignite UI for Blazor map's series!
-_keywords: Blazor map, scatter symbol series, Ignite UI for Blazor, Infragistics
-_license: commercial
-mentionedTypes: ["XamGeographicMap", "ShapefileConverter", "Series"]
+title: "Blazor Map | Data Visualization Tools | Scatter Symbol Series | Data Binding | Infragistics"
+description: Use Infragistics Blazor map's scatter symbol series to display geo-spatial data using points or markers in a geographic context.. Learn more about Ignite UI for Blazor map's series!
+keywords: "Blazor map, scatter symbol series, Ignite UI for Blazor, Infragistics"
+license: commercial
+mentionedTypes: ["GeographicMap", "ShapefileRecord", "Series"]
+llms:
+ description: "In Blazor map component, you can use the GeographicSymbolSeries to display geo-spatial data using points or markers in a geographic context."
_tocName: Geographic Symbol Map
_premium: true
---
-
# Blazor Geographic Symbol Map
In Blazor map component, you can use the [`IgbGeographicSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries) to display geo-spatial data using points or markers in a geographic context. This type of geographic series is often used to render a collection of geographic locations such as cities, airports, earthquakes, or points of interests.
@@ -50,19 +51,16 @@ In Blazor map component, you can use the [`IgbGeographicSymbolSeries`](mcp:get_a
}
```
-
-
## Data Requirements
-
-Similarly to other types of geographic series in the map component, the [`IgbGeographicSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries) has the [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=DataSource) property which can be bound to an array of objects. In addition, each data item in this object must have two numeric data columns that store a geographic location (longitude and latitude). These data columns are then mapped to the [`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries&member=LatitudeMemberPath) and [`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries&member=LongitudeMemberPath) properties. The [`IgbGeographicSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries) uses values of these mapped data columns to plot symbol elements in the geographic map component.
+Similarly to other types of geographic series in the map component, the [`IgbGeographicSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries) has the [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=dataSource) property which can be bound to an array of objects. In addition, each data item in this object must have two numeric data columns that store a geographic location (longitude and latitude). These data columns are then mapped to the [`LatitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries&member=latitudeMemberPath) and [`LongitudeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries&member=longitudeMemberPath) properties. The `GeographicSymbolSeries` uses values of these mapped data columns to plot symbol elements in the geographic map component.
## Code Snippet
-
-The following code shows how to bind the [`IgbGeographicSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries) to locations of cities loaded from a shape file using the [`IgbShapeDataSource`](mcp:get_api_reference?platform=blazor&component=IgbShapeDataSource).
+The following code shows how to bind the [`IgbGeographicSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries) to locations of cities loaded from a shape file using the [`IgbShapefileRecord`](mcp:get_api_reference?platform=blazor&component=IgbShapefileRecord).
```razor
@using IgniteUI.Blazor.Controls
+
-
The [`IgbGeographicShapeSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicShapeSeries) works a lot like the [`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries) except that geo-spatial data is rendered with polygons instead of polylines.
## Data Requirements
-
-Similar to other types of geographic series in the map control, the [`IgbGeographicShapeSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicShapeSeries) has the [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=DataSource) property which can be bound to an array of objects. In addition, each data item in this object must have one data column that stores single/multiple shapes using an array of arrays of objects with x and y values representing geographic locations. This data column is then mapped to the [`ShapeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicShapeSeriesBase&member=ShapeMemberPath) property. The [`IgbGeographicShapeSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicShapeSeries) uses points of this mapped data column to plot polygons in the map control.
+Similar to other types of geographic series in the map control, the [`IgbGeographicShapeSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicShapeSeries) has the [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=dataSource) property which can be bound to an array of objects. In addition, each data item in this object must have one data column that stores single/multiple shapes using an array of arrays of objects with x and y values representing geographic locations. This data column is then mapped to the `ShapeMemberPath` property. The `GeographicShapeSeries` uses points of this mapped data column to plot polygons in the map control.
## Code Snippet
-
-The following code demonstrates how to bind the [`IgbGeographicShapeSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicShapeSeries) to shapes of countries in the world loaded from a shape file using the [`IgbShapeDataSource`](mcp:get_api_reference?platform=blazor&component=IgbShapeDataSource).
+The following code demonstrates how to bind the [`IgbGeographicShapeSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicShapeSeries) to shapes of countries in the world loaded from a shape file using the [`IgbShapefileRecord`](mcp:get_api_reference?platform=blazor&component=IgbShapefileRecord).
```razor
@using IgniteUI.Blazor.Controls
+
@@ -81,9 +79,6 @@ The following code demonstrates how to bind the [`IgbGeographicShapeSeries`](mcp
```
## API References
-
-- [`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries)
-- [`IgbGeographicShapeSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicShapeSeries)
-- [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=DataSource)
-- [`ShapeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicShapeSeriesBase&member=ShapeMemberPath)
-- [`IgbShapeDataSource`](mcp:get_api_reference?platform=blazor&component=IgbShapeDataSource)
+[`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries)
+[`IgbGeographicShapeSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicShapeSeries)
+[`IgbShapefileRecord`](mcp:get_api_reference?platform=blazor&component=IgbShapefileRecord)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-type-shape-polyline-series.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-type-shape-polyline-series.md
index cc89ea79d..651a06fc7 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-type-shape-polyline-series.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map-type-shape-polyline-series.md
@@ -1,13 +1,14 @@
---
-title: Blazor Map | Data Visualization Tools | Shape Polyline Series | Infragistics
-_description: Use Infragistics Blazor map's shape polyline series to render roads or connections between geographic locations such as cities or airports. Learn more about Ignite UI for Blazor map's series!
-_keywords: Blazor map, Ignite UI for Blazor, shape polyline series, Infragistics
-_license: commercial
-mentionedTypes: ["XamGeographicMap", "ShapefileConverter", "Series", "GeographicShapeSeriesBase"]
+title: "Blazor Map | Data Visualization Tools | Shape Polyline Series | Infragistics"
+description: Use Infragistics Blazor map's shape polyline series to render roads or connections between geographic locations such as cities or airports. Learn more about Ignite UI for Blazor map's series!
+keywords: "Blazor map, Ignite UI for Blazor, shape polyline series, Infragistics"
+license: commercial
+mentionedTypes: ["GeographicMap", "ShapefileRecord", "Series", "GeographicShapeSeriesBase"]
+llms:
+ description: "In Blazor map component, you can use the GeographicPolylineSeries to display geo-spatial data using polylines in a geographic context."
_tocName: Geographic Polyline Map
_premium: true
---
-
# Blazor Geographic Polyline Map
In Blazor map component, you can use the [`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries) to display geo-spatial data using polylines in a geographic context. This type of geographic series is often used to render roads or connections between geographic locations such as cities or airports.
@@ -54,21 +55,18 @@ In Blazor map component, you can use the [`IgbGeographicPolylineSeries`](mcp:get
}
```
-
-
The [`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries) works a lot like the [`IgbGeographicShapeSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicShapeSeries) except that geo-spatial data is rendered with polylines instead of polygons.
## Data Requirements
-
-Similarly to other types of geographic series in the control, the [`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries) has the [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=DataSource) property which can be bound to an array of objects. In addition, each data item in this object must have one data column that stores single/multiple shapes using an array of arrays of objects with x and y values representing geographic locations. This data column is then mapped to the [`ShapeMemberPath`](mcp:get_api_reference?platform=blazor&component=IgbGeographicShapeSeriesBase&member=ShapeMemberPath) property. The [`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries) uses points of this mapped data column to plot polygons in the control.
+Similarly to other types of geographic series in the control, the [`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries) has the [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap&member=dataSource) property which can be bound to an array of objects. In addition, each data item in this object must have one data column that stores single/multiple shapes using an array of arrays of objects with x and y values representing geographic locations. This data column is then mapped to the `ShapeMemberPath` property. The `GeographicPolylineSeries` uses points of this mapped data column to plot polygons in the control.
## Code Snippet
-
-The following code shows how to bind the [`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries) to locations of cities loaded from a shape file using the [`IgbShapeDataSource`](mcp:get_api_reference?platform=blazor&component=IgbShapeDataSource).
+The following code shows how to bind the [`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries) to locations of cities loaded from a shape file using the [`IgbShapefileRecord`](mcp:get_api_reference?platform=blazor&component=IgbShapefileRecord).
```razor
@using IgniteUI.Blazor.Controls
+
@@ -89,8 +87,6 @@ The following code shows how to bind the [`IgbGeographicPolylineSeries`](mcp:get
```
## API References
-
-- [`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries)
-- [`IgbGeographicShapeSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicShapeSeries)
-- [`DataSource`](mcp:get_api_reference?platform=blazor&component=IgbSeries&member=DataSource)
-- [`IgbShapeDataSource`](mcp:get_api_reference?platform=blazor&component=IgbShapeDataSource)
+[`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries)
+[`IgbGeographicShapeSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicShapeSeries)
+[`IgbShapefileRecord`](mcp:get_api_reference?platform=blazor&component=IgbShapefileRecord)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map.md
index 1c6f0c419..2ff2a232c 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/geo-map.md
@@ -1,12 +1,13 @@
---
-title: Blazor Map | Data Visualization Tools | Map Overview | Infragistics
-_description: Use Infragistics' Blazor JavaScript map to display data that contains geographic locations from view models or geo-spatial data loaded from shape files on geographic imagery maps. View the Ignite UI for Blazor map demos!
-_keywords: Blazor map, geographic map, imagery tiles, Ignite UI for Blazor, Infragistics
-_license: commercial
-mentionedTypes: ["XamGeographicMap", "Series"]
+title: "Blazor Map | Data Visualization Tools | Map Overview | Infragistics"
+description: Use Infragistics' Blazor JavaScript map to display data that contains geographic locations from view models or geo-spatial data loaded from shape files on geographic imagery maps. View the Ignite UI for Blazor map demos!
+keywords: "Blazor map, geographic map, imagery tiles, Ignite UI for Blazor, Infragistics"
+license: commercial
+mentionedTypes: ["GeographicMap", "Series"]
+llms:
+ description: "The Ignite UI for Blazor map component allows you to display data that contains geographic locations from view models or geo-spatial data loaded from shape files on geographic imagery maps."
_tocName: Geographic Map Features
---
-
# Blazor Map Overview
The Ignite UI for Blazor map component allows you to display data that contains geographic locations from view models or geo-spatial data loaded from shape files on geographic imagery maps.
@@ -61,8 +62,6 @@ The following sample demonstrates how display data in [`IgbGeographicMap`](mcp:g
}
```
-
-
The map component allows you to render geographic imagery from Bing Maps™, and Open Street Maps. The map provides plotting of tens of thousands of data points, and updates them every few milliseconds so that the control can handle your real-time feeds.
The map's Series property is used to support rendering an unlimited number of geographic series. This property is a collection of geographic series objects and any type of geographic series can be added to it. For example, [`IgbGeographicSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries) can be added for plotting geographic locations such as cities and the [`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries) for plotting connections (e.g. roads) between these geographic locations.
@@ -79,7 +78,7 @@ For more details please visit:
The [`IgbGeographicMap`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap) requires the following modules, however the DataChartInteractivityModule is only required for mouse interactions, such as panning and zooming the map content.
-```razor
+```csharp
// in Program.cs file
builder.Services.AddIgniteUIBlazor(
@@ -88,8 +87,6 @@ builder.Services.AddIgniteUIBlazor(
);
```
-
-
## Usage
Now that the map module is imported, next step is to create geographic map. The following code demonstrates how to do this and enable zooming in the map.
@@ -98,33 +95,26 @@ Now that the map module is imported, next step is to create geographic map. The
```
-
-
## Additional Resources
You can find more information about related Blazor map features in these topics:
-- [Geographic Map Navigation](geo-map-navigation.md)
-
-
+- [Geographic Map Navigation](./geo-map-navigation.md)
-- [Using Scatter Symbol Series](geo-map-type-scatter-symbol-series.md)
-- [Using Scatter Proportional Series](geo-map-type-scatter-bubble-series.md)
-- [Using Scatter Contour Series](geo-map-type-scatter-contour-series.md)
-- [Using Scatter Density Series](geo-map-type-scatter-density-series.md)
-- [Using Scatter Area Series](geo-map-type-scatter-area-series.md)
-- [Using Shape Polygon Series](geo-map-type-shape-polygon-series.md)
-- [Using Shape Polyline Series](geo-map-type-shape-polyline-series.md)
+- [Using Scatter Symbol Series](./geo-map-type-scatter-symbol-series.md)
+- [Using Scatter Proportional Series](./geo-map-type-scatter-bubble-series.md)
+- [Using Scatter Contour Series](./geo-map-type-scatter-contour-series.md)
+- [Using Scatter Density Series](./geo-map-type-scatter-density-series.md)
+- [Using Scatter Area Series](./geo-map-type-scatter-area-series.md)
+- [Using Shape Polygon Series](./geo-map-type-shape-polygon-series.md)
+- [Using Shape Polyline Series](./geo-map-type-shape-polyline-series.md)
## API References
-
-The following is a list of API members mentioned in the above sections:
-
-- [`IgbGeographicMap`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap)
-- [`IgbGeographicContourLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries)
-- [`IgbGeographicHighDensityScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries)
-- [`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries)
-- [`IgbGeographicShapeSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicShapeSeries)
-- [`IgbGeographicProportionalSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries)
-- [`IgbGeographicSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries)
-- [`IgbGeographicScatterAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries)
+[`IgbGeographicMap`](mcp:get_api_reference?platform=blazor&component=IgbGeographicMap)
+[`IgbGeographicContourLineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicContourLineSeries)
+[`IgbGeographicHighDensityScatterSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicHighDensityScatterSeries)
+[`IgbGeographicPolylineSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicPolylineSeries)
+[`IgbGeographicShapeSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicShapeSeries)
+[`IgbGeographicProportionalSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicProportionalSymbolSeries)
+[`IgbGeographicSymbolSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicSymbolSeries)
+[`IgbGeographicScatterAreaSeries`](mcp:get_api_reference?platform=blazor&component=IgbGeographicScatterAreaSeries)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-advanced-filtering.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-advanced-filtering.md
index 8be954261..ccb7f9bfb 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-advanced-filtering.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-advanced-filtering.md
@@ -1,16 +1,15 @@
---
-title: Blazor Grid Advanced Filtering - Ignite UI for Blazor
-_description: Learn how to configure advanced filter of data with the Blazor Grid. The grid advanced filtering is more convenient and engaging than ever.
-_keywords: Advanced Filtering, Blazor, Ignite UI for Blazor, Infragistics
-_license: commercial
-mentionedTypes: ["Infragistics.Controls.Grid", "Infragistics.Controls.GridCell", "Infragistics.Controls.GridRow", "Infragistics.Controls.Column"]
-sharedComponents: ["Grid", "TreeGrid", "HierarchicalGrid"]
-namespace: Infragistics.Controls
-_canonicalLink: grids/grid/advanced-filtering
+title: "Blazor Grid Advanced Filtering - Ignite UI for Blazor"
+description: Learn how to configure advanced filter of data with the Blazor Grid. The grid advanced filtering is more convenient and engaging than ever.
+keywords: Advanced Filtering, Blazor, Ignite UI for Blazor, Infragistics
+license: commercial
+_canonicalLink: "grids/grid/advanced-filtering"
+llms:
+ description: "The Ignite UI for Blazor Advanced Filtering in Blazor Grid allows you to manipulate data by providing you with a dialog where you can create different groups with filtering conditions across all columns in the IgbGrid."
+_componentKey: Grid
_tocName: Advanced Filtering
_premium: true
---
-
# Blazor Grid Advanced Filtering
The Ignite UI for Blazor Advanced Filtering in Blazor Grid allows you to manipulate data by providing you with a dialog where you can create different groups with filtering conditions across all columns in the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid).
@@ -163,7 +162,7 @@ public class NwindData
In order to open the advanced filtering dialog, the **Advanced Filtering** button in the grid toolbar should be clicked. If no advanced filter is applied, you should start with creating a group of filtering conditions linked with **AND** or **OR**. After that, you can add filtering conditions or sub-groups.
-In order to add a filtering condition, you have to select any of the [`Filterable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Filterable) columns, an operand based on the column [`DataType`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=DataType) and a value if the operand is not unary. Once the condition is committed, a chip with the condition information appears. By hovering or clicking the chip, you have the options to modify it or add another condition or group right after it.
+In order to add a filtering condition, you have to select any of the [`IgbColumn.filterable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=filterable) columns, an operand based on the column [`IgbColumn.dataType`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=dataType) and a value if the operand is not unary. Once the condition is committed, a chip with the condition information appears. By hovering or clicking the chip, you have the options to modify it or add another condition or group right after it.
If you select more than one filtering condition chip, a context menu appears with options to create a group or delete the filters. If you choose to create a group with the selected conditions, the newly created group will appear where the topmost selected condition was placed.
@@ -173,7 +172,7 @@ In order to filter the data once you are ready with creating the filtering condi
## Usage
-To enable the advanced filtering, the [`AllowAdvancedFiltering`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=AllowAdvancedFiltering) input property should be set to **true**.
+To enable the advanced filtering, the [`IgbGrid.allowAdvancedFiltering`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=allowAdvancedFiltering) input property should be set to **true**.
```razor
@@ -181,18 +180,16 @@ To enable the advanced filtering, the [`AllowAdvancedFiltering`](mcp:get_api_ref
```
-
-
-The advanced filtering generates a [`FilteringExpressionsTree`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=FilteringExpressionsTree) which is stored in the [`AdvancedFilteringExpressionsTree`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=AdvancedFilteringExpressionsTree) input property. You could use the [`AdvancedFilteringExpressionsTree`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=AdvancedFilteringExpressionsTree) property to set an initial state of the advanced filtering.
+The advanced filtering generates a [`IgbGrid.filteringExpressionsTree`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=filteringExpressionsTree) which is stored in the [`IgbGrid.advancedFilteringExpressionsTree`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=advancedFilteringExpressionsTree) input property. You could use the [`IgbGrid.advancedFilteringExpressionsTree`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=advancedFilteringExpressionsTree) property to set an initial state of the advanced filtering.
-In case you don't want to show the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) toolbar, you could use the [`OpenAdvancedFilteringDialog`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=OpenAdvancedFilteringDialog) and [`CloseAdvancedFilteringDialog`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=CloseAdvancedFilteringDialog) methods to open and close the advanced filtering dialog programmatically.
+In case you don't want to show the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) toolbar, you could use the [`IgbGrid.openAdvancedFilteringDialog`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=openAdvancedFilteringDialog) and [`IgbGrid.closeAdvancedFilteringDialog`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=closeAdvancedFilteringDialog) methods to open and close the advanced filtering dialog programmatically.
-> [!Note]
-> You can enable both the **QuickFilter**/**ExcelStyleFilter** and the advanced filtering user interfaces in the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid). Both filtering user interfaces will work independently of one another. The final filtered result in the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) is the intersection between the results of the two filters.
+**Note:**
+You can enable both the **QuickFilter**/**ExcelStyleFilter** and the advanced filtering user interfaces in the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid). Both filtering user interfaces will work independently of one another. The final filtered result in the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) is the intersection between the results of the two filters.
## Styling
-In addition to the predefined themes, the grid could be further customized by setting some of the available [CSS properties](../theming-grid.md).
+In addition to the predefined themes, the grid could be further customized by setting some of the available [CSS properties](../grid/theming-grid.md).
In case you would like to change some of the colors, you need to set a class for the grid first:
```razor
@@ -350,14 +347,10 @@ public class NwindData
```
## API References
-
-- [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn)
-- [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
-
+[`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
+[`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn)
## Additional Resources
-
-
- [Filtering](filtering.md)
- [Excel Style Filtering](excel-style-filtering.md)
- [Virtualization and Performance](virtualization.md)
@@ -369,8 +362,6 @@ public class NwindData
- [Column Resizing](column-resizing.md)
- [Selection](selection.md)
-
-
Our community is active and always welcoming to new ideas.
- [Ignite UI for Blazor **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-blazor)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-cascading-combos.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-cascading-combos.md
index da7463889..9a0e28fb0 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-cascading-combos.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-cascading-combos.md
@@ -1,25 +1,22 @@
---
-title: Blazor Grid Cascading combos - Ignite UI for Blazor
-_description: Perform updating via cascading combos in Grid, using Blazor Grid. See demos & examples!
-_keywords: Blazor, Grid, IgbGrid, Ignite UI for Blazor, Infragistics
-_license: commercial
+title: "Blazor Grid Cascading combos - Ignite UI for Blazor"
+description: Perform updating via cascading combos in Grid, using Blazor Grid. See demos & examples!
+keywords: "Blazor, Grid, IgbGrid, Ignite UI for Blazor, Infragistics"
+license: commercial
_language: en
-sharedComponents: ["Grid"]
-mentionedTypes: ["Column", "Combo"]
-namespace: Infragistics.Controls
+llms:
+ description: "The Grid's Editing functionality provides with the opportunity to use Cascading Combobox components."
+_componentKey: Grid
_tocName: Cascading Combos
_premium: true
---
-
# Blazor Grid with Cascading Combos
-The Grid's Editing functionality provides with the opportunity to use Cascading Combobox components. By selecting the value in any preceding [`IgbCombo`](mcp:get_api_reference?platform=blazor&component=IgbCombo), the users will receive only the data that is relevant to their selection within the next Blazor Combobox component.
-
-## Angular Grid with Cascading Combos Sample Overview
+The Grid's Editing functionality provides with the opportunity to use Cascading Combobox components. By selecting the value in any preceding [`IgbCombo`](mcp:get_api_reference?platform=blazor&component=IgbComboModule), the users will receive only the data that is relevant to their selection within the next Blazor Combobox component.
-The sample below demonstrates how [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) works with nested Cascading [`IgbCombo`](mcp:get_api_reference?platform=blazor&component=IgbCombo) components.
+## Blazor Grid with Cascading Combos Sample Overview
-
+The sample below demonstrates how [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) works with nested Cascading [`IgbCombo`](mcp:get_api_reference?platform=blazor&component=IgbComboModule) components.
```razor
@using IgniteUI.Blazor.Controls
@@ -126,17 +123,15 @@ public class WorldCitiesAbove500K
}
```
-
-
## Setup
-In order enable column editing, make sure [`Editable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Editable) property is set to `true`.
+In order enable column editing, make sure [`IgbColumn.editable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=editable) property is set to `true`.
-Once the column editing is enabled, you can start by adding your [`IgbCombo`](mcp:get_api_reference?platform=blazor&component=IgbCombo). Please note that here in order to have only one single selection available, you will need to use set the [`SingleSelect`](mcp:get_api_reference?platform=blazor&component=IgbCombo&member=SingleSelect) property.
+Once the column editing is enabled, you can start by adding your [`IgbCombo`](mcp:get_api_reference?platform=blazor&component=IgbComboModule). Please note that here in order to have only one single selection available, you will need to use set the [`IgbCombo.singleSelect`](mcp:get_api_reference?platform=blazor&component=IgbComboModule&member=singleSelect) property.
-To get started with the [`IgbCombo`](mcp:get_api_reference?platform=blazor&component=IgbCombo), first you need to import it:
+To get started with the [`IgbCombo`](mcp:get_api_reference?platform=blazor&component=IgbComboModule), first you need to import it:
-```razor
+```csharp
builder.Services.AddIgniteUIBlazor(
typeof(IgbGridModule),
typeof(IgbComboModule)
@@ -158,11 +153,11 @@ Then you should define the column template with the combo:
```
-- [`DisplayKey`](mcp:get_api_reference?platform=blazor&component=IgbCombo&member=DisplayKey) - Required for object arrays - Specifies which property will be used for the items' text. If no value is specified for [`DisplayKey`](mcp:get_api_reference?platform=blazor&component=IgbCombo&member=DisplayKey), the combo will use the specified [`ValueKey`](mcp:get_api_reference?platform=blazor&component=IgbCombo&member=ValueKey) (if any).
+- [`IgbCombo.displayKey`](mcp:get_api_reference?platform=blazor&component=IgbComboModule&member=displayKey) - Required for object arrays - Specifies which property will be used for the items' text. If no value is specified for [`IgbCombo.displayKey`](mcp:get_api_reference?platform=blazor&component=IgbComboModule&member=displayKey), the combo will use the specified [`IgbCombo.valueKey`](mcp:get_api_reference?platform=blazor&component=IgbComboModule&member=valueKey) (if any).
-In order to handle the selection change, we need the `onChange` event. The emitted event arguments contain information about the selection prior to the change, the current selection and the items that were added or removed. Therefore, it will filter the values based on the selection of the previous combo.
+In order to handle the selection change, we need the change event. The emitted event arguments contain information about the selection prior to the change, the current selection and the items that were added or removed. Therefore, it will filter the values based on the selection of the previous combo.
-```razor
+```javascript
//In Javascript
igRegisterScript("CountryChange", (ctx) => {
const value = e.detail.newValue;
@@ -186,7 +181,7 @@ igRegisterScript("CountryChange", (ctx) => {
And lastly, adding the [`IgbLinearProgress`](mcp:get_api_reference?platform=blazor&component=IgbLinearProgress), which is required while loading the list of data.
-```razor
+```csharp
public static RenderFragment WebGridRegionDropDownTemplate = (context) =>
{
var id = "region_" + context.Cell.Id.RowID;
@@ -200,8 +195,8 @@ And lastly, adding the [`IgbLinearProgress`](mcp:get_api_reference?platform=blaz
|--- |--- |
| Combo drop-down list may hide behind other UI elements. | Due to the stacking order of elements in the grid the combo drop-down may hide behind other elements like header, footers etc. |
-## Blazor Grid API Members
-
-- [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
-- [`IgbCombo`](mcp:get_api_reference?platform=blazor&component=IgbCombo)
-- [`IgbLinearProgress`](mcp:get_api_reference?platform=blazor&component=IgbLinearProgress)
+## API References
+[`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
+[`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn)
+[`IgbCombo`](mcp:get_api_reference?platform=blazor&component=IgbComboModule)
+[`IgbLinearProgress`](mcp:get_api_reference?platform=blazor&component=IgbLinearProgress)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-cell-editing.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-cell-editing.md
index 4225c043e..77f0e83f3 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-cell-editing.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-cell-editing.md
@@ -1,16 +1,15 @@
---
-title: Blazor Grid Cell Editing - Ignite UI for Blazor
-_description: The Grid is using in-cell editing. It has a default cell editing template, but it also lets you define your own custom templates for update-data action. Try it now!
-_keywords: data manipulation, excel editing, Blazor, Grid, IgbGrid, Ignite UI for Blazor, Infragistics
-_license: commercial
-mentionedTypes: ["Infragistics.Controls.Grid", "Infragistics.Controls.GridCell", "Infragistics.Controls.GridRow", "Infragistics.Controls.Column"]
-sharedComponents: ["Grid", "TreeGrid", "HierarchicalGrid"]
-namespace: Infragistics.Controls
-_canonicalLink: grids/grid/cell-editing
+title: "Blazor Grid Cell Editing - Ignite UI for Blazor"
+description: The Grid is using in-cell editing. It has a default cell editing template, but it also lets you define your own custom templates for update-data action. Try it now!
+keywords: data manipulation, excel editing, Blazor, Grid, IgbGrid, Ignite UI for Blazor, Infragistics
+license: commercial
+_canonicalLink: "grids/grid/cell-editing"
+llms:
+ description: "The Ignite UI for Blazor Cell Editing in Blazor Grid provides a great data manipulation capability of the content of individual cells within the Blazor Grid component and comes with powerful API for React CRUD operations."
+_componentKey: Grid
_tocName: Cell Editing
_premium: true
---
-
# Blazor Grid Cell Editing
The Ignite UI for Blazor Cell Editing in Blazor Grid provides a great data manipulation capability of the content of individual cells within the Blazor Grid component and comes with powerful API for React CRUD operations. It is a fundamental feature in apps like spreadsheets, data tables, and data grids, allowing users to add, edit, or update data within specific cells.
@@ -169,43 +168,34 @@ public class NwindData
### Editing through UI
You can enter edit mode for specific cell, when an editable cell is focused in one of the following ways:
-
- on double click;
- on single click - Single click will enter edit mode only if the previously selected cell was in edit mode and currently selected cell is editable. If the previously selected cell was not in edit mode, single click will select the cell without entering edit mode;
- on key press ENTER;
- on key press F2;
You can exit edit mode **without committing** the changes in one of the following ways:
-
- on key press Escape;
- when you perform **sorting**, **filtering**, **searching** and **hiding** operations;
You can exit edit mode and **commit** the changes in one of the following ways:
-
- on key press ENTER;
- on key press F2;
- on key press TAB;
- on single click to another cell - when you click on another cell in the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid), your changes will be submitted.
- operations like paging, resize, pin or move will exit edit mode and changes will be submitted.
-> [!Note]
-> The cell remains in edit mode when you scroll vertically or horizontally or click outside the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid). This is valid for both cell editing and row editing.
+**Note:**
+The cell remains in edit mode when you scroll vertically or horizontally or click outside the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid). This is valid for both cell editing and row editing.
### Editing through API
You can also modify the cell value through the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) API but only if primary key is defined:
-
-
-```razor
+```csharp
this.grid.UpdateCell(newValue, rowID, 'ReorderLevel')
```
-
-
-Another way to update cell is directly through [`Update`](mcp:get_api_reference?platform=blazor&component=IgbGridRow&member=Update) method of `Cell`:
-
-
+Another way to update cell is directly through [`Update`](mcp:get_api_reference?platform=blazor&component=IgbCellType&member=update) method of `Cell`:
```razor
@code {
@@ -216,16 +206,12 @@ Another way to update cell is directly through [`Update`](mcp:get_api_reference?
}
```
-
-
### Cell Editing Templates
You can see and learn more for default cell editing templates in the [general editing topic](editing.md#editing-templates).
If you want to provide a custom template which will be applied to a cell, you can pass such template either to the cell itself, or to its header. First create the column as you usually would:
-
-
```razor
```
-
-
and pass the template:
-```razor
-// In JavaScript
+```javascript
igRegisterScript("WebGridCellEditCellTemplate", (ctx) => {
let cellValues = [];
@@ -382,8 +365,6 @@ public class RoleplayDataStats
}
```
-
-
### Grid Excel Style Editing
Using Excel Style Editing allows the user to navigate trough the cells just as he would using the Excel, and ever so quickly edit them.
@@ -391,6 +372,7 @@ Using Excel Style Editing allows the user to navigate trough the cells just as h
Implementing this custom functionality can be done by utilizing the events of the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid). First we hook up to the grid's keydown events, and from there we can implement two functionalities:
- Constant edit mode
+
- ENTER/SHIFT + ENTER navigation
Key parts of finding the next eligible index would be:
@@ -406,20 +388,16 @@ Main benefits of the above approach include:
- Constant edit mode: typing while a cell is selected will immediately enter edit mode with the value typed, replacing the existing one
- Any non-data rows are skipped when navigating with ENTER/SHIFT + ENTER. This allows users to quickly cycle through their values.
-
-
## CRUD operations
-> [!Note]
-> Please keep in mind that when you perform some **CRUD operation** all of the applied pipes like **filtering**, **sorting** and **grouping** will be re-applied and your view will be automatically updated.
+**Note:**
+Please keep in mind that when you perform some **CRUD operation** all of the applied pipes like **filtering**, **sorting** and **grouping** will be re-applied and your view will be automatically updated.
The [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) provides a straightforward API for basic CRUD operations.
### Adding a new record
-The [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) component exposes the `AddRow` method which will add the provided data to the data source itself.
-
-
+The [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) component exposes the [`AddRow`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=addRow) method which will add the provided data to the data source itself.
```razor
@code {
@@ -429,13 +407,9 @@ The [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) compone
}
```
-
-
### Updating data in the Grid
-Updating data in the Grid is achieved through `UpdateRow` and `UpdateCell` methods but **only if the PrimaryKey for the grid is defined**. You can also directly update a cell and/or a row value through their respective **update** methods.
-
-
+Updating data in the Grid is achieved through [`IgbGrid.updateRow`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=updateRow) and [`IgbGrid.updateCell`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=updateCell) methods but **only if the PrimaryKey for the grid is defined**. You can also directly update a cell and/or a row value through their respective **update** methods.
```razor
@code {
@@ -452,15 +426,12 @@ Updating data in the Grid is achieved through `UpdateRow` and `UpdateCell` metho
IgbRowType row = this.grid.GetRowByKey(rowID);
row.Update(newData);
}
-```
-
+```
### Deleting data from the Grid
-Please keep in mind that `DeleteRow` method will remove the specified row only if a [`PrimaryKey`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=PrimaryKey) is defined.
-
-
+Please keep in mind that [`DeleteRow`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=deleteRow) method will remove the specified row only if a [`IgbGrid.primaryKey`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=primaryKey) is defined.
```razor
@code {
@@ -472,11 +443,13 @@ Please keep in mind that `DeleteRow` method will remove the specified row only i
}
```
+These can be wired to user interactions, not necessarily related to the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) for example, a button click:
+
### Cell Validation on Edit Event
Using the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)'s editing events, we can alter how the user interacts with the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid).
-In this example, we'll validate a cell based on the data entered in it by binding to the `CellEdit` event. If the new value of the cell does not meet our predefined criteria, we'll prevent it from reaching the data source by cancelling the event.
+In this example, we'll validate a cell based on the data entered in it by binding to the [`IgbGrid.cellEdit`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=cellEdit) event. If the new value of the cell does not meet our predefined criteria, we'll prevent it from reaching the data source by cancelling the event.
The first thing we need to do is bind to the grid's event:
@@ -484,13 +457,9 @@ The first thing we need to do is bind to the grid's event:
```
-
-
-The `CellEdit` emits whenever **any** cell's value is about to be committed. In our **CellEdit** definition, we need to make sure that we check for our specific column before taking any action:
+The [`IgbGrid.cellEdit`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=cellEdit) emits whenever **any** cell's value is about to be committed. In our **CellEdit** definition, we need to make sure that we check for our specific column before taking any action:
-
-
-```razor
+```javascript
// In JavaScript
igRegisterScript("HandleCellEdit", (ev) => {
var d = ev.detail;
@@ -505,12 +474,6 @@ igRegisterScript("HandleCellEdit", (ev) => {
If the value entered in a cell under the **Units On Order** column is larger than the available amount (the value under **Units in Stock**), the editing will be cancelled and the user will be alerted to the cancellation.
-
-
-
-
-
-
The result of the above validation being applied to our [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) can be seen in the below demo:
```razor
@@ -626,7 +589,7 @@ public class NwindData
## Styling
-In addition to the predefined themes, the grid could be further customized by setting some of the available [CSS properties](../theming-grid.md).
+In addition to the predefined themes, the grid could be further customized by setting some of the available [CSS properties](../grid/theming-grid.md).
In case you would like to change some of the colors, you need to set a class for the grid first:
```razor
@@ -643,8 +606,6 @@ Then set the related CSS properties for that class:
}
```
-
-
### Styling Example
```razor
@@ -784,14 +745,11 @@ public class NwindData
```
## API References
-
-- [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
-- [`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker)
-
+[`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
+[`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn)
+[`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker)
## Additional Resources
-
-
- [Virtualization and Performance](virtualization.md)
- [Paging](paging.md)
- [Filtering](filtering.md)
@@ -801,5 +759,3 @@ public class NwindData
- [Column Resizing](column-resizing.md)
- [Selection](selection.md)
- [Searching](search.md)
-
-
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-cell-merging.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-cell-merging.md
index 6b832b950..bd2c8c1f4 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-cell-merging.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-cell-merging.md
@@ -1,24 +1,21 @@
---
-title: Blazor Grid Cell Merging - Ignite UI for Blazor
-_description: Position and size columns in a more powerful way, using the multi-row layout functionality in the Ignite UI for Blazor for Blazor Grid. Check out examples and demos!
-_keywords: cell merging, Blazor, Grid, IgbGrid, Ignite UI for Blazor, Infragistics
-_license: commercial
-mentionedTypes: ["Infragistics.Controls.Grid", "Infragistics.Controls.GridCell", "Infragistics.Controls.GridRow", "Infragistics.Controls.Column"]
-sharedComponents: ["Grid", "TreeGrid", "HierarchicalGrid"]
-namespace: Infragistics.Controls
-_canonicalLink: {CanonicalLinkToGridCellMerging}
+title: "Blazor Grid Cell Merging - Ignite UI for Blazor"
+description: Merge adjacent cells with equal values in the Ignite UI for Blazor Grid using the Cell Merging feature. Learn configuration, merging modes, and see live examples!
+keywords: cell merging, Blazor, Grid, IgbGrid, Ignite UI for Blazor, Infragistics
+license: commercial
+_canonicalLink: ""
+llms:
+ description: "The Ignite UI for Blazor Grid provides a Cell Merging feature that combines two or more adjacent cells with the same value into a single, larger cell."
+_componentKey: Grid
_tocName: Cell Merging
_premium: true
---
-
# Blazor Grid Cell Merging
The Ignite UI for Blazor Grid provides a Cell Merging feature that combines two or more adjacent cells with the same value into a single, larger cell. Merging is applied vertically within a column and helps improve readability by reducing duplicate values.
## Blazor Grid Cell Merging Example
-
-
```razor
@using IgniteUI.Blazor.Controls
@@ -132,19 +129,15 @@ public class InvoicesData
}
```
-
-
## Enabling and Using Cell Merging
Cell merging in the grid is controlled at two levels:
-
- Grid-level merge mode – determines when merging is applied.
- Column-level merge toggle – determines which columns can merge cells.
### Grid Merge Mode
-The grid exposes a `cellMergeMode` property that accepts values from the `GridCellMergeMode` enum:
-
+The grid exposes a [`IgbGrid.cellMergeMode`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=cellMergeMode) property that accepts values from the [`IgbGridCellMergeMode`](mcp:get_api_reference?platform=blazor&component=GridCellMergeMode) enum:
- `always` - Merges any adjacent cells that meet the merging condition, regardless of sort state.
- `onSort` - Merges adjacent cells only when the column is sorted **(default value)**.
@@ -156,11 +149,11 @@ The grid exposes a `cellMergeMode` property that accepts values from the `GridCe
@code {
private GridCellMergeMode CellMergeMode = GridCellMergeMode.Always;
}
+
```
### Column Merge Toggle
-
-At the column level, merging can be enabled or disabled with the `merge` property.
+At the column level, merging can be enabled or disabled with the [`merge`](mcp:get_api_reference?platform=blazor&component=IgbColumnGroup&member=merge) property.
```razor
@@ -168,7 +161,6 @@ At the column level, merging can be enabled or disabled with the `merge` propert
```
In the above example:
-
- The **OrderID** column will merge adjacent duplicate values.
- The **ShipperName** column will render normally without merging.
@@ -184,20 +176,16 @@ In the above example:
@code {
private GridCellMergeMode CellMergeMode = GridCellMergeMode.OnSort;
}
+
```
Here, the grid is set to merge only when columns are sorted, and both Category and Product columns are configured for merging.
## Feature Integration
-
Due to the specific behavior of merged cells it has to be noted how exactly it ties together with some of the other features of the grid:
-
-
- **Expand/Collapse**: if a feature (such as master-detail, grouping, etc.) generates a non-data row, then the cell merging is interrupted and the group will be split.
-
-
- **Excel export**: merged cells remain merged when exported to Excel.
- **Column pinning**: cells remain merged when a column is pinned and are displayed in the pinned area.
- **Row pinning**: cells merge only withing their containing area, i.e. cells of pinned rows merge only with cells of other pinned rows, while cells of unpinned rows merge only with cells of unpinned rows.
@@ -205,10 +193,8 @@ Due to the specific behavior of merged cells it has to be noted how exactly it t
- **Row selection**: if selected rows intersect merged cells, all related merged cells should be marked as part of the selection.
- **Navigation/Activation**: when a cell is active, all merged cells in the same row become single cells, i.e. their merge sequence is broken. This also includes activation via keyboard navigation.
-> [!NOTE]
-> If a merged cell is clicked, the closest cell from the merge sequence will become active.
-
-
+**Note:**
+If a merged cell is clicked, the closest cell from the merge sequence will become active.
## Limitations
@@ -216,12 +202,12 @@ Due to the specific behavior of merged cells it has to be noted how exactly it t
| --- | --- |
| Cell merging is not supported in combination with Multi-row Layout. | Both span complex layouts that don't make sense when combined. A warning will be thrown if such invalid configuration is detected. |
-
-
## API References
-
-- [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
-
+[`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
+[`CellMergeMode`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=cellMergeMode)
+[`IgbGridCellMergeMode`](mcp:get_api_reference?platform=blazor&component=GridCellMergeMode)
+[`IgbGridMergeStrategy`](mcp:get_api_reference?platform=blazor&component=IgbGridMergeStrategy)
+[`IgbDefaultMergeStrategy`](mcp:get_api_reference?platform=blazor&component=IgbDefaultMergeStrategy)
## Additional Resources
- [Filtering](filtering.md)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-cell-selection.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-cell-selection.md
index 76cd079be..1e6f4c5cc 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-cell-selection.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-cell-selection.md
@@ -1,16 +1,15 @@
---
-title: Blazor Grid Cell Selection - Ignite UI for Blazor
-_description: Check how easy it is to use cell data selection using variety of events, rich API or mouse interactions. The Grid supports 3 modes for cell selection. Try it now!
-_keywords: data select, igniteui for Blazor, infragistics
-_license: commercial
-mentionedTypes: ["Infragistics.Controls.Grid", "Infragistics.Controls.GridCell", "Infragistics.Controls.GridRow", "Infragistics.Controls.Column"]
-sharedComponents: ["Grid", "TreeGrid", "HierarchicalGrid"]
-namespace: Infragistics.Controls
-_canonicalLink: grids/grid/cell-selection
+title: "Blazor Grid Cell Selection - Ignite UI for Blazor"
+description: Check how easy it is to use cell data selection using variety of events, rich API or mouse interactions. The Grid supports 3 modes for cell selection. Try it now!
+keywords: data select, igniteui for Blazor, infragistics
+license: commercial
+_canonicalLink: "grids/grid/cell-selection"
+llms:
+ description: "The Ignite UI for Blazor Cell Selection in Blazor Grid enables rich data select capabilities and offers powerful API in the IgbGrid component."
+_componentKey: Grid
_tocName: Cell Selection
_premium: true
---
-
# Blazor Grid Cell Selection
The Ignite UI for Blazor Cell Selection in Blazor Grid enables rich data select capabilities and offers powerful API in the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) component. The Blazor Grid supports three selection modes:
@@ -174,7 +173,6 @@ public class NwindData
### Grid Multiple-Cell Selection
How to select cells:
-
- By **Mouse drag** - Rectangular data selection of cells would be performed.
- By CTRL key press + **Mouse drag** - Multiple range selections would be performed. Any other existing cell selection will be persisted.
- Instant multi-cell selection by using SHIFT key. Select single cell and select another single cell by holding the SHIFT key. Cell range between the two cells will be selected. Keep in mind that if another second cell is selected while holding SHIFT key the cell selection range will be updated based on the first selected cell position (starting point).
@@ -183,155 +181,17 @@ How to select cells:
- Clicking with the **Left Mouse** key while holding CTRL key will add single cell ranges into the selected cells collection.
- Continuous multiple cell selection is available, by clicking with the mouse and dragging.
-
-
#### Demo
-
-
-```razor
-@using IgniteUI.Blazor.Controls
-
-
-
- @if (mainData != null)
- {
-
-
-
-
-
-
-
-
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-@code {
-
- private List mainData;
- private Random Rand = new Random();
- public IgbGrid GridRef { get; set; }
-
- protected override void OnInitialized()
- {
- GenerateData();
- }
-
- public void GenerateData()
- {
- string[] names = new string[] {
- "Intel CPU", "AMD CPU",
- "Intel Motherboard", "AMD Motherboard", "Nvidia Motherboard",
- "Nvidia GPU", "Gigabyte GPU", "Asus GPU", "AMD GPU", "MSI GPU",
- "Corsair Memory", "Patriot Memory", "Skill Memory",
- "Samsung HDD", "WD HDD", "Seagate HDD", "Intel HDD", "Asus HDD",
- "Samsung SSD", "WD SSD", "Seagate SSD", "Intel SSD", "Asus SSD",
- "Samsung Monitor", "Asus Monitor", "LG Monitor", "HP Monitor" };
-
- string[] countries = new string[] {
- "United-States", "United-Kingdom", "France", "Canada", "Poland",
- "Denmark", "Croatia", "Australia", "Seychelles",
- "Sweden", "Germany", "Japan", "Ireland",
- "Barbados", "Jamaica", "Cuba", "Spain", };
- string[] status = new string[] { "Packing", "Shipped", "Delivered" };
-
- var sales = new List();
-
- for (var i = 0; i < 200; i++)
- {
- var price = GetRandomNumber(10000, 90000) / 100;
- var items = GetRandomNumber(4, 30);
- var value = Math.Round(price * items);
- var margin = GetRandomNumber(2, 5);
- var profit = Math.Round((price * margin / 100) * items);
- var country = GetRandomItem(countries);
-
- var item = new SaleInfo()
- {
- Country = country,
- CountryFlag = GetCountryFlag(country),
- Margin = margin,
- OrderDate = GetRandomDate(),
- OrderItems = items,
- OrderValue = value,
- ProductID = 1001 + i,
- ProductName = GetRandomItem(names),
- ProductPrice = price,
- Profit = Math.Round(profit),
- Status = GetRandomItem(status)
- };
- sales.Add(item);
- }
-
- this.mainData = sales;
- }
-
- public double GetRandomNumber(double min, double max)
- {
- return Math.Round(min + (Rand.NextDouble() * (max - min)));
- }
-
- public string GetRandomItem(string[] array)
- {
- var index = (int)Math.Round(GetRandomNumber(0, array.Length - 1));
- return array[index];
- }
-
- public DateTime GetRandomDate()
- {
- var today = new DateTime();
- var year = today.Year;
- var month = this.GetRandomNumber(1, 9);
- var day = this.GetRandomNumber(10, 27);
- return new DateTime(year, (int)month, (int)day);
- }
-
- public string GetCountryFlag(string country)
- {
- var flag = "https://dl.infragistics.com/x/img/flags/" + country + ".png";
- return flag;
- }
-
- public class SaleInfo
- {
- public string Status { get; set; }
- public string ProductName { get; set; }
- public string CountryFlag { get; set; }
- public string Country { get; set; }
- public DateTime OrderDate { get; set; }
- public double Profit { get; set; }
- public double ProductPrice { get; set; }
- public double ProductID { get; set; }
- public double OrderValue { get; set; }
- public double OrderItems { get; set; }
- public double Margin { get; set; }
- }
-}
-```
-
-
-
### Grid Single Selection
-When you set the [`CellSelection`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=CellSelection) to **single**, this allows you to have only one selected cell in the grid at a time. Also the mode **mouse drag** will not work and instead of selecting a cell, this will make default text selection.
+When you set the [`IgbGrid.cellSelection`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=cellSelection) to **single**, this allows you to have only one selected cell in the grid at a time. Also the mode **mouse drag** will not work and instead of selecting a cell, this will make default text selection.
-> When single cell is selected [`Selected`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Selected) event is emitted, no matter if the **selection mode** is **single** or **multiple**. In multi-cell selection mode when you select a range of cells `RangeSelected` event is emitted.
+> When single cell is selected [`IgbColumn.selected`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=selected) event is emitted, no matter if the **selection mode** is **single** or **multiple**. In multi-cell selection mode when you select a range of cells [`IgbGrid.rangeSelected`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=rangeSelected) event is emitted.
### Grid None Selection
-If you want to disable cell selection you can just set [`CellSelection`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=CellSelection) to **none**. In this mode when you click over the cell or try to navigate with keyboard, the cell is **not selected**, only the **activation style** is applied and it is going to be lost when you scroll or click over other element on the page. The only way for you to define selection is by using the API methods that are described below.
+If you want to disable cell selection you can just set [`IgbGrid.cellSelection`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=cellSelection) to **none**. In this mode when you click over the cell or try to navigate with keyboard, the cell is **not selected**, only the **activation style** is applied and it is going to be lost when you scroll or click over other element on the page. The only way for you to define selection is by using the API methods that are described below.
## Keyboard Navigation Interactions
@@ -351,8 +211,8 @@ If you want to disable cell selection you can just set [`CellSelection`](mcp:get
- CTRL + SHIFT + HOME to select all cells from the focused cell till the first-most cell in the grid
- CTRL + SHIFT + END to select all cells from the focused cell till the last-most cell in the grid
-> [!Note]
-> Continuous scroll is possible only within Grid's body.
+**Note:**
+Continuous scroll is possible only within Grid's body.
## Api Usage
@@ -360,11 +220,7 @@ Below are the methods that you can use in order to select ranges, clear selectio
### Select range
-[`SelectRange`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=SelectRange) - Select a range of cells with the API. rowStart and rowEnd should use row indexes and columnStart and columnEnd could use column index or column data field value.
-
-
-
-
+[`IgbGrid.selectRange`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=selectRange) - Select a range of cells with the API. rowStart and rowEnd should use row indexes and columnStart and columnEnd could use column index or column data field value.
```razor
@@ -383,13 +239,12 @@ Below are the methods that you can use in order to select ranges, clear selectio
this.grid.SelectRange(new IgbGridSelectionRange[] {});
}
}
-```
-
+```
### Clear cell selection
-[`ClearCellSelection`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=ClearCellSelection) will clear the current cell selection.
+[`IgbGrid.clearCellSelection`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=clearCellSelection) will clear the current cell selection.
```razor
@code {
@@ -402,7 +257,7 @@ Below are the methods that you can use in order to select ranges, clear selectio
### Get Selected Data
-[`GetSelectedData`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=GetSelectedData) will return array of the selected data in Dictionary format. Examples below:
+[`IgbGrid.getSelectedData`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=getSelectedData) will return array of the selected data in Dictionary format. Examples below:
```razor
@@ -421,19 +276,17 @@ Below are the methods that you can use in order to select ranges, clear selectio
The multi-cell selection is index based (DOM elements selection).
-- `Sorting` - When sorting is performed selection will not be cleared. It will leave currently selected cells the same while sorting ascending or descending.
-- `Paging` - On paging selected cells will be cleared. Selection wont be persisted across pages.
-- `Filtering` - When filtering is performed selection will not be cleared. If filtering is cleared it will return - the initially selected cells.
-- `Resizing` - On column resizing selected cells will not be cleared.
-- `Hiding` - It will not clear the selected cells. If column is hidden, the cells from the next visible column will be selected.
-- [`Pinning`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=Pinning) - Selected cell will not be cleared. Same as hiding
-- [`GroupBy`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=GroupBy) - On column grouping selected cells will not be cleared.
-
-
+- [`Sorting`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=sortingExpressions) - When sorting is performed selection will not be cleared. It will leave currently selected cells the same while sorting ascending or descending.
+- [`Paging`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=pagingMode) - On paging selected cells will be cleared. Selection wont be persisted across pages.
+- [`Filtering`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=allowFiltering) - When filtering is performed selection will not be cleared. If filtering is cleared it will return - the initially selected cells.
+- [`Resizing`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=resizable) - On column resizing selected cells will not be cleared.
+- [`Hiding`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=hidden) - It will not clear the selected cells. If column is hidden, the cells from the next visible column will be selected.
+- [`IgbGrid.pinning`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=pinning) - Selected cell will not be cleared. Same as hiding
+- [`GroupBy`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=groupingExpressions) - On column grouping selected cells will not be cleared.
## Styling
-In addition to the predefined themes, the grid could be further customized by setting some of the available [CSS properties](../theming-grid.md).
+In addition to the predefined themes, the grid could be further customized by setting some of the available [CSS properties](../grid/theming-grid.md).
In case you would like to change some of the colors, you need to set a class for the grid first:
```razor
@@ -450,8 +303,6 @@ Then set the related CSS properties for that class:
}
```
-
-
### Demo
```razor
@@ -546,13 +397,9 @@ public class CustomersData
```
## API References
-
-- [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
-
+[`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
## Additional Resources
-
-
- [Selection](selection.md)
- [Row Selection](row-selection.md)
- [Filtering](filtering.md)
@@ -563,8 +410,6 @@ public class CustomersData
- [Column Resizing](column-resizing.md)
- [Virtualization and Performance](virtualization.md)
-
-
Our community is active and always welcoming to new ideas.
- [Ignite UI for Blazor **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-blazor)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-clipboard-interactions.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-clipboard-interactions.md
index eb28507dd..789025ef0 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-clipboard-interactions.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-clipboard-interactions.md
@@ -1,16 +1,15 @@
---
-title: Blazor Grid Clipboard Interactions - Ignite UI for Blazor
-_description: The Blazor Grid Clipboard functionality provides fast, easy and customizable way to copy, paste and export data to Excel or other programs. Try it now!
-_keywords: Blazor, Grid, IgbGrid, Ignite UI for Blazor, Infragistics
-_license: commercial
-mentionedTypes: ["Infragistics.Controls.Grid", "Infragistics.Controls.GridCell", "Infragistics.Controls.GridRow", "Infragistics.Controls.Column"]
-sharedComponents: ["Grid", "TreeGrid", "PivotGrid", "HierarchicalGrid"]
-namespace: Infragistics.Controls
-_canonicalLink: grids/grid/clipboard-interactions
+title: "Blazor Grid Clipboard Interactions - Ignite UI for Blazor"
+description: The Blazor Grid Clipboard functionality provides fast, easy and customizable way to copy, paste and export data to Excel or other programs. Try it now!
+keywords: "Blazor, Grid, IgbGrid, Ignite UI for Blazor, Infragistics"
+license: commercial
+_canonicalLink: "grids/grid/clipboard-interactions"
+llms:
+ description: "Copy to clipboard operations are now available in the IgbGrid."
+_componentKey: Grid
_tocName: Clipboard Interactions
_premium: true
---
-
# Blazor Grid Clipboard Overview
Copy to clipboard operations are now available in the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid). This functionality provides a fast, easy and customizable way to copy data of the Blazor [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) through the current multi cell data select. System Clipboard behavior gives the user ability to copy data from the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) into Excel or other external programs.
@@ -157,32 +156,32 @@ Copy behavior is working with the default interaction defined by the browser and
## Limitations
- Both the **cut** and **copy** events are not natively supported in Internet Explorer. The exception is the
- **paste** event (IE 11) which is emitted but does not expose the `ClipboardData` property in the event.
-> [!Note]
-> In order to **copy** cells in IE 11, you can use the keyboard selection. Hold the SHIFT key in order to make a multi-cell selection, press CTRL + C in order to copy.
+**paste** event (IE 11) which is emitted but does not expose the [`ClipboardData`](mcp:get_api_reference?platform=blazor&component=IgbClipboardOptions) property in the event.
+**Note:**
+In order to **copy** cells in IE 11, you can use the keyboard selection. Hold the SHIFT key in order to make a multi-cell selection, press CTRL + C in order to copy.
- The copy behavior is disabled while the grid is in edit mode.
- The current version of this feature covers only the **copy** from grid behavior. Later on we plan to expose `paste` within grid behavior.
## API Usage
-We expose [`ClipboardOptions`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=ClipboardOptions) property, which handles the following options:
-
-- `Enabled` Enables/disables copying of selected cells.
-- `CopyHeaders` Include the associated headers when copying.
-- `CopyFormatters` Apply any existing column formatters to the copied data.
-- `Separator` The string separator to use the for formatting the data in the clipboard. Default is `/t`
+We expose [`IgbGrid.clipboardOptions`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=clipboardOptions) property, which handles the following options:
+- [`IgbClipboardOptions.enabled`](mcp:get_api_reference?platform=blazor&component=IgbClipboardOptions&member=enabled) Enables/disables copying of selected cells.
+- [`IgbClipboardOptions.copyHeaders`](mcp:get_api_reference?platform=blazor&component=IgbClipboardOptions&member=copyHeaders) Include the associated headers when copying.
+- [`IgbClipboardOptions.copyFormatters`](mcp:get_api_reference?platform=blazor&component=IgbClipboardOptions&member=copyFormatters) Apply any existing column formatters to the copied data.
+- [`IgbClipboardOptions.separator`](mcp:get_api_reference?platform=blazor&component=IgbClipboardOptions&member=separator) The string separator to use the for formatting the data in the clipboard. Default is `/t`
-> [!Note]
-> Excel can automatically detect text that is separated by tabs (tab-delimited `/t`) and properly paste the data into separate columns. When the paste format doesn't work, and everything you paste appears in a single column, then Excel's delimiter is set to another character, or your text is using spaces instead of tabs.
+**Note:**
+Excel can automatically detect text that is separated by tabs (tab-delimited `/t`) and properly paste the data into separate columns. When the paste format doesn't work, and everything you paste appears in a single column, then Excel's delimiter is set to another character, or your text is using spaces instead of tabs.
-- `GridCopy` Emitted when a copy operation is executed. Fired only if copy behavior is enabled through the [`ClipboardOptions`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=ClipboardOptions).
+- [`gridCopy`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=gridCopy) Emitted when a copy operation is executed. Fired only if copy behavior is enabled through the [`IgbGrid.clipboardOptions`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=clipboardOptions).
+## API References
+[`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
+[`IgbClipboardOptions`](mcp:get_api_reference?platform=blazor&component=IgbClipboardOptions)
## Additional Resources
-
-
- [Paging](paging.md)
- [Filtering](filtering.md)
- [Sorting](sorting.md)
@@ -193,8 +192,6 @@ We expose [`ClipboardOptions`](mcp:get_api_reference?platform=blazor&component=I
- [Virtualization and Performance](virtualization.md)
- [Multi-column headers](multi-column-headers.md)
-
-
Our community is active and always welcoming to new ideas.
- [Ignite UI for Blazor **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-blazor)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-collapsible-column-groups.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-collapsible-column-groups.md
index eab091aea..0f38b23b4 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-collapsible-column-groups.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-collapsible-column-groups.md
@@ -1,16 +1,15 @@
---
-title: Blazor Grid Collapsible Column Groups - Ignite UI for Blazor
-_description: Take advantage of the capability to show\hide smaller and concise set of data with the use of collapsible column groups in our Blazor Grid. Try it now!
-_keywords: Blazor, Grid, IgbGrid, Ignite UI for Blazor, Infragistics
-_license: commercial
-mentionedTypes: ["ColumnGroup"]
-sharedComponents: ["Grid", "TreeGrid", "HierarchicalGrid"]
-namespace: Infragistics.Controls
-_canonicalLink: grids/grid/collapsible-column-groups
+title: "Blazor Grid Collapsible Column Groups - Ignite UI for Blazor"
+description: Take advantage of the capability to show\hide smaller and concise set of data with the use of collapsible column groups in our Blazor Grid. Try it now!
+keywords: "Blazor, Grid, IgbGrid, Ignite UI for Blazor, Infragistics"
+license: commercial
+_canonicalLink: "grids/grid/collapsible-column-groups"
+llms:
+ description: "The Ignite UI for Blazor Collapsible Column Groups feature in Blazor Grid allows you to organize and manage multiple levels of nested columns and column groups in the IgbGrid by grouping them together and providing the option to collapse or expand these groups."
+_componentKey: Grid
_tocName: Collapsible Column Groups
_premium: true
---
-
# Blazor Grid Collapsible Column Groups Overview
The Ignite UI for Blazor Collapsible Column Groups feature in Blazor Grid allows you to organize and manage multiple levels of nested columns and column groups in the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) by grouping them together and providing the option to collapse or expand these groups for improved data visualization and navigation.
@@ -215,7 +214,7 @@ public class InvoicesData
To get started with the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) and the **Collapsible multi-column headers** feature, first you need to install Ignite UI for Blazor by typing the following command:
```cmd
-> dotnet add package IgniteUI.Blazor --version 25.2.83 (March 2026)
+> dotnet add package IgniteUI.Blazor --version 26.1.98
```
For a complete introduction to the Ignite UI for Blazor, read the [getting started](../../general-getting-started.md) topic.
@@ -226,9 +225,9 @@ Also, we strongly suggest that you take a brief look at [multi-column headers](m
**Collapsible Column Groups** is a part of the multi-column headers feature which provides a way to collapse/expand a column group to a smaller set of data. When a column group is collapsed, a subset of the columns will be shown to the end-user and the other child columns of the group will hide. Each collapsed/expanded column can be bound to the grid data source, or it may be unbound, thus calculated.
-In order to define a column group as collapsible, you need to set the [`Collapsible`](mcp:get_api_reference?platform=blazor&component=IgbColumnGroup&member=Collapsible) property on the [`IgbColumnGroup`](mcp:get_api_reference?platform=blazor&component=IgbColumnGroup) to **true**.
+In order to define a column group as collapsible, you need to set the [`IgbColumnGroup.collapsible`](mcp:get_api_reference?platform=blazor&component=IgbColumnGroup&member=collapsible) property on the [`IgbColumnGroup`](mcp:get_api_reference?platform=blazor&component=IgbColumnGroup) to **true**.
-You need to define the property [`VisibleWhenCollapsed`](mcp:get_api_reference?platform=blazor&component=IgbColumnGroup&member=VisibleWhenCollapsed) to at least two child columns. At least one column must be visible when the group is collapsed ([`VisibleWhenCollapsed`](mcp:get_api_reference?platform=blazor&component=IgbColumnGroup&member=VisibleWhenCollapsed) set to **true**) and at least one column must be hidden when the group is expanded ([`VisibleWhenCollapsed`](mcp:get_api_reference?platform=blazor&component=IgbColumnGroup&member=VisibleWhenCollapsed) set to `false`), otherwise the **collapsible functionality will be disabled**. If [`VisibleWhenCollapsed`](mcp:get_api_reference?platform=blazor&component=IgbColumnGroup&member=VisibleWhenCollapsed) is not specified for some of the child columns, then this column will be always visible regardless of whether the parent state is expanded or collapsed.
+You need to define the property [`IgbColumnState.visibleWhenCollapsed`](mcp:get_api_reference?platform=blazor&component=IgbColumnState&member=visibleWhenCollapsed) to at least two child columns. At least one column must be visible when the group is collapsed ([`IgbColumnState.visibleWhenCollapsed`](mcp:get_api_reference?platform=blazor&component=IgbColumnState&member=visibleWhenCollapsed) set to **true**) and at least one column must be hidden when the group is expanded ([`IgbColumnState.visibleWhenCollapsed`](mcp:get_api_reference?platform=blazor&component=IgbColumnState&member=visibleWhenCollapsed) set to `false`), otherwise the **collapsible functionality will be disabled**. If [`IgbColumnState.visibleWhenCollapsed`](mcp:get_api_reference?platform=blazor&component=IgbColumnState&member=visibleWhenCollapsed) is not specified for some of the child columns, then this column will be always visible regardless of whether the parent state is expanded or collapsed.
Let's see the markup below:
@@ -248,26 +247,61 @@ Let's see the markup below:
```
To summarize, every child column has three states:
-
- Can be always visible, no matter the expanded state of its parent.
- Can be visible, when its parent is collapsed.
- Can be hidden, when its parent is collapsed.
-The initial state of the column group which is specified as collapsible is [`Expanded`](mcp:get_api_reference?platform=blazor&component=IgbColumnGroup&member=Expanded) set to **true**, but you can easily change this behavior by setting it to **false**.
+The initial state of the column group which is specified as collapsible is [`IgbColumnGroup.expanded`](mcp:get_api_reference?platform=blazor&component=IgbColumnGroup&member=expanded) set to **true**, but you can easily change this behavior by setting it to **false**.
+
+## Expand/Collapse Indicator Template
+
+Default expand indicator for the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) is the following:
+
+Default collapse indicator for the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) is the following:
+
+Also, if you need to change the default expand/collapse indicator, we provide templating options in order to achieve this.
+
+```razor
+
+
+
+
+
+
+
+
+
+
+
+@code {
+ private IgbColumnGroup infoColumn;
+ private IgbColumnGroup addressColumn;
+
+ public RenderFragment ColumnIndicatorTemplate = (context) =>
+ {
+ string icon = context.Column.Expanded ? "remove" : "add";
+ return @;
+ };
+
+ protected override void OnAfterRender(bool firstRender)
+ {
+ this.infoColumn.CollapsibleIndicatorTemplate = this.ColumnIndicatorTemplate;
+ this.addressColumn.CollapsibleIndicatorTemplate = this.ColumnIndicatorTemplate;
+ }
+}
+
+```
> **Note**
> Please keep in mind that initially collapse group option takes precedence over column hidden - If you declared your column to be hidden using the property
> hidden and you have a group defined where the same column should be shown, the column will be shown.
## API References
-
-- [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
-- [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn)
-
+[`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
+[`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn)
+[`IgbColumnGroup`](mcp:get_api_reference?platform=blazor&component=IgbColumnGroup)
## Additional Resources
-
-
- [Virtualization and Performance](virtualization.md)
- [Paging](paging.md)
- [Filtering](filtering.md)
@@ -277,8 +311,6 @@ The initial state of the column group which is specified as collapsible is [`Exp
- [Column Pinning](column-pinning.md)
- [Selection](selection.md)
-
-
Our community is active and always welcoming to new ideas.
- [Ignite UI for Blazor **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-blazor)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-column-hiding.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-column-hiding.md
index 001924d6d..87779665c 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-column-hiding.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-column-hiding.md
@@ -1,16 +1,15 @@
---
-title: Blazor Grid Column Hiding - Ignite UI for Blazor
-_description: Learn how to use the Column Hiding feature that allows users to change the visible state of the columns directly through the UI of the Ignite Material UI table.
-_keywords: Blazor, Grid, IgbGrid, Ignite UI for Blazor, Infragistics
-_license: commercial
-mentionedTypes: ["Infragistics.Controls.Grid", "Infragistics.Controls.GridCell", "Infragistics.Controls.GridRow", "Infragistics.Controls.Column"]
-sharedComponents: ["Grid", "TreeGrid", "HierarchicalGrid"]
-namespace: Infragistics.Controls
-_canonicalLink: grids/grid/column-hiding
+title: "Blazor Grid Column Hiding - Ignite UI for Blazor"
+description: Learn how to use the Column Hiding feature that allows users to change the visible state of the columns directly through the UI of the Ignite Material UI table.
+keywords: "Blazor, Grid, IgbGrid, Ignite UI for Blazor, Infragistics"
+license: commercial
+_canonicalLink: "grids/grid/column-hiding"
+llms:
+ description: "Ignite UI for Blazor IgbGrid provides a ColumnActionsComponent with a ColumnHidingDirective which allows users to perform column hiding directly through the user interface or by using the Blazor component."
+_componentKey: Grid
_tocName: Column Hiding
_premium: true
---
-
# Blazor Grid Column Hiding
The Ignite UI for Blazor has a built-in column hiding UI, which can be used through the Blazor Grid toolbar to change the visible state of the columns. Developers have the flexibility to define the Column Hiding UI anywhere within the page as needed. The Blazor Grid Column Hiding feature is especially useful when one wants to decrease the size of the grid and to eliminate the need for tabbing through redundant fields.
@@ -197,11 +196,9 @@ Let's start by creating our [`IgbGrid`](mcp:get_api_reference?platform=blazor&co
```
-
-
## Toolbar's Column Hiding UI
-The built-in Column Hiding UI is placed inside an `DropDown` in the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)'s toolbar. We can show/hide the Column Hiding UI by using this exact dropdown.
+The built-in Column Hiding UI is placed inside an [`IgbDropdown`](mcp:get_api_reference?platform=blazor&component=IgbDropdown) in the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)'s toolbar. We can show/hide the Column Hiding UI by using this exact dropdown.
For this purpose all we have to do is set both the [`IgbGridToolbarActions`](mcp:get_api_reference?platform=blazor&component=IgbGridToolbarActions) and the [`IgbGridToolbarHiding`](mcp:get_api_reference?platform=blazor&component=IgbGridToolbarHiding) inside of the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid).
@@ -215,19 +212,9 @@ For this purpose all we have to do is set both the [`IgbGridToolbarActions`](mcp
```
-
-
-
-
-
-
-
-
-
-
The [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) provides us with some useful properties when it comes to using the toolbar's column hiding UI.
-By using the [`Title`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Title) and `Prompt` properties, we will set the title and filter prompt that are displayed inside the dropdown in the toolbar.
+By using the [`Title`](mcp:get_api_reference?platform=blazor&component=IgbGridToolbarHiding&member=title) and [`Prompt`](mcp:get_api_reference?platform=blazor&component=IgbGridToolbarHiding&member=prompt) properties, we will set the title and filter prompt that are displayed inside the dropdown in the toolbar.
```razor
@@ -239,21 +226,10 @@ By using the [`Title`](mcp:get_api_reference?platform=blazor&component=IgbColumn
```
-
-
-
-
-
-
-
-
-
-
You can see the result of the code from above at the beginning of this article in the Blazor Column Hiding Example section.
### Disable hiding of a column
-
-We can easily prevent the user from being able to hide columns through the column hiding UI by simply setting their [`DisableHiding`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=DisableHiding) property to true.
+We can easily prevent the user from being able to hide columns through the column hiding UI by simply setting their [`disableHiding`](mcp:get_api_reference?platform=blazor&component=IgbColumnState&member=disableHiding) property to true.
```razor
@@ -262,23 +238,17 @@ We can easily prevent the user from being able to hide columns through the colum
```
-
-
## Styling
-The grid could be further customized by setting some of the available [CSS variables](../theming-grid.md).
+The grid could be further customized by setting some of the available [CSS variables](../grid/theming-grid.md).
In order to achieve that, we will use a class that we will first assign to the grid:
```razor
```
-
-
Then set the related CSS variables for the related components. We will apply the styles also only on the `igx-column-actions`, so the rest of the grid is unaffected:
-
-
```css
.grid igx-column-actions {
/* Main Column Actions styles */
@@ -309,9 +279,8 @@ Then set the related CSS variables for the related components. We will apply the
--ig-button-focus-visible-foreground: black;
--ig-button-disabled-foreground: #ffcd0f;
}
-```
-
+```
### Demo
@@ -481,35 +450,14 @@ public class CustomersData
```
## API References
-
-In this article we learned how to use the built-in column hiding UI in the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)'s toolbar. The column hiding UI has a few more APIs to explore, which are listed below.
-
-- `ColumnActionsComponent`
-
-Additional components with relative APIs that were used:
-
-[`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn) properties:
-
-- [`DisableHiding`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=DisableHiding)
-
-[`IgbGridToolbar`](mcp:get_api_reference?platform=blazor&component=IgbGridToolbar) properties:
-
-- `showProgress`
-
-[`IgbGridToolbar`](mcp:get_api_reference?platform=blazor&component=IgbGridToolbar) methods:
-
-- [`IgbGridToolbarHiding`](mcp:get_api_reference?platform=blazor&component=IgbGridToolbarHiding)
-- [`IgbGridToolbarActions`](mcp:get_api_reference?platform=blazor&component=IgbGridToolbarActions)
-- [`IgbGridToolbarTitle`](mcp:get_api_reference?platform=blazor&component=IgbGridToolbarTitle)
-
-[`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) events:
-
-- `ColumnVisibilityChanged`
-
+[`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
+[`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn)
+[`IgbGridToolbar`](mcp:get_api_reference?platform=blazor&component=IgbGridToolbar)
+[`IgbGridToolbarHiding`](mcp:get_api_reference?platform=blazor&component=IgbGridToolbarHiding)
+[`IgbGridToolbarActions`](mcp:get_api_reference?platform=blazor&component=IgbGridToolbarActions)
+[`IgbGridToolbarTitle`](mcp:get_api_reference?platform=blazor&component=IgbGridToolbarTitle)
## Additional Resources
-
-
- [Virtualization and Performance](virtualization.md)
- [Filtering](filtering.md)
- [Paging](paging.md)
@@ -519,8 +467,6 @@ Additional components with relative APIs that were used:
- [Column Resizing](column-resizing.md)
- [Selection](selection.md)
-
-
Our community is active and always welcoming to new ideas.
- [Ignite UI for Blazor **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-blazor)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-column-moving.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-column-moving.md
index 868f80991..202d2ac2f 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-column-moving.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-column-moving.md
@@ -1,34 +1,36 @@
---
-title: Blazor Grid Column Reordering & Moving - Ignite UI for Blazor
-_description: Set custom column order & enable columns reordering via drag/drop mouse or touch gestures, or by using the Blazor Column Moving API. Try Ignite UI for Blazor!
-_keywords: Blazor, Grid, IgbGrid, Ignite UI for Blazor, Infragistics
-_license: commercial
-mentionedTypes: ["Infragistics.Controls.Grid", "Infragistics.Controls.GridCell", "Infragistics.Controls.GridRow", "Infragistics.Controls.Column"]
-sharedComponents: ["Grid", "TreeGrid", "HierarchicalGrid"]
-namespace: Infragistics.Controls
-_canonicalLink: grids/grid/column-moving
+title: "Blazor Grid Column Reordering & Moving - Ignite UI for Blazor"
+description: Set custom column order & enable columns reordering via drag/drop mouse or touch gestures, or by using the Blazor Column Moving API. Try Ignite UI for Blazor!
+keywords: "Blazor, Grid, IgbGrid, Ignite UI for Blazor, Infragistics"
+license: commercial
+_canonicalLink: "grids/grid/column-moving"
+llms:
+ description: "The Blazor Grid Column Moving feature in Ignite UI for Blazor allows quick and easy column reordering."
+_componentKey: Grid
_tocName: Column Moving
_premium: true
---
-
# Grid Column Reordering & Moving
The Blazor Grid Column Moving feature in Ignite UI for Blazor allows quick and easy column reordering. This can be done through the Column Moving API or by dragging and dropping the headers to another position via mouse or touch gestures. In the Blazor Grid, you can enable Column Moving for pinned and unpinned columns and for [Multi-Column Headers](multi-column-headers.md) as well.
-> [!Note]
-> Reordering between columns and column groups is allowed only when they are at the same level in the hierarchy and both are in the same group. Moving is allowed between columns/column-groups, if they are top level columns.
+**Note:**
+Reordering between columns and column groups is allowed only when they are at the same level in the hierarchy and both are in the same group. Moving is allowed between columns/column-groups, if they are top level columns.
+
+**Note:**
+If a column header is templated and the Column Moving is enabled or the corresponding column is groupable, then the templated elements need to have the **draggable** attribute set to **false**!
-> [!Note]
-> If a column header is templated and the Column Moving is enabled or the corresponding column is groupable, then the templated elements need to have the **draggable** attribute set to **false**!
+**Note:**
+If the pinned area exceeds its maximum allowed width (80% of the total [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) width), a visual clue notifies the end user that the drop operation is forbidden and pinning is not possible. This means you won't be allowed to drop a column in the pinned area.
-> [!Note]
-> If the pinned area exceeds its maximum allowed width (80% of the total [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) width), a visual clue notifies the end user that the drop operation is forbidden and pinning is not possible. This means you won't be allowed to drop a column in the pinned area.
```razor
+@code {
public RenderFragment headerTemplate => (context) =>
{
return @ onClick()">;
};
+}
```
## Blazor Grid Column Moving Overview Example
@@ -286,23 +288,19 @@ public class FinancialDataAll
## Overview
-**Column moving** feature is enabled on a per-grid level, meaning that the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) could have either movable or immovable columns. This is done via the [`Moving`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=Moving) input of the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid).
-
-
+**Column moving** feature is enabled on a per-grid level, meaning that the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) could have either movable or immovable columns. This is done via the [`IgbGrid.moving`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=moving) input of the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid).
```razor
```
-
-
## API
In addition to the drag and drop functionality, the Column Moving feature also provides API methods to allow moving a column/reordering columns programmatically:
-[`MoveColumn`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=MoveColumn) - Moves a column before or after another column (a target). The first parameter is the column to be moved, and the second parameter is the target column. Also accepts an optional third parameter `Position` (representing a `DropPosition` value), which determines whether to place the column before or after the target column.
+[`IgbGridBaseDirective.moveColumn`](mcp:get_api_reference?platform=blazor&component=IgbGridBaseDirective&member=moveColumn) - Moves a column before or after another column (a target). The first parameter is the column to be moved, and the second parameter is the target column. Also accepts an optional third parameter `Position` (representing a [`IgbDropPosition`](mcp:get_api_reference?platform=blazor&component=DropPosition) value), which determines whether to place the column before or after the target column.
-```razor
+```csharp
public async void HandleClick()
{
IgbColumn Col1 = await this.grid.GetColumnByVisibleIndexAsync(0);
@@ -311,9 +309,9 @@ In addition to the drag and drop functionality, the Column Moving feature also p
}
```
-[`Move`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Move) - Moves a column to a specified visible index. If the passed index parameter is invalid (is negative, or exceeds the number of columns), or if the column is not allowed to move to this index (if inside another group), no operation is performed.
+[`Move`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=move) - Moves a column to a specified visible index. If the passed index parameter is invalid (is negative, or exceeds the number of columns), or if the column is not allowed to move to this index (if inside another group), no operation is performed.
-```razor
+```csharp
public async void HandleClick()
{
IgbColumn Col1 = await this.grid.GetColumnByVisibleIndexAsync(0);
@@ -321,15 +319,13 @@ In addition to the drag and drop functionality, the Column Moving feature also p
}
```
-Note that when using the column moving feature, the `ColumnMovingEnd` event will be emitted if the operation was successful. Also note that in comparison to the drag and drop functionality, using the column moving feature does not require setting the [`Moving`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=Moving) property to true.
+Note that when using the column moving feature, the [`IgbGrid.columnMovingEnd`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=columnMovingEnd) event will be emitted if the operation was successful. Also note that in comparison to the drag and drop functionality, using the column moving feature does not require setting the [`IgbGrid.moving`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=moving) property to true.
## Events
-There are several events related to the column moving to provide a means for tapping into the columns' drag and drop operations. These are `ColumnMovingStart`, `ColumnMoving` and `ColumnMovingEnd`.
+There are several events related to the column moving to provide a means for tapping into the columns' drag and drop operations. These are [`IgbGrid.columnMovingStart`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=columnMovingStart), `ColumnMoving` and [`IgbGrid.columnMovingEnd`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=columnMovingEnd).
-You can subscribe to the `ColumnMovingEnd` event of the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) to implement some custom logic when a column is dropped to a new position. For example, you can cancel dropping the **Category** column after the **Change On Year(%)** column in the following code snippet.
-
-
+You can subscribe to the [`IgbGrid.columnMovingEnd`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=columnMovingEnd) event of the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) to implement some custom logic when a column is dropped to a new position. For example, you can cancel dropping the **Category** column after the **Change On Year(%)** column in the following code snippet.
```razor
```
-```razor
+```javascript
igRegisterScript("onColumnMovingEnd", (event) => {
if (event.detail.source.field === "Category" && event.detail.target.field === "Change On Year(%)") {
event.detail.cancel = true;
@@ -352,7 +348,7 @@ igRegisterScript("onColumnMovingEnd", (event) => {
## Styling
-In addition to the predefined themes, the grid could be further customized by setting some of the available [CSS properties](../theming-grid.md).
+In addition to the predefined themes, the grid could be further customized by setting some of the available [CSS properties](../grid/theming-grid.md).
In case you would like to change some of the colors, you need to set a class for the grid first:
@@ -618,14 +614,10 @@ public class FinancialDataAll
```
## API References
-
-- [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn)
-- [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
-
+[`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
+[`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn)
## Additional Resources
-
-
- [Virtualization and Performance](virtualization.md)
- [Paging](paging.md)
- [Filtering](filtering.md)
@@ -636,9 +628,7 @@ public class FinancialDataAll
- [Selection](selection.md)
- [Searching](search.md)
-
-
Our community is active and always welcoming to new ideas.
- [Ignite UI for Blazor **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-blazor)
-- [Ignite UI for Blazor **GitHub**](https://github.com/IgniteUI/igniteui-blazor)
+- [Ignite UI for Blazor **GitHub**](https://github.com/IgniteUI/igniteui-blazor)
\ No newline at end of file
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-column-pinning.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-column-pinning.md
index 067b371b3..f55cf8109 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-column-pinning.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-column-pinning.md
@@ -1,19 +1,18 @@
---
-title: Blazor Grid Column Pinning - Ignite UI for Blazor
-_description: Want to use the Pinning feature of the Ignite UI for Blazor when you develop your next app? Easily lock column or change column order with rich API.
-_keywords: Blazor, Grid, IgbGrid, Ignite UI for Blazor, Infragistics
-_license: commercial
-mentionedTypes: ["Infragistics.Controls.Grid", "Infragistics.Controls.GridCell", "Infragistics.Controls.GridRow", "Infragistics.Controls.Column"]
-sharedComponents: ["Grid", "TreeGrid", "HierarchicalGrid"]
-namespace: Infragistics.Controls
-_canonicalLink: grids/grid/column-pinning
+title: "Blazor Grid Column Pinning - Ignite UI for Blazor"
+description: Want to use the Pinning feature of the Ignite UI for Blazor when you develop your next app? Easily lock column or change column order with rich API.
+keywords: "Blazor, Grid, IgbGrid, Ignite UI for Blazor, Infragistics"
+license: commercial
+_canonicalLink: "grids/grid/column-pinning"
+llms:
+ description: "The Ignite UI for Blazor Column Pinning feature in Blazor Grid enables developers to lock specific columns in a desired order, ensuring visibility all the time even when users scroll horizontally through the IgbGrid."
+_componentKey: Grid
_tocName: Column Pinning
_premium: true
---
-
# Blazor Grid Column Pinning
-The Ignite UI for Blazor Column Pinning feature in Blazor Grid enables developers to lock specific columns in a desired order, ensuring visibility all the time even when users scroll horizontally through the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid). There’s an integrated UI for Column Pinning, accessible via the Blazor Grid toolbar. Additionally, developers have the flexibility to build a custom user interface which changes the pin state of the columns.
+The Ignite UI for Blazor Column Pinning feature in Blazor Grid enables developers to lock specific columns in a desired order, ensuring visibility all the time even when users scroll horizontally through the `IgbGrid`. There’s an integrated UI for Column Pinning, accessible via the Blazor Grid toolbar. Additionally, developers have the flexibility to build a custom user interface which changes the pin state of the columns.
## Blazor Grid Column Pinning Example
@@ -170,7 +169,7 @@ public class CustomersDataLocal
## Column Pinning API
-Column pinning is controlled through the [`Pinned`](mcp:get_api_reference?platform=blazor&component=IgbGridRow&member=Pinned) property of the [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn). Pinned columns are rendered on the left side of the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) by default and stay fixed through horizontal scrolling of the unpinned columns in the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) body.
+Column pinning is controlled through the [`IgbColumn.pinned`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=pinned) property of the [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn). Pinned columns are rendered on the left side of the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) by default and stay fixed through horizontal scrolling of the unpinned columns in the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) body.
```razor
@@ -180,11 +179,7 @@ Column pinning is controlled through the [`Pinned`](mcp:get_api_reference?platfo
```
-
-
-You may also use the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)'s [`PinColumn`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=PinColumn) or [`UnpinColumn`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=UnpinColumn) methods of the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) to pin or unpin columns by their field name:
-
-
+You may also use the [`IgbGrid.pinColumn`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=pinColumn) or [`IgbGrid.unpinColumn`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=unpinColumn) methods of the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) to pin or unpin columns by their field name:
```razor
@code {
@@ -193,17 +188,29 @@ You may also use the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component
}
```
-
-
Both methods return a boolean value indicating whether their respective operation is successful or not. Usually the reason they fail is that the column is already in the desired state.
-
+A column is pinned to the right of the rightmost pinned column. Changing the order of the pinned columns can be done by subscribing to the `ColumnPinScript` event and providing a JavaScript function for changing the [`IgbPinColumnEventArgs.insertAtIndex`](mcp:get_api_reference?platform=blazor&component=IgbPinColumnEventArgs&member=insertAtIndex) property of the event arguments to the desired position index.
+
+```razor
+
+```
+
+```javascript
+//In JavaScript
+function onColumnPin(e) {
+ if (e.detail.column.field == "Country") {
+ e.detail.insertAtIndex = 0;
+ }
+}
+
+igRegisterScript("onColumnPin", onColumnPin, false);
-A column is pinned to the right of the rightmost pinned column. Changing the order of the pinned columns can be done by subscribing to the `ColumnPin` event and changing the `InsertAtIndex` property of the event arguments to the desired position index.
+```
## Pinning Position
-You can change the column pinning position via the [`Pinning`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=Pinning) configuration option. It allows you to set the columns position to either Start or End.
+You can change the column pinning position via the [`IgbColumn.pinningPosition`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=pinningPosition) configuration option. It allows you to set the columns position to either Start or End.
When set to End the columns are rendered at the end of the grid, after the unpinned columns. Unpinned columns can be scrolled horizontally, while the pinned columns remain fixed on the right.
```razor
@@ -214,6 +221,7 @@ When set to End the columns are rendered at the end of the grid, after the unpin
Columns = ColumnPinningPosition.End
};
}
+
```
### Demo
@@ -419,7 +427,6 @@ public class AthletesDataExtended
```
### Column Pinning on Both Sides
-
Additionally, you can specify each column pinning location separately, allowing you to pin columns to both sides of the grid for greater convenience and easier optimization of data sets. Please refer to the demo below for further reference. In order to pin a column, please either select a column by clicking on a header and use the pin buttons added to the toolbar, or simply drag a column to another pinned one.
```razor
@@ -660,12 +667,14 @@ This can be done by creating a header template for the columns with a custom ico
+```
+```javascript
// In JavaScript
igRegisterScript("WebGridPinHeaderTemplate", (ctx) => {
var html = window.igTemplating.html;
window.toggleColumnPin = function toggleColumnPin(field) {
- var grid = document.getElementsByTagName("igc-grid")[0];
+ var grid = document.getElementsByTagName["igc-grid"](0);
var col = grid.getColumnByName(field);
col.pinned = !col.pinned;
grid.markForCheck();
@@ -677,6 +686,8 @@ igRegisterScript("WebGridPinHeaderTemplate", (ctx) => {
}, false);
```
+On click of the custom icon the pin state of the related column can be changed using the column's API methods.
+
### Demo
```razor
@@ -863,11 +874,9 @@ public class CustomersData
- Setting column widths in percentage (%) explicitly makes the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) body and header content to be misaligned when there are pinned columns. For column pinning to function correctly the column widths should be in pixels (px) or auto-assigned by the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid).
-
-
## Styling
-In addition to the predefined themes, the grid could be further customized by setting some of the available [CSS properties](../theming-grid.md).
+In addition to the predefined themes, the grid could be further customized by setting some of the available [CSS properties](../grid/theming-grid.md).
In case you would like to change some of the colors, you need to set an `ID` for the grid first:
```razor
@@ -1012,17 +1021,11 @@ public class CustomersData
}
```
-
-
## API References
-
-- [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
-- [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn)
-
+[`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
+[`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn)
## Additional Resources
-
-
- [Virtualization and Performance](virtualization.md)
- [Paging](paging.md)
- [Filtering](filtering.md)
@@ -1032,8 +1035,6 @@ public class CustomersData
- [Column Resizing](column-resizing.md)
- [Selection](selection.md)
-
-
Our community is active and always welcoming to new ideas.
- [Ignite UI for Blazor **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-blazor)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-column-resizing.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-column-resizing.md
index 2c2b4b22c..79d35ed05 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-column-resizing.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-column-resizing.md
@@ -1,16 +1,15 @@
---
-title: Blazor Grid Column Resizing - Ignite UI for Blazor
-_description: Start using Blazor Grid Column Resizing in order to change the grid column width in an instant. Blazor drag resizing has never been so easy. Try for free!
-_keywords: Blazor, Grid, IgbGrid, Ignite UI for Blazor, Infragistics
-_license: commercial
-mentionedTypes: ["Infragistics.Controls.Grid", "Infragistics.Controls.GridCell", "Infragistics.Controls.GridRow", "Infragistics.Controls.Column"]
-sharedComponents: ["Grid", "TreeGrid", "HierarchicalGrid"]
-namespace: Infragistics.Controls
-_canonicalLink: grids/grid/column-resizing
+title: "Blazor Grid Column Resizing - Ignite UI for Blazor"
+description: Start using Blazor Grid Column Resizing in order to change the grid column width in an instant. Blazor drag resizing has never been so easy. Try for free!
+keywords: "Blazor, Grid, IgbGrid, Ignite UI for Blazor, Infragistics"
+license: commercial
+_canonicalLink: "grids/grid/column-resizing"
+llms:
+ description: "The Ignite UI for Blazor Column Resizing feature in Blazor Grid allows users to easily adjust the width of the columns of the IgbGrid."
+_componentKey: Grid
_tocName: Column Resizing
_premium: true
---
-
# Blazor Grid Column Resizing Overview
The Ignite UI for Blazor Column Resizing feature in Blazor Grid allows users to easily adjust the width of the columns of the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid). By default, they will see a temporary resize indicator while the drag resizing operation is in effect. There are several resizing options available - Resizing Columns in Pixels/Percentages, Restrict Column Resizing, Auto-Size Columns on Double Click, and Auto-Size Columns on Initialization.
@@ -152,17 +151,13 @@ public class CustomersData
}
```
-**Column resizing** is also enabled per-column level, meaning that the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) can have a mix of resizable and non-resizable columns. This is done via the [`Resizable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Resizable) input of the [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn).
+**Column resizing** is also enabled per-column level, meaning that the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) can have a mix of resizable and non-resizable columns. This is done via the [`IgbColumn.resizable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=resizable) input of the [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn).
```razor
```
-
-
-You can subscribe to the `ColumnResized` event of the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) to implement some custom logic when a column is resized. Both, previous and new column widths, as well as the [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn) object, are exposed through the event arguments.
-
-
+You can subscribe to the [`columnResized`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=columnResized) event of the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) to implement some custom logic when a column is resized. Both, previous and new column widths, as well as the [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn) object, are exposed through the event arguments.
```razor
@@ -178,9 +173,8 @@ You can subscribe to the `ColumnResized` event of the [`IgbGrid`](mcp:get_api_re
string nWidth = args.Detail.NewWidth;
}
}
-```
-
+```
## Resizing Columns in Pixels/Percentages
@@ -196,10 +190,8 @@ This means that the following configuration is possible:
```
-
-
-> [!Note]
-> There is a slight difference in the way resizing works for columns set in pixels and percentages.
+**Note:**
+There is a slight difference in the way resizing works for columns set in pixels and percentages.
**Pixels**
@@ -211,14 +203,12 @@ When resizing columns with width in percentages, the horizontal amount of the mo
## Restrict Column Resizing
-You can also configure the minimum and maximum allowable column widths. This is done via the [`MinWidth`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=MinWidth) and [`MaxWidth`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=MaxWidth) inputs of the [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn). In this case the resize indicator drag operation is restricted to notify the user that the column cannot be resized outside the boundaries defined by [`MinWidth`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=MinWidth) and [`MaxWidth`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=MaxWidth).
+You can also configure the minimum and maximum allowable column widths. This is done via the [`IgbColumn.minWidth`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=minWidth) and [`IgbColumnState.maxWidth`](mcp:get_api_reference?platform=blazor&component=IgbColumnState&member=maxWidth) inputs of the [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn). In this case the resize indicator drag operation is restricted to notify the user that the column cannot be resized outside the boundaries defined by [`IgbColumn.minWidth`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=minWidth) and [`IgbColumnState.maxWidth`](mcp:get_api_reference?platform=blazor&component=IgbColumnState&member=maxWidth).
```razor
```
-
-
Mixing the minimum and maximum column width value types (pixels or percentages) is allowed. If the values set for minimum and maximum are set to percentages, the respective column size will be limited to those exact sizes similar to pixels.
This means the following configurations are possible:
@@ -227,21 +217,17 @@ This means the following configurations are possible:
```
-
-
or
```razor
```
-
-
## Auto-Size Columns on Double Click
-Each column can be **auto sized** by double clicking the right side of the header - the column will be sized to the longest currently visible cell value, including the header itself. This behavior is enabled by default, no additional configuration is needed. However, the column will not be auto-sized in case [`MaxWidth`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=MaxWidth) is set on that column and the new width exceeds that [`MaxWidth`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=MaxWidth) value. In this case the column will be sized according to preset [`MaxWidth`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=MaxWidth) value.
+Each column can be **auto sized** by double clicking the right side of the header - the column will be sized to the longest currently visible cell value, including the header itself. This behavior is enabled by default, no additional configuration is needed. However, the column will not be auto-sized in case [`IgbColumnState.maxWidth`](mcp:get_api_reference?platform=blazor&component=IgbColumnState&member=maxWidth) is set on that column and the new width exceeds that [`IgbColumnState.maxWidth`](mcp:get_api_reference?platform=blazor&component=IgbColumnState&member=maxWidth) value. In this case the column will be sized according to preset [`IgbColumnState.maxWidth`](mcp:get_api_reference?platform=blazor&component=IgbColumnState&member=maxWidth) value.
-You can also auto-size a column dynamically using the exposed [`Autosize`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Autosize) method on [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn).
+You can also auto-size a column dynamically using the exposed [`IgbColumn.autosize`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=autosize) method on [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn).
```razor
@code {
@@ -253,13 +239,12 @@ You can also auto-size a column dynamically using the exposed [`Autosize`](mcp:g
column.Autosize(false);
}
}
-```
-
+```
## Auto-Size Columns on Initialization
-Each column can be set to auto-size on initialization by setting [`Width`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Width) to 'auto':
+Each column can be set to auto-size on initialization by setting [`IgbGrid.width`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=width) to 'auto':
```razor
@@ -407,7 +392,7 @@ public class CustomersData
## Styling
-In addition to the predefined themes, the grid could be further customized by setting some of the available [CSS properties](../theming-grid.md).
+In addition to the predefined themes, the grid could be further customized by setting some of the available [CSS properties](../grid/theming-grid.md).
In case you would like to change the color of the resize handle, you need to set a class for the grid first:
```razor
@@ -527,10 +512,8 @@ public class AthletesData
```
## API References
-
-- [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn)
-- [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
-
+[`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
+[`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn)
## Additional Resources
- [Virtualization and Performance](virtualization.md)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-column-selection.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-column-selection.md
index 2fcff5d8a..8ca290171 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-column-selection.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-column-selection.md
@@ -1,29 +1,24 @@
---
-title: Blazor Grid Column Selection - Ignite UI for Blazor
-_description: Learn how to configure column selection with Ignite UI for Blazor Grid. This makes grid interactions much easier and faster than ever.
-_keywords: Blazor, Grid, IgbGrid, Ignite UI for Blazor, Infragistics, column selection
-_license: commercial
-mentionedTypes: ["Infragistics.Controls.Grid", "Infragistics.Controls.GridCell", "Infragistics.Controls.GridRow", "Infragistics.Controls.Column"]
-sharedComponents: ["Grid", "TreeGrid", "HierarchicalGrid"]
-namespace: Infragistics.Controls
-_canonicalLink: grids/grid/column-selection
+title: "Blazor Grid Column Selection - Ignite UI for Blazor"
+description: Learn how to configure column selection with Ignite UI for Blazor Grid. This makes grid interactions much easier and faster than ever.
+keywords: "Blazor, Grid, IgbGrid, Ignite UI for Blazor, Infragistics, column selection"
+license: commercial
+_canonicalLink: "grids/grid/column-selection"
+llms:
+ description: "The Blazor Grid Column Selection feature in Ignite UI for Blazor offers a simplified and Excel-like way to select and highlight an entire column with a single click."
+_componentKey: Grid
_tocName: Column Selection
_premium: true
---
-
# Blazor Grid Column Selection Overview
-The Blazor Grid Column Selection feature in Ignite UI for Blazor offers a simplified and Excel-like way to select and highlight an entire column with a single click. It can be enabled through the [`ColumnSelection`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=ColumnSelection) input. Thanks to the rich API, the feature allows for easy manipulation of the selection state, data extraction from the selected fractions, data analysis operations, and visualizations.
+The Blazor Grid Column Selection feature in Ignite UI for Blazor offers a simplified and Excel-like way to select and highlight an entire column with a single click. It can be enabled through the [`IgbGrid.columnSelection`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=columnSelection) input. Thanks to the rich API, the feature allows for easy manipulation of the selection state, data extraction from the selected fractions, data analysis operations, and visualizations.
## Blazor Grid Column Selection Example
-The sample below demonstrates the three types of [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)'s **column selection** behavior. Use the column selection dropdown below to enable each of the available selection modes.
-
-
-
-\*_Contact Title_, _City_ and _Address_ columns are with disabled column selection.
+The sample below demonstrates the three types of `IgbGrid`'s **column selection** behavior. Use the column selection dropdown below to enable each of the available selection modes.
-
+*_Contact Title_, _City_ and _Address_ columns are with disabled column selection.
```razor
@using IgniteUI.Blazor.Controls
@@ -164,20 +159,16 @@ public class CustomersData
## Basic Usage
-The column selection feature can be enabled through the [`ColumnSelection`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=ColumnSelection) input, which takes `GridSelectionMode` values.
+The column selection feature can be enabled through the [`IgbGrid.columnSelection`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=columnSelection) input, which takes [`IgbGridSelectionMode`](mcp:get_api_reference?platform=blazor&component=GridSelectionMode) values.
## Interactions
-The default selection mode is `None`. If set to `Single` or `Multiple`, all of the presented columns will be [`Selectable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Selectable). With that being said, in order to select a column, we just need to click on one, which will mark it as [`Selected`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Selected). If the column is not selectable, no selection style will be applied on the header, while hovering.
-
-> [!Note]
-> The [Multi Column Headers](multi-column-headers.md) feature does not reflect on the [`Selectable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Selectable) input. The `ColumnGroupComponent` is [`Selectable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Selectable), if at least one of its children has the selection behavior enabled. In addition, the component is marked as [`Selected`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Selected) if all of its [`Selectable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Selectable) descendants are [`Selected`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Selected).
-
-
+The default selection mode is `None`. If set to `Single` or `Multiple`, all of the presented columns will be [`IgbColumn.selectable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=selectable). With that being said, in order to select a column, we just need to click on one, which will mark it as [`IgbColumn.selected`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=selected). If the column is not selectable, no selection style will be applied on the header, while hovering.
-\*Under _Country Information_ Column Group only column _City_ and _Postal code_ are selectable.
+**Note:**
+The [Multi Column Headers](multi-column-headers.md) feature does not reflect on the [`IgbGrid.selectable`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=selectable) input. The `IgbColumnGroupComponent` is [`IgbGrid.selectable`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=selectable), if at least one of its children has the selection behavior enabled. In addition, the component is marked as [`IgbGrid.selected`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=selected) if all of its [`IgbGrid.selectable`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=selectable) descendants are [`IgbGrid.selected`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=selected).
-
+*Under _Country Information_ Column Group only column _City_ and _Postal code_ are selectable.
```razor
@using IgniteUI.Blazor.Controls
@@ -317,26 +308,25 @@ public class CustomersData
## Keyboard Combinations
-> [!Note]
-> The keyboard combinations are available only when the grid [`ColumnSelection`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=ColumnSelection) input is set to `multiple`.
+**Note:**
+The keyboard combinations are available only when the grid [`IgbGrid.columnSelection`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=columnSelection) input is set to `multiple`.
There are two scenarios for keyboard navigation of the **Column Selection** feature:
-
- Multi-column selection - holding CTRL + click on every **selectable** header cell.
- Range column selection - holding SHIFT + click selects all **selectable** columns in between.
## API Manipulations
-The **API** provides some additional capabilities when it comes to the **non-visible** columns such that, every **hidden** column could be marked as [`Selected`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Selected) by setting the corresponding **setter**.
+The **API** provides some additional capabilities when it comes to the **non-visible** columns such that, every **hidden** column could be marked as [`IgbColumn.selected`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=selected) by setting the corresponding **setter**.
-> [!Note]
-> The above statement also applies to the `ColumnGroupComponent`, except that when the [`Selected`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Selected) property is changed it changes the state of its descendants.
+**Note:**
+The above statement also applies to the `IgbColumnGroupComponent`, except that when the [`IgbGrid.selected`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=selected) property is changed it changes the state of its descendants.
More information regarding the API manipulations could be found in the [API References](#api-references) section.
## Styling
-In addition to the predefined themes, the grid could be further customized by setting some of the available [CSS properties](../theming-grid.md).
+In addition to the predefined themes, the grid could be further customized by setting some of the available [CSS properties](../grid/theming-grid.md).
In case you would like to change some of the colors, you need to set a `class` for the grid first:
```razor
@@ -466,40 +456,10 @@ public class CustomersData
```
## API References
-
-The column selection UI has a few more APIs to explore, which are listed below.
-
-- [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
-- [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn)
-- [`IgbColumnGroup`](mcp:get_api_reference?platform=blazor&component=IgbColumnGroup)
-
-[`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) properties:
-
-- [`ColumnSelection`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=ColumnSelection)
-- [`SelectedColumns`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=SelectedColumns)
-- [`SelectColumns`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=SelectColumns)
-- [`DeselectColumns`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=DeselectColumns)
-- [`SelectAllColumns`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=SelectAllColumns)
-- [`DeselectAllColumns`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=DeselectAllColumns)
-
-[`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn) properties:
-
-- [`Selectable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Selectable)
-- [`Selected`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Selected)
-
-[`IgbColumnGroup`](mcp:get_api_reference?platform=blazor&component=IgbColumnGroup) properties:
-
-- [`Selectable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Selectable)
-- [`Selected`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Selected)
-
-[`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) events:
-
-- `OnColumnsSelectionChange`
-
+[`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
+[`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn)
## Additional Resources
-
-
- [Selection](selection.md)
- [Cell Selection](cell-selection.md)
- [Paging](paging.md)
@@ -511,8 +471,6 @@ The column selection UI has a few more APIs to explore, which are listed below.
- [Column Resizing](column-resizing.md)
- [Virtualization and Performance](virtualization.md)
-
-
Our community is active and always welcoming to new ideas.
- [Ignite UI for Blazor **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-blazor)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-column-types.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-column-types.md
index 9b1a90ae9..0e7b956fa 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-column-types.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-column-types.md
@@ -1,22 +1,19 @@
---
-title: Blazor Grid Column Data Types - Ignite UI for Blazor
-_description: Handle cell and editing templates in Blazor by choosing from several predefined column data types - number, string, date, boolean, currency and percent column.
-_keywords: Column Data Type , Blazor, Grid, IgbGrid, Ignite UI for Blazor, Infragistics
-_license: commercial
-mentionedTypes: ["Infragistics.Controls.Grid", "Infragistics.Controls.GridCell", "Infragistics.Controls.GridRow", "Infragistics.Controls.Column"]
-sharedComponents: ["Grid", "TreeGrid", "HierarchicalGrid"]
-namespace: Infragistics.Controls
-_canonicalLink: grids/grid/column-types
+title: "Blazor Grid Column Data Types - Ignite UI for Blazor"
+description: Handle cell and editing templates in Blazor by choosing from several predefined column data types - number, string, date, boolean, currency and percent column.
+keywords: Column Data Type , Blazor, Grid, IgbGrid, Ignite UI for Blazor, Infragistics
+license: commercial
+_canonicalLink: "grids/grid/column-types"
+llms:
+ description: "The Blazor Grid provides a default handling of number, string, date, boolean, currency and percent column data types, based on which the appearance of the default and editing templates will be present."
+_componentKey: Grid
_tocName: Column Types
_premium: true
---
-
# Blazor Grid Column Types Overview
The Blazor Grid provides a default handling of **number**, **string**, **date**, **boolean**, **currency** and **percent** column data types, based on which the appearance of the default and editing templates will be present.
-
-
## Blazor Grid Column Types Example
```razor
@@ -438,21 +435,19 @@ The Blazor Grid provides a default handling of **number**, **string**, **date**,
//end data
```
-
-
## Blazor Grid Default Template
-If you want to enable a data type-specific template, you should set the column [`DataType`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=DataType) input, otherwise the column will be treated as a string column since that is the default value for column [`DataType`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=DataType).
+If you want to enable a data type-specific template, you should set the column [`IgbColumn.dataType`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=dataType) input, otherwise the column will be treated as a string column since that is the default value for column [`IgbColumn.dataType`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=dataType).
-The following sections describe the default templates for each [`DataType`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=DataType).
+The following sections describe the default templates for each [`IgbColumn.dataType`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=dataType).
### String
-This column [`DataType`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=DataType) is not changing the appearance or format of the cell value.
+This column [`IgbColumn.dataType`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=dataType) is not changing the appearance or format of the cell value.
### Number
-If the [`DataType`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=DataType) is set to **number**, the cell value will be formatted based on application or grid's [`Locale`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=Locale) settings, as well as when [`PipeArgs`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=PipeArgs) property is specified. Then the number format will be changed based on them, for example it might change the:
+If the [`IgbColumn.dataType`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=dataType) is set to **number**, the cell value will be formatted based on application or grid's [`Locale`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=locale) settings, as well as when [`IgbColumn.pipeArgs`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=pipeArgs) property is specified. Then the number format will be changed based on them, for example it might change the:
- Number of digits after the decimal point
- Decimal separator with `,` or `.`
@@ -463,11 +458,12 @@ If the [`DataType`](mcp:get_api_reference?platform=blazor&component=IgbColumn&me
@code {
private IgbColumnPipeArgs formatOptions = new IgbColumnPipeArgs() { DigitsInfo = "1.4-4" };
}
+
```
### DateTime, Date and Time
-The appearance of the date portions will be set (e.g. day, month, year) based on [`Locale`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=Locale) format or [`PipeArgs`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=PipeArgs) input. The pipe arguments can be used to specify a custom date format or timezone:
+The appearance of the date portions will be set (e.g. day, month, year) based on [`Locale`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker&member=locale) format or [`IgbColumn.pipeArgs`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=pipeArgs) input. The pipe arguments can be used to specify a custom date format or timezone:
- **format** - The default value for formatting the date is `'mediumDate'`. Other available options are `'short'`, `'long'`, `'shortDate'`, `'fullDate'`, `'longTime'`, `'fullTime'` and etc.
- **timezone** - The user's local system timezone is the default value. The timezone offset or standard GMT/UTC or continental US timezone abbreviation can also be passed. Different timezone examples which will display the corresponding time of the location anywhere in the world:
@@ -478,13 +474,14 @@ The appearance of the date portions will be set (e.g. day, month, year) based on
@code {
private IgbColumnPipeArgs formatDateOptions = new IgbColumnPipeArgs()
{
- /** The date/time components that a date column will display, using predefined options or a custom format string. */
- /** e.g 'dd/mm/yyyy' or 'shortDate' **/
+ // The date/time components that a date column will display, using predefined options or a custom format string.
+ // e.g 'dd/mm/yyyy' or 'shortDate'
Format = "longDate",
- /** A timezone offset (such as '+0430'), or a standard UTC/GMT or continental US timezone abbreviation. */
+ /** A timezone offset (such as '+0430'), or a standard UTC/GMT or continental US timezone abbreviation.*/
Timezone = "GMT"
};
}
+
```
Available timezones:
@@ -502,7 +499,7 @@ Available timezones:
| Hawaii Standard Time |‘UTC-10’ |
| India Standard Time |‘UTC+4’ |
-The [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) accepts date values of type **Date object**, **Number (milliseconds)**, **An ISO date-time string**. This section shows [how to configure a custom display format](../data-grid.md#custom-display-format).
+The `IgbGrid` accepts date values of type **Date object**, **Number (milliseconds)**, **An ISO date-time string**. This section shows [how to configure a custom display format](../data-grid.md#custom-display-format).
As you can see in the sample, we specify a different format options in order to showcase the available formats for the specific column type. For example, below you can find the format options for the **time** portion of the date object:
@@ -521,15 +518,13 @@ As you can see in the sample, we specify a different format options in order to
#### Cell Editing
When it comes to cell editing based on the column type a different editor will appear:
-
-- `DateTime` - `DateTimeEditor` will be used. This editor will give you a mask directions for the input elements part of the `DateTime` object.
+- `DateTime` - [`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker) will be used. This editor will give you a mask directions for the input elements part of the `DateTime` object.
- `Date` - [`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker) will be used.
-- `Time` - `TimePicker` will be used.
+- `Time` - [`IgbDateTimeInput`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput) will be used.
#### Filtering
The same editors listed above will be used when it comes to Quick Filtering/Excel-style Filtering. These are the following filtering operands that each type exposes:
-
- `DateTime` and `Date` - Equals, Does Not Equal, Before, After, Today, Yesterday, This Month, Last Month, Next Month, This Year, Last Year, Next Year, Empty, Not Empty, Null, Not Null;
- `Time` - At, Not At, Before, After, At or Before, At or After, Empty, Not Empty, Null, Not Null;
@@ -559,7 +554,7 @@ Default template is using the value coming from the data as an image source to a
```
-When [`AutoGenerate`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=AutoGenerate) is used for the columns, the grid analyses the values in the first data record. If a value is of type string and matches the pattern of a url ending in an image extension (gif, jpg, jpeg, tiff, png, webp, bmp) then the column will automatically be marked as `dataType === GridColumnDataType.Image` and a default image template will be rendered.
+When `AutoGenerate` is used for the columns, the grid analyses the values in the first data record. If a value is of type string and matches the pattern of a url ending in an image extension (gif, jpg, jpeg, tiff, png, webp, bmp) then the column will automatically be marked as `dataType === GridColumnDataType.Image` and a default image template will be rendered.
### Currency
@@ -567,7 +562,7 @@ When [`AutoGenerate`](mcp:get_api_reference?platform=blazor&component=IgbGrid&me
The default template will show a numeric value with currency symbol that would be either prefixed or suffixed.
-By using the [`PipeArgs`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=PipeArgs) input the end-user can customize the number format by **decimal point**, **currencyCode** and **display**.
+By using the [`IgbColumn.pipeArgs`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=pipeArgs) input the end-user can customize the number format by **decimal point**, **currencyCode** and **display**.
```razor
@@ -579,21 +574,18 @@ By using the [`PipeArgs`](mcp:get_api_reference?platform=blazor&component=IgbCol
Display = "symbol-narrow"
};
}
+
```
| Parameter | Description |
|---------------------------| -------------------------|
| digitsInfo | Represents Decimal representation of currency value |
-| display\- | Displays the value by narrow or wide symbol |
-
-\*display - for the default en-US locale, the code USD can be represented by the narrow symbol $ or the wide symbol US$.
+| display* | Displays the value by narrow or wide symbol |
-
+*display - for the default en-US locale, the code USD can be represented by the narrow symbol $ or the wide symbol US$.
Upon editing of cell's value the **currency symbol** will be visible as suffix or prefix. More about that could be found in the official [Cell editing topic](cell-editing.md#blazor-grid-cell-editing-and-edit-templates-example).
-
-
> When using ↑ + ↓ arrow keys the value will increment/decrement with a step based on the digitsInfo - minFractionDigits (The minimum number of digits after the decimal point. Default is 0)
### Percent
@@ -609,19 +601,20 @@ When it comes to cell editing, the value will be the same as the data source val
private IgbColumnPipeArgs formatPercentOptions = new IgbColumnPipeArgs()
{
/**
- * Decimal representation options, specified by a string in the following format:
+ *Decimal representation options, specified by a string in the following format:
* `{minIntegerDigits}`.`{minFractionDigits}`-`{maxFractionDigits}`.
- * `minIntegerDigits`: The minimum number of integer digits before the decimal point. Default is 1.
+ *`minIntegerDigits`: The minimum number of integer digits before the decimal point. Default is 1.
* `minFractionDigits`: The minimum number of digits after the decimal point. Default is 0.
- * `maxFractionDigits`: The maximum number of digits after the decimal point. Default is 3.
+ *`maxFractionDigits`: The maximum number of digits after the decimal point. Default is 3.
*/
DigitsInfo = "2.2-3"
};
}
+
```
-> [!Note]
-> When using ↑ + ↓ arrow keys the value will increment/decrement with a step based on the digitsInfo - minFractionDigits (The minimum number of digits after the decimal point. Default is 0)
+**Note:**
+When using ↑ + ↓ arrow keys the value will increment/decrement with a step based on the digitsInfo - minFractionDigits (The minimum number of digits after the decimal point. Default is 0)
## Default Editing Template
@@ -653,21 +646,19 @@ Custom template and column formatter definition will always take precedence over
+```
+
+```javascript
//In Javascript
igRegisterScript("CurrencyFormatter", (value) => {
return `$ ${value.toFixed(0)}`;
}, false);
+
```
## API References
-
-- `Cell`
-- [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn)
-- [`PipeArgs`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=PipeArgs)
-- [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
-- [`Locale`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=Locale)
-- [`DataType`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=DataType)
-
+[`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
+[`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn)
## Additional Resources
- For custom templates you can see [cell editing topic](cell-editing.md#cell-editing-templates)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-conditional-cell-styling.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-conditional-cell-styling.md
index 38dd1a057..c25a08465 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-conditional-cell-styling.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-conditional-cell-styling.md
@@ -1,41 +1,40 @@
---
-title: Blazor Grid Conditional Cell Styling - Ignite UI for Blazor
-_description: Let users identify different cells quickly. Define a variety of cell styles. Use the conditional cell styling in Blazor Grid to make cells stand out.
-_keywords: conditional styling, Blazor, Ignite UI for Blazor, Infragistics
-_license: commercial
-mentionedTypes: ["Infragistics.Controls.Grid", "Infragistics.Controls.GridCell", "Infragistics.Controls.GridRow", "Infragistics.Controls.Column"]
-sharedComponents: ["Grid", "TreeGrid", "HierarchicalGrid"]
-namespace: Infragistics.Controls
-_canonicalLink: grids/grid/conditional-cell-styling
+title: "Blazor Grid Conditional Cell Styling - Ignite UI for Blazor"
+description: Let users identify different cells quickly. Define a variety of cell styles. Use the conditional cell styling in Blazor Grid to make cells stand out.
+keywords: conditional styling, Blazor, Ignite UI for Blazor, Infragistics
+license: commercial
+_canonicalLink: "grids/grid/conditional-cell-styling"
+llms:
+ description: "The Ignite UI for Blazor Conditional Styling feature in Blazor Grid allows custom styling on a row or cell level."
+_componentKey: Grid
_tocName: Conditional Styling
_premium: true
---
-
# Blazor Grid Conditional Styling
-The Ignite UI for Blazor Conditional Styling feature in Blazor Grid allows custom styling on a row or cell level. The [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) Conditional Styling functionality is used to visually emphasize or highlight data that meets certain criteria, making it easier for users to identify important information or trends within the grid.
+The Ignite UI for Blazor Conditional Styling feature in Blazor Grid allows custom styling on a row or cell level. The [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) Conditional Styling functionality is used to visually emphasize or highlight data that meets certain criteria, making it easier for users to identify important information or trends within the grid.
## Grid Conditional Row Styling
The [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) component in Ignite UI for Blazor provides two ways to **conditional styling of rows** based on custom rules.
-- By setting [`RowClasses`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=RowClasses) input on the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) component;
-- By setting [`RowStyles`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=RowStyles) input on the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) component;
+- By setting [`IgbGrid.rowClasses`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=rowClasses) input on the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) component;
+- By setting [`IgbGrid.rowStyles`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=rowStyles) input on the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) component;
Further in this topic we will cover both of them in more details.
### Using Row Classes
-You can conditionally style the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) rows by setting the [`RowClasses`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=RowClasses) input and define custom rules.
+You can conditionally style the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) rows by setting the [`IgbGrid.rowClasses`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=rowClasses) input and define custom rules.
```razor
```
-The [`RowClasses`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=RowClasses) input accepts an object literal, containing key-value pairs, where the key is the name of the CSS class, while the value is either a callback function that returns a boolean, or boolean value.
+The [`IgbGrid.rowClasses`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=rowClasses) input accepts an object literal, containing key-value pairs, where the key is the name of the CSS class, while the value is either a callback function that returns a boolean, or boolean value.
-```razor
+```javascript
igRegisterScript("RowClassesHandler", () => {
return {
activeRow: (row) => row.index % 2 === 0
@@ -171,9 +170,9 @@ public class NwindData
### Using Row Styles
-The [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) control exposes the [`RowStyles`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=RowStyles) property which allows conditional styling of the data rows. Similar to [`RowClasses`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=RowClasses) it accepts an object literal where the keys are style properties and the values are expressions for evaluation. Also, you can apply regular styling (without any conditions).
+The [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) control exposes the [`IgbGrid.rowStyles`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=rowStyles) property which allows conditional styling of the data rows. Similar to [`IgbGrid.rowClasses`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=rowClasses) it accepts an object literal where the keys are style properties and the values are expressions for evaluation. Also, you can apply regular styling (without any conditions).
-> The callback signature for both [`RowStyles`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=RowStyles) and [`RowClasses`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=RowClasses) is:
+> The callback signature for both [`IgbGrid.rowStyles`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=rowStyles) and [`IgbGrid.rowClasses`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=rowClasses) is:
```razor
(row) => boolean
@@ -181,7 +180,7 @@ The [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) control
Let's define our styles:
-```razor
+```javascript
igRegisterScript("WebGridRowStylesHandler", () => {
return {
'background': (row) => (+row.data['Change'] < 0 && +row.data['AnnualChange'] < 0) ? '#FF000088' : '#00000000',
@@ -196,8 +195,6 @@ igRegisterScript("WebGridRowStylesHandler", () => {
```
-
-
### Demo
```razor
@@ -420,21 +417,18 @@ public class FinancialDataAll
The [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) component in Ignite UI for Blazor provides two ways to **conditional styling of cells** based on custom rules.
-- By setting the [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn) input [`CellClasses`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=CellClasses) to an object literal containing key-value pairs. The key is the name of the CSS class, while the value is either a callback function that returns a boolean, or boolean value. The result is a convenient material styling of the cell.
+- By setting the [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn) input [`IgbColumn.cellClasses`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=cellClasses) to an object literal containing key-value pairs. The key is the name of the CSS class, while the value is either a callback function that returns a boolean, or boolean value. The result is a convenient material styling of the cell.
### Using Cell Classes
-
-You can conditionally style the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) cells by setting the [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn) [`CellClasses`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=CellClasses) input and define custom rules.
+You can conditionally style the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) cells by setting the [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn) [`IgbColumn.cellClasses`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=cellClasses) input and define custom rules.
```razor
```
-
-
-The [`CellClasses`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=CellClasses) input accepts an object literal, containing key-value pairs, where the key is the name of the CSS class, while the value is either a callback function that returns a boolean, or boolean value.
+The [`IgbColumn.cellClasses`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=cellClasses) input accepts an object literal, containing key-value pairs, where the key is the name of the CSS class, while the value is either a callback function that returns a boolean, or boolean value.
-```razor
+```javascript
igRegisterScript("CellClassesHandler", () => {
return {
downFont: (rowData, columnKey, cellValue, rowIndex) => rowData[columnKey] <= 95,
@@ -453,8 +447,6 @@ igRegisterScript("CellClassesHandler", () => {
}
```
-
-
### Demo
```razor
@@ -586,7 +578,7 @@ public class AthletesData
}
```
-- By using the [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn) input [`CellStyles`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=CellStyles) which accepts an object literal where the keys are style properties and the values are expressions for evaluation.
+- By using the [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn) input [`IgbColumn.cellStyles`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=cellStyles)` which accepts an object literal where the keys are style properties and the values are expressions for evaluation.
> The callback signature for both `cellStyles` and `cellClasses` is now changed to:
@@ -596,13 +588,11 @@ public class AthletesData
### Using Cell Styles
-Columns expose the [`CellStyles`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=CellStyles) property which allows conditional styling of the column cells. Similar to [`CellClasses`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=CellClasses) it accepts an object literal where the keys are style properties and the values are expressions for evaluation. Also, you can apply regular styling with ease (without any conditions).
+Columns expose the [`CellStyles`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=cellStyles) property which allows conditional styling of the column cells. Similar to [`IgbColumn.cellClasses`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=cellClasses) it accepts an object literal where the keys are style properties and the values are expressions for evaluation. Also, you can apply regular styling with ease (without any conditions).
Let's define our styles:
-
-
-```razor
+```javascript
igRegisterScript("WebGridCellStylesHandler", () => {
return {
background: (rowData, columnKey, cellValue, rowIndex) => rowIndex % 2 === 0 ? "#EFF4FD" : null,
@@ -624,8 +614,6 @@ igRegisterScript("WebGridCellStylesHandler", () => {
```
-
-
### Demo
```razor
@@ -751,17 +739,13 @@ public class AthletesData
- If there are cells bind to the same condition (from different columns) and one cell is updated, the other cells won't be updated based on the new value, if the condition is met.
-
-
## API References
-- [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn)
-- [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
+[`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
+[`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn)
## Additional Resources
-
-
- [Virtualization and Performance](virtualization.md)
- [Editing](editing.md)
- [Paging](paging.md)
@@ -774,14 +758,9 @@ public class AthletesData
- [Column Hiding](column-hiding.md)
- [Selection](selection.md)
- [Searching](search.md)
-
-
-
- [Multi-column Headers](multi-column-headers.md)
- [Size](size.md)
-
-
Our community is active and always welcoming to new ideas.
- [Ignite UI for Blazor **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-blazor)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-editing.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-editing.md
index 47f96a7ed..f0238abc8 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-editing.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-editing.md
@@ -1,98 +1,82 @@
---
-title: Blazor Grid Editing - Ignite UI for Blazor
-_description: Get a powerful public API and an easy way to perform data manipulations like creating, updating, or deleting records. See the Blazor Grid editing options!
-_keywords: data manipulation, Blazor, Ignite UI for Blazor, Infragistics
-_license: commercial
-mentionedTypes: ["Infragistics.Controls.Grid", "Infragistics.Controls.GridCell", "Infragistics.Controls.GridRow", "Infragistics.Controls.Column"]
-sharedComponents: ["Grid", "TreeGrid", "HierarchicalGrid"]
-namespace: Infragistics.Controls
-_canonicalLink: grids/grid/editing
+title: "Blazor Grid Editing - Ignite UI for Blazor"
+description: Get a powerful public API and an easy way to perform data manipulations like creating, updating, or deleting records. See the Blazor Grid editing options!
+keywords: data manipulation, Blazor, Ignite UI for Blazor, Infragistics
+license: commercial
+_canonicalLink: "grids/grid/editing"
+llms:
+ description: "The Ignite UI for Blazor Cell Editing feature in Blazor Grid provides an easy way to perform data manipulation operations like creating, updating, and deleting records."
+_componentKey: Grid
_tocName: Editing
---
-
# Blazor Grid Editing
The Ignite UI for Blazor Cell Editing feature in Blazor Grid provides an easy way to perform data manipulation operations like creating, updating, and deleting records. The [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) provides you with a powerful public API which allows you to customize the way these operations are performed. The data manipulation phases are:
-
- [Cell Editing](cell-editing.md)
- [Row Editing](row-editing.md)
- Batch Editing (Coming Soon)
## Setup
-In order to specify which edit mode should be enabled, the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) exposes the following boolean properties - [`Editable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Editable) and [`RowEditable`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=RowEditable).
+In order to specify which edit mode should be enabled, the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) exposes the following boolean properties - [`IgbColumn.editable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=editable) and [`IgbGrid.rowEditable`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=rowEditable).
-The [`Editable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Editable) property enables you to specify the following options:
+The [`IgbColumn.editable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=editable) property enables you to specify the following options:
- **false** - the editing for the corresponding column will be disabled. This is the default value.
- **true** - the editing for the corresponding column will be enabled.
-> Keep in mind that if the column is not editable, you can still modify its value through the public API exposed by the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid).
+>Keep in mind that if the column is not editable, you can still modify its value through the public API exposed by the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid).
-The [`RowEditable`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=RowEditable) property enables you to specify the following options:
+The [`IgbGrid.rowEditable`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=rowEditable) property enables you to specify the following options:
- **false** - the row editing in the corresponding grid will be disabled. This is the default value.
- **true** - the row editing in the corresponding grid will be enabled.
-In the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid), if you set [`RowEditable`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=RowEditable) property to true, and the [`Editable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Editable) property is not explicitly defined for any column, the editing will be enabled for all the columns except the **primary key**.
+In the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid), if you set [`IgbGrid.rowEditable`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=rowEditable) property to true, and the [`IgbColumn.editable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=editable) property is not explicitly defined for any column, the editing will be enabled for all the columns except the **primary key**.
-
- **Cell and Batch Editing** - in this scenario every singe modification of each cell is preserved separately and undo/ redo operations are available on cell level;
- **Row and Batch Editing** - in this scenario the modifications are preserved on row level so undo/ redo operations will not be working for each cell that is modified but for the bunch of cell from each row.
### Editing Templates
-If you want to use a data type specific edit templates, you should specify the column's [`DataType`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=DataType) property. So let's now see what are the default templates for each type:
+ If you want to use a data type specific edit templates, you should specify the column's [`IgbColumn.dataType`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=dataType) property. So let's now see what are the default templates for each type:
- For `string` data type, default template is using [`IgbInput`](mcp:get_api_reference?platform=blazor&component=IgbInput).
- For `number` data type, default template is using [`IgbInput`](mcp:get_api_reference?platform=blazor&component=IgbInput) type="number", so if you try to update cell to a value which can not be parsed to a number your change is going to be discarded, and the value in the cell will be set to 0.
- For `date` data type, default template is using [`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker)
-- For `dateTime` data type, default template is using `DateTimeEditor`. This editor will give you a mask directions for the input elements part of the DateTime object.
-- For `time` - data type, default template is using `TimePicker`.
+- For `dateTime` data type, default template is using [`IgbDatePicker`](mcp:get_api_reference?platform=blazor&component=IgbDatePicker). This editor will give you a mask directions for the input elements part of the DateTime object.
+- For `time` - data type, default template is using [`IgbDateTimeInput`](mcp:get_api_reference?platform=blazor&component=IgbDateTimeInput).
- For `boolean` data type, default template is using [`IgbCheckbox`](mcp:get_api_reference?platform=blazor&component=IgbCheckbox).
-- For `currency` data type, default template is using `InputGroup` with prefix/suffix configuration based on application or grid locale settings.
-- For `percent` data type, default template is using `InputGroup` with suffix element that shows a preview of the edited value in percents.
-
-
+- For `currency` data type, default template is using [`IgbInput`](mcp:get_api_reference?platform=blazor&component=IgbInput) with prefix/suffix configuration based on application or grid locale settings.
+- For `percent` data type, default template is using [`IgbInput`](mcp:get_api_reference?platform=blazor&component=IgbInput) with suffix element that shows a preview of the edited value in percents.
- For custom templates you can see [Cell Editing topic](cell-editing.md#blazor-grid-cell-editing-and-edit-templates-example)
-
-
-
-
All available column data types could be found in the official [Column types topic](column-types.md#default-template).
-
-
### Event Arguments and Sequence
-
-
The grid exposes a wide array of events that provide greater control over the editing experience. These events are fired during the [**Row Editing**](row-editing.md) and [**Cell Editing**](cell-editing.md) lifecycle - when starting, committing or canceling the editing action.
-
-
-| Event | Description | Arguments | Cancellable |
-| --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------- | ----------- |
-| `RowEditEnter` | If `RowEditing` is enabled, fires when a row enters edit mode | [`IgbGridEditEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbGridEditEventArgs) | **true*- |
-| `CellEditEnter` | Fires when a cell **enters edit mode** (after `RowEditEnter`) | [`IgbGridEditEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbGridEditEventArgs) | **true*- |
-| `CellEdit` | If value is changed, fires just **before** a cell's value is **committed** (e.g. by pressing ENTER) | [`IgbGridEditEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbGridEditEventArgs) | **true*- |
-| `CellEditDone` | If value is changed, fires **after** a cell has been edited and cell's value is **committed*- | [`IgbGridEditDoneEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbGridEditDoneEventArgs) | **false*- |
-| `CellEditExit` | Fires when a cell **exits edit mode*- | [`IgbGridEditDoneEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbGridEditDoneEventArgs) | **false*- |
-| `RowEdit` | If `RowEditing` is enabled, fires just before a row in edit mode's value is **committed** (e.g. by clicking the `Done` button on the Row Editing Overlay) | [`IgbGridEditEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbGridEditEventArgs) | **true*- |
-| `RowEditDone` | If `RowEditing` is enabled, fires **after** a row has been edited and new row's value has been **committed**. | [`IgbGridEditDoneEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbGridEditDoneEventArgs) | **false*- |
-| `RowEditExit` | If `RowEditing` is enabled, fires when a row **exits edit mode*- | [`IgbGridEditDoneEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbGridEditDoneEventArgs) | **false*- |
+ | Event | Description | Arguments | Cancellable |
+ | --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------- | ----------- |
+ | [`IgbGrid.rowEditEnter`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=rowEditEnter) | If `RowEditing` is enabled, fires when a row enters edit mode | [`IgbGridEditEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbGridEditEventArgs) | **true** |
+ | [`IgbGrid.cellEditEnter`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=cellEditEnter) | Fires when a cell **enters edit mode** (after [`IgbGrid.rowEditEnter`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=rowEditEnter)) | [`IgbGridEditEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbGridEditEventArgs) | **true** |
+ | [`IgbGrid.cellEdit`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=cellEdit) | If value is changed, fires just **before** a cell's value is **committed** (e.g. by pressing ENTER) | [`IgbGridEditEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbGridEditEventArgs) | **true** |
+ | [`IgbGrid.cellEditDone`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=cellEditDone) | If value is changed, fires **after** a cell has been edited and cell's value is **committed** | [`IgbGridEditDoneEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbGridEditDoneEventArgs) | **false** |
+ | [`IgbGrid.cellEditExit`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=cellEditExit) | Fires when a cell **exits edit mode** | [`IgbGridEditDoneEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbGridEditDoneEventArgs) | **false** |
+ | [`IgbGrid.rowEdit`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=rowEdit) | If `RowEditing` is enabled, fires just before a row in edit mode's value is **committed** (e.g. by clicking the `Done` button on the Row Editing Overlay) | [`IgbGridEditEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbGridEditEventArgs) | **true** |
+ | [`IgbGrid.rowEditDone`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=rowEditDone) | If `RowEditing` is enabled, fires **after** a row has been edited and new row's value has been **committed**. | [`IgbGridEditDoneEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbGridEditDoneEventArgs) | **false** |
+ | [`IgbGrid.rowEditExit`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=rowEditExit) | If `RowEditing` is enabled, fires when a row **exits edit mode** | [`IgbGridEditDoneEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbGridEditDoneEventArgs) | **false** |
### Event Cancellation
-- `RowEditEnter` - Neither `Row` nor `Cell` will enter edit mode.
-- `CellEditEnter` - Prevents entering cell edit. If [`RowEditable`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=RowEditable) is enabled, row edit will be triggered, although cell edit will remain forbidden.
-- `CellEdit` - Allowed `Cell` and/or `Row` edit, hitting **Done** button or **Enter** won't commit the value or row transaction. Cell editing and Row editing won't be closed until **Cancel** button is clicked.
-- `RowEdit` - Committing cell is possible, but not the whole row. The row will stay in edit mode and the row transaction will be considered open. Hitting **Done** does not commit or close the row. **Cancel** button closes the editing process and the transaction without committing the changes.
+- [`IgbGrid.rowEditEnter`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=rowEditEnter) - Neither `Row` nor `Cell` will enter edit mode.
+- [`IgbGrid.cellEditEnter`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=cellEditEnter) - Prevents entering cell edit. If [`IgbGrid.rowEditable`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=rowEditable) is enabled, row edit will be triggered, although cell edit will remain forbidden.
+- [`IgbGrid.cellEdit`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=cellEdit) - Allowed `Cell` and/or `Row` edit, hitting **Done** button or **Enter** won't commit the value or row transaction. Cell editing and Row editing won't be closed until **Cancel** button is clicked.
+- [`IgbGrid.rowEdit`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=rowEdit) - Committing cell is possible, but not the whole row. The row will stay in edit mode and the row transaction will be considered open. Hitting **Done** does not commit or close the row. **Cancel** button closes the editing process and the transaction without committing the changes.
The following sample demonstrates the editing execution sequence in action:
@@ -210,7 +194,6 @@ public class NwindData
```
### Features integration
-
While a cell/row is in edit mode, a user may interact with the grid in many ways. The following table specifies how a certain interaction affects the current editing:
| Grid | Filtering | Sorting | Paging | Moving | Pinning | Hiding | GroupBy | Resizing | Escape | Enter | F2 | Tab | Cell Click | Add new row/Delete/Edit |
@@ -230,22 +213,22 @@ Example how to commit new values, if user tries to sort the column while a cell/
SortingScript="SortingHandler"
RowEditable="true">
+```
+```javascript
//In JavaScript
function SortingHandler() {
grid.endEdit(true);
}
igRegisterScript("SortingHandler", SortingHandler, false);
+
```
## API References
-
-- [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
-
+[`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
+[`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn)
## Additional Resources
-
-
- [Column Data Types](column-types.md#default-template)
- [Virtualization and Performance](virtualization.md)
- [Paging](paging.md)
@@ -256,5 +239,3 @@ igRegisterScript("SortingHandler", SortingHandler, false);
- [Column Resizing](column-resizing.md)
- [Selection](selection.md)
- [Searching](search.md)
-
-
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-excel-style-filtering.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-excel-style-filtering.md
index 3da378eb5..069323c35 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-excel-style-filtering.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-excel-style-filtering.md
@@ -1,15 +1,14 @@
---
-title: Blazor Grid Excel Style Filtering - Ignite UI for Blazor
-_description: Learn how to configure Excel filtering in Blazor Grid. You can enable/disable various options and customize the Excel style filter menu the way you want.
-_keywords: excel like filter, Blazor, Ignite UI for Blazor, Infragistics
-_license: commercial
-mentionedTypes: ["Infragistics.Controls.Grid", "Infragistics.Controls.GridCell", "Infragistics.Controls.GridRow", "Infragistics.Controls.Column"]
-sharedComponents: ["Grid", "TreeGrid", "PivotGrid", "HierarchicalGrid"]
-namespace: Infragistics.Controls
+title: "Blazor Grid Excel Style Filtering - Ignite UI for Blazor"
+description: Learn how to configure Excel filtering in Blazor Grid. You can enable/disable various options and customize the Excel style filter menu the way you want.
+keywords: excel like filter, Blazor, Ignite UI for Blazor, Infragistics
+license: commercial
+llms:
+ description: "The Blazor Grid exposes an Excel-style filtering feature that provides an Excel-like filtering UI."
+_componentKey: Grid
_tocName: Excel Style Filtering
_premium: true
---
-
# Excel Filtering in Blazor Grid
The Blazor Grid exposes an Excel-style filtering feature that provides an Excel-like filtering UI. It simplifies the process of working with large datasets. The main idea is to help them filter the data that is most relevant, while eliminating irrelevant entries.
@@ -223,7 +222,7 @@ public class NwindData
## Usage
-To turn on the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) component's Excel-style filtering, two inputs should be set. The [`AllowFiltering`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=AllowFiltering) should be set to **true** and the [`FilterMode`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=FilterMode) should be set to `ExcelStyleFilter` value.
+To turn on the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) component's Excel-style filtering, two inputs should be set. The [`IgbGrid.allowFiltering`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=allowFiltering) should be set to **true** and the [`IgbGrid.filterMode`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=filterMode) should be set to `ExcelStyleFilter` value.
```razor
@@ -244,7 +243,7 @@ To apply a filter with different expressions, you can click the **Text filter**,
## Configure Menu Features
-Sorting, pinning and hiding features can be removed from the filter menu using the corresponding inputs: [`Sortable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Sortable), [`Selected`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Selected), [`DisablePinning`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=DisablePinning), [`DisableHiding`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=DisableHiding).
+Sorting, pinning and hiding features can be removed from the filter menu using the corresponding inputs: [`IgbColumn.sortable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=sortable), [`IgbColumn.selected`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=selected), [`IgbColumnState.disablePinning`](mcp:get_api_reference?platform=blazor&component=IgbColumnState&member=disablePinning), [`IgbColumnState.disableHiding`](mcp:get_api_reference?platform=blazor&component=IgbColumnState&member=disableHiding).
```razor
@@ -256,9 +255,7 @@ Sorting, pinning and hiding features can be removed from the filter menu using t
```
-In the sample below **Product Name** and **Discontinued** columns have all four features enabled, **Quantity Per Unit** have all three disabled, **Unit Price** has only sorting and **Order Date** has only pinning and hiding and all are [`Selectable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Selectable).
-
-
+In the sample below **Product Name** and **Discontinued** columns have all four features enabled, **Quantity Per Unit** have all three disabled, **Unit Price** has only sorting and **Order Date** has only pinning and hiding and all are [`IgbColumn.selectable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=selectable).
```razor
@using IgniteUI.Blazor.Controls
@@ -438,9 +435,9 @@ public class NwindData
## Templates
-If you want to further customize the Excel style filter menu, you can use the [`ExcelStyleHeaderIconTemplate`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=ExcelStyleHeaderIconTemplate) property to define a custom template for the header icon of the menu.
+If you want to further customize the Excel style filter menu, you can use the [`IgbGrid.excelStyleHeaderIconTemplate`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=excelStyleHeaderIconTemplate) property to define a custom template for the header icon of the menu.
-The following code demonstrates how to customize the Excel style filter menu using the [`ExcelStyleHeaderIconTemplate`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=ExcelStyleHeaderIconTemplate):
+The following code demonstrates how to customize the Excel style filter menu using the [`IgbGrid.excelStyleHeaderIconTemplate`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=excelStyleHeaderIconTemplate):
```razor
+```
+```javascript
// In JavaScript
igRegisterScript("WebGridFilterAltIconTemplate", (ctx) => {
var html = window.igTemplating.html;
return html``
}, false);
-```
-
-
-
-
-
-
-
-
+```
```razor
@using IgniteUI.Blazor.Controls
@@ -657,7 +627,7 @@ public class NwindData
## Styling
-In addition to the predefined themes, the grid could be further customized by setting some of the available [CSS properties](../theming-grid.md).
+In addition to the predefined themes, the grid could be further customized by setting some of the available [CSS properties](../grid/theming-grid.md).
In case you would like to change some of the colors, you need to set a class for the grid first:
```razor
@@ -841,14 +811,10 @@ public class NwindData
```
## API References
-
-- [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn)
-- [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
-
+[`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
+[`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn)
## Additional Resources
-
-
- [Virtualization and Performance](virtualization.md)
- [Paging](paging.md)
- [Sorting](sorting.md)
@@ -858,8 +824,6 @@ public class NwindData
- [Column Resizing](column-resizing.md)
- [Selection](selection.md)
-
-
Our community is active and always welcoming to new ideas.
- [Ignite UI for Blazor **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-blazor)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-export-excel.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-export-excel.md
index 47f8432a5..f3363c55d 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-export-excel.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-export-excel.md
@@ -1,16 +1,15 @@
---
-title: Blazor Grid Exporting - Ignite UI for Blazor
-_description: With Ignite UI for Blazor Grid exporting you can export grid data to Excel, CSV, and PDF formats while preserving features like filtering, sorting, and the current grid state.
-_keywords: Blazor, Grid, Grid, Ignite UI for Blazor, Infragistics
-_license: commercial
-mentionedTypes: ["Infragistics.Controls.Grid", "Infragistics.Controls.GridCell", "Infragistics.Controls.GridRow", "Infragistics.Controls.Column"]
-sharedComponents: ["Grid", "TreeGrid", "HierarchicalGrid"]
-namespace: Infragistics.Controls
-_canonicalLink: grids/grid/export-excel
+title: "Blazor Grid Exporting - Ignite UI for Blazor"
+description: With Ignite UI for Blazor Grid exporting you can export grid data to Excel, CSV, and PDF formats while preserving features like filtering, sorting, and the current grid state.
+keywords: "Blazor, Grid, Grid, Ignite UI for Blazor, Infragistics"
+license: commercial
+_canonicalLink: "grids/grid/export-excel"
+llms:
+ description: "The Ignite UI for Blazor Grid provides data export functionality through the Grid Toolbar Exporter component."
+_componentKey: Grid
_tocName: Exporting
_premium: true
---
-
# Blazor Grid Exporting
The Ignite UI for Blazor Grid provides data export functionality through the Grid Toolbar Exporter component. You can export the displayed data to Excel, CSV, or PDF formats. Excel exports use the MS Excel table format, which supports features like filtering and sorting. To enable exporting, place the [`IgbGridToolbarExporter`](mcp:get_api_reference?platform=blazor&component=IgbGridToolbarExporter) inside the grid's toolbar. By default, all export formats are enabled.
@@ -185,25 +184,35 @@ public class InvoicesData
}
```
-
+## Exporting Grid Data
+
+To initiate an export, you can use the handler of a button in your component's template.
+
+```Razor
+
+Export to Excel
+Export to PDF
+```
## Export Grouped Data
To export grouped data, group the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) by one or more columns. The browser will download a file named "ExportedDataFile.xlsx" that contains the data from the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) component in Excel format, grouped by the selected columns. You can find an example at the beginning of the topic.
-
-
## Export Multi Column Headers Grid
-You can export [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) with defined [multi-column headers](multi-column-headers.md). All headers are reflected in the exported Excel file as they are displayed in the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid). If you want to exclude the defined multi-column headers from the exported data, set the `ExporterOption` `IgnoreMultiColumnHeaders` to `true`.
+You can export [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) with defined [multi-column headers](multi-column-headers.md). All headers are reflected in the exported Excel file as they are displayed in the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid). If you want to exclude the defined multi-column headers from the exported data, set the `ExporterOption` [`IgbGridToolbarExportEventArgs.ignoreMultiColumnHeaders`](mcp:get_api_reference?platform=blazor&component=IgbGridToolbarExportEventArgs&member=ignoreMultiColumnHeaders) to `true`.
+
+**Note:**
+The exported `IgbGrid` will not be formatted as a table, since Excel tables do not support multiple column headers.
-> [!Note]
-> The exported [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) will not be formatted as a table, since Excel tables do not support multiple column headers.
+**Note:**
+The exported [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) will not be formatted as a table, since Excel tables do not support multiple column headers.
-> [!Note]
-> [`IgbGridToolbarExporter`](mcp:get_api_reference?platform=blazor&component=IgbGridToolbarExporter) is also configured to demonstrate how you can control which export formats are available to end users. Use the toolbar exporter options to toggle Excel, CSV, or PDF buttons:
->
-> - [`ExportExcel`](mcp:get_api_reference?platform=blazor&component=IgbGridToolbarExporter&member=ExportExcel), `ExportCsv`, `ExportPdf`
+**Note:**
+[`IgbGridToolbarExporter`](mcp:get_api_reference?platform=blazor&component=IgbGridToolbarExporter) is also configured to demonstrate how you can control which export formats are available to end users. Use the toolbar exporter options to toggle Excel, CSV, or PDF buttons:
+- `export-excel`, `export-csv`, `export-pdf`
+- `exportExcel`, `exportCsv`, `exportPdf`
+- [`ExportExcel`](mcp:get_api_reference?platform=blazor&component=IgbGridToolbarExporter&member=exportExcel), `ExportCsv`, `ExportPdf`
```razor
@using IgniteUI.Blazor.Controls
@@ -413,12 +422,11 @@ public class CustomersData
## Export Grid with Frozen Column Headers
-By default, the Excel Exporter service exports the grid with scrollable (unfrozen) column headers. In many scenarios you may want to freeze all headers at the top of the exported Excel file so they always stay in view as the user scrolls through the records. To achieve this, set the `ExporterOption` `FreezeHeaders` to `true`.
+By default, the Excel Exporter service exports the grid with scrollable (unfrozen) column headers. In many scenarios you may want to freeze all headers at the top of the exported Excel file so they always stay in view as the user scrolls through the records. To achieve this, set the `ExporterOption` [`IgbGridToolbarExportEventArgs.freezeHeaders`](mcp:get_api_reference?platform=blazor&component=IgbGridToolbarExportEventArgs&member=freezeHeaders) to `true`.
-> [!Note]
-> PDF exports automatically include the column header row at the top of the document, so readers retain the same context when they open or print the file.
+**Note:**
+PDF exports automatically include the column header row at the top of the document, so readers retain the same context when they open or print the file.
-
```razor
@@ -434,26 +442,19 @@ By default, the Excel Exporter service exports the grid with scrollable (unfroze
igRegisterScript("WebGridExportEventFreezeHeaders", (ev) => {
ev.detail.options.freezeHeaders = false;
}, false);
-```
-
+```
## Known Limitations
-
-
|Limitation|Description|
|--- |--- |
|Max worksheet size|The maximum worksheet size supported by Excel is 1,048,576 rows by 16,384 columns.|
|Cell Styling|The Excel exporter service does not support exporting a custom style applied to a cell component. In such scenarios we recommend using the [Excel Library](../../excel-library.md).|
|Wide PDF layouts|Very wide grids can force PDF columns to shrink to fit the page. Apply column widths or hide low-priority fields before exporting to keep the document legible.|
-
-
## API References
-
-- [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
-
+[`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
## Additional Resources
Our community is active and always welcoming to new ideas.
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-filtering.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-filtering.md
index b0039b8ff..f300e9113 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-filtering.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-filtering.md
@@ -1,15 +1,14 @@
---
-title: Blazor Grid Filtering - Ignite UI for Blazor
-_description: Start using angular filter to return specific data with Blazor Grid. Check the advanced filtering options, including data-type Excel-style filtering.
-_keywords: filter, Blazor, Grid, IgbGrid, Ignite UI for Blazor, Infragistics
-_license: commercial
-mentionedTypes: ["Infragistics.Controls.Grid", "Infragistics.Controls.GridCell", "Infragistics.Controls.GridRow", "Infragistics.Controls.Column"]
-sharedComponents: ["Grid", "TreeGrid", "HierarchicalGrid"]
-namespace: Infragistics.Controls
-_canonicalLink: grids/grid/filtering
+title: "Blazor Grid Filtering - Ignite UI for Blazor"
+description: Start using angular filter to return specific data with Blazor Grid. Check the advanced filtering options, including data-type Excel-style filtering.
+keywords: filter, Blazor, Grid, IgbGrid, Ignite UI for Blazor, Infragistics
+license: commercial
+_canonicalLink: "grids/grid/filtering"
+llms:
+ description: "The Ignite UI for Blazor Filtering in Blazor Grid is a feature that allows for selectively displaying or hiding data based on specific criteria or conditions."
+_componentKey: Grid
_tocName: Filtering
---
-
# Blazor Grid Filtering
The Ignite UI for Blazor Filtering in Blazor Grid is a feature that allows for selectively displaying or hiding data based on specific criteria or conditions. There is a bound data container through which the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) Component provides rich filtering API and all the filtering capabilities. The available filtering types here are three:
@@ -135,25 +134,21 @@ public class NwindData
## Setup
-In order to specify if filtering is enabled and which filtering mode should be used, the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) exposes the following properties - [`AllowFiltering`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=AllowFiltering), [`AllowAdvancedFiltering`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=AllowAdvancedFiltering), [`FilterMode`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=FilterMode) and [`Filterable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Filterable).
-
-Property [`AllowFiltering`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=AllowFiltering) enables you to specify the following options:
+In order to specify if filtering is enabled and which filtering mode should be used, the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) exposes the following properties - [`IgbGrid.allowFiltering`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=allowFiltering), [`IgbGrid.allowAdvancedFiltering`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=allowAdvancedFiltering), [`IgbGrid.filterMode`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=filterMode) and [`IgbColumn.filterable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=filterable).
+Property [`IgbGrid.allowFiltering`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=allowFiltering) enables you to specify the following options:
- **false** - the filtering for the corresponding grid will be disabled. This is the default value.
- **true** - the filtering for the corresponding grid will be enabled.
-Property [`AllowAdvancedFiltering`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=AllowAdvancedFiltering) enables you to specify the following options:
-
+Property [`IgbGrid.allowAdvancedFiltering`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=allowAdvancedFiltering) enables you to specify the following options:
- **false** - the advanced filtering for the corresponding grid will be disabled. This is the default value.
- **true** - the advanced filtering for the corresponding grid will be enabled.
-Property [`FilterMode`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=FilterMode) enables you to specify the following options:
-
+Property [`IgbGrid.filterMode`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=filterMode) enables you to specify the following options:
- **QuickFilter** - a simplistic filtering UI. This is the default value.
- **ExcelStyleFilter** - an Excel-like filtering UI.
-Property [`Filterable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Filterable) enables you to specify the following options:
-
+Property [`IgbColumn.filterable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=filterable) enables you to specify the following options:
- **true** - the filtering for the corresponding column will be enabled. This is the default value.
- **false** - the filtering for the corresponding column will be disabled.
@@ -164,18 +159,14 @@ Property [`Filterable`](mcp:get_api_reference?platform=blazor&component=IgbColum
```
-
-
-To enable the [Advanced filtering](advanced-filtering.md) however, you need to set the [`AllowAdvancedFiltering`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=AllowAdvancedFiltering) input property to **true**
-
-
+To enable the [Advanced filtering](advanced-filtering.md) however, you need to set the [`IgbGrid.allowAdvancedFiltering`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=allowAdvancedFiltering) input property to **true**
```razor
```
-> [!Note]
-> You can enable both the `QuickFilter` or `ExcelStyleFilter` and the advanced filtering user interfaces in the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid). Both filtering user interfaces will work independently of one another. The final filtered result in the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) is the intersection between the results of the two filters.
+**Note:**
+You can enable both the `QuickFilter` or `ExcelStyleFilter` and the advanced filtering user interfaces in the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid). Both filtering user interfaces will work independently of one another. The final filtered result in the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) is the intersection between the results of the two filters.
## Interaction
@@ -185,13 +176,9 @@ While some filtering conditions have been applied to a column, and the filter ro
## Usage
-There's a default filtering strategy provided out of the box, as well as all the standard filtering conditions, which the developer can replace with their own implementation. In addition, we've provided a way to easily plug in your own custom filtering conditions. The [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) currently provides not only a simplistic filtering UI, but also more complex filtering options. Depending on the set [`DataType`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=DataType) of the column, the correct set of **filtering operations** is loaded inside the filter UI dropdown. Additionally, you can set the `IgnoreCase` and the initial `Condition` properties.
+There's a default filtering strategy provided out of the box, as well as all the standard filtering conditions, which the developer can replace with their own implementation. In addition, we've provided a way to easily plug in your own custom filtering conditions. The [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) currently provides not only a simplistic filtering UI, but also more complex filtering options. Depending on the set [`IgbColumn.dataType`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=dataType) of the column, the correct set of **filtering operations** is loaded inside the filter UI dropdown. Additionally, you can set the [`IgnoreCase`](mcp:get_api_reference?platform=blazor&component=IgbFilteringExpression&member=ignoreCase) and the initial `Condition` properties.
-The filtering feature is enabled for the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) component by setting the [`AllowFiltering`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=AllowFiltering) input to **true**. The default [`FilterMode`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=FilterMode) is `QuickFilter` and it **cannot** be changed run time. To disable this feature for a certain column – set the [`Filterable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=Filterable) input to **false**.
-
-
-
-
+The filtering feature is enabled for the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) component by setting the [`IgbGrid.allowFiltering`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=allowFiltering) input to **true**. The default [`IgbGrid.filterMode`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=filterMode) is `QuickFilter` and it **cannot** be changed run time. To disable this feature for a certain column – set the [`IgbColumn.filterable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=filterable) input to **false**.
```razor
@@ -200,12 +187,12 @@ The filtering feature is enabled for the [`IgbGrid`](mcp:get_api_reference?platf
```
-> [!Note]
-> If values of type **string** are used by a column of data type **date**, the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) won't parse them to **date** objects and using filtering conditions won't be possible. If you want to use **string** objects, additional logic should be implemented on the application level, in order to parse the values to **date** objects.
+**Note:**
+If values of type **string** are used by a column of data type **date**, the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) won't parse them to **date** objects and using filtering conditions won't be possible. If you want to use **string** objects, additional logic should be implemented on the application level, in order to parse the values to **date** objects.
## Initial filtered state
-To set the initial filtering state of the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid), set the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) [`FilteringExpressionsTree`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=FilteringExpressionsTree) property to an array of [`FilteringExpressionsTree`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=FilteringExpressionsTree) for each column to be filtered.
+To set the initial filtering state of the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid), set the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) [`IgbFilteringExpressionsTree`](mcp:get_api_reference?platform=blazor&component=IgbFilteringExpressionsTree) property to an array of [`IgbFilteringExpressionsTree`](mcp:get_api_reference?platform=blazor&component=IgbFilteringExpressionsTree) for each column to be filtered.
```razor
@@ -259,7 +247,7 @@ When set to `OR`, a row will be returned when either the 'ProductName' cell valu
## Styling
-In addition to the predefined themes, the grid could be further customized by setting some of the available [CSS properties](../theming-grid.md).
+In addition to the predefined themes, the grid could be further customized by setting some of the available [CSS properties](../grid/theming-grid.md).
In case you would like to change some of the colors, you need to set a class for the grid first:
```razor
@@ -486,18 +474,14 @@ public class NwindData
## Known Limitations
-> [!Note]
-> Some browsers such as Firefox fail to parse regional specific decimal separators by considering them grouping separators, thus resulting in them being invalid. When inputting such values for a numeric column filter value, only the valid part of the number will be applied to the filtering expression. For further information, refer to the Firefox [issue](https://bugzilla.mozilla.org/show_bug.cgi?id=1199665).
+**Note:**
+Some browsers such as Firefox fail to parse regional specific decimal separators by considering them grouping separators, thus resulting in them being invalid. When inputting such values for a numeric column filter value, only the valid part of the number will be applied to the filtering expression. For further information, refer to the Firefox [issue](https://bugzilla.mozilla.org/show_bug.cgi?id=1199665).
## API References
-
-- [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
-- [`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn)
-
+[`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
+[`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn)
## Additional Resources
-
-
- [Virtualization and Performance](virtualization.md)
- [Paging](paging.md)
- [Sorting](sorting.md)
@@ -507,8 +491,6 @@ public class NwindData
- [Column Resizing](column-resizing.md)
- [Selection](selection.md)
-
-
Our community is active and always welcoming to new ideas.
- [Ignite UI for Blazor **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-blazor)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-groupby.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-groupby.md
index abdce71ab..105adcae2 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-groupby.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-groupby.md
@@ -1,20 +1,20 @@
---
-title: Blazor Grid Group By | Group by multiple fields | Infragistics
-_description: Configure group by that allows visualizing of data records in Blazor Material table, visualize the grouped data in separate and convenient column group.
-_keywords: Blazor, Grid, Ignite UI for Blazor, group by, Infragistics
-_license: commercial
+title: "Blazor Grid Group By | Group by multiple fields | Infragistics"
+description: Configure group by that allows visualizing of data records in Blazor Material table, visualize the grouped data in separate and convenient column group.
+keywords: "Blazor, Grid, Ignite UI for Blazor, group by, Infragistics"
+license: commercial
mentionedTypes: ["Grid", "RowDirective", "GroupByRowSelectorTemplateDetails"]
namespace: Infragistics.Controls
+llms:
+ description: "The Ignite UI for Blazor Group By behavior in Blazor IgbGrid creates grouped data rows based on the column values."
_tocName: Group By
_premium: true
---
-
# Blazor Grid Group By
-The Ignite UI for Blazor Group By behavior in Blazor IgbGrid creates grouped data rows based on the column values. The Group By in the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) allows for visualizing the groups in a hierarchical structure. The grouped data rows can be expanded or collapsed and the order of grouping may be changed through the UI or API. When Row Selection is enabled, a Group By row selector is rendered in the left-most area of the group row. In case the [`RowSelection`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=RowSelection) property is set to single, checkboxes are disabled and only serve as an indication for the group where selection is placed. If the [`RowSelection`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=RowSelection) property is set to multiple, clicking over the Group By row selector selects all records belonging to this group.
+The Ignite UI for Blazor Group By behavior in Blazor IgbGrid creates grouped data rows based on the column values. The Group By in the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) allows for visualizing the groups in a hierarchical structure. The grouped data rows can be expanded or collapsed and the order of grouping may be changed through the UI or API. When Row Selection is enabled, a Group By row selector is rendered in the left-most area of the group row. In case the [`RowSelection`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=rowSelection) property is set to single, checkboxes are disabled and only serve as an indication for the group where selection is placed. If the [`RowSelection`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=rowSelection) property is set to multiple, clicking over the Group By row selector selects all records belonging to this group.
## Blazor Grid Group By Example
-
This example presents the grouping capabilities of a large amount of data. Dragging the column headers to the top (grouping area) allows users to see the data for the selected column in a hierarchical structure. They can do group by in multiple fields by dragging more column headers to the top. These grouping options come in handy when you have tables with numerous rows and columns where users want to present the data in a much faster and visually acceptable way.
```razor
@@ -211,7 +211,7 @@ public class InvoicesWorldData
## Initial Grouping State
-It is possible to define initial grouping of the grid by assigning an array of expressions to the [`GroupingExpressions`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=GroupingExpressions) property of the grid.
+It is possible to define initial grouping of the grid by assigning an array of expressions to the [`GroupingExpressions`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=groupingExpressions) property of the grid.
```razor
@@ -231,7 +231,7 @@ Grouping expressions implement the `ISortingExpression` interface.
### Grouping API
-Grouping is available through the UI and through a robust API exposed by the grid component. Developers can allow end-users to group the grid data by certain columns, by setting each column's `Groupable` property to `true`.
+Grouping is available through the UI and through a robust API exposed by the grid component. Developers can allow end-users to group the grid data by certain columns, by setting each column's [`Groupable`](mcp:get_api_reference?platform=blazor&component=IgbColumn&member=groupable) property to `true`.
```razor
@@ -249,7 +249,7 @@ Grouping is available through the UI and through a robust API exposed by the gri
```
-During runtime the expressions are gettable and settable from the `groupingExpressions` property. If you need to add or change an existing expression you may also use the [`GroupBy`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=GroupBy) method with either a single or an array of expressions.
+During runtime the expressions are gettable and settable from the [`groupingExpressions`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=groupingExpressions) property. If you need to add or change an existing expression you may also use the [`GroupBy`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=groupBy) method with either a single or an array of expressions.
```razor
@code {
@@ -261,6 +261,7 @@ During runtime the expressions are gettable and settable from the `groupingExpre
new IgbGroupingExpression() { FieldName = "ShipCity", Dir= SortingDirection.Asc }
};
+
private void GroupGrid()
{
this.grid.GroupBy(GroupingExpression1);
@@ -270,9 +271,9 @@ During runtime the expressions are gettable and settable from the `groupingExpre
### Expand/Collapse API
-In addition to grouping expressions you can also control the expansion states for group rows. They are stored in a separate property of the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) component [`GroupingExpansionState`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=GroupingExpansionState) which is a collection of [`IgbGroupByExpandState`](mcp:get_api_reference?platform=blazor&component=IgbGroupByExpandState). Each expansion state is uniquely defined by the field name it is created for and the value it represents for each level of grouping, i.e. the identifier is a hierarchy array of [`IgbGroupByKey`](mcp:get_api_reference?platform=blazor&component=IgbGroupByKey).
+In addition to grouping expressions you can also control the expansion states for group rows. They are stored in a separate property of the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) component [`GroupingExpansionState`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=groupingExpansionState) which is a collection of [`IgbGroupByExpandState`](mcp:get_api_reference?platform=blazor&component=IgbGroupByExpandState). Each expansion state is uniquely defined by the field name it is created for and the value it represents for each level of grouping, i.e. the identifier is a hierarchy array of [`IgbGroupByKey`](mcp:get_api_reference?platform=blazor&component=IgbGroupByKey).
-As with [`GroupingExpressions`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=GroupingExpressions), setting a list of [`IgbGroupByExpandState`](mcp:get_api_reference?platform=blazor&component=IgbGroupByExpandState) directly to the [`GroupingExpansionState`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=GroupingExpansionState) will change the expansion accordingly. Additionally [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) exposes a method [`ToggleGroup`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=ToggleGroup) that toggles a group by the group record instance or via the [`Expanded`](mcp:get_api_reference?platform=blazor&component=IgbRowDirective&member=Expanded) property of the row.
+As with [`GroupingExpressions`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=groupingExpressions), setting a list of [`IgbGroupByExpandState`](mcp:get_api_reference?platform=blazor&component=IgbGroupByExpandState) directly to the [`GroupingExpansionState`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=groupingExpansionState) will change the expansion accordingly. Additionally [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) exposes a method [`ToggleGroup`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=toggleGroup) that toggles a group by the group record instance or via the [`Expanded`](mcp:get_api_reference?platform=blazor&component=IgbRowDirective&member=expanded) property of the row.
```razor
@@ -291,22 +292,22 @@ As with [`GroupingExpressions`](mcp:get_api_reference?platform=blazor&component=
}
```
-Groups can be created expanded (**default**) or collapsed and the expansion states would generally only contain the state opposite to the default behavior. You can control whether groups should be created expanded or not through the [`GroupsExpanded`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=GroupsExpanded) property.
+Groups can be created expanded (**default**) or collapsed and the expansion states would generally only contain the state opposite to the default behavior. You can control whether groups should be created expanded or not through the [`GroupsExpanded`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=groupsExpanded) property.
### Select/Deselect All Rows in a Group API
-Selecting/Deselecting all rows in a group is available through the [`SelectRowsInGroup`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=SelectRowsInGroup) and [`DeselectRowsInGroup`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=DeselectRowsInGroup) API methods.
+Selecting/Deselecting all rows in a group is available through the [`SelectRowsInGroup`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=selectRowsInGroup) and [`DeselectRowsInGroup`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=deselectRowsInGroup) API methods.
-The code snippet below can be used to select all rows within a group using the group record instance [`SelectRowsInGroup`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=SelectRowsInGroup) method. Additionally, the second parameter of this method is a boolean property through which you may choose whether the previous row selection will be cleared or not. The previous selection is preserved by default.
+The code snippet below can be used to select all rows within a group using the group record instance [`SelectRowsInGroup`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=selectRowsInGroup) method. Additionally, the second parameter of this method is a boolean property through which you may choose whether the previous row selection will be cleared or not. The previous selection is preserved by default.
-```razor
+```csharp
var row = await this.grid.GetRowByIndexAsync(0);
this.grid.SelectRowsInGroup(row.GroupRow, true);
```
-If you need to deselect all rows within a group programmatically, you can use the [`DeselectRowsInGroup`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=DeselectRowsInGroup) method.
+If you need to deselect all rows within a group programmatically, you can use the [`DeselectRowsInGroup`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=deselectRowsInGroup) method.
-```razor
+```csharp
var row = await this.grid.GetRowByIndexAsync(0);
this.grid.DeselectRowsInGroup(row.GroupRow);
```
@@ -321,7 +322,9 @@ As an example, the following template would make the group rows summary more ver
```razor
+```
+```javascript
//In JavaScript:
igRegisterScript("WebGridGroupByRowTemplate", (ctx) => {
var html = window.igTemplating.html;
@@ -332,12 +335,15 @@ igRegisterScript("WebGridGroupByRowTemplate", (ctx) => {
### Group Row Selector Templates
-As mentioned above the group row except for the expand/collapse UI is fully templatable. To create a custom Group By row selector template use [`GroupByRowSelectorTemplate`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=GroupByRowSelectorTemplate). From the template, you can access the implicitly provided context variable, with properties that give you information about the Group By row's state.
+As mentioned above the group row except for the expand/collapse UI is fully templatable. To create a custom Group By row selector template use [`GroupByRowSelectorTemplate`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=groupByRowSelectorTemplate). From the template, you can access the implicitly provided context variable, with properties that give you information about the Group By row's state.
-The [`SelectedCount`](mcp:get_api_reference?platform=blazor&component=IgbGroupByRowSelectorTemplateDetails&member=SelectedCount) property shows how many of the group records are currently selected while [`TotalCount`](mcp:get_api_reference?platform=blazor&component=IgbGroupByRowSelectorTemplateDetails&member=TotalCount) shows how many records belong to the group.
+The [`SelectedCount`](mcp:get_api_reference?platform=blazor&component=IgbGroupByRowSelectorTemplateDetails&member=selectedCount) property shows how many of the group records are currently selected while [`TotalCount`](mcp:get_api_reference?platform=blazor&component=IgbGroupByRowSelectorTemplateDetails&member=totalCount) shows how many records belong to the group.
```razor
+```
+
+```javascript
//In Javascript
igRegisterScript("GroupByRowSelectorTemplate", (ctx) => {
var html = window.igTemplating.html;
@@ -345,10 +351,13 @@ igRegisterScript("GroupByRowSelectorTemplate", (ctx) => {
}, false);
```
-The [`GroupRow`](mcp:get_api_reference?platform=blazor&component=IgbGroupByRowSelectorTemplateDetails&member=GroupRow) property returns a reference to the group row.
+The [`GroupRow`](mcp:get_api_reference?platform=blazor&component=IgbGroupByRowSelectorTemplateDetails&member=groupRow) property returns a reference to the group row.
```razor
+```
+
+```javascript
//In Javascript
igRegisterScript("GroupByRowSelectorTemplate", (ctx) => {
var html = window.igTemplating.html;
@@ -357,7 +366,7 @@ igRegisterScript("GroupByRowSelectorTemplate", (ctx) => {
}, false);
```
-The [`SelectedCount`](mcp:get_api_reference?platform=blazor&component=IgbGroupByRowSelectorTemplateDetails&member=SelectedCount) and [`TotalCount`](mcp:get_api_reference?platform=blazor&component=IgbGroupByRowSelectorTemplateDetails&member=TotalCount) properties can be used to determine if the Group By row selector should be checked or indeterminate (partially selected).
+The [`SelectedCount`](mcp:get_api_reference?platform=blazor&component=IgbGroupByRowSelectorTemplateDetails&member=selectedCount) and [`TotalCount`](mcp:get_api_reference?platform=blazor&component=IgbGroupByRowSelectorTemplateDetails&member=totalCount) properties can be used to determine if the Group By row selector should be checked or indeterminate (partially selected).
## Blazor Grid Group By With Paging
@@ -502,7 +511,7 @@ public class InvoicesWorldData
## Group By With Summaries
-Integration between Group By and Summaries is described in the [Summaries](summaries.md#summaries-with-group-by) topic.
+Integration between Group By and Summaries is described in the [Summaries](./summaries.md#summaries-with-group-by) topic.
## Keyboard Navigation
@@ -522,7 +531,7 @@ The grouping UI supports the following keyboard interactions:
## Styling
-In addition to the predefined themes, the grid could be further customized by setting some of the available [CSS properties](../theming-grid.md).
+In addition to the predefined themes, the grid could be further customized by setting some of the available [CSS properties](./theming-grid.md).
In case you would like to change some of the colors, you need to set a class for the grid first:
```razor
@@ -768,25 +777,20 @@ public class InvoicesData
|Maximum amount of grouped columns is 10. | If more than 10 columns are grouped an error is thrown.
## API References
-
-- [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
-- [`IgbGroupByRecord`](mcp:get_api_reference?platform=blazor&component=IgbGroupByRecord)
-- `ISortingExpression`
-- [`Column`](mcp:get_api_reference?platform=blazor&component=IgbGroupByRecord&member=Column)
-- `IGroupByExpandState`
-- [`IgbChip`](mcp:get_api_reference?platform=blazor&component=IgbChip)
-
+[`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
+[`IgbColumn`](mcp:get_api_reference?platform=blazor&component=IgbColumn)
+[`IgbChip`](mcp:get_api_reference?platform=blazor&component=IgbChip)
## Additional Resources
- [Grid overview](../data-grid.md)
-- [Virtualization and Performance](virtualization.md)
-- [Paging](paging.md)
-- [Filtering](filtering.md)
-- [Sorting](sorting.md)
-- [Column Moving](column-moving.md)
-- [Summaries](summaries.md)
-- [Column Resizing](column-resizing.md)
-- [Selection](selection.md)
+- [Virtualization and Performance](./virtualization.md)
+- [Paging](./paging.md)
+- [Filtering](./filtering.md)
+- [Sorting](./sorting.md)
+- [Column Moving](./column-moving.md)
+- [Summaries](./summaries.md)
+- [Column Resizing](./column-resizing.md)
+- [Selection](./selection.md)
Our community is active and always welcoming to new ideas.
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-icons.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-icons.md
index ece154d20..50a0ef6c5 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-icons.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-icons.md
@@ -1,20 +1,21 @@
---
-title: Blazor {ComponentTitle} Customize Icons- Infragistics
-_description: Configure custom icons for Blazor Grid.
-_keywords: icons, custom icons, igniteui for Blazor, {ComponentKeywords}, Ignite UI for Blazor, Infragistics
-_license: MIT
+title: "Blazor Customize Icons- Infragistics"
+description: Configure custom icons for Blazor Grid.
+keywords: icons, custom icons, igniteui for Blazor, , Ignite UI for Blazor, Infragistics
+license: MIT
mentionedTypes: ["Infragistics.Controls.Grid"]
+llms:
+ description: "Explains how to replace the default Ignite UI for Blazor Grid icons with custom icons from another icon collection."
_tocName: Customize Icons
_premium: true
---
-
# Blazor Grid Customize Icons
The Ignite UI for Blazor [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) icons can be customized to use custom icons from a different collection set using the exposed API methods:
-- `registerIconFromText`
-- `registerIcon`
-- `setIconRef`
+- [`RegisterIconFromText`](mcp:get_api_reference?platform=blazor&component=IgbIcon&member=RegisterIconFromText%28string%2C+string%2C+string%29)
+- [`RegisterIcon`](mcp:get_api_reference?platform=blazor&component=IgbIcon&member=RegisterIcon%28string%2C+string%2C+string%29)
+- [`SetIconRefAsync`](mcp:get_api_reference?platform=blazor&component=IgbIcon&member=SetIconRefAsync%28string%2C+string%2C+IgbIconMeta%29)
Registering an icon caches it locally, so that it can reused between components, that reference that icon by name and collection name. Setting a reference changes which icon, from which collection, will be used when referencing that icon by name.
@@ -314,87 +315,87 @@ The following lists all internal icons. Alias is the name of the icon by which i
| Alias | Target Icon | Target Collection |
|----------------------------------|-----------------------|---------------|
-| **add*- | add | material |
-| **add_child*- | add-child | imx-icons |
-| **add_row*- | add-row | imx-icons |
-| **arrow_back*- | arrow_back | material |
-| **arrow_drop_down*- | arrow_drop_up | material |
-| **arrow_forward*- | arrow_forward | material |
-| **arrow_next*- | chevron_right | material |
-| **arrow_prev*- | chevron_left | material |
-| **case_sensitive*- | case-sensitive | imx-icons |
-| **carousel_next*- | arrow_forward | material |
-| **carousel_prev*- | arrow_back | material |
-| **chevron_left*- | chevron_left | material |
-| **chevron_right*- | chevron_right | material |
-| **clock*- | access_time | material |
-| **close*- | close | material |
-| **collapse*- | expand_less | material |
-| **confirm*- | check | material |
-| **date_range*- | date_range | material |
-| **delete*- | delete | material |
-| **drag_indicator*- | drag_indicator | material |
-| **edit*- | edit | material |
-| **error*- | error | material |
-| **expand*- | expand_more | material |
-| **expand_more*- | expand_more | material |
-| **file_download*- | file_download | material |
-| **filter_all*- | select-all | imx-icons |
-| **filter_before*- | is-before | imx-icons |
-| **filter_contains*- | contains | imx-icons |
-| **filter_does_not_contain*- | does-not-contain | imx-icons |
-| **filter_empty*- | is-empty | imx-icons |
-| **filter_equal*- | equals | imx-icons |
-| **filter_false*- | is-false | imx-icons |
-| **filter_greater_than*- | greater-than | imx-icons |
+| **add** | add | material |
+| **add_child** | add-child | imx-icons |
+| **add_row** | add-row | imx-icons |
+| **arrow_back** | arrow_back | material |
+| **arrow_drop_down** | arrow_drop_up | material |
+| **arrow_forward** | arrow_forward | material |
+| **arrow_next** | chevron_right | material |
+| **arrow_prev** | chevron_left | material |
+| **case_sensitive** | case-sensitive | imx-icons |
+| **carousel_next** | arrow_forward | material |
+| **carousel_prev** | arrow_back | material |
+| **chevron_left** | chevron_left | material |
+| **chevron_right** | chevron_right | material |
+| **clock** | access_time | material |
+| **close** | close | material |
+| **collapse** | expand_less | material |
+| **confirm** | check | material |
+| **date_range** | date_range | material |
+| **delete** | delete | material |
+| **drag_indicator** | drag_indicator | material |
+| **edit** | edit | material |
+| **error** | error | material |
+| **expand** | expand_more | material |
+| **expand_more** | expand_more | material |
+| **file_download** | file_download | material |
+| **filter_all** | select-all | imx-icons |
+| **filter_before** | is-before | imx-icons |
+| **filter_contains** | contains | imx-icons |
+| **filter_does_not_contain** | does-not-contain | imx-icons |
+| **filter_empty** | is-empty | imx-icons |
+| **filter_equal** | equals | imx-icons |
+| **filter_false** | is-false | imx-icons |
+| **filter_greater_than** | greater-than | imx-icons |
| **filter_greater_than_or_equal** | greater-than-or-equal | imx-icons |
-| **filter_in*- | is-in | imx-icons |
-| **filter_last_month*- | last-month | imx-icons |
-| **filter_last_year*- | last-year | imx-icons |
-| **filter_less_than*- | less-than | imx-icons |
-| **filter_less_than_or_equal*- | less-than-or-equal | imx-icons |
-| **filter_next_month*- | next-month | imx-icons |
-| **filter_next_year*- | next-year | imx-icons |
-| **filter_not_empty*- | not-empty | imx-icons |
-| **filter_not_equal*- | not-equal | imx-icons |
-| **filter_not_null*- | is-not-null | imx-icons |
-| **filter_null*- | is-null | imx-icons |
-| **filter_starts_with*- | starts-with | imx-icons |
-| **filter_this_month*- | this-month | imx-icons |
-| **filter_this_year*- | this-year | imx-icons |
-| **filter_today*- | today | imx-icons |
-| **filter_true*- | is-true | imx-icons |
-| **filter_yesterday*- | yesterday | imx-icons |
-| **first_page*- | first_page | material |
-| **group_work*- | group_work | material |
-| **hide*- | visibility_off | material |
-| **import_export*- | import_export | material |
-| **input_collapse*- | arrow_drop_up | material |
-| **input_clear*- | clear | material |
-| **input_expand*- | arrow_drop_down | material |
-| **jump_down*- | jump-down | imx-icons |
-| **jump_up*- | jump-up | imx-icons |
-| **last_page*- | last_page | material |
-| **more_vert*- | more_vert | material |
-| **next*- | navigate_next | material |
-| **pin*- | pin-left | imx-icons |
-| **prev*- | navigate_before | material |
-| **refresh*- | refresh | material |
-| **remove*- | cancel | material |
-| **search*- | search | material |
-| **selected*- | done | material |
-| **show*- | visibility | material |
-| **sort_asc*- | arrow_upward | material |
-| **sort_desc*- | arrow_downward | material |
-| **functions*- | functions | material |
-| **table_rows*- | table_rows | material |
-| **today*- | calendar_today | material |
-| **tree_collapse*- | expand_more | material |
-| **tree_expand*- | chevron_right | material |
-| **unfold_less*- | unfold_less | material |
-| **unfold_more*- | unfold_more | material |
-| **unpin*- | unpin-left | imx-icons |
-| **view_column*- | view_column | material |
+| **filter_in** | is-in | imx-icons |
+| **filter_last_month** | last-month | imx-icons |
+| **filter_last_year** | last-year | imx-icons |
+| **filter_less_than** | less-than | imx-icons |
+| **filter_less_than_or_equal** | less-than-or-equal | imx-icons |
+| **filter_next_month** | next-month | imx-icons |
+| **filter_next_year** | next-year | imx-icons |
+| **filter_not_empty** | not-empty | imx-icons |
+| **filter_not_equal** | not-equal | imx-icons |
+| **filter_not_null** | is-not-null | imx-icons |
+| **filter_null** | is-null | imx-icons |
+| **filter_starts_with** | starts-with | imx-icons |
+| **filter_this_month** | this-month | imx-icons |
+| **filter_this_year** | this-year | imx-icons |
+| **filter_today** | today | imx-icons |
+| **filter_true** | is-true | imx-icons |
+| **filter_yesterday** | yesterday | imx-icons |
+| **first_page** | first_page | material |
+| **group_work** | group_work | material |
+| **hide** | visibility_off | material |
+| **import_export** | import_export | material |
+| **input_collapse** | arrow_drop_up | material |
+| **input_clear** | clear | material |
+| **input_expand** | arrow_drop_down | material |
+| **jump_down** | jump-down | imx-icons |
+| **jump_up** | jump-up | imx-icons |
+| **last_page** | last_page | material |
+| **more_vert** | more_vert | material |
+| **next** | navigate_next | material |
+| **pin** | pin-left | imx-icons |
+| **prev** | navigate_before | material |
+| **refresh** | refresh | material |
+| **remove** | cancel | material |
+| **search** | search | material |
+| **selected** | done | material |
+| **show** | visibility | material |
+| **sort_asc** | arrow_upward | material |
+| **sort_desc** | arrow_downward | material |
+| **functions** | functions | material |
+| **table_rows** | table_rows | material |
+| **today** | calendar_today | material |
+| **tree_collapse** | expand_more | material |
+| **tree_expand** | chevron_right | material |
+| **unfold_less** | unfold_less | material |
+| **unfold_more** | unfold_more | material |
+| **unpin** | unpin-left | imx-icons |
+| **view_column** | view_column | material |
Here's a breakdown of all icons as used by component:
@@ -402,62 +403,60 @@ Here's a breakdown of all icons as used by component:
| Icon | Description |
| -------------------- | ------------------------------------------------------------------------------ |
-| **add*- | Used in excel-filter menu to add filter entry. |
-| **arrow_back*- | Used in various UI elements for moving a column backwards. |
-| **arrow_drop_down*- | Used in various buttons to indicate togglable menus. |
-| **arrow_forward*- | Used in various UI elements for moving a column forwards. |
-| **cancel*- | Used in various UI elements for canceling operations. |
-| **chevron_right*- | Used to indicate expandable menus, like in the excel style filtering. |
-| **close*- | Used to close an expanded menu. |
-| **confirm*- | Used to confirm an operation. |
-| **drag_indicator*- | Used to show a handle to indicate an item can be dragged. |
-| **error*- | Used in editable cells to indicate erroneous data input. |
-| **expand_more*- | Used by the excel filtering menu to indicate the addition of more filters. |
-| **file_download*- | Used by the excel filter exporter. |
-| **filter\_*- | Used for various filtering operands. |
-| **group_work*- | Used by the group-by drop area. |
-| **hide*- | Used by various UI elements for hiding columns. |
-| **import_export*- | Used by the pivot data selector for moving. |
-| **input_clear*- | Used by input fields for clearing input data. |
-| **next*- | Used by the filtering row menu to navigate between chips. |
-| **pin*- | Used by various UI elements for column pinning. |
-| **prev*- | Used by the filtering row menu to navigate between chips. |
-| **remove*- | Used by various UI elements as a removal indicator. |
-| **refresh*- | Used by the filtering row menu to reload the filters. |
-| **selected*- | Used by various UI elements to indicated active selection. |
-| **show*- | Used by various UI elements for showing columns. |
-| **sort_asc*- | Used by various UI elements to indicate sorting direction. |
-| **sort_desc*- | Used by various UI elements to indicate sorting direction. |
-| **functions*- | Used by the pivot grid and data selectors. |
-| **table_rows*- | Used by the pivot grid data selector. |
-| **tree_collapse*- | Used by tree-like structure to show less details. |
-| **tree_expand*- | Used by tree-like structure to show more details. |
-| **unpin*- | Used by various UI elements for column pinning. |
-| **unfold_less*- | Used by the hierarchical grid to collapse all rows. |
-| **unfold_more*- | Used by the hierarchical grid to expand all rows. |
-| **view_column*- | Used by the pivot data selector. |
+| **add** | Used in excel-filter menu to add filter entry. |
+| **arrow_back** | Used in various UI elements for moving a column backwards. |
+| **arrow_drop_down** | Used in various buttons to indicate togglable menus. |
+| **arrow_forward** | Used in various UI elements for moving a column forwards. |
+| **cancel** | Used in various UI elements for canceling operations. |
+| **chevron_right** | Used to indicate expandable menus, like in the excel style filtering. |
+| **close** | Used to close an expanded menu. |
+| **confirm** | Used to confirm an operation. |
+| **drag_indicator** | Used to show a handle to indicate an item can be dragged. |
+| **error** | Used in editable cells to indicate erroneous data input. |
+| **expand_more** | Used by the excel filtering menu to indicate the addition of more filters. |
+| **file_download** | Used by the excel filter exporter. |
+| **filter_** | Used for various filtering operands. |
+| **group_work** | Used by the group-by drop area. |
+| **hide** | Used by various UI elements for hiding columns. |
+| **import_export** | Used by the pivot data selector for moving. |
+| **input_clear** | Used by input fields for clearing input data. |
+| **next** | Used by the filtering row menu to navigate between chips. |
+| **pin** | Used by various UI elements for column pinning. |
+| **prev** | Used by the filtering row menu to navigate between chips. |
+| **remove** | Used by various UI elements as a removal indicator. |
+| **refresh** | Used by the filtering row menu to reload the filters. |
+| **selected** | Used by various UI elements to indicated active selection. |
+| **show** | Used by various UI elements for showing columns. |
+| **sort_asc** | Used by various UI elements to indicate sorting direction. |
+| **sort_desc** | Used by various UI elements to indicate sorting direction. |
+| **functions** | Used by the pivot grid and data selectors. |
+| **table_rows** | Used by the pivot grid data selector. |
+| **tree_collapse** | Used by tree-like structure to show less details. |
+| **tree_expand** | Used by tree-like structure to show more details. |
+| **unpin** | Used by various UI elements for column pinning. |
+| **unfold_less** | Used by the hierarchical grid to collapse all rows. |
+| **unfold_more** | Used by the hierarchical grid to expand all rows. |
+| **view_column** | Used by the pivot data selector. |
## Paginator
| Icon | Description |
| -------------- | ------------------------------------------------------------ |
-| **first_page** | Used by the button used for navigating to the first page. |
-| **last_page*- | Used by the button used for navigating to the last page. |
-| **prev*- | Used by the button used for navigating to the previous page. |
-| **next*- | Used by the button used for navigating to the next page. |
+| **first_page** | Used by the button used for navigating to the first page. |
+| **last_page** | Used by the button used for navigating to the last page. |
+| **prev** | Used by the button used for navigating to the previous page. |
+| **next** | Used by the button used for navigating to the next page. |
## Action Strip
| Icon | Description |
| ------------- | ------------------------ |
-| **add_child** | Used by the popup menu. |
-| **add_row*- | Used by the popup menu. |
-| **more_vert** | Used by the popup menu. |
+| **add_child** | Used by the popup menu. |
+| **add_row** | Used by the popup menu. |
+| **more_vert** | Used by the popup menu. |
## API References
-
-- [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
-
+[`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
## Additional Resources
Our community is active and always welcoming to new ideas.
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-keyboard-navigation.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-keyboard-navigation.md
index 502d3cfca..0e90422a2 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-keyboard-navigation.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-keyboard-navigation.md
@@ -1,18 +1,17 @@
---
-title: Blazor Grid Keyboard Navigation - Ignite UI for Blazor
-_description: Learn how to use Grid Keyboard Navigation with Ignite UI for Blazor. With Keyboard interaction, users can quickly navigate between cells, rows, and columns.
-_keywords: keyboard navigation, Ignite UI for Blazor, infragistics
-_license: commercial
-sharedComponents: ["Grid", "TreeGrid", "HierarchicalGrid"]
-mentionedTypes: ["GridBaseDirective"]
-namespace: Infragistics.Controls
+title: "Blazor Grid Keyboard Navigation - Ignite UI for Blazor"
+description: Learn how to use Grid Keyboard Navigation with Ignite UI for Blazor. With Keyboard interaction, users can quickly navigate between cells, rows, and columns.
+keywords: keyboard navigation, Ignite UI for Blazor, infragistics
+license: commercial
+llms:
+ description: "The Ignite UI for Blazor Keyboard Navigation feature in Blazor Grid provides a rich variety of keyboard interactions for the user."
+_componentKey: Grid
_tocName: Keyboard navigation
_premium: true
---
-
# Blazor Grid Keyboard Navigation
-The Ignite UI for Blazor Keyboard Navigation feature in Blazor Grid provides a rich variety of keyboard interactions for the user. It enhances the accessibility of the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) and allows the user to navigate through any type of elements inside (cell, row, column header, toolbar, footer, etc.). This functionality is enabled by default, and the developer has the option to override any of the default behaviors in an easy way.
+ The Ignite UI for Blazor Keyboard Navigation feature in Blazor Grid provides a rich variety of keyboard interactions for the user. It enhances the accessibility of the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) and allows the user to navigate through any type of elements inside (cell, row, column header, toolbar, footer, etc.). This functionality is enabled by default, and the developer has the option to override any of the default behaviors in an easy way.
The tabulations of the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) has been reduced so that the navigation is compliant with W3C accessibility standards and convenient to use.
@@ -24,13 +23,13 @@ Currently, the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGr
- **Column summaries** (if enabled).
- **Grid paginator** (if enabled).
-> [!Note]
-> Due to this change, navigating between the cells with TAB and SHIFT + TAB is no longer supported in the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid).
-> Pressing the TAB key now goes through the tab stops in the following order: **GroupBy** / **Toolbar** -> **Headers** -> **Body** -> **Summaries** -> **Footer / Paginator**.
+**Note:**
+Due to this change, navigating between the cells with TAB and SHIFT + TAB is no longer supported in the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid).
+Pressing the TAB key now goes through the tab stops in the following order: **GroupBy** / **Toolbar** -> **Headers** -> **Body** -> **Summaries** -> **Footer / Paginator**.
-> [!Note]
-> Exposing any **focusable** element into the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) body via template may introduce **side effects** in the keyboard navigation, since the default
-> browser behavior is not prevented. It is the developer's responsibility to prevent or modify it appropriately.
+**Note:**
+Exposing any **focusable** element into the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) body via template may introduce **side effects** in the keyboard navigation, since the default
+browser behavior is not prevented. It is the developer's responsibility to prevent or modify it appropriately.
## Header Navigation
@@ -53,12 +52,8 @@ When the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) he
- CTRL + ↓ sorts the active column header in DSC order. If the column is already sorted in DSC, sorting state is cleared.
- SPACE selects the column. If the column is already selected, selection is cleared.
-
-
- SHIFT + ALT + ← groups the column, if the column is marked as groupable.
-
-
- SHIFT + ALT + → ungroups the column, if the column is marked as groupable.
- ALT + ← or ALT + ↑ collapses the column group header, if the header is not already collapsed.
- ALT + → or ALT + ↓ expands the column group header, if the header is not already expanded.
@@ -69,13 +64,9 @@ When the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) bo
### Key Combination
-
-
- ↑- navigates one cell up.
- ↓ navigates one cell down.
-
-
- ← navigates one cell left (no wrapping between lines).
- → - navigates one cell right (no wrapping between lines).
- CTRL + ← navigates to the leftmost cell in the row.
@@ -96,24 +87,14 @@ When the [`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid) bo
- SPACE - selects the row, if [Row Selection](row-selection.md) is enabled.
- ALT + ← or ALT + ↑ -
-
-
-over Group Row - collapses the group.
-
-
-
-- ALT + → or ALT + ↓ -
- over Group Row - expands the group.
+ over Group Row - collapses the group.
-
-
-
+- ALT + → or ALT + ↓ -
+ over Group Row - expands the group.
- ALT + ← or ALT + ↑ - over Master Detail Row - collapses the details view.
- ALT + → or ALT + ↓ - over Master Detail Row - expands the details view.
-- SPACE - over Group Row - selects all rows in the group, if [`RowSelection`](mcp:get_api_reference?platform=blazor&component=IgbGridBaseDirective&member=RowSelection) property is set to multiple.
-
-
+- SPACE - over Group Row - selects all rows in the group, if [`IgbGrid.rowSelection`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=rowSelection) property is set to multiple.
Practice all of the above mentioned actions in the demo sample below. Focus any navigable grid element and a list with some of the available actions for the element will be shown to guide you through.
@@ -123,21 +104,20 @@ Overriding the default behavior for a certain key or keys combination is one of
| API | Description | Arguments |
|---------|-------------|-----------|
-| `GridKeydown` | An event that is emitted when any of key press/combinations described above is performed. Can be canceled. For any other key press/combination, use the default `onkeydown` event. | [`IgbGridKeydownEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbGridKeydownEventArgs) |
-| `ActiveNodeChange` | An event that is emitted when the active node is changed. You can use it to determine the Active focus position (header, tbody etc.), column index, row index or nested level. | [`IgbActiveNodeChangeEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbActiveNodeChangeEventArgs) |
+| [`IgbGrid.gridKeydown`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=gridKeydown) | An event that is emitted when any of key press/combinations described above is performed. Can be canceled. For any other key press/combination, use the default `onkeydown` event. | [`IgbGridKeydownEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbGridKeydownEventArgs) |
+| [`IgbGrid.activeNodeChange`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=activeNodeChange) | An event that is emitted when the active node is changed. You can use it to determine the Active focus position (header, tbody etc.), column index, row index or nested level. | [`IgbActiveNodeChangeEventArgs`](mcp:get_api_reference?platform=blazor&component=IgbActiveNodeChangeEventArgs) |
-Let's try the API to demonstrate how to achieve common scenarios like user input validation and custom navigation. First we need to register an event handler for the `GridKeydown` event:
+Let's try the API to demonstrate how to achieve common scenarios like user input validation and custom navigation. First we need to register an event handler for the [`IgbGrid.gridKeydown`](mcp:get_api_reference?platform=blazor&component=IgbGrid&member=gridKeydown) event:
```razor
```
-```razor
+```javascript
// In JavaScript
-
igRegisterScript("WebGridCustomKBNav", (evtArgs) => {
const args = evtArgs.detail;
const target = args.target;
@@ -151,13 +131,37 @@ igRegisterScript("WebGridCustomKBNav", (evtArgs) => {
// 2. CUSTOM NAVIGATION ON ENTER KEY PRESS
}
}, false);
+
```
-> [!Note]
-> Please refer to the sample code for full implementation details.
+Based on the event arg values we identified two cases, where to provide our own logic (see above). Now, using the methods from the API, let's perform the desired - if the user is pressing TAB key over a cell in edit mode, we will perform validation on the input. If the user is pressing ENTER key over a cell, we will move focus to cell in the next row:
-Use the demo below to try out the custom scenarios that we just implemented:
+```javascript
+// In JavaScript
+igRegisterScript("WebGridCustomKBNav", (evtArgs) => {
+ const args = evtArgs.detail;
+ const target = args.target;
+ const evt = args.event;
+ const type = args.targetType;
+ const grid = document.getElementById("grid1");
+ // 1. USER INPUT VALIDATION ON TAB
+ if (target.column.dataType === 'number' && target.editValue < 10) {
+ // alert the user that the input is invalid
+ return;
+ }
+ // 2. CUSTOM NAVIGATION ON ENTER KEY PRESS
+ grid.navigateTo(target.row.index + 1, target.column.visibleIndex, (obj) => {
+ obj.target.activate();
+ });
+}, false);
+
+```
+
+**Note:**
+Please refer to the sample code for full implementation details.
+
+Use the demo below to try out the custom scenarios that we just implemented:
- Double click or press F2 key on a cell in a numeric column, change the value to **7** and press TAB key. Prompt message will be shown.
- Select a cell and press ENTER key a couple of times. Every key press will move the focus to a cell in the next row, under the same column.
@@ -288,10 +292,10 @@ public class NwindData
|--- |--- |
| Navigating inside а grid with scrollable parent container. | If the grid is positioned inside a scrollable parent container and the user navigates to a grid cell that is out of view, parent container will not be scrolled.|
+## API References
+[`IgbGrid`](mcp:get_api_reference?platform=blazor&component=IgbGrid)
## Additional Resources
-
-
- [Virtualization and Performance](virtualization.md)
- [Filtering](filtering.md)
- [Sorting](sorting.md)
@@ -301,8 +305,6 @@ public class NwindData
- [Column Resizing](column-resizing.md)
- [Selection](selection.md)
-
-
Our community is active and always welcoming to new ideas.
- [Ignite UI for Blazor **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-blazor)
diff --git a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-lite-binding.md b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-lite-binding.md
index 42f7cc41f..e59508fbb 100644
--- a/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-lite-binding.md
+++ b/packages/igniteui-mcp/igniteui-doc-mcp/docs_baseline/blazor/grid-lite-binding.md
@@ -1,13 +1,14 @@
---
-title: Blazor Grid Lite Data Binding - Ignite UI for Blazor | MIT license
-_description: Data binding for Grid Lite. Create apps with our open-source Blazor Grid Lite. It’s lightweight and packed with essential features. Try now.
-_keywords: data binding, Blazor, {ComponentKeywords}, Ignite UI for Blazor, Infragistics
-mentionedTypes: [{ComponentApiMembers}]
+title: "Blazor Grid Lite Data Binding - Ignite UI for Blazor | MIT license"
+description: Data binding for Grid Lite. Create apps with our open-source Blazor Grid Lite. It’s lightweight and packed with essential features. Try now.
+keywords: data binding, Blazor, , Ignite UI for Blazor, Infragistics
+mentionedTypes: []
namespace: Infragistics.Controls
-_license: MIT
+license: MIT
+llms:
+ description: "The Grid Lite accepts an array of plain objects as a data source."
_tocName: Data Binding
---
-
# Blazor Grid Lite Data Binding
The Grid Lite accepts a `List` as its data source, where `T` is representing your model. Each grid row is the rendered representation of a data record in the array with row cells being controlled by the column configuration.
@@ -42,9 +43,10 @@ If the grid has `AutoGenerate` enabled, it will "_infer_" the new column configu
}
```
-> [!NOTE]
-> The sort/filter states of the Grid Lite are kept when changing the data source in this manner.
-> Usually you will want to reset them by calling either `ClearSort()` and/or `ClearFilter()`.
+**Note:**
+The sort/filter states of the Grid Lite are kept when changing the data source in this manner.
+
+Usually you will want to reset them by calling either `ClearSort()` and/or `ClearFilter()`.
In the sample below, the grid has column auto-generation enabled. When you click on the switch data button,
the column collection is reset, and a new data source is bound to the grid.
@@ -59,11 +61,10 @@ the column collection is reset, and a new data source is bound to the grid.
Switch Data: @(showingProducts ? "Show Users" : "Show Products")
-
+