igniteui-angular 21.2.4 → 21.2.6
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.
- package/fesm2022/igniteui-angular-grids-grid.mjs +12 -2
- package/fesm2022/igniteui-angular-grids-grid.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-pivot-grid.mjs +3 -2
- package/fesm2022/igniteui-angular-grids-pivot-grid.mjs.map +1 -1
- package/package.json +1 -1
- package/skills/igniteui-angular-components/SKILL.md +1 -1
- package/skills/igniteui-angular-components/references/charts.md +43 -222
- package/skills/igniteui-angular-components/references/data-display.md +7 -27
- package/skills/igniteui-angular-components/references/directives.md +12 -22
- package/skills/igniteui-angular-components/references/feedback.md +7 -15
- package/skills/igniteui-angular-components/references/form-controls.md +34 -24
- package/skills/igniteui-angular-components/references/layout-manager.md +2 -48
- package/skills/igniteui-angular-components/references/layout.md +0 -16
- package/skills/igniteui-angular-components/references/setup.md +0 -1
- package/skills/igniteui-angular-grids/SKILL.md +5 -0
- package/skills/igniteui-angular-grids/references/data-operations.md +16 -41
- package/skills/igniteui-angular-grids/references/editing.md +4 -12
- package/skills/igniteui-angular-grids/references/features.md +35 -26
- package/skills/igniteui-angular-grids/references/paging-remote.md +4 -8
- package/skills/igniteui-angular-grids/references/sizing.md +10 -0
- package/skills/igniteui-angular-grids/references/state.md +4 -14
- package/skills/igniteui-angular-grids/references/structure.md +1 -25
- package/skills/igniteui-angular-grids/references/types.md +11 -19
- package/types/igniteui-angular-grids-grid.d.ts +1 -0
- package/types/igniteui-angular-grids-pivot-grid.d.ts +1 -0
|
@@ -32,9 +32,7 @@ Quick reference:
|
|
|
32
32
|
| **Row editing** (recommended default) | `[rowEditable]="true"` + `[editable]="true"` on columns + `(rowEditDone)` |
|
|
33
33
|
| **Batch editing** | `[batchEditing]="true"` + `[rowEditable]="true"` + `transactions.commit(data)` |
|
|
34
34
|
|
|
35
|
-
## Grouping (Grid only)
|
|
36
|
-
|
|
37
|
-
> **Docs:** [Group By](https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/groupby)
|
|
35
|
+
## Grouping (Grid and Tree Grid only)
|
|
38
36
|
|
|
39
37
|
```html
|
|
40
38
|
<igx-grid [data]="data()" [groupsExpanded]="true">
|
|
@@ -67,30 +65,39 @@ For advanced programmatic grouping patterns — see [`data-operations.md`](./dat
|
|
|
67
65
|
Merge adjacent cells with equal values:
|
|
68
66
|
|
|
69
67
|
```html
|
|
70
|
-
<igx-
|
|
68
|
+
<igx-grid [data]="data()" [cellMergeMode]="'always'">
|
|
69
|
+
<igx-column field="category" [merge]="true"></igx-column>
|
|
70
|
+
</igx-grid>
|
|
71
71
|
```
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
Grid merge modes (`cellMergeMode`):
|
|
74
|
+
- `'onSort'` — merge only when the column is sorted **(default)**
|
|
75
|
+
- `'always'` — merge regardless of sort state
|
|
76
|
+
|
|
77
|
+
Or apply a custom merge strategy at the **grid level** (not column):
|
|
74
78
|
|
|
75
79
|
```html
|
|
76
|
-
<igx-
|
|
80
|
+
<igx-grid [data]="data()" [mergeStrategy]="customMerge" [cellMergeMode]="'always'">
|
|
81
|
+
<igx-column field="price" [merge]="true"></igx-column>
|
|
82
|
+
</igx-grid>
|
|
77
83
|
```
|
|
78
84
|
|
|
79
85
|
```typescript
|
|
80
|
-
import {
|
|
81
|
-
// import {
|
|
86
|
+
import { DefaultMergeStrategy } from 'igniteui-angular/core';
|
|
87
|
+
// import { DefaultMergeStrategy } from '@infragistics/igniteui-angular/core'; for licensed package
|
|
82
88
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
89
|
+
// Extend DefaultMergeStrategy and override comparer
|
|
90
|
+
class PriceRangeMergeStrategy extends DefaultMergeStrategy {
|
|
91
|
+
public override comparer(prevRecord: any, record: any, field: string): boolean {
|
|
92
|
+
return Math.abs(prevRecord[field] - record[field]) < 10;
|
|
86
93
|
}
|
|
87
|
-
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
customMerge = new PriceRangeMergeStrategy();
|
|
88
97
|
```
|
|
89
98
|
|
|
90
99
|
## Toolbar
|
|
91
100
|
|
|
92
|
-
> **Docs:** [Toolbar](https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/toolbar)
|
|
93
|
-
|
|
94
101
|
```typescript
|
|
95
102
|
import { IgxGridToolbarComponent } from 'igniteui-angular/grids/core';
|
|
96
103
|
```
|
|
@@ -115,8 +122,6 @@ import { IgxGridToolbarComponent } from 'igniteui-angular/grids/core';
|
|
|
115
122
|
|
|
116
123
|
### Excel Export
|
|
117
124
|
|
|
118
|
-
> **Docs:** [Excel Export](https://www.infragistics.com/products/ignite-ui-angular/angular/components/exporter-excel)
|
|
119
|
-
|
|
120
125
|
```typescript
|
|
121
126
|
import { IgxExcelExporterService, IgxExcelExporterOptions } from 'igniteui-angular/grids/core';
|
|
122
127
|
|
|
@@ -133,8 +138,6 @@ export class MyComponent {
|
|
|
133
138
|
|
|
134
139
|
### CSV Export
|
|
135
140
|
|
|
136
|
-
> **Docs:** [CSV Export](https://www.infragistics.com/products/ignite-ui-angular/angular/components/exporter-csv)
|
|
137
|
-
|
|
138
141
|
```typescript
|
|
139
142
|
import { IgxCsvExporterService, IgxCsvExporterOptions, CsvFileTypes } from 'igniteui-angular/grids/core';
|
|
140
143
|
|
|
@@ -160,19 +163,27 @@ For full remote virtualization patterns — see [`paging-remote.md`](./paging-re
|
|
|
160
163
|
|
|
161
164
|
## Row Drag
|
|
162
165
|
|
|
163
|
-
> **Docs:** [Row Drag](https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/row-drag)
|
|
164
|
-
|
|
165
166
|
```html
|
|
166
167
|
<igx-grid [rowDraggable]="true" (rowDragStart)="onDragStart($event)" (rowDragEnd)="onDragEnd($event)">
|
|
167
|
-
|
|
168
|
-
|
|
168
|
+
<!-- Custom ghost template (purely visual; row data is accessed in event handlers, not in the ghost template) -->
|
|
169
|
+
<ng-template igxRowDragGhost>
|
|
170
|
+
<igx-icon>arrow_right_alt</igx-icon>
|
|
169
171
|
</ng-template>
|
|
170
172
|
</igx-grid>
|
|
171
173
|
```
|
|
172
174
|
|
|
173
|
-
|
|
175
|
+
Handle drops via `igxDrop` on the target:
|
|
174
176
|
|
|
175
|
-
|
|
177
|
+
```typescript
|
|
178
|
+
import { IDropDroppedEventArgs } from 'igniteui-angular/directives';
|
|
179
|
+
|
|
180
|
+
onDropAllowed(args: IDropDroppedEventArgs) {
|
|
181
|
+
this.targetGrid.addRow(args.dragData.data); // row data
|
|
182
|
+
this.sourceGrid.deleteRow(args.dragData.key); // primary key
|
|
183
|
+
}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
## Action Strip
|
|
176
187
|
|
|
177
188
|
Overlay actions on a row:
|
|
178
189
|
|
|
@@ -188,8 +199,6 @@ Overlay actions on a row:
|
|
|
188
199
|
|
|
189
200
|
## Master-Detail (Grid only)
|
|
190
201
|
|
|
191
|
-
> **Docs:** [Master-Detail](https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/master-detail)
|
|
192
|
-
|
|
193
202
|
Expand rows to show arbitrary detail content:
|
|
194
203
|
|
|
195
204
|
```html
|
|
@@ -15,8 +15,6 @@
|
|
|
15
15
|
|
|
16
16
|
## Paging
|
|
17
17
|
|
|
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)
|
|
19
|
-
|
|
20
18
|
### Using the Paginator Component
|
|
21
19
|
|
|
22
20
|
```html
|
|
@@ -114,8 +112,6 @@ export class RemotePagingComponent {
|
|
|
114
112
|
|
|
115
113
|
## Remote Data Operations
|
|
116
114
|
|
|
117
|
-
> **Docs:** [Remote Data Operations](https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/remote-data-operations) (substitute URL prefix per grid type)
|
|
118
|
-
|
|
119
115
|
### The Problem
|
|
120
116
|
|
|
121
117
|
Grids perform sorting, filtering, and paging **client-side** by default. For large datasets, you must intercept these operations and delegate them to the server.
|
|
@@ -130,11 +126,11 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
|
130
126
|
import { IgxGridComponent, IGX_GRID_DIRECTIVES } from 'igniteui-angular/grids/grid';
|
|
131
127
|
import {
|
|
132
128
|
IFilteringExpressionsTree,
|
|
129
|
+
ISortingExpression,
|
|
133
130
|
NoopSortingStrategy,
|
|
134
131
|
NoopFilteringStrategy
|
|
135
132
|
} from 'igniteui-angular/core';
|
|
136
133
|
import { IForOfState } from 'igniteui-angular/directives';
|
|
137
|
-
import { ISortingEventArgs } from 'igniteui-angular/grids/core';
|
|
138
134
|
import { debounceTime, Subject } from 'rxjs';
|
|
139
135
|
|
|
140
136
|
@Component({
|
|
@@ -156,7 +152,7 @@ export class RemoteGridComponent {
|
|
|
156
152
|
private dataService = inject(OrderService);
|
|
157
153
|
private destroyRef = inject(DestroyRef);
|
|
158
154
|
|
|
159
|
-
private currentSort:
|
|
155
|
+
private currentSort: ISortingExpression[] | undefined;
|
|
160
156
|
private currentFilter: IFilteringExpressionsTree | undefined;
|
|
161
157
|
|
|
162
158
|
// Debounce rapid dataPreLoad events during fast scrolling
|
|
@@ -179,7 +175,7 @@ export class RemoteGridComponent {
|
|
|
179
175
|
this.dataPreLoad$.next(event);
|
|
180
176
|
}
|
|
181
177
|
|
|
182
|
-
onSortingDone(
|
|
178
|
+
onSortingDone() {
|
|
183
179
|
this.currentSort = this.gridRef().sortingExpressions;
|
|
184
180
|
this.loadData(0, 15);
|
|
185
181
|
}
|
|
@@ -217,7 +213,7 @@ export class RemoteGridComponent {
|
|
|
217
213
|
[sortStrategy]="noopSort"
|
|
218
214
|
[filterStrategy]="noopFilter"
|
|
219
215
|
(dataPreLoad)="onDataPreLoad($event)"
|
|
220
|
-
(sortingDone)="onSortingDone(
|
|
216
|
+
(sortingDone)="onSortingDone()"
|
|
221
217
|
(filteringExpressionsTreeChange)="onFilteringExpressionsTreeChange()"
|
|
222
218
|
height="600px">
|
|
223
219
|
|
|
@@ -25,6 +25,15 @@ The grid supports both component inputs (`width`/`height`) and regular CSS/layou
|
|
|
25
25
|
|
|
26
26
|
**Default:** `100%` — the grid fills available width of the parent/window.
|
|
27
27
|
|
|
28
|
+
### `null` Width
|
|
29
|
+
|
|
30
|
+
```html
|
|
31
|
+
<igx-grid [width]="null" ...></igx-grid>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
- All columns are rendered in the DOM — **horizontal column virtualization is disabled**.
|
|
35
|
+
- **Warning:** rendering many columns without virtualization can significantly impact performance.
|
|
36
|
+
|
|
28
37
|
### Pixel Width
|
|
29
38
|
|
|
30
39
|
```html
|
|
@@ -141,6 +150,7 @@ html, body, .grid-container {
|
|
|
141
150
|
- Column width is calculated as a percentage of the grid width.
|
|
142
151
|
- Responsive — resizes when the grid resizes.
|
|
143
152
|
- Combined percentages less than `100%` leave an empty area; greater than `100%` triggers a horizontal scrollbar.
|
|
153
|
+
- If the grid `width` is `null`, percentage-width columns fall back to `136px` each.
|
|
144
154
|
|
|
145
155
|
## Grid Cell Spacing Control
|
|
146
156
|
|
|
@@ -16,8 +16,6 @@
|
|
|
16
16
|
|
|
17
17
|
## State Persistence
|
|
18
18
|
|
|
19
|
-
> **Docs:** [State Persistence](https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/state-persistence) (substitute URL prefix per grid type)
|
|
20
|
-
|
|
21
19
|
### Saving and Restoring Grid State
|
|
22
20
|
|
|
23
21
|
Use `IgxGridStateDirective` to persist sorting, filtering, grouping, paging, selection, and column state:
|
|
@@ -115,8 +113,6 @@ onColumnInit(column: IgxColumnComponent) {
|
|
|
115
113
|
|
|
116
114
|
## Tree Grid Data Operations
|
|
117
115
|
|
|
118
|
-
> **Docs:** [Tree Grid](https://www.infragistics.com/products/ignite-ui-angular/angular/components/treegrid/tree-grid) · [Load on Demand](https://www.infragistics.com/products/ignite-ui-angular/angular/components/treegrid/load-on-demand)
|
|
119
|
-
|
|
120
116
|
### Recursive Filtering Behavior
|
|
121
117
|
|
|
122
118
|
Tree Grid filtering is **inclusive** — when a child matches, all its ancestors are kept visible (marked as `isFilteredOutParent`) and auto-expanded. This is the default `TreeGridFilteringStrategy`.
|
|
@@ -171,8 +167,6 @@ this.treeGridRef().deleteRow(2); // deletes row 2 and all its children
|
|
|
171
167
|
|
|
172
168
|
## Hierarchical Grid Data Operations
|
|
173
169
|
|
|
174
|
-
> **Docs:** [Hierarchical Grid](https://www.infragistics.com/products/ignite-ui-angular/angular/components/hierarchicalgrid/hierarchical-grid) · [Load on Demand](https://www.infragistics.com/products/ignite-ui-angular/angular/components/hierarchicalgrid/load-on-demand)
|
|
175
|
-
|
|
176
170
|
### Independent Grid Levels
|
|
177
171
|
|
|
178
172
|
Each level of a hierarchical grid has its **own independent** sorting, filtering, and paging state. Configure features on the `<igx-row-island>` blueprint:
|
|
@@ -236,8 +230,6 @@ Setting `[batchEditing]="true"` on the root hierarchical grid automatically prop
|
|
|
236
230
|
|
|
237
231
|
## Pivot Grid Data Operations
|
|
238
232
|
|
|
239
|
-
> **Docs:** [Pivot Grid](https://www.infragistics.com/products/ignite-ui-angular/angular/components/pivotGrid/pivot-grid)
|
|
240
|
-
|
|
241
233
|
> **IMPORTANT**: The Pivot Grid does NOT use standard sorting, filtering, editing, or paging APIs. All data operations are controlled through `pivotConfiguration`.
|
|
242
234
|
|
|
243
235
|
### Dimension-Based Filtering
|
|
@@ -260,18 +252,16 @@ regionFilter.filteringOperands = [
|
|
|
260
252
|
}
|
|
261
253
|
];
|
|
262
254
|
|
|
263
|
-
// Apply the filter to a dimension
|
|
255
|
+
// Apply the filter to a dimension and notify the grid
|
|
264
256
|
this.pivotConfig.filters[0].filter = regionFilter;
|
|
265
|
-
|
|
266
|
-
this.pivotGridRef().pipeTrigger++;
|
|
257
|
+
this.pivotGridRef().notifyDimensionChange(true);
|
|
267
258
|
```
|
|
268
259
|
|
|
269
260
|
### Dimension-Based Sorting
|
|
270
261
|
|
|
271
262
|
```typescript
|
|
272
|
-
// Sort a row dimension
|
|
273
|
-
this.pivotConfig.rows[0]
|
|
274
|
-
this.pivotGridRef().pipeTrigger++;
|
|
263
|
+
// Sort a row dimension via the public API
|
|
264
|
+
this.pivotGridRef().sortDimension(this.pivotConfig.rows[0], SortingDirection.Desc);
|
|
275
265
|
```
|
|
276
266
|
|
|
277
267
|
### Key Pivot Grid Limitations
|
|
@@ -71,8 +71,6 @@ export class UsersGridComponent {
|
|
|
71
71
|
|
|
72
72
|
## Column Configuration
|
|
73
73
|
|
|
74
|
-
> **Docs:** [Column Types](https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/column-types)
|
|
75
|
-
|
|
76
74
|
### Data Types
|
|
77
75
|
|
|
78
76
|
Set `dataType` to enable proper formatting, filtering, sorting, and editing:
|
|
@@ -91,8 +89,6 @@ Set `dataType` to enable proper formatting, filtering, sorting, and editing:
|
|
|
91
89
|
|
|
92
90
|
### Column Templates
|
|
93
91
|
|
|
94
|
-
> **Docs:** [Column Configuration](https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/grid#angular-grid-column-configuration)
|
|
95
|
-
|
|
96
92
|
Override default rendering with template directives:
|
|
97
93
|
|
|
98
94
|
```html
|
|
@@ -131,8 +127,6 @@ Override default rendering with template directives:
|
|
|
131
127
|
|
|
132
128
|
### Column Groups
|
|
133
129
|
|
|
134
|
-
> **Docs:** [Collapsible Column Groups](https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/collapsible-column-groups)
|
|
135
|
-
|
|
136
130
|
Group columns under a shared header:
|
|
137
131
|
|
|
138
132
|
```html
|
|
@@ -149,8 +143,6 @@ Group columns under a shared header:
|
|
|
149
143
|
|
|
150
144
|
### Multi-Row Layout (MRL)
|
|
151
145
|
|
|
152
|
-
> **Docs:** [Multi-Row Layout](https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/multi-row-layout)
|
|
153
|
-
|
|
154
146
|
Create complex cell layouts spanning multiple rows/columns:
|
|
155
147
|
|
|
156
148
|
```html
|
|
@@ -163,8 +155,6 @@ Create complex cell layouts spanning multiple rows/columns:
|
|
|
163
155
|
|
|
164
156
|
### Column Pinning
|
|
165
157
|
|
|
166
|
-
> **Docs:** [Column Pinning](https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/column-pinning)
|
|
167
|
-
|
|
168
158
|
```html
|
|
169
159
|
<igx-column field="name" [pinned]="true"></igx-column>
|
|
170
160
|
```
|
|
@@ -173,8 +163,6 @@ Or programmatically: `this.gridRef().pinColumn('name')`.
|
|
|
173
163
|
|
|
174
164
|
## Sorting
|
|
175
165
|
|
|
176
|
-
> **Docs:** [Sorting](https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/sorting) (substitute URL prefix per grid type — see hub instruction)
|
|
177
|
-
|
|
178
166
|
```html
|
|
179
167
|
<igx-grid
|
|
180
168
|
[data]="data()"
|
|
@@ -199,8 +187,6 @@ For advanced programmatic sorting patterns, custom sort strategies, and sorting
|
|
|
199
187
|
|
|
200
188
|
### Quick Filter (Row Filter)
|
|
201
189
|
|
|
202
|
-
> **Docs:** [Filtering](https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/filtering)
|
|
203
|
-
|
|
204
190
|
```html
|
|
205
191
|
<igx-grid [allowFiltering]="true" [filterMode]="'quickFilter'">
|
|
206
192
|
<igx-column field="name" [filterable]="true"></igx-column>
|
|
@@ -209,8 +195,6 @@ For advanced programmatic sorting patterns, custom sort strategies, and sorting
|
|
|
209
195
|
|
|
210
196
|
### Excel-Style Filter
|
|
211
197
|
|
|
212
|
-
> **Docs:** [Excel-Style Filtering](https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/excel-style-filtering)
|
|
213
|
-
|
|
214
198
|
```html
|
|
215
199
|
<igx-grid [allowFiltering]="true" [filterMode]="'excelStyleFilter'">
|
|
216
200
|
<igx-column field="name" [filterable]="true"></igx-column>
|
|
@@ -219,8 +203,6 @@ For advanced programmatic sorting patterns, custom sort strategies, and sorting
|
|
|
219
203
|
|
|
220
204
|
### Advanced Filtering Dialog
|
|
221
205
|
|
|
222
|
-
> **Docs:** [Advanced Filtering](https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/advanced-filtering)
|
|
223
|
-
|
|
224
206
|
```html
|
|
225
207
|
<igx-grid [allowAdvancedFiltering]="true">
|
|
226
208
|
<!-- Advanced filtering UI is shown via toolbar or API -->
|
|
@@ -243,13 +225,11 @@ For advanced programmatic filtering, complex AND/OR trees, and remote filtering
|
|
|
243
225
|
|
|
244
226
|
### Row Selection
|
|
245
227
|
|
|
246
|
-
> **Docs:** [Row Selection](https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/row-selection)
|
|
247
|
-
|
|
248
228
|
```html
|
|
249
229
|
<igx-grid [rowSelection]="'multiple'" [primaryKey]="'id'" [(selectedRows)]="selectedIds">
|
|
250
230
|
<!-- Optional: Custom row selector checkbox -->
|
|
251
231
|
<ng-template igxRowSelector let-rowContext>
|
|
252
|
-
<igx-checkbox [checked]="rowContext.selected"
|
|
232
|
+
<igx-checkbox [checked]="rowContext.selected" [readonly]="true">
|
|
253
233
|
</igx-checkbox>
|
|
254
234
|
</ng-template>
|
|
255
235
|
</igx-grid>
|
|
@@ -259,16 +239,12 @@ Modes: `'none'`, `'single'`, `'multiple'`, `'multipleCascade'` (tree grids).
|
|
|
259
239
|
|
|
260
240
|
### Cell Selection
|
|
261
241
|
|
|
262
|
-
> **Docs:** [Cell Selection](https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/cell-selection)
|
|
263
|
-
|
|
264
242
|
```html
|
|
265
243
|
<igx-grid [cellSelection]="'multiple'"></igx-grid>
|
|
266
244
|
```
|
|
267
245
|
|
|
268
246
|
### Column Selection
|
|
269
247
|
|
|
270
|
-
> **Docs:** [Column Selection](https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/column-selection)
|
|
271
|
-
|
|
272
248
|
```html
|
|
273
249
|
<igx-grid [columnSelection]="'multiple'">
|
|
274
250
|
<igx-column field="name" [selectable]="true"></igx-column>
|
|
@@ -15,8 +15,6 @@
|
|
|
15
15
|
|
|
16
16
|
## Tree Grid
|
|
17
17
|
|
|
18
|
-
> **Docs:** [Tree Grid](https://www.infragistics.com/products/ignite-ui-angular/angular/components/treegrid/tree-grid)
|
|
19
|
-
|
|
20
18
|
For data with parent-child relationships **within a single schema** (e.g., org charts, file systems, categories).
|
|
21
19
|
|
|
22
20
|
### Two Data Binding Modes
|
|
@@ -89,8 +87,6 @@ export class OrgTreeComponent {
|
|
|
89
87
|
|
|
90
88
|
## Hierarchical Grid
|
|
91
89
|
|
|
92
|
-
> **Docs:** [Hierarchical Grid](https://www.infragistics.com/products/ignite-ui-angular/angular/components/hierarchicalgrid/hierarchical-grid)
|
|
93
|
-
|
|
94
90
|
For master-detail data where **each level has a different schema** (e.g., Companies → Departments → Employees). Each level is defined by a **Row Island** blueprint.
|
|
95
91
|
|
|
96
92
|
```typescript
|
|
@@ -184,7 +180,7 @@ npm install igniteui-grid-lite
|
|
|
184
180
|
### Setup
|
|
185
181
|
|
|
186
182
|
```typescript
|
|
187
|
-
import { Component, CUSTOM_ELEMENTS_SCHEMA, viewChild } from '@angular/core';
|
|
183
|
+
import { Component, ChangeDetectionStrategy, CUSTOM_ELEMENTS_SCHEMA, viewChild } from '@angular/core';
|
|
188
184
|
import {
|
|
189
185
|
IgxGridLiteComponent,
|
|
190
186
|
IgxGridLiteColumnComponent,
|
|
@@ -215,7 +211,6 @@ export class UsersLiteComponent {
|
|
|
215
211
|
```html
|
|
216
212
|
<igx-grid-lite #grid
|
|
217
213
|
[data]="data"
|
|
218
|
-
[autoGenerate]="false"
|
|
219
214
|
[sortingOptions]="{ mode: 'multiple' }">
|
|
220
215
|
|
|
221
216
|
<igx-grid-lite-column
|
|
@@ -262,22 +257,21 @@ Columns use `<igx-grid-lite-column>` with these inputs:
|
|
|
262
257
|
|
|
263
258
|
### Templates
|
|
264
259
|
|
|
265
|
-
|
|
260
|
+
Use `igxGridLiteCell` for cell templates and `igxGridLiteHeader` for header templates:
|
|
266
261
|
|
|
267
262
|
```html
|
|
268
|
-
<igx-grid-lite-column field="
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
<span [class]="value">{{ value }}</span>
|
|
263
|
+
<igx-grid-lite-column field="rating" dataType="number">
|
|
264
|
+
<ng-template igxGridLiteHeader let-value>
|
|
265
|
+
<span>⭐ Rating</span>
|
|
272
266
|
</ng-template>
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
<ng-template igxGridLiteHeader let-column>
|
|
276
|
-
<strong>{{ column.header }}</strong>
|
|
267
|
+
<ng-template igxGridLiteCell let-value let-row="row">
|
|
268
|
+
<span>{{ value }}</span>
|
|
277
269
|
</ng-template>
|
|
278
270
|
</igx-grid-lite-column>
|
|
279
271
|
```
|
|
280
272
|
|
|
273
|
+
> When a header template is provided, the `header` text property is ignored.
|
|
274
|
+
|
|
281
275
|
### Sorting & Filtering API
|
|
282
276
|
|
|
283
277
|
```typescript
|
|
@@ -345,9 +339,9 @@ dataPipeline: IgxGridLiteDataPipelineConfiguration<Product> = {
|
|
|
345
339
|
|
|
346
340
|
| Event | Cancelable | Payload |
|
|
347
341
|
|---|---|---|
|
|
348
|
-
| `(sorting)` | Yes (`event.
|
|
342
|
+
| `(sorting)` | Yes (`event.preventDefault()`) | Sorting expression about to be applied |
|
|
349
343
|
| `(sorted)` | No | Sorting completed |
|
|
350
|
-
| `(filtering)` | Yes (`event.
|
|
344
|
+
| `(filtering)` | Yes (`event.preventDefault()`) | Filter expression about to be applied |
|
|
351
345
|
| `(filtered)` | No | Filtering completed |
|
|
352
346
|
|
|
353
347
|
### Grid Lite Limitations
|
|
@@ -378,8 +372,6 @@ These features are **NOT available** in Grid Lite:
|
|
|
378
372
|
|
|
379
373
|
## Pivot Grid
|
|
380
374
|
|
|
381
|
-
> **Docs:** [Pivot Grid](https://www.infragistics.com/products/ignite-ui-angular/angular/components/pivotGrid/pivot-grid)
|
|
382
|
-
|
|
383
375
|
For **pivot table analytics** where users reshape data by dragging dimensions between rows, columns, filters, and values.
|
|
384
376
|
|
|
385
377
|
> **IMPORTANT**: The Pivot Grid is fundamentally different from the other three grids. Standard grid features like cell editing, row editing, batch editing, paging, column pinning, column moving, row dragging, and standard filtering/sorting are **disabled**. All data operations are driven by the `pivotConfiguration`.
|
|
@@ -3591,6 +3591,7 @@ declare abstract class IgxGridBaseDirective implements GridType, OnInit, DoCheck
|
|
|
3591
3591
|
protected buildDataView(_data: any[]): void;
|
|
3592
3592
|
private _applyWidthHostBinding;
|
|
3593
3593
|
protected verticalScrollHandler(event: any): void;
|
|
3594
|
+
protected isZonelessChangeDetection(): boolean;
|
|
3594
3595
|
protected hasMenuPinningActions(): boolean;
|
|
3595
3596
|
protected horizontalScrollHandler(event: any): void;
|
|
3596
3597
|
protected get renderedActualRowHeight(): number;
|
|
@@ -1495,6 +1495,7 @@ declare class IgxPivotGridComponent extends IgxGridBaseDirective implements OnIn
|
|
|
1495
1495
|
protected rowDimensionByName(memberName: string): IPivotDimension;
|
|
1496
1496
|
protected calculateResizerTop(): any;
|
|
1497
1497
|
protected updateDefaultRowHeight(): void;
|
|
1498
|
+
protected trackHorizontalRowGroup: (_index: number, rowGroup: IPivotGridRecord[]) => number;
|
|
1498
1499
|
/**
|
|
1499
1500
|
* @hidden @internal
|
|
1500
1501
|
*/
|