Skip to content

Commit 5dd5dc5

Browse files
DataGrid - AI Column: implement .d.ts (#31166)
Co-authored-by: Mikhail Preyskurantov <[email protected]>
1 parent d331464 commit 5dd5dc5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+5840
-57
lines changed

packages/devextreme-angular/src/common/grids/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
export {
22
AdaptiveDetailRowPreparingInfo,
3+
AIColumnMode,
4+
AIColumnRequestCreatingInfo,
5+
AIColumnResponseReceivedInfo,
36
ApplyChangesMode,
47
ApplyFilterMode,
8+
ColumnAIOptions,
59
ColumnBase,
610
ColumnButtonBase,
711
ColumnChooser,

packages/devextreme-angular/src/ui/data-grid/index.ts

Lines changed: 56 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,9 @@ import DataSource from 'devextreme/data/data_source';
2727
import dxDataGrid from 'devextreme/ui/data_grid';
2828
import dxSortable from 'devextreme/ui/sortable';
2929
import dxDraggable from 'devextreme/ui/draggable';
30+
import { AIIntegration } from 'devextreme/common/ai-integration';
3031
import { ColumnChooser, ColumnResizeMode, DataChange, GridsEditMode, NewRowPosition, GridsEditRefreshMode, StartEditAction, FilterPanel, ApplyFilterMode, GroupExpandMode, HeaderFilter, EnterKeyAction, EnterKeyDirection, Pager, GridBase, DataRenderMode, SearchPanel, SelectionColumnDisplayMode, Sorting, StateStoreType, SummaryType } from 'devextreme/common/grids';
31-
import { dxDataGridColumn, dxDataGridRowObject, DataGridExportFormat, AdaptiveDetailRowPreparingEvent, CellClickEvent, CellDblClickEvent, CellHoverChangedEvent, CellPreparedEvent, ContentReadyEvent, ContextMenuPreparingEvent, DataErrorOccurredEvent, DisposingEvent, EditCanceledEvent, EditCancelingEvent, EditingStartEvent, EditorPreparedEvent, EditorPreparingEvent, ExportingEvent, FocusedCellChangedEvent, FocusedCellChangingEvent, FocusedRowChangedEvent, FocusedRowChangingEvent, InitializedEvent, InitNewRowEvent, KeyDownEvent, OptionChangedEvent, RowClickEvent, RowCollapsedEvent, RowCollapsingEvent, RowDblClickEvent, RowExpandedEvent, RowExpandingEvent, RowInsertedEvent, RowInsertingEvent, RowPreparedEvent, RowRemovedEvent, RowRemovingEvent, RowUpdatedEvent, RowUpdatingEvent, RowValidatingEvent, SavedEvent, SavingEvent, SelectionChangedEvent, ToolbarPreparingEvent, DataGridScrollMode, SelectionSensitivity, dxDataGridToolbar } from 'devextreme/ui/data_grid';
32+
import { dxDataGridColumn, dxDataGridRowObject, DataGridExportFormat, AdaptiveDetailRowPreparingEvent, AIColumnRequestCreatingEvent, AIColumnResponseReceivedEvent, CellClickEvent, CellDblClickEvent, CellHoverChangedEvent, CellPreparedEvent, ContentReadyEvent, ContextMenuPreparingEvent, DataErrorOccurredEvent, DisposingEvent, EditCanceledEvent, EditCancelingEvent, EditingStartEvent, EditorPreparedEvent, EditorPreparingEvent, ExportingEvent, FocusedCellChangedEvent, FocusedCellChangingEvent, FocusedRowChangedEvent, FocusedRowChangingEvent, InitializedEvent, InitNewRowEvent, KeyDownEvent, OptionChangedEvent, RowClickEvent, RowCollapsedEvent, RowCollapsingEvent, RowDblClickEvent, RowExpandedEvent, RowExpandingEvent, RowInsertedEvent, RowInsertingEvent, RowPreparedEvent, RowRemovedEvent, RowRemovingEvent, RowUpdatedEvent, RowUpdatingEvent, RowValidatingEvent, SavedEvent, SavingEvent, SelectionChangedEvent, ToolbarPreparingEvent, DataGridScrollMode, SelectionSensitivity, dxDataGridToolbar } from 'devextreme/ui/data_grid';
3233
import { Mode, DragDirection, DragHighlight, ScrollbarMode, SingleMultipleOrNone, SelectAllMode, SortOrder, HorizontalAlignment } from 'devextreme/common';
3334
import { DataSourceOptions } from 'devextreme/data/data_source';
3435
import { Store } from 'devextreme/data/store';
@@ -116,6 +117,7 @@ import { DxoValueFormatModule } from 'devextreme-angular/ui/nested';
116117
import { DxiTotalItemModule } from 'devextreme-angular/ui/nested';
117118
import { DxoToolbarModule } from 'devextreme-angular/ui/nested';
118119

120+
import { DxoDataGridAiModule } from 'devextreme-angular/ui/data-grid/nested';
119121
import { DxoDataGridAiOptionsModule } from 'devextreme-angular/ui/data-grid/nested';
120122
import { DxoDataGridAnimationModule } from 'devextreme-angular/ui/data-grid/nested';
121123
import { DxiDataGridAsyncRuleModule } from 'devextreme-angular/ui/data-grid/nested';
@@ -126,6 +128,7 @@ import { DxiDataGridChangeModule } from 'devextreme-angular/ui/data-grid/nested'
126128
import { DxoDataGridColCountByScreenModule } from 'devextreme-angular/ui/data-grid/nested';
127129
import { DxoDataGridCollisionModule } from 'devextreme-angular/ui/data-grid/nested';
128130
import { DxiDataGridColumnModule } from 'devextreme-angular/ui/data-grid/nested';
131+
import { DxiDataGridColumnButtonModule } from 'devextreme-angular/ui/data-grid/nested';
129132
import { DxoDataGridColumnChooserModule } from 'devextreme-angular/ui/data-grid/nested';
130133
import { DxoDataGridColumnChooserSearchModule } from 'devextreme-angular/ui/data-grid/nested';
131134
import { DxoDataGridColumnChooserSelectionModule } from 'devextreme-angular/ui/data-grid/nested';
@@ -144,6 +147,8 @@ import { DxoDataGridDataGridHeaderFilterTextsModule } from 'devextreme-angular/u
144147
import { DxoDataGridDataGridSelectionModule } from 'devextreme-angular/ui/data-grid/nested';
145148
import { DxoDataGridEditingModule } from 'devextreme-angular/ui/data-grid/nested';
146149
import { DxoDataGridEditingTextsModule } from 'devextreme-angular/ui/data-grid/nested';
150+
import { DxoDataGridEditorOptionsModule } from 'devextreme-angular/ui/data-grid/nested';
151+
import { DxiDataGridEditorOptionsButtonModule } from 'devextreme-angular/ui/data-grid/nested';
147152
import { DxiDataGridEmailRuleModule } from 'devextreme-angular/ui/data-grid/nested';
148153
import { DxoDataGridExportModule } from 'devextreme-angular/ui/data-grid/nested';
149154
import { DxoDataGridExportTextsModule } from 'devextreme-angular/ui/data-grid/nested';
@@ -177,6 +182,7 @@ import { DxoDataGridMyModule } from 'devextreme-angular/ui/data-grid/nested';
177182
import { DxiDataGridNumericRuleModule } from 'devextreme-angular/ui/data-grid/nested';
178183
import { DxoDataGridOffsetModule } from 'devextreme-angular/ui/data-grid/nested';
179184
import { DxoDataGridOperationDescriptionsModule } from 'devextreme-angular/ui/data-grid/nested';
185+
import { DxoDataGridOptionsModule } from 'devextreme-angular/ui/data-grid/nested';
180186
import { DxoDataGridPagerModule } from 'devextreme-angular/ui/data-grid/nested';
181187
import { DxoDataGridPagingModule } from 'devextreme-angular/ui/data-grid/nested';
182188
import { DxiDataGridPatternRuleModule } from 'devextreme-angular/ui/data-grid/nested';
@@ -258,6 +264,19 @@ export class DxDataGridComponent<TRowData = any, TKey = any> extends DxComponent
258264
}
259265

260266

267+
/**
268+
* [descr:GridBaseOptions.aiIntegration]
269+
270+
*/
271+
@Input()
272+
get aiIntegration(): AIIntegration | undefined {
273+
return this._getOption('aiIntegration');
274+
}
275+
set aiIntegration(value: AIIntegration | undefined) {
276+
this._setOption('aiIntegration', value);
277+
}
278+
279+
261280
/**
262281
* [descr:GridBaseOptions.allowColumnReordering]
263282
@@ -1216,6 +1235,22 @@ export class DxDataGridComponent<TRowData = any, TKey = any> extends DxComponent
12161235
*/
12171236
@Output() onAdaptiveDetailRowPreparing: EventEmitter<AdaptiveDetailRowPreparingEvent>;
12181237

1238+
/**
1239+
1240+
* [descr:dxDataGridOptions.onAIColumnRequestCreating]
1241+
1242+
1243+
*/
1244+
@Output() onAIColumnRequestCreating: EventEmitter<AIColumnRequestCreatingEvent>;
1245+
1246+
/**
1247+
1248+
* [descr:dxDataGridOptions.onAIColumnResponseReceived]
1249+
1250+
1251+
*/
1252+
@Output() onAIColumnResponseReceived: EventEmitter<AIColumnResponseReceivedEvent>;
1253+
12191254
/**
12201255
12211256
* [descr:dxDataGridOptions.onCellClick]
@@ -1550,6 +1585,13 @@ export class DxDataGridComponent<TRowData = any, TKey = any> extends DxComponent
15501585
*/
15511586
@Output() activeStateEnabledChange: EventEmitter<boolean>;
15521587

1588+
/**
1589+
1590+
* This member supports the internal infrastructure and is not intended to be used directly from your code.
1591+
1592+
*/
1593+
@Output() aiIntegrationChange: EventEmitter<AIIntegration | undefined>;
1594+
15531595
/**
15541596
15551597
* This member supports the internal infrastructure and is not intended to be used directly from your code.
@@ -2111,6 +2153,8 @@ export class DxDataGridComponent<TRowData = any, TKey = any> extends DxComponent
21112153

21122154
this._createEventEmitters([
21132155
{ subscribe: 'adaptiveDetailRowPreparing', emit: 'onAdaptiveDetailRowPreparing' },
2156+
{ subscribe: 'aIColumnRequestCreating', emit: 'onAIColumnRequestCreating' },
2157+
{ subscribe: 'aIColumnResponseReceived', emit: 'onAIColumnResponseReceived' },
21142158
{ subscribe: 'cellClick', emit: 'onCellClick' },
21152159
{ subscribe: 'cellDblClick', emit: 'onCellDblClick' },
21162160
{ subscribe: 'cellHoverChanged', emit: 'onCellHoverChanged' },
@@ -2153,6 +2197,7 @@ export class DxDataGridComponent<TRowData = any, TKey = any> extends DxComponent
21532197
{ subscribe: 'toolbarPreparing', emit: 'onToolbarPreparing' },
21542198
{ emit: 'accessKeyChange' },
21552199
{ emit: 'activeStateEnabledChange' },
2200+
{ emit: 'aiIntegrationChange' },
21562201
{ emit: 'allowColumnReorderingChange' },
21572202
{ emit: 'allowColumnResizingChange' },
21582203
{ emit: 'autoNavigateToFocusedRowChange' },
@@ -2349,6 +2394,7 @@ export class DxDataGridComponent<TRowData = any, TKey = any> extends DxComponent
23492394
DxoValueFormatModule,
23502395
DxiTotalItemModule,
23512396
DxoToolbarModule,
2397+
DxoDataGridAiModule,
23522398
DxoDataGridAiOptionsModule,
23532399
DxoDataGridAnimationModule,
23542400
DxiDataGridAsyncRuleModule,
@@ -2359,6 +2405,7 @@ export class DxDataGridComponent<TRowData = any, TKey = any> extends DxComponent
23592405
DxoDataGridColCountByScreenModule,
23602406
DxoDataGridCollisionModule,
23612407
DxiDataGridColumnModule,
2408+
DxiDataGridColumnButtonModule,
23622409
DxoDataGridColumnChooserModule,
23632410
DxoDataGridColumnChooserSearchModule,
23642411
DxoDataGridColumnChooserSelectionModule,
@@ -2377,6 +2424,8 @@ export class DxDataGridComponent<TRowData = any, TKey = any> extends DxComponent
23772424
DxoDataGridDataGridSelectionModule,
23782425
DxoDataGridEditingModule,
23792426
DxoDataGridEditingTextsModule,
2427+
DxoDataGridEditorOptionsModule,
2428+
DxiDataGridEditorOptionsButtonModule,
23802429
DxiDataGridEmailRuleModule,
23812430
DxoDataGridExportModule,
23822431
DxoDataGridExportTextsModule,
@@ -2410,6 +2459,7 @@ export class DxDataGridComponent<TRowData = any, TKey = any> extends DxComponent
24102459
DxiDataGridNumericRuleModule,
24112460
DxoDataGridOffsetModule,
24122461
DxoDataGridOperationDescriptionsModule,
2462+
DxoDataGridOptionsModule,
24132463
DxoDataGridPagerModule,
24142464
DxoDataGridPagingModule,
24152465
DxiDataGridPatternRuleModule,
@@ -2506,6 +2556,7 @@ export class DxDataGridComponent<TRowData = any, TKey = any> extends DxComponent
25062556
DxoValueFormatModule,
25072557
DxiTotalItemModule,
25082558
DxoToolbarModule,
2559+
DxoDataGridAiModule,
25092560
DxoDataGridAiOptionsModule,
25102561
DxoDataGridAnimationModule,
25112562
DxiDataGridAsyncRuleModule,
@@ -2516,6 +2567,7 @@ export class DxDataGridComponent<TRowData = any, TKey = any> extends DxComponent
25162567
DxoDataGridColCountByScreenModule,
25172568
DxoDataGridCollisionModule,
25182569
DxiDataGridColumnModule,
2570+
DxiDataGridColumnButtonModule,
25192571
DxoDataGridColumnChooserModule,
25202572
DxoDataGridColumnChooserSearchModule,
25212573
DxoDataGridColumnChooserSelectionModule,
@@ -2534,6 +2586,8 @@ export class DxDataGridComponent<TRowData = any, TKey = any> extends DxComponent
25342586
DxoDataGridDataGridSelectionModule,
25352587
DxoDataGridEditingModule,
25362588
DxoDataGridEditingTextsModule,
2589+
DxoDataGridEditorOptionsModule,
2590+
DxiDataGridEditorOptionsButtonModule,
25372591
DxiDataGridEmailRuleModule,
25382592
DxoDataGridExportModule,
25392593
DxoDataGridExportTextsModule,
@@ -2567,6 +2621,7 @@ export class DxDataGridComponent<TRowData = any, TKey = any> extends DxComponent
25672621
DxiDataGridNumericRuleModule,
25682622
DxoDataGridOffsetModule,
25692623
DxoDataGridOperationDescriptionsModule,
2624+
DxoDataGridOptionsModule,
25702625
DxoDataGridPagerModule,
25712626
DxoDataGridPagingModule,
25722627
DxiDataGridPatternRuleModule,
Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
/* tslint:disable:max-line-length */
2+
3+
4+
import {
5+
Component,
6+
OnInit,
7+
OnDestroy,
8+
NgModule,
9+
Host,
10+
SkipSelf,
11+
Input
12+
} from '@angular/core';
13+
14+
15+
16+
17+
import { AIIntegration } from 'devextreme/common/ai-integration';
18+
import { dxTextBoxOptions } from 'devextreme/ui/text_box';
19+
import { AIColumnMode } from 'devextreme/common/grids';
20+
21+
import {
22+
DxIntegrationModule,
23+
NestedOptionHost,
24+
} from 'devextreme-angular/core';
25+
import { NestedOption } from 'devextreme-angular/core';
26+
27+
28+
@Component({
29+
selector: 'dxo-data-grid-ai',
30+
standalone: true,
31+
template: '',
32+
styles: [''],
33+
imports: [ DxIntegrationModule ],
34+
providers: [NestedOptionHost]
35+
})
36+
export class DxoDataGridAiComponent extends NestedOption implements OnDestroy, OnInit {
37+
@Input()
38+
get aiIntegration(): AIIntegration | undefined {
39+
return this._getOption('aiIntegration');
40+
}
41+
set aiIntegration(value: AIIntegration | undefined) {
42+
this._setOption('aiIntegration', value);
43+
}
44+
45+
@Input()
46+
get editorOptions(): dxTextBoxOptions<any> {
47+
return this._getOption('editorOptions');
48+
}
49+
set editorOptions(value: dxTextBoxOptions<any>) {
50+
this._setOption('editorOptions', value);
51+
}
52+
53+
@Input()
54+
get emptyText(): string {
55+
return this._getOption('emptyText');
56+
}
57+
set emptyText(value: string) {
58+
this._setOption('emptyText', value);
59+
}
60+
61+
@Input()
62+
get mode(): AIColumnMode {
63+
return this._getOption('mode');
64+
}
65+
set mode(value: AIColumnMode) {
66+
this._setOption('mode', value);
67+
}
68+
69+
@Input()
70+
get noDataText(): string {
71+
return this._getOption('noDataText');
72+
}
73+
set noDataText(value: string) {
74+
this._setOption('noDataText', value);
75+
}
76+
77+
@Input()
78+
get popup(): Record<string, any> {
79+
return this._getOption('popup');
80+
}
81+
set popup(value: Record<string, any>) {
82+
this._setOption('popup', value);
83+
}
84+
85+
@Input()
86+
get prompt(): string {
87+
return this._getOption('prompt');
88+
}
89+
set prompt(value: string) {
90+
this._setOption('prompt', value);
91+
}
92+
93+
@Input()
94+
get showHeaderMenu(): boolean {
95+
return this._getOption('showHeaderMenu');
96+
}
97+
set showHeaderMenu(value: boolean) {
98+
this._setOption('showHeaderMenu', value);
99+
}
100+
101+
102+
protected get _optionPath() {
103+
return 'ai';
104+
}
105+
106+
107+
constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,
108+
@Host() optionHost: NestedOptionHost) {
109+
super();
110+
parentOptionHost.setNestedOption(this);
111+
optionHost.setHost(this, this._fullOptionPath.bind(this));
112+
}
113+
114+
115+
ngOnInit() {
116+
this._addRecreatedComponent();
117+
}
118+
119+
ngOnDestroy() {
120+
this._addRemovedOption(this._getOptionPath());
121+
}
122+
123+
124+
}
125+
126+
@NgModule({
127+
imports: [
128+
DxoDataGridAiComponent
129+
],
130+
exports: [
131+
DxoDataGridAiComponent
132+
],
133+
})
134+
export class DxoDataGridAiModule { }

packages/devextreme-angular/src/ui/data-grid/nested/button-dxi.ts

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ import { DOCUMENT } from '@angular/common';
1818

1919
import dxDataGrid from 'devextreme/ui/data_grid';
2020
import { dxDataGridColumn, dxDataGridRowObject, DataGridPredefinedColumnButton, ColumnButtonClickEvent } from 'devextreme/ui/data_grid';
21+
import { TextEditorButtonLocation } from 'devextreme/common';
22+
import { dxButtonOptions } from 'devextreme/ui/button';
2123

2224
import {
2325
DxIntegrationModule,
@@ -73,10 +75,10 @@ export class DxiDataGridButtonComponent extends CollectionNestedOption implement
7375
}
7476

7577
@Input()
76-
get name(): DataGridPredefinedColumnButton | string {
78+
get name(): DataGridPredefinedColumnButton | string | undefined {
7779
return this._getOption('name');
7880
}
79-
set name(value: DataGridPredefinedColumnButton | string) {
81+
set name(value: DataGridPredefinedColumnButton | string | undefined) {
8082
this._setOption('name', value);
8183
}
8284

@@ -112,6 +114,22 @@ export class DxiDataGridButtonComponent extends CollectionNestedOption implement
112114
this._setOption('visible', value);
113115
}
114116

117+
@Input()
118+
get location(): TextEditorButtonLocation {
119+
return this._getOption('location');
120+
}
121+
set location(value: TextEditorButtonLocation) {
122+
this._setOption('location', value);
123+
}
124+
125+
@Input()
126+
get options(): dxButtonOptions | undefined {
127+
return this._getOption('options');
128+
}
129+
set options(value: dxButtonOptions | undefined) {
130+
this._setOption('options', value);
131+
}
132+
115133

116134
protected get _optionPath() {
117135
return 'buttons';

0 commit comments

Comments
 (0)