Skip to content

Commit 333e3e3

Browse files
authored
AI Assistant: Integration between AiIntegration, GridCommands, AiAssistant and AiChat (#33564)
1 parent 5cbe8ad commit 333e3e3

21 files changed

Lines changed: 963 additions & 229 deletions

packages/devextreme/js/__internal/grids/data_grid/ai_assistant/ai_assistant.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import messageLocalization from '@js/common/core/localization/message';
2-
import { AIAssistantController } from '@ts/grids/grid_core/ai_assistant/ai_assistant_controller';
32
import { AIAssistantView } from '@ts/grids/grid_core/ai_assistant/ai_assistant_view';
43
import { AIAssistantViewController } from '@ts/grids/grid_core/ai_assistant/ai_assistant_view_controller';
54

65
import gridCore from '../m_core';
6+
import { DataGridAIAssistantController } from './ai_assistant_controller';
77

88
gridCore.registerModule('aiAssistant', {
99
defaultOptions() {
@@ -15,7 +15,7 @@ gridCore.registerModule('aiAssistant', {
1515
};
1616
},
1717
controllers: {
18-
aiAssistant: AIAssistantController,
18+
aiAssistant: DataGridAIAssistantController,
1919
aiAssistantViewController: AIAssistantViewController,
2020
},
2121
views: {
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { AIAssistantController } from '@ts/grids/grid_core/ai_assistant/ai_assistant_controller';
2+
import type { GridCommand } from '@ts/grids/grid_core/ai_assistant/types';
3+
4+
import { DataGridAIAssistantIntegrationController } from './ai_assistant_integration_controller';
5+
import { dataGridCommands } from './commands/index';
6+
7+
export class DataGridAIAssistantController extends AIAssistantController {
8+
protected aiAssistantIntegrationController?: DataGridAIAssistantIntegrationController;
9+
10+
protected getAiAssistantIntegrationController(): DataGridAIAssistantIntegrationController {
11+
return new DataGridAIAssistantIntegrationController(this.component);
12+
}
13+
14+
protected getGridCommandList(): GridCommand[] {
15+
const coreCommands = super.getGridCommandList();
16+
17+
return [
18+
...coreCommands,
19+
...dataGridCommands,
20+
];
21+
}
22+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { AIAssistantIntegrationController } from '@ts/grids/grid_core/ai_assistant/ai_assistant_integration_controller';
2+
import type { GridContext } from '@ts/grids/grid_core/ai_assistant/types';
3+
import type { Column } from '@ts/grids/grid_core/columns_controller/types';
4+
5+
export class DataGridAIAssistantIntegrationController extends AIAssistantIntegrationController {
6+
protected getGridExtraContext(): GridContext {
7+
const context = super.getGridExtraContext();
8+
9+
context.summary = {
10+
totalItems: this.option('summary.totalItems'),
11+
groupItems: this.option('summary.groupItems'),
12+
};
13+
14+
return context;
15+
}
16+
17+
protected getGridColumnExtraContext(column: Column): GridContext {
18+
const context = super.getGridColumnExtraContext(column);
19+
20+
context.summary = {
21+
groupIndex: column.groupIndex,
22+
};
23+
24+
return context;
25+
}
26+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import type { GridCommand } from '@ts/grids/grid_core/ai_assistant/types';
2+
3+
import { clearGroupingCommand, groupingCommand } from './grouping';
4+
import { clearSummaryCommand, summaryCommand } from './summary';
5+
6+
export const dataGridCommands = [
7+
groupingCommand,
8+
clearGroupingCommand,
9+
summaryCommand,
10+
clearSummaryCommand,
11+
// TODO: try to remove "as GridCommand[]"
12+
] as GridCommand[];

0 commit comments

Comments
 (0)