igniteui-angular 21.1.0 → 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.
- package/fesm2022/igniteui-angular-directives.mjs +28 -28
- package/fesm2022/igniteui-angular-directives.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-core.mjs +3 -0
- package/fesm2022/igniteui-angular-grids-core.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-grid.mjs +8 -7
- package/fesm2022/igniteui-angular-grids-grid.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-pivot-grid.mjs +2 -2
- package/fesm2022/igniteui-angular-grids-pivot-grid.mjs.map +1 -1
- package/package.json +1 -1
- package/skills/igniteui-angular-components/SKILL.md +6 -9
- package/skills/igniteui-angular-components/references/charts.md +20 -10
- package/skills/igniteui-angular-components/references/data-display.md +13 -0
- package/skills/igniteui-angular-components/references/directives.md +123 -0
- package/skills/igniteui-angular-components/references/feedback.md +8 -0
- package/skills/igniteui-angular-components/references/form-controls.md +15 -0
- package/skills/igniteui-angular-components/references/layout-manager.md +5 -0
- package/skills/igniteui-angular-components/references/layout.md +9 -0
- package/skills/igniteui-angular-components/references/setup.md +10 -1
- package/skills/igniteui-angular-grids/SKILL.md +6 -6
- package/skills/igniteui-angular-grids/references/data-operations.md +13 -4
- package/skills/igniteui-angular-grids/references/editing.md +12 -1
- package/skills/igniteui-angular-grids/references/features.md +26 -10
- package/skills/igniteui-angular-grids/references/paging-remote.md +13 -4
- package/skills/igniteui-angular-grids/references/state.md +17 -151
- package/skills/igniteui-angular-grids/references/structure.md +9 -0
- package/skills/igniteui-angular-grids/references/types.md +104 -25
- package/skills/igniteui-angular-theming/SKILL.md +6 -106
- package/skills/igniteui-angular-theming/references/common-patterns.md +45 -0
- package/skills/igniteui-angular-theming/references/mcp-setup.md +77 -0
- package/types/igniteui-angular-grids-grid.d.ts +1 -0
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: igniteui-angular-components
|
|
3
|
-
description: "
|
|
4
|
-
user-
|
|
3
|
+
description: "Covers all non-grid Ignite UI for Angular UI components: application scaffolding and setup, form controls (inputs, combos, selects, date/time pickers, calendar, checkbox, radio, switch, slider), layout containers (tabs, stepper, accordion, splitter, navigation drawer), data-display components (list, tree, card, chips, carousel, paginator, progress indicators, chat), feedback overlays (dialog, snackbar, toast, banner), directives (button, icon button, button group, ripple, tooltip, drag-and-drop), Dock Manager, Layout Manager, and Charts. Use when users ask about any Ignite UI Angular component that is NOT a data grid — such as forms, dropdowns, pickers, dialogs, navigation, lists, trees, cards, charts, or initial project setup. Do NOT use for data grids, tables, or tabular data — use igniteui-angular-grids 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 — UI Components
|
|
@@ -18,13 +18,10 @@ You are **required** to complete ALL of the following steps before producing any
|
|
|
18
18
|
**STEP 1 — Identify every component or feature involved.**
|
|
19
19
|
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., a form inside a Dialog requires reading both `form-controls.md` AND `feedback.md`).
|
|
20
20
|
|
|
21
|
-
**STEP 2 — Read every identified reference file in full.**
|
|
22
|
-
Call `read_file` (or equivalent) on
|
|
21
|
+
**STEP 2 — Read every identified reference file in full (PARALLEL).**
|
|
22
|
+
Call `read_file` (or equivalent) on **all** reference files identified in Step 1 **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.
|
|
23
23
|
|
|
24
|
-
**STEP 3 —
|
|
25
|
-
If the component is new to the project (or you're scaffolding a new feature), also read [`references/setup.md`](./references/setup.md) to verify the correct providers and entry-point import patterns. Missing `provideAnimations()` is the most common source of runtime failures.
|
|
26
|
-
|
|
27
|
-
**STEP 4 — Only then produce output.**
|
|
24
|
+
**STEP 3 — Only then produce output.**
|
|
28
25
|
Base your code and explanation exclusively on what you read. If the reference files do not cover something, say so explicitly rather than guessing.
|
|
29
26
|
|
|
30
27
|
### Task → Reference File
|
|
@@ -36,7 +33,7 @@ Base your code and explanation exclusively on what you read. If the reference fi
|
|
|
36
33
|
| Tabs, Bottom Navigation, Stepper, Accordion, Expansion Panel, Splitter, Navigation Drawer | [`references/layout.md`](./references/layout.md) |
|
|
37
34
|
| List, Tree, Card, Chips, Avatar, Badge, Icon, Carousel, Paginator, Progress Indicators, Chat | [`references/data-display.md`](./references/data-display.md) |
|
|
38
35
|
| Dialog, Snackbar, Toast, Banner | [`references/feedback.md`](./references/feedback.md) |
|
|
39
|
-
| Button, Icon Button, Ripple, Tooltip, Drag and Drop | [`references/directives.md`](./references/directives.md) |
|
|
36
|
+
| Button, Icon Button, Button Group, Ripple, Tooltip, Drag and Drop | [`references/directives.md`](./references/directives.md) |
|
|
40
37
|
| Layout Manager (`igxLayout`, `igxFlex` directives), Dock Manager (`igc-dockmanager` web component) | [`references/layout-manager.md`](./references/layout-manager.md) |
|
|
41
38
|
| Charts (Area, Bar, Column, Stock/Financial, Pie), chart configuration, chart features (animation, tooltips, markers, highlighting, zooming), data binding | [`references/charts.md`](./references/charts.md) |
|
|
42
39
|
|
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Angular Charts Reference
|
|
2
2
|
|
|
3
|
+
## Contents
|
|
4
|
+
|
|
5
|
+
- [Overview](#overview)
|
|
6
|
+
- [General Chart Configuration](#general-chart-configuration)
|
|
7
|
+
- [Key Chart Features](#key-chart-features)
|
|
8
|
+
- [Chart Types Reference](#chart-types-reference)
|
|
9
|
+
- [Common API Members by Chart Type](#common-api-members-by-chart-type)
|
|
10
|
+
- [Import Paths](#import-paths)
|
|
11
|
+
- [Styling & Theming](#styling--theming)
|
|
12
|
+
- [Data Requirements](#data-requirements)
|
|
13
|
+
- [Documentation References](#documentation-references)
|
|
14
|
+
|
|
3
15
|
## Overview
|
|
4
16
|
|
|
5
17
|
Ignite UI for Angular Charts provides 65+ chart types for data visualization. Charts are packaged separately in `igniteui-angular-charts` (or `@infragistics/igniteui-angular-charts` for licensed users).
|
|
@@ -303,7 +315,6 @@ highlightingMode: HighlightingMode;
|
|
|
303
315
|
import {
|
|
304
316
|
IgxCategoryChartModule, // provides IgxCategoryChartComponent
|
|
305
317
|
IgxFinancialChartModule, // provides IgxFinancialChartComponent
|
|
306
|
-
IgxDataChartModule, // provides IgxDataChartComponent + all series/axes
|
|
307
318
|
IgxPieChartModule, // provides IgxPieChartComponent
|
|
308
319
|
IgxDataPieChartModule, // provides IgxDataPieChartComponent
|
|
309
320
|
IgxLegendModule, // provides IgxLegendComponent
|
|
@@ -311,21 +322,20 @@ import {
|
|
|
311
322
|
|
|
312
323
|
// Enums and types — these ARE plain TS exports and can be imported directly
|
|
313
324
|
import {
|
|
314
|
-
ChartType,
|
|
315
325
|
FinancialChartType,
|
|
316
326
|
MarkerType,
|
|
317
327
|
ToolTipType,
|
|
318
|
-
|
|
328
|
+
TrendLineTypeCollection,
|
|
319
329
|
HighlightingMode,
|
|
320
|
-
|
|
321
|
-
|
|
330
|
+
TransitionInSpeedType,
|
|
331
|
+
AxisLabelSettings,
|
|
322
332
|
CrosshairsDisplayMode,
|
|
323
333
|
LegendOrientation,
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
334
|
+
OthersCategoryContext,
|
|
335
|
+
SeriesSelectionMode,
|
|
336
|
+
IndicatorDisplayType,
|
|
337
|
+
FinancialChartVolumeType,
|
|
338
|
+
AxisOrientation
|
|
329
339
|
} from 'igniteui-angular-charts';
|
|
330
340
|
```
|
|
331
341
|
|
|
@@ -3,6 +3,19 @@
|
|
|
3
3
|
> **Part of the [`igniteui-angular-components`](../SKILL.md) skill hub.**
|
|
4
4
|
> For app setup, providers, and import patterns — see [`setup.md`](./setup.md).
|
|
5
5
|
|
|
6
|
+
## Contents
|
|
7
|
+
|
|
8
|
+
- [List](#list)
|
|
9
|
+
- [Tree](#tree)
|
|
10
|
+
- [Card](#card)
|
|
11
|
+
- [Chips](#chips)
|
|
12
|
+
- [Avatar & Badge](#avatar--badge)
|
|
13
|
+
- [Icon](#icon)
|
|
14
|
+
- [Carousel](#carousel)
|
|
15
|
+
- [Paginator](#paginator)
|
|
16
|
+
- [Progress Indicators](#progress-indicators)
|
|
17
|
+
- [Chat (AI Chat Component)](#chat-ai-chat-component)
|
|
18
|
+
|
|
6
19
|
## List
|
|
7
20
|
|
|
8
21
|
> **Docs:** [List Component](https://www.infragistics.com/products/ignite-ui-angular/angular/components/list)
|
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
> **Part of the [`igniteui-angular-components`](../SKILL.md) skill hub.**
|
|
4
4
|
> For app setup, providers, and import patterns — see [`setup.md`](./setup.md).
|
|
5
5
|
|
|
6
|
+
## Contents
|
|
7
|
+
|
|
8
|
+
- [Button & Icon Button](#button--icon-button)
|
|
9
|
+
- [Button Group](#button-group)
|
|
10
|
+
- [Ripple Effect](#ripple-effect)
|
|
11
|
+
- [Tooltip](#tooltip)
|
|
12
|
+
- [Drag and Drop](#drag-and-drop)
|
|
13
|
+
|
|
6
14
|
## Button & Icon Button
|
|
7
15
|
|
|
8
16
|
> **Docs:** [Button Component](https://www.infragistics.com/products/ignite-ui-angular/angular/components/button)
|
|
@@ -33,6 +41,121 @@ import { IgxIconComponent } from 'igniteui-angular/icon';
|
|
|
33
41
|
Button variants for `igxButton`: `'flat'`, `'raised'`, `'outlined'`, `'fab'`.
|
|
34
42
|
Button variants for `igxIconButton`: `'flat'`, `'outlined'`, `'contained'`.
|
|
35
43
|
|
|
44
|
+
## Button Group
|
|
45
|
+
|
|
46
|
+
> **Docs:** [Button Group Component](https://www.infragistics.com/products/ignite-ui-angular/angular/components/buttongroup)
|
|
47
|
+
|
|
48
|
+
```typescript
|
|
49
|
+
// Option A — convenience collection (includes IgxButtonGroupComponent + IgxButtonDirective)
|
|
50
|
+
import { IGX_BUTTON_GROUP_DIRECTIVES } from 'igniteui-angular/button-group';
|
|
51
|
+
|
|
52
|
+
// Option B — individual imports
|
|
53
|
+
import { IgxButtonGroupComponent } from 'igniteui-angular/button-group';
|
|
54
|
+
import { IgxButtonDirective } from 'igniteui-angular/directives';
|
|
55
|
+
|
|
56
|
+
import { IgxIconComponent } from 'igniteui-angular/icon';
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
```html
|
|
60
|
+
<!-- Text buttons — single selection (default) -->
|
|
61
|
+
<igx-buttongroup>
|
|
62
|
+
<button igxButton>Left</button>
|
|
63
|
+
<button igxButton [selected]="true">Center</button>
|
|
64
|
+
<button igxButton>Right</button>
|
|
65
|
+
</igx-buttongroup>
|
|
66
|
+
|
|
67
|
+
<!-- Multi-selection -->
|
|
68
|
+
<igx-buttongroup selectionMode="multi">
|
|
69
|
+
<button igxButton><igx-icon>format_bold</igx-icon></button>
|
|
70
|
+
<button igxButton><igx-icon>format_italic</igx-icon></button>
|
|
71
|
+
<button igxButton><igx-icon>format_underlined</igx-icon></button>
|
|
72
|
+
</igx-buttongroup>
|
|
73
|
+
|
|
74
|
+
<!-- singleRequired — always keeps one button selected, cannot deselect -->
|
|
75
|
+
<igx-buttongroup selectionMode="singleRequired">
|
|
76
|
+
<button igxButton [selected]="true">Day</button>
|
|
77
|
+
<button igxButton>Week</button>
|
|
78
|
+
<button igxButton>Month</button>
|
|
79
|
+
</igx-buttongroup>
|
|
80
|
+
|
|
81
|
+
<!-- Vertical alignment -->
|
|
82
|
+
<igx-buttongroup alignment="vertical">
|
|
83
|
+
<button igxButton>Top</button>
|
|
84
|
+
<button igxButton>Middle</button>
|
|
85
|
+
<button igxButton>Bottom</button>
|
|
86
|
+
</igx-buttongroup>
|
|
87
|
+
|
|
88
|
+
<!-- Disabled group -->
|
|
89
|
+
<igx-buttongroup [disabled]="true">
|
|
90
|
+
<button igxButton>A</button>
|
|
91
|
+
<button igxButton>B</button>
|
|
92
|
+
</igx-buttongroup>
|
|
93
|
+
|
|
94
|
+
<!-- React to selection / deselection events -->
|
|
95
|
+
<igx-buttongroup (selected)="onSelected($event)" (deselected)="onDeselected($event)">
|
|
96
|
+
<button igxButton>One</button>
|
|
97
|
+
<button igxButton>Two</button>
|
|
98
|
+
<button igxButton>Three</button>
|
|
99
|
+
</igx-buttongroup>
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
```typescript
|
|
103
|
+
import { IButtonGroupEventArgs } from 'igniteui-angular/button-group';
|
|
104
|
+
|
|
105
|
+
onSelected(event: IButtonGroupEventArgs) {
|
|
106
|
+
console.log('Selected index:', event.index, 'button:', event.button);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
onDeselected(event: IButtonGroupEventArgs) {
|
|
110
|
+
console.log('Deselected index:', event.index);
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**Key inputs on `igx-buttongroup`:**
|
|
115
|
+
|
|
116
|
+
| Input | Type | Default | Description |
|
|
117
|
+
|---|---|---|---|
|
|
118
|
+
| `selectionMode` | `'single' \| 'singleRequired' \| 'multi'` | `'single'` | Selection behaviour. `singleRequired` prevents full deselection. |
|
|
119
|
+
| `alignment` | `'horizontal' \| 'vertical'` | `'horizontal'` | Layout direction of the buttons. |
|
|
120
|
+
| `disabled` | `boolean` | `false` | Disables every button in the group. |
|
|
121
|
+
|
|
122
|
+
**Key outputs on `igx-buttongroup`:**
|
|
123
|
+
|
|
124
|
+
| Output | Payload | Emits when |
|
|
125
|
+
|---|---|---|
|
|
126
|
+
| `(selected)` | `IButtonGroupEventArgs` | A button is selected. |
|
|
127
|
+
| `(deselected)` | `IButtonGroupEventArgs` | A button is deselected. |
|
|
128
|
+
|
|
129
|
+
`IButtonGroupEventArgs`: `{ owner: IgxButtonGroupComponent; button: IgxButtonDirective; index: number }`, where `IgxButtonDirective` is imported from `igniteui-angular/directives` (see **Button & Icon Button** section above).
|
|
130
|
+
|
|
131
|
+
**Key inputs on each `<button igxButton>` child:**
|
|
132
|
+
|
|
133
|
+
| Input | Type | Description |
|
|
134
|
+
|---|---|---|
|
|
135
|
+
| `[selected]` | `boolean` | Sets the initial selected state of the button. |
|
|
136
|
+
| `[disabled]` | `boolean` | Disables a specific button within the group. |
|
|
137
|
+
|
|
138
|
+
**Programmatic control:**
|
|
139
|
+
|
|
140
|
+
```typescript
|
|
141
|
+
import { viewChild } from '@angular/core';
|
|
142
|
+
import { IgxButtonGroupComponent } from 'igniteui-angular/button-group';
|
|
143
|
+
|
|
144
|
+
buttonGroup = viewChild.required<IgxButtonGroupComponent>('myGroup');
|
|
145
|
+
|
|
146
|
+
selectSecond() { this.buttonGroup().selectButton(1); }
|
|
147
|
+
deselectSecond() { this.buttonGroup().deselectButton(1); }
|
|
148
|
+
getSelected() { return this.buttonGroup().selectedButtons; }
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
```html
|
|
152
|
+
<igx-buttongroup #myGroup selectionMode="multi">
|
|
153
|
+
<button igxButton>A</button>
|
|
154
|
+
<button igxButton>B</button>
|
|
155
|
+
<button igxButton>C</button>
|
|
156
|
+
</igx-buttongroup>
|
|
157
|
+
```
|
|
158
|
+
|
|
36
159
|
## Ripple Effect
|
|
37
160
|
|
|
38
161
|
> **Docs:** [Ripple Directive](https://www.infragistics.com/products/ignite-ui-angular/angular/components/ripple)
|
|
@@ -5,6 +5,14 @@
|
|
|
5
5
|
|
|
6
6
|
> **AGENT INSTRUCTION:** All components in this file rely on Angular animations and the Ignite UI overlay system. Before using any of them, ensure `provideAnimations()` (or `provideAnimationsAsync()`) is present in `app.config.ts`. If it is missing, add it — these components will throw runtime errors or silently fail to animate without it.
|
|
7
7
|
|
|
8
|
+
## Contents
|
|
9
|
+
|
|
10
|
+
- [Dialog](#dialog)
|
|
11
|
+
- [Snackbar](#snackbar)
|
|
12
|
+
- [Toast](#toast)
|
|
13
|
+
- [Banner](#banner)
|
|
14
|
+
- [Key Rules](#key-rules)
|
|
15
|
+
|
|
8
16
|
## Dialog
|
|
9
17
|
|
|
10
18
|
> **Docs:** [Dialog Component](https://www.infragistics.com/products/ignite-ui-angular/angular/components/dialog)
|
|
@@ -3,6 +3,21 @@
|
|
|
3
3
|
> **Part of the [`igniteui-angular-components`](../SKILL.md) skill hub.**
|
|
4
4
|
> For app setup, providers, and import patterns — see [`setup.md`](./setup.md).
|
|
5
5
|
|
|
6
|
+
## Contents
|
|
7
|
+
|
|
8
|
+
- [Input Group](#input-group)
|
|
9
|
+
- [Combo (Multi-Select Dropdown)](#combo-multi-select-dropdown)
|
|
10
|
+
- [Simple Combo (Single-Select)](#simple-combo-single-select)
|
|
11
|
+
- [Select](#select)
|
|
12
|
+
- [Date Picker](#date-picker)
|
|
13
|
+
- [Date Range Picker](#date-range-picker)
|
|
14
|
+
- [Time Picker](#time-picker)
|
|
15
|
+
- [Calendar](#calendar)
|
|
16
|
+
- [Checkbox, Radio, Switch](#checkbox-radio-switch)
|
|
17
|
+
- [Slider](#slider)
|
|
18
|
+
- [Reactive Forms Integration](#reactive-forms-integration)
|
|
19
|
+
- [Key Rules](#key-rules)
|
|
20
|
+
|
|
6
21
|
## Input Group
|
|
7
22
|
|
|
8
23
|
> **Docs:** [Input Group](https://www.infragistics.com/products/ignite-ui-angular/angular/components/input-group)
|
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
> **Part of the [`igniteui-angular-components`](../SKILL.md) skill hub.**
|
|
4
4
|
> For app setup, providers, and import patterns — see [`setup.md`](./setup.md).
|
|
5
5
|
|
|
6
|
+
## Contents
|
|
7
|
+
|
|
8
|
+
- [Layout Manager Directives](#layout-manager-directives)
|
|
9
|
+
- [Dock Manager](#dock-manager)
|
|
10
|
+
|
|
6
11
|
---
|
|
7
12
|
|
|
8
13
|
## Layout Manager Directives
|
|
@@ -3,6 +3,15 @@
|
|
|
3
3
|
> **Part of the [`igniteui-angular-components`](../SKILL.md) skill hub.**
|
|
4
4
|
> For app setup, providers, and import patterns — see [`setup.md`](./setup.md).
|
|
5
5
|
|
|
6
|
+
## Contents
|
|
7
|
+
|
|
8
|
+
- [Tabs](#tabs)
|
|
9
|
+
- [Bottom Navigation](#bottom-navigation)
|
|
10
|
+
- [Stepper](#stepper)
|
|
11
|
+
- [Accordion](#accordion)
|
|
12
|
+
- [Splitter](#splitter)
|
|
13
|
+
- [Navigation Drawer](#navigation-drawer)
|
|
14
|
+
|
|
6
15
|
## Tabs
|
|
7
16
|
|
|
8
17
|
> **Docs:** [Tabs Component](https://www.infragistics.com/products/ignite-ui-angular/angular/components/tabs)
|
|
@@ -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
|
|
@@ -113,6 +120,7 @@ import { IgxComboComponent } from 'igniteui-angular';
|
|
|
113
120
|
| Circular Progress | `igniteui-angular/progressbar` |
|
|
114
121
|
| Chat | `igniteui-angular/chat` |
|
|
115
122
|
| Button / Icon Button | `igniteui-angular/directives` |
|
|
123
|
+
| Button Group | `igniteui-angular/button-group` |
|
|
116
124
|
| Ripple | `igniteui-angular/directives` |
|
|
117
125
|
| IgxTooltipDirective, IgxTooltipTargetDirective | `igniteui-angular/directives` |
|
|
118
126
|
| Drag & Drop | `igniteui-angular/directives` |
|
|
@@ -138,6 +146,7 @@ For complex components, use the bundled directive arrays instead of listing ever
|
|
|
138
146
|
|
|
139
147
|
| Token | Entry Point | Includes |
|
|
140
148
|
|---|---|---|
|
|
149
|
+
| `IGX_BUTTON_GROUP_DIRECTIVES` | `igniteui-angular/button-group` | Button group + button directive |
|
|
141
150
|
| `IGX_INPUT_GROUP_DIRECTIVES` | `igniteui-angular/input-group` | Input group + label, hint, prefix, suffix |
|
|
142
151
|
| `IGX_TABS_DIRECTIVES` | `igniteui-angular/tabs` | Tabs + tab item, header, content |
|
|
143
152
|
| `IGX_STEPPER_DIRECTIVES` | `igniteui-angular/stepper` | Stepper + step |
|
|
@@ -151,7 +160,7 @@ For complex components, use the bundled directive arrays instead of listing ever
|
|
|
151
160
|
- [`layout.md`](./layout.md) — Tabs, Stepper, Accordion, Splitter, Navigation Drawer
|
|
152
161
|
- [`data-display.md`](./data-display.md) — List, Tree, Card, Chips, Avatar, Badge, Icon, Carousel, Paginator, Progress, Chat
|
|
153
162
|
- [`feedback.md`](./feedback.md) — Dialog, Snackbar, Toast, Banner
|
|
154
|
-
- [`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
|
|
155
164
|
- [`layout-manager.md`](./layout-manager.md) — Layout Manager directives, Dock Manager
|
|
156
165
|
- [`../../igniteui-angular-grids/SKILL.md`](../../igniteui-angular-grids/SKILL.md) — Data Grids
|
|
157
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: "
|
|
4
|
-
user-
|
|
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
|
|
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
|
|
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
|
|
|
@@ -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.
|
|
@@ -190,7 +198,7 @@ onSortingDone(event: ISortingEventArgs) {
|
|
|
190
198
|
Implement `ISortingStrategy` to control how values are compared:
|
|
191
199
|
|
|
192
200
|
```typescript
|
|
193
|
-
import { ISortingStrategy, SortingDirection } from 'igniteui-angular/
|
|
201
|
+
import { ISortingStrategy, SortingDirection } from 'igniteui-angular/core';
|
|
194
202
|
|
|
195
203
|
class PrioritySortStrategy implements ISortingStrategy {
|
|
196
204
|
private priorityOrder = ['Critical', 'High', 'Medium', 'Low'];
|
|
@@ -249,7 +257,8 @@ import {
|
|
|
249
257
|
IgxBooleanFilteringOperand,
|
|
250
258
|
FilteringExpressionsTree,
|
|
251
259
|
FilteringLogic
|
|
252
|
-
} from 'igniteui-angular/
|
|
260
|
+
} from 'igniteui-angular/core';
|
|
261
|
+
// import { ... } from '@infragistics/igniteui-angular/core'; for licensed package
|
|
253
262
|
|
|
254
263
|
// Simple single-column filter
|
|
255
264
|
this.gridRef().filter('name', 'John', IgxStringFilteringOperand.instance().condition('contains'), true);
|
|
@@ -309,7 +318,7 @@ Control the AND/OR logic between **different column** filters:
|
|
|
309
318
|
```
|
|
310
319
|
|
|
311
320
|
```typescript
|
|
312
|
-
import { FilteringLogic } from 'igniteui-angular
|
|
321
|
+
import { FilteringLogic } from 'igniteui-angular';
|
|
313
322
|
|
|
314
323
|
// FilteringLogic.And (default) — row must match ALL column filters
|
|
315
324
|
// FilteringLogic.Or — row must match ANY column filter
|
|
@@ -369,7 +378,7 @@ onFilteringDone(event: IFilteringEventArgs) {
|
|
|
369
378
|
### Programmatic Grouping
|
|
370
379
|
|
|
371
380
|
```typescript
|
|
372
|
-
import { SortingDirection } from 'igniteui-angular/
|
|
381
|
+
import { SortingDirection } from 'igniteui-angular/core';
|
|
373
382
|
|
|
374
383
|
// Group by a column
|
|
375
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
|
|
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
|
|
47
|
-
|
|
48
|
-
Quick reference
|
|
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
|
-
|
|
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/
|
|
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/
|
|
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({
|