igniteui-angular 21.1.0-rc.5 → 21.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/fesm2022/igniteui-angular-directives.mjs +28 -28
  2. package/fesm2022/igniteui-angular-directives.mjs.map +1 -1
  3. package/fesm2022/igniteui-angular-grids-core.mjs +3 -0
  4. package/fesm2022/igniteui-angular-grids-core.mjs.map +1 -1
  5. package/fesm2022/igniteui-angular-grids-grid.mjs +8 -7
  6. package/fesm2022/igniteui-angular-grids-grid.mjs.map +1 -1
  7. package/fesm2022/igniteui-angular-grids-lite.mjs +2 -0
  8. package/fesm2022/igniteui-angular-grids-lite.mjs.map +1 -1
  9. package/fesm2022/igniteui-angular-grids-pivot-grid.mjs +2 -2
  10. package/fesm2022/igniteui-angular-grids-pivot-grid.mjs.map +1 -1
  11. package/package.json +4 -4
  12. package/skills/igniteui-angular-components/SKILL.md +10 -12
  13. package/skills/igniteui-angular-components/references/charts.md +20 -10
  14. package/skills/igniteui-angular-components/references/data-display.md +102 -22
  15. package/skills/igniteui-angular-components/references/directives.md +127 -4
  16. package/skills/igniteui-angular-components/references/feedback.md +11 -3
  17. package/skills/igniteui-angular-components/references/form-controls.md +27 -4
  18. package/skills/igniteui-angular-components/references/layout-manager.md +5 -0
  19. package/skills/igniteui-angular-components/references/layout.md +11 -2
  20. package/skills/igniteui-angular-components/references/setup.md +29 -9
  21. package/skills/igniteui-angular-grids/SKILL.md +7 -7
  22. package/skills/igniteui-angular-grids/references/data-operations.md +15 -5
  23. package/skills/igniteui-angular-grids/references/editing.md +12 -1
  24. package/skills/igniteui-angular-grids/references/features.md +26 -10
  25. package/skills/igniteui-angular-grids/references/paging-remote.md +13 -4
  26. package/skills/igniteui-angular-grids/references/state.md +17 -151
  27. package/skills/igniteui-angular-grids/references/structure.md +9 -0
  28. package/skills/igniteui-angular-grids/references/types.md +107 -26
  29. package/skills/igniteui-angular-theming/SKILL.md +6 -106
  30. package/skills/igniteui-angular-theming/references/common-patterns.md +45 -0
  31. package/skills/igniteui-angular-theming/references/mcp-setup.md +77 -0
  32. package/types/igniteui-angular-grids-grid.d.ts +1 -0
  33. package/types/igniteui-angular-grids-lite.d.ts +2 -0
@@ -2,6 +2,13 @@
2
2
 
3
3
  > **Part of the [`igniteui-angular-components`](../SKILL.md) skill hub.**
4
4
 
5
+ ## Contents
6
+
7
+ - [Installation](#installation)
8
+ - [Required Providers (`app.config.ts`)](#required-providers-appconfigts)
9
+ - [Architecture — Standalone Components](#architecture--standalone-components)
10
+ - [Multi-Entry-Point Imports](#multi-entry-point-imports)
11
+
5
12
  ## Installation
6
13
 
7
14
  ```bash
@@ -50,7 +57,7 @@ All Ignite UI components are **standalone** — no NgModules needed. Import them
50
57
 
51
58
  ```typescript
52
59
  import { ChangeDetectionStrategy, Component } from '@angular/core';
53
- import { IgxButtonDirective } from 'igniteui-angular/button';
60
+ import { IgxButtonDirective } from 'igniteui-angular/directives';
54
61
  import { IgxDialogComponent } from 'igniteui-angular/dialog';
55
62
 
56
63
  @Component({
@@ -94,7 +101,7 @@ import { IgxComboComponent } from 'igniteui-angular';
94
101
  | Stepper | `igniteui-angular/stepper` |
95
102
  | Accordion / Expansion Panel | `igniteui-angular/expansion-panel` |
96
103
  | Splitter | `igniteui-angular/splitter` |
97
- | Navigation Drawer | `igniteui-angular/nav-drawer` |
104
+ | Navigation Drawer | `igniteui-angular/navigation-drawer` |
98
105
  | Bottom Navigation | `igniteui-angular/bottom-nav` |
99
106
  | List | `igniteui-angular/list` |
100
107
  | Tree | `igniteui-angular/tree` |
@@ -109,24 +116,37 @@ import { IgxComboComponent } from 'igniteui-angular';
109
116
  | Icon | `igniteui-angular/icon` |
110
117
  | Carousel | `igniteui-angular/carousel` |
111
118
  | Paginator | `igniteui-angular/paginator` |
112
- | Linear Progress | `igniteui-angular/linear-progress-bar` |
113
- | Circular Progress | `igniteui-angular/circular-progress-bar` |
119
+ | Linear Progress | `igniteui-angular/progressbar` |
120
+ | Circular Progress | `igniteui-angular/progressbar` |
114
121
  | Chat | `igniteui-angular/chat` |
115
- | Button / Icon Button | `igniteui-angular/button` |
116
- | Ripple | `igniteui-angular/ripple` |
117
- | Tooltip | `igniteui-angular/tooltip` |
118
- | Drag & Drop | `igniteui-angular/drag-drop` |
122
+ | Button / Icon Button | `igniteui-angular/directives` |
123
+ | Button Group | `igniteui-angular/button-group` |
124
+ | Ripple | `igniteui-angular/directives` |
125
+ | IgxTooltipDirective, IgxTooltipTargetDirective | `igniteui-angular/directives` |
126
+ | Drag & Drop | `igniteui-angular/directives` |
119
127
  | Layout Manager (`igxLayout`, `igxFlex`) | `igniteui-angular/directives` |
128
+ | Core utilities, services, base types | `igniteui-angular/core` |
120
129
  | Icon Service | `igniteui-angular/icon` |
121
130
  | Overlay Service | `igniteui-angular/core` |
122
131
  | **Dock Manager** | `igniteui-dockmanager` *(separate package — `npm install igniteui-dockmanager`)* |
123
132
 
133
+ **Grid-specific entry points** (tree-shakable imports):
134
+
135
+ | Component / Feature | Entry Point |
136
+ |---|---|
137
+ | Shared grid infrastructure (columns, toolbar, filtering, sorting, etc.) | `igniteui-angular/grids/core` |
138
+ | Standard grid (`IgxGridComponent`) | `igniteui-angular/grids/grid` |
139
+ | Tree grid (`IgxTreeGridComponent`) | `igniteui-angular/grids/tree-grid` |
140
+ | Hierarchical grid (`IgxHierarchicalGridComponent`, `IgxRowIslandComponent`) | `igniteui-angular/grids/hierarchical-grid` |
141
+ | Pivot grid (`IgxPivotGridComponent`, `IgxPivotDataSelectorComponent`) | `igniteui-angular/grids/pivot-grid` |
142
+
124
143
  ### Convenience Directive Collections
125
144
 
126
145
  For complex components, use the bundled directive arrays instead of listing every sub-directive individually:
127
146
 
128
147
  | Token | Entry Point | Includes |
129
148
  |---|---|---|
149
+ | `IGX_BUTTON_GROUP_DIRECTIVES` | `igniteui-angular/button-group` | Button group + button directive |
130
150
  | `IGX_INPUT_GROUP_DIRECTIVES` | `igniteui-angular/input-group` | Input group + label, hint, prefix, suffix |
131
151
  | `IGX_TABS_DIRECTIVES` | `igniteui-angular/tabs` | Tabs + tab item, header, content |
132
152
  | `IGX_STEPPER_DIRECTIVES` | `igniteui-angular/stepper` | Stepper + step |
@@ -140,7 +160,7 @@ For complex components, use the bundled directive arrays instead of listing ever
140
160
  - [`layout.md`](./layout.md) — Tabs, Stepper, Accordion, Splitter, Navigation Drawer
141
161
  - [`data-display.md`](./data-display.md) — List, Tree, Card, Chips, Avatar, Badge, Icon, Carousel, Paginator, Progress, Chat
142
162
  - [`feedback.md`](./feedback.md) — Dialog, Snackbar, Toast, Banner
143
- - [`directives.md`](./directives.md) — Button, Ripple, Tooltip, Drag and Drop
163
+ - [`directives.md`](./directives.md) — Button, Icon Button, Button Group, Ripple, Tooltip, Drag and Drop
144
164
  - [`layout-manager.md`](./layout-manager.md) — Layout Manager directives, Dock Manager
145
165
  - [`../../igniteui-angular-grids/SKILL.md`](../../igniteui-angular-grids/SKILL.md) — Data Grids
146
166
  - [`../../igniteui-angular-theming/SKILL.md`](../../igniteui-angular-theming/SKILL.md) — Theming & Styling
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: igniteui-angular-grids
3
- description: "All grid topics for Ignite UI Angular: grid setup, column configuration, sorting, filtering, selection, editing, grouping, summaries, toolbar, export, paging, remote data, state persistence, Tree Grid, Hierarchical Grid, Grid Lite, and Pivot Grid. Use for any grid-related question."
4
- user-invokable: true
3
+ description: "Provides guidance on all Ignite UI for Angular data grid types (Flat Grid, Tree Grid, Hierarchical Grid, Grid Lite, Pivot Grid) including setup, column configuration, sorting, filtering, selection, editing, grouping, summaries, toolbar, export, paging, remote data, and state persistence. Use when users ask about grids, tables, data grids, tabular data display, cell editing, batch editing, row selection, column pinning, column hiding, grouping rows, pivot tables, tree-structured data, hierarchical data, master-detail views, or exporting grid data. Do NOT use for non-grid UI components (forms, dialogs, navigation, charts) — use igniteui-angular-components instead. Do NOT use for theming or styling — use igniteui-angular-theming instead."
4
+ user-invocable: true
5
5
  ---
6
6
 
7
7
  # Ignite UI for Angular — Data Grids
@@ -21,8 +21,8 @@ Use the Grid Selection Decision Guide below. If the grid type is not explicitly
21
21
  **STEP 2 — Identify every task category involved.**
22
22
  Map the user's request to one or more rows in the Task → Reference File table below. A single request often spans multiple categories (e.g., remote paging AND editing requires reading both `paging-remote.md` AND `editing.md`).
23
23
 
24
- **STEP 3 — Read every identified reference file in full.**
25
- Call `read_file` (or equivalent) on each reference file identified in Step 2. You must do this even if you believe you already know the answer. Do not skip, skim, or partially read a reference file.
24
+ **STEP 3 — Read every identified reference file in full (PARALLEL).**
25
+ Call `read_file` (or equivalent) on **all** reference files identified in Step 2 **in a single parallel batch** — do NOT read them one at a time sequentially. You must do this even if you believe you already know the answer. Do not skip, skim, or partially read a reference file.
26
26
 
27
27
  **STEP 4 — Only then produce output.**
28
28
  Base your code and explanation exclusively on what you read in Step 3. If the reference files do not cover something, say so explicitly rather than guessing.
@@ -33,11 +33,11 @@ Base your code and explanation exclusively on what you read in Step 3. If the re
33
33
  |---|---|
34
34
  | Grid type selection, column config, column templates, column groups, MRL, pinning, sorting UI, filtering UI, selection | [`references/structure.md`](./references/structure.md) |
35
35
  | Grouping, summaries, cell merging, toolbar, export, row drag, action strip, master-detail, clipboard | [`references/features.md`](./references/features.md) |
36
- | Tree Grid specifics, Hierarchical Grid specifics, Grid Lite setup, Pivot Grid setup | [`references/types.md`](./references/types.md) |
36
+ | Tree Grid specifics, Hierarchical Grid specifics, Grid Lite setup, Grid Lite data operations, Pivot Grid setup | [`references/types.md`](./references/types.md) |
37
37
  | Programmatic sorting / filtering / grouping, canonical import patterns, `viewChild` access | [`references/data-operations.md`](./references/data-operations.md) |
38
38
  | Cell editing, row editing, batch editing, transactions, validation, summaries | [`references/editing.md`](./references/editing.md) |
39
39
  | Paging, remote data, server-side ops, noop strategies, virtual scroll, multi-grid coordination | [`references/paging-remote.md`](./references/paging-remote.md) |
40
- | State persistence, Tree Grid / Hierarchical Grid / Pivot Grid / Grid Lite data operations | [`references/state.md`](./references/state.md) |
40
+ | State persistence, Tree Grid / Hierarchical Grid / Pivot Grid data operations | [`references/state.md`](./references/state.md) |
41
41
 
42
42
  > **When in doubt, read more rather than fewer reference files.** The cost of an unnecessary file read is negligible; the cost of hallucinated API usage is a broken application.
43
43
 
@@ -59,7 +59,7 @@ Ignite UI has **five grid types**. Picking the correct one is the most important
59
59
 
60
60
  Ask these questions in order:
61
61
 
62
- 1. **Does the user need a lightweight, read-only data display** with sorting, filtering, and virtualization but no editing, selection, or paging? → **Grid Lite** (open-source, MIT licensed)
62
+ 1. **Does the user need a lightweight, read-only data display** with sorting, filtering, and virtualization but no editing, selection, or paging? → **Grid Lite** (open-source, MIT licensed). **If the user later needs features beyond Grid Lite's capabilities, upgrade strictly to `igx-grid` (`IgxGridComponent`)** — never recommend non-grid components as a substitute.
63
63
  2. **Does the user need pivot-table analytics** (rows/columns/values/aggregations that users can drag-and-drop to reshape)? → **Pivot Grid**
64
64
  3. **Does the data have parent-child relationships where each level has a DIFFERENT schema** (e.g., Companies → Departments → Employees)? → **Hierarchical Grid**
65
65
  4. **Does the data have parent-child relationships within a SINGLE schema** (e.g., Employees with a `managerId` field, or nested children arrays)? → **Tree Grid**
@@ -6,6 +6,14 @@
6
6
  > For editing and validation — see [`editing.md`](./editing.md).
7
7
  > For state persistence — see [`state.md`](./state.md).
8
8
 
9
+ ## Contents
10
+
11
+ - [Accessing the Grid Instance](#accessing-the-grid-instance)
12
+ - [Sorting](#sorting)
13
+ - [Filtering](#filtering)
14
+ - [Grouping (Flat Grid Only)](#grouping-flat-grid-only)
15
+ - [Key Rules](#key-rules)
16
+
9
17
  ## Accessing the Grid Instance
10
18
 
11
19
  All programmatic data operations require a reference to the grid component. Use `viewChild` with the **correct component type** for your grid.
@@ -145,7 +153,8 @@ Sorting modes:
145
153
  ### Programmatic Sorting
146
154
 
147
155
  ```typescript
148
- import { SortingDirection } from 'igniteui-angular/grids/core';
156
+ import { SortingDirection } from 'igniteui-angular/core';
157
+ // import { SortingDirection } from '@infragistics/igniteui-angular/core'; for licensed package
149
158
 
150
159
  // Sort a single column
151
160
  this.gridRef().sort({ fieldName: 'name', dir: SortingDirection.Asc, ignoreCase: true });
@@ -189,7 +198,7 @@ onSortingDone(event: ISortingEventArgs) {
189
198
  Implement `ISortingStrategy` to control how values are compared:
190
199
 
191
200
  ```typescript
192
- import { ISortingStrategy, SortingDirection } from 'igniteui-angular/grids/core';
201
+ import { ISortingStrategy, SortingDirection } from 'igniteui-angular/core';
193
202
 
194
203
  class PrioritySortStrategy implements ISortingStrategy {
195
204
  private priorityOrder = ['Critical', 'High', 'Medium', 'Low'];
@@ -248,7 +257,8 @@ import {
248
257
  IgxBooleanFilteringOperand,
249
258
  FilteringExpressionsTree,
250
259
  FilteringLogic
251
- } from 'igniteui-angular/grids/core';
260
+ } from 'igniteui-angular/core';
261
+ // import { ... } from '@infragistics/igniteui-angular/core'; for licensed package
252
262
 
253
263
  // Simple single-column filter
254
264
  this.gridRef().filter('name', 'John', IgxStringFilteringOperand.instance().condition('contains'), true);
@@ -308,7 +318,7 @@ Control the AND/OR logic between **different column** filters:
308
318
  ```
309
319
 
310
320
  ```typescript
311
- import { FilteringLogic } from 'igniteui-angular/grids/core';
321
+ import { FilteringLogic } from 'igniteui-angular';
312
322
 
313
323
  // FilteringLogic.And (default) — row must match ALL column filters
314
324
  // FilteringLogic.Or — row must match ANY column filter
@@ -368,7 +378,7 @@ onFilteringDone(event: IFilteringEventArgs) {
368
378
  ### Programmatic Grouping
369
379
 
370
380
  ```typescript
371
- import { SortingDirection } from 'igniteui-angular/grids/core';
381
+ import { SortingDirection } from 'igniteui-angular/core';
372
382
 
373
383
  // Group by a column
374
384
  this.gridRef().groupBy({ fieldName: 'category', dir: SortingDirection.Asc, ignoreCase: true });
@@ -5,6 +5,16 @@
5
5
  > For state persistence — see [`state.md`](./state.md).
6
6
  > For paging and remote data — see [`paging-remote.md`](./paging-remote.md).
7
7
 
8
+ ## Contents
9
+
10
+ - [Editing Data Through the Grid](#editing-data-through-the-grid)
11
+ - [Batch Editing & Transactions](#batch-editing--transactions)
12
+ - [Excel-Style Editing Workflows](#excel-style-editing-workflows)
13
+ - [Editing Events Reference](#editing-events-reference)
14
+ - [Validation](#validation)
15
+ - [Summaries](#summaries)
16
+ - [Key Rules](#key-rules)
17
+
8
18
  ## Editing Data Through the Grid
9
19
 
10
20
  > **AGENT INSTRUCTION:** When a user says they want to "edit data through the grid", "make the grid editable", or "allow CRUD in the grid", use this section to pick the right editing mode before writing any code.
@@ -423,7 +433,8 @@ Default summaries by type:
423
433
  ### Custom Summary Operand
424
434
 
425
435
  ```typescript
426
- import { IgxNumberSummaryOperand, IgxSummaryResult } from 'igniteui-angular/grids/core';
436
+ import { IgxNumberSummaryOperand } from 'igniteui-angular/grids/core';
437
+ import { IgxSummaryResult } from 'igniteui-angular/core';
427
438
 
428
439
  class RevenueSummary extends IgxNumberSummaryOperand {
429
440
  operate(data: number[]): IgxSummaryResult[] {
@@ -5,6 +5,21 @@
5
5
  > For Tree Grid, Hierarchical Grid, Grid Lite, Pivot Grid specifics — see [`types.md`](./types.md).
6
6
  > For full editing coverage (cell/row/batch) — see [`editing.md`](./editing.md).
7
7
 
8
+ ## Contents
9
+
10
+ - [Editing](#editing)
11
+ - [Grouping (Grid only)](#grouping-grid-only)
12
+ - [Summaries](#summaries)
13
+ - [Cell Merging](#cell-merging)
14
+ - [Toolbar](#toolbar)
15
+ - [Export](#export)
16
+ - [Virtualization & Performance](#virtualization--performance)
17
+ - [Row Drag](#row-drag)
18
+ - [Action Strip](#action-strip)
19
+ - [Master-Detail (Grid only)](#master-detail-grid-only)
20
+ - [Clipboard](#clipboard)
21
+ - [Key Rules](#key-rules)
22
+
8
23
  ## Editing
9
24
 
10
25
  > **Full editing coverage is in [`editing.md`](./editing.md)**, which includes cell editing, row editing, batch editing with transactions, row adding/deleting, validation, and summaries. Use that reference for any editing task.
@@ -43,15 +58,9 @@ For advanced programmatic grouping patterns — see [`data-operations.md`](./dat
43
58
 
44
59
  ## Summaries
45
60
 
46
- > **Full summaries coverage (built-in and custom summary operands) is in [`editing.md`](./editing.md).**
47
-
48
- Quick reference enable per-column summaries:
49
-
50
- ```html
51
- <igx-column field="salary" dataType="number" [hasSummary]="true"></igx-column>
52
- ```
53
-
54
- Default summaries by type: **number** → Count/Min/Max/Sum/Average; **date** → Count/Earliest/Latest; **string/boolean** → Count.
61
+ > **Full summaries coverage built-in summaries, custom summary operands, and summaries with grouping — is in [`editing.md`](./editing.md#summaries).**
62
+ >
63
+ > Quick reference: enable per-column summaries with `[hasSummary]="true"` on an `igx-column`. Default operands: **number** → Count/Min/Max/Sum/Average; **date** → Count/Earliest/Latest; **string/boolean** → Count.
55
64
 
56
65
  ## Cell Merging
57
66
 
@@ -68,7 +77,10 @@ Or apply a custom merge strategy:
68
77
  ```
69
78
 
70
79
  ```typescript
71
- priceRangeMerge: IgxCellMergeStrategy = {
80
+ import { IGridMergeStrategy } from 'igniteui-angular/core';
81
+ // import { IGridMergeStrategy } from '@infragistics/igniteui-angular/core'; for licensed package
82
+
83
+ priceRangeMerge: IGridMergeStrategy = {
72
84
  shouldMerge(prevCell, curCell) {
73
85
  return Math.abs(prevCell.value - curCell.value) < 10;
74
86
  }
@@ -79,6 +91,10 @@ priceRangeMerge: IgxCellMergeStrategy = {
79
91
 
80
92
  > **Docs:** [Toolbar](https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/toolbar)
81
93
 
94
+ ```typescript
95
+ import { IgxGridToolbarComponent } from 'igniteui-angular/grids/core';
96
+ ```
97
+
82
98
  ```html
83
99
  <igx-grid [data]="data()">
84
100
  <igx-grid-toolbar>
@@ -5,6 +5,14 @@
5
5
  > For editing and validation — see [`editing.md`](./editing.md).
6
6
  > For state persistence — see [`state.md`](./state.md).
7
7
 
8
+ ## Contents
9
+
10
+ - [Paging](#paging)
11
+ - [Remote Data Operations](#remote-data-operations)
12
+ - [Virtualization](#virtualization)
13
+ - [Multi-Grid Coordination](#multi-grid-coordination)
14
+ - [Key Rules](#key-rules)
15
+
8
16
  ## Paging
9
17
 
10
18
  > **Docs:** [Paging — Remote Paging](https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/paging#remote-paging) (substitute URL prefix per grid type)
@@ -51,7 +59,8 @@ this.gridRef().paginator.perPage = 25;
51
59
  ### Remote Paging
52
60
 
53
61
  ```typescript
54
- import { GridPagingMode } from 'igniteui-angular/grids/grid';
62
+ import { GridPagingMode } from 'igniteui-angular/grids/core';
63
+ import { IPageEventArgs } from 'igniteui-angular/paginator';
55
64
 
56
65
  export class RemotePagingComponent {
57
66
  data = signal<Product[]>([]);
@@ -120,12 +129,12 @@ import { Component, ChangeDetectionStrategy, signal, viewChild, inject, DestroyR
120
129
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
121
130
  import { IgxGridComponent, IGX_GRID_DIRECTIVES } from 'igniteui-angular/grids/grid';
122
131
  import {
123
- IForOfState,
124
- ISortingEventArgs,
125
132
  IFilteringExpressionsTree,
126
133
  NoopSortingStrategy,
127
134
  NoopFilteringStrategy
128
- } from 'igniteui-angular/grids/core';
135
+ } from 'igniteui-angular/core';
136
+ import { IForOfState } from 'igniteui-angular/directives';
137
+ import { ISortingEventArgs } from 'igniteui-angular/grids/core';
129
138
  import { debounceTime, Subject } from 'rxjs';
130
139
 
131
140
  @Component({
@@ -5,6 +5,15 @@
5
5
  > For Tree Grid / Hierarchical Grid / Pivot Grid / Grid Lite setup — see [`types.md`](./types.md).
6
6
  > For paging and remote data — see [`paging-remote.md`](./paging-remote.md).
7
7
 
8
+ ## Contents
9
+
10
+ - [State Persistence](#state-persistence)
11
+ - [Tree Grid Data Operations](#tree-grid-data-operations)
12
+ - [Hierarchical Grid Data Operations](#hierarchical-grid-data-operations)
13
+ - [Pivot Grid Data Operations](#pivot-grid-data-operations)
14
+ - [Grid Lite Data Operations](#grid-lite-data-operations)
15
+ - [Key Rules](#key-rules)
16
+
8
17
  ## State Persistence
9
18
 
10
19
  > **Docs:** [State Persistence](https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/state-persistence) (substitute URL prefix per grid type)
@@ -20,7 +29,7 @@ Use `IgxGridStateDirective` to persist sorting, filtering, grouping, paging, sel
20
29
  ```
21
30
 
22
31
  ```typescript
23
- import { IgxGridStateDirective } from 'igniteui-angular/grids/grid';
32
+ import { IgxGridStateDirective } from 'igniteui-angular/grids/core';
24
33
 
25
34
  export class StatefulGridComponent {
26
35
  gridState = viewChild.required(IgxGridStateDirective);
@@ -234,7 +243,7 @@ Setting `[batchEditing]="true"` on the root hierarchical grid automatically prop
234
243
  ### Dimension-Based Filtering
235
244
 
236
245
  ```typescript
237
- import { FilteringExpressionsTree, FilteringLogic, IgxStringFilteringOperand } from 'igniteui-angular/grids/core';
246
+ import { FilteringExpressionsTree, FilteringLogic, IgxStringFilteringOperand } from 'igniteui-angular/core';
238
247
 
239
248
  // Create a filter for a dimension
240
249
  const regionFilter = new FilteringExpressionsTree(FilteringLogic.Or);
@@ -277,155 +286,12 @@ this.pivotGridRef().pipeTrigger++;
277
286
 
278
287
  ## Grid Lite Data Operations
279
288
 
280
- **Grid Lite** is a lightweight, open-source (MIT licensed) Web Component grid with an Angular wrapper. It supports **sorting and filtering only** no editing, grouping, paging, summaries, selection, or export. Its API is **different from** the Flat/Tree/Hierarchical Grid APIs.
281
-
282
- > **IMPORTANT**: Grid Lite uses `IgxGridLiteSortingExpression` and `IgxGridLiteFilteringExpression` — NOT `ISortingExpression` or `FilteringExpressionsTree` from the enterprise grids.
283
-
284
- ### Grid Lite Sorting
285
-
286
- ```typescript
287
- import {
288
- IgxGridLiteComponent,
289
- IgxGridLiteSortingExpression,
290
- IgxGridLiteSortingOptions
291
- } from 'igniteui-angular/grids/lite';
292
-
293
- @Component({
294
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
295
- // ...
296
- })
297
- export class GridLiteSortExample {
298
- gridRef = viewChild<IgxGridLiteComponent<Product>>('grid');
299
-
300
- // Sorting options: mode can be 'single' or 'multiple'
301
- sortingOptions: IgxGridLiteSortingOptions = { mode: 'multiple' };
302
-
303
- // Initial sort state
304
- sortExprs: IgxGridLiteSortingExpression[] = [
305
- { key: 'name', direction: 'ascending' }
306
- ];
307
-
308
- sortByPrice() {
309
- // Sort programmatically (single expression or array)
310
- this.gridRef().sort({ key: 'price', direction: 'descending' });
311
- }
312
-
313
- clearAllSorts() {
314
- this.gridRef().clearSort(); // clear all
315
- // or: this.gridRef().clearSort('price'); // clear specific column
316
- }
317
- }
318
- ```
319
-
320
- ```html
321
- <igx-grid-lite #grid
322
- [data]="data"
323
- [sortingOptions]="sortingOptions"
324
- [(sortingExpressions)]="sortExprs"
325
- (sorting)="onSorting($event)"
326
- (sorted)="onSorted($event)">
327
- <igx-grid-lite-column field="name" header="Name" sortable></igx-grid-lite-column>
328
- <igx-grid-lite-column field="price" header="Price" dataType="number" sortable></igx-grid-lite-column>
329
- </igx-grid-lite>
330
- ```
331
-
332
- Sort expression shape: `{ key: string, direction: 'ascending' | 'descending' | 'none' }`
333
-
334
- Sorting modes:
335
- - `'single'` — only one column sorted at a time
336
- - `'multiple'` — multi-column sorting
337
- - `triState: true` — allows cycling through ascending → descending → none
338
-
339
- ### Grid Lite Filtering
340
-
341
- ```typescript
342
- import {
343
- IgxGridLiteComponent,
344
- IgxGridLiteFilteringExpression
345
- } from 'igniteui-angular/grids/lite';
346
-
347
- // Filter expression shape
348
- const filters: IgxGridLiteFilteringExpression[] = [
349
- { key: 'price', condition: 'greaterThan', searchTerm: 100 },
350
- { key: 'name', condition: 'contains', searchTerm: 'Widget' }
351
- ];
352
-
353
- // Programmatic filtering
354
- this.gridRef().filter({ key: 'price', condition: 'greaterThan', searchTerm: 100 });
355
- this.gridRef().clearFilter('price');
356
- this.gridRef().clearFilter(); // clear all
357
- ```
358
-
359
- ```html
360
- <igx-grid-lite #grid
361
- [data]="data"
362
- [(filteringExpressions)]="filterExprs"
363
- (filtering)="onFiltering($event)"
364
- (filtered)="onFiltered($event)">
365
- <igx-grid-lite-column field="name" header="Name" filterable></igx-grid-lite-column>
366
- <igx-grid-lite-column field="price" header="Price" dataType="number" filterable></igx-grid-lite-column>
367
- </igx-grid-lite>
368
- ```
369
-
370
- Filter expression shape: `{ key: string, condition: string, searchTerm: any, criteria?: any[], caseSensitive?: boolean }`
371
-
372
- Filter conditions depend on `dataType`:
373
- - **string**: `contains`, `startsWith`, `endsWith`, `equals`, `doesNotContain`, `doesNotEqual`, `empty`, `notEmpty`, `null`, `notNull`
374
- - **number**: `equals`, `doesNotEqual`, `greaterThan`, `lessThan`, `greaterThanOrEqualTo`, `lessThanOrEqualTo`, `empty`, `notEmpty`, `null`, `notNull`
375
- - **boolean**: `all`, `true`, `false`, `empty`, `notEmpty`, `null`, `notNull`
376
- - **date**: `equals`, `doesNotEqual`, `before`, `after`, `today`, `yesterday`, `thisMonth`, `lastMonth`, `nextMonth`, `thisYear`, `lastYear`, `nextYear`, `empty`, `notEmpty`, `null`, `notNull`
377
-
378
- ### Grid Lite Remote Data Operations
379
-
380
- Grid Lite uses `dataPipelineConfiguration` — a callback-based approach (NOT noop strategies):
381
-
382
- ```typescript
383
- import { IgxGridLiteDataPipelineConfiguration } from 'igniteui-angular/grids/lite';
384
-
385
- dataPipeline: IgxGridLiteDataPipelineConfiguration<Product> = {
386
- sort: async (params) => {
387
- // params.grid — the grid instance
388
- // params.data — current data array
389
- // params.type — 'sort'
390
- const result = await fetch(`/api/products?sort=${JSON.stringify(params.grid.sortingExpressions)}`);
391
- return await result.json();
392
- },
393
- filter: async (params) => {
394
- const result = await fetch(`/api/products?filter=${JSON.stringify(params.grid.filteringExpressions)}`);
395
- return await result.json();
396
- }
397
- };
398
- ```
399
-
400
- ```html
401
- <igx-grid-lite #grid
402
- [data]="data"
403
- [dataPipelineConfiguration]="dataPipeline">
404
- </igx-grid-lite>
405
- ```
406
-
407
- Callbacks can be synchronous (return `T[]`) or asynchronous (return `Promise<T[]>`). When a `dataPipelineConfiguration` callback is provided for a given operation, the client-side pipeline for that operation is bypassed entirely.
408
-
409
- ### Grid Lite Events
410
-
411
- | Event | Cancelable | Payload |
412
- |---|---|---|
413
- | `(sorting)` | Yes (`event.detail.cancel = true`) | Sorting expression about to be applied |
414
- | `(sorted)` | No | Sorting completed |
415
- | `(filtering)` | Yes (`event.detail.cancel = true`) | Filter expression about to be applied |
416
- | `(filtered)` | No | Filtering completed |
417
-
418
- ### Grid Lite Limitations (No Data Operations)
419
-
420
- These data operations are **NOT available** in Grid Lite:
421
- - Editing (cell, row, batch) — no `[editable]`, no `beginEdit()`, no transactions
422
- - Grouping — no `groupBy()`, no `IgxGroupByRow`
423
- - Paging — no `IgxPaginatorComponent`
424
- - Summaries — no `IgxSummaryOperand`
425
- - Selection — no `rowSelection`, `cellSelection`, or `columnSelection`
426
- - State persistence — no `IgxGridStateDirective`
427
- - Export — no `IgxExcelExporterService` or `IgxCsvExporterService`
428
- - Advanced filtering — no `advancedFilteringExpressionsTree`
289
+ > **Grid Lite sorting, filtering, remote data, events, and limitations are fully documented in [`types.md`](./types.md#grid-lite).** Refer to that file for all Grid Lite data operations this section intentionally avoids duplicating that content.
290
+ >
291
+ > Key differences from Flat/Tree/Hierarchical Grid APIs:
292
+ > - Uses `IgxGridLiteSortingExpression` / `IgxGridLiteFilteringExpression` (NOT `ISortingExpression` / `FilteringExpressionsTree`)
293
+ > - Uses `dataPipelineConfiguration` for remote ops (NOT noop strategies + events)
294
+ > - Has no editing, grouping, paging, summaries, selection, state persistence, or export
429
295
 
430
296
  ## Key Rules
431
297
 
@@ -6,6 +6,15 @@
6
6
  > For Tree Grid, Hierarchical Grid, Grid Lite, Pivot Grid specifics — see [`types.md`](./types.md).
7
7
  > For programmatic data operations — see [`data-operations.md`](./data-operations.md).
8
8
 
9
+ ## Contents
10
+
11
+ - [Quick Start](#quick-start)
12
+ - [Column Configuration](#column-configuration)
13
+ - [Sorting](#sorting)
14
+ - [Filtering](#filtering)
15
+ - [Selection](#selection)
16
+ - [Key Rules](#key-rules)
17
+
9
18
  ## Quick Start
10
19
 
11
20
  ### Imports