Skip to content

Commit 026a873

Browse files
Merge branch '26_1' into 26_1_wip_check_ci
2 parents 5d3bbb8 + 582c167 commit 026a873

36 files changed

Lines changed: 269 additions & 156 deletions

File tree

.github/workflows/packages_publishing.yml

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@ env:
2020
NX_SKIP_NX_CACHE: true
2121
FILTER: ${{ github.event_name == 'workflow_dispatch' && inputs.filter || '' }}
2222
SET_TIMESTAMP_VERSION: ${{ inputs.tag == 'daily' }}
23-
MOVE_DAILY_TAG: ${{ inputs.tag == 'daily' }}
24-
MOVE_STABLE_TAG: ${{ inputs.tag == 'stable' }}
2523

2624
jobs:
2725
build:
@@ -155,32 +153,13 @@ jobs:
155153
working-directory: ${{ steps.scopedPackage.outputs.packageDir }}
156154
env:
157155
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
158-
run: |
159-
pnpm set //npm.pkg.github.com/:_authToken="$NODE_AUTH_TOKEN";
160-
pnpm publish --no-git-checks --quiet --ignore-scripts --registry https://npm.pkg.github.com;
161-
162-
- name: Move 'daily' tag
163-
if: ${{ env.MOVE_DAILY_TAG == 'true' }}
164-
env:
165-
PACKAGE_NAME: ${{ steps.scopedPackage.outputs.name }}
166-
PACKAGE_VERSION: ${{ steps.scopedPackage.outputs.version }}
167-
PACKAGE_VERSION_MAJOR: ${{ steps.scopedPackage.outputs.majorVersion }}
168-
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
169-
run: |
170-
pnpm set //npm.pkg.github.com/:_authToken="$NODE_AUTH_TOKEN"
171-
pnpm dist-tag add $PACKAGE_NAME@$PACKAGE_VERSION $PACKAGE_VERSION_MAJOR-daily --registry=https://npm.pkg.github.com
172-
173-
- name: Move 'stable' tag
174-
if: ${{ env.MOVE_STABLE_TAG == 'true' }}
175-
env:
176156
PACKAGE_NAME: ${{ steps.scopedPackage.outputs.name }}
177157
PACKAGE_VERSION: ${{ steps.scopedPackage.outputs.version }}
178158
PACKAGE_VERSION_MAJOR: ${{ steps.scopedPackage.outputs.majorVersion }}
179-
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
180159
run: |
181-
pnpm set //npm.pkg.github.com/:_authToken="$NODE_AUTH_TOKEN"
182-
pnpm dist-tag add $PACKAGE_NAME@$PACKAGE_VERSION $PACKAGE_VERSION_MAJOR-stable --registry=https://npm.pkg.github.com
183-
160+
pnpm set //npm.pkg.github.com/:_authToken="$NODE_AUTH_TOKEN";
161+
pnpm publish --no-git-checks --quiet --ignore-scripts --tag $PACKAGE_VERSION_MAJOR-${{ inputs.tag }} --registry https://npm.pkg.github.com;
162+
pnpm dist-tag add $PACKAGE_NAME@$PACKAGE_VERSION latest --registry=https://npm.pkg.github.com;
184163
185164
notify:
186165
runs-on: devextreme-shr2
Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,29 @@
1-
With our v26.1 release, we will extend the AI-powered capabilities of both the DevExtreme [DataGrid](https://js.devexpress.com/Documentation/Guide/UI_Components/DataGrid/Overview/) and [TreeList](https://js.devexpress.com/Documentation/Guide/UI_Components/TreeList/Overview/). We plan to introduce a DevExtreme Chat-based AI assistant that will allow you to use natural language to interact with DataGrid/TreeList. The DataGrid/TreeList AI assistant will be able to complete the following actions:
2-
* Sort, filter, search, and group data.
3-
* Resize, reorder, fix/unfix, and show/hide columns.
4-
* Change pagination settings.
5-
<!--split-->
1+
The AI Assistant for the DevExtreme [DataGrid](/Documentation/Guide/UI_Components/DataGrid/Overview/) allows you to interact with the component using natural language. The Chat also supports [speech-to-text input](/Documentation/ApiReference/UI_Components/dxChat/Configuration/#speechToTextEnabled), ideal for hands-free interactions or entering longer prompts.
2+
3+
You can use/configure the following DataGrid features in the AI Assistant Chat prompts:
64

7-
This feature is particularly well suited for the following usage scenarios:
5+
- [Filtering and Searching](/Documentation/Guide/UI_Components/DataGrid/Filtering_and_Searching/)
6+
- [Sorting](/Documentation/Guide/UI_Components/DataGrid/Sorting/)
7+
- [Grouping](/Documentation/Guide/UI_Components/DataGrid/Grouping/)
8+
- [Paging](/Documentation/Guide/UI_Components/DataGrid/Paging/)
9+
- [Focused Row](/Documentation/Guide/UI_Components/DataGrid/Focused_Row/)
10+
- [Selection](/Documentation/Guide/UI_Components/DataGrid/Selection/)
11+
- [Summaries](/Documentation/Guide/UI_Components/DataGrid/Summaries/Predefined_Aggregate_Functions/)
12+
- [Column Fixing](/Documentation/Guide/UI_Components/DataGrid/Columns/Column_Fixing/), [Resizing](/Documentation/Guide/UI_Components/DataGrid/Columns/Column_Sizing/), and [Reordering](/Documentation/Guide/UI_Components/DataGrid/Columns/Column_Reordering/)
13+
14+
The AI Assistant feature is also available for the DevExtreme [TreeList](/Documentation/ApiReference/UI_Components/dxTreeList/Configuration/#aiAssistant) component.
15+
<!--split-->
816

9-
* **Large Datasets**: Use the power of AI to browse large data sets. Apply complex filter values with natural language.
17+
In this demo, the AI Assistant is enabled for a DataGrid that displays mock sales data with over 1500 records.
1018

19+
[note]
1120

12-
* **Complex Grid Configurations**: Allow users to specify complex display preferences quickly.
21+
AI services used for this demo have been rate and data limited. As such, you may experience performance-related delays when exploring the capabilities of the DataGrid AI Assistant.
1322

23+
When connected to your own AI model/service without rate and data limits, the AI Assistant will perform seamlessly, without artificial delays. Note that DevExtreme does not offer an AI REST API and does not ship any built-in LLMs/SLMs.
1424

15-
* **Accessibility-first Applications**: Allow users to interact with your application in a manner that is most appropriate for each specific situation: while at their desk, or on the go (when their hands are busy and they require voice commands to interact with your app).
25+
[/note]
1626

27+
To enable the AI Assistant, configure the [aiIntegration](/Documentation/ApiReference/UI_Components/dxDataGrid/Configuration/#aiIntegration) or **aiAssistant**.[aiIntegration](/Documentation/ApiReference/UI_Components/dxDataGrid/Configuration/aiAssistant/#aiIntegration) object and set the **aiAssistant**.[enabled](/Documentation/ApiReference/UI_Components/dxDataGrid/Configuration/aiAssistant/#enabled) property to `true`. Once activated, the DataGrid adds a predefined item (*"aiAssistantButton"*) to the toolbar. This button opens the AI Assistant Chat in a draggable pop-up window.
1728

18-
* **Replicable Configurations**: Apply the same prompt to recreate complex grid configurations across sessions. Reduce time spent on tedious layout adjustments.
29+
This demo also configures [suggestions](/Documentation/ApiReference/UI_Components/dxChat/Configuration/#suggestions) for the AI Assistant Chat. These buttons allow you to interact with the assistant in one click using predefined prompts. For additional information about suggestions, refer to the following demo: [DevExtreme Chat - Prompt Suggestions](/Demos/WidgetsGallery/Demo/Chat/PromptSuggestions/).

apps/demos/Demos/DataGrid/RowSelection/jQuery/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<div class="demo-container">
1717
<div id="gridContainer"></div>
1818
<div id="employeeInfo">
19-
<img class="employeePhoto" alt="Employee photo" style="visibility: hidden" />
19+
<img class="employeePhoto hidden" alt="Employee photo" />
2020
<p class="employeeNotes"></p>
2121
</div>
2222
</div>

apps/demos/Demos/DataGrid/RowSelection/jQuery/index.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,10 @@ $(() => {
2727
const data = selectedItems.selectedRowsData[0];
2828
if (data) {
2929
$('.employeeNotes').text(data.Notes);
30-
$('.employeePhoto').attr('src', data.Picture).attr('style', null);
30+
$('.employeePhoto').attr('src', data.Picture).removeClass('hidden');
31+
} else {
32+
$('.employeeNotes').text('');
33+
$('.employeePhoto').addClass('hidden');
3134
}
3235
},
3336
});

apps/demos/Demos/DataGrid/RowSelection/jQuery/styles.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@
44
padding: 20px;
55
}
66

7+
#employeeInfo .employeePhoto.hidden {
8+
visibility: hidden;
9+
}
10+
711
#employeeInfo .employeeNotes {
812
padding-top: 20px;
913
text-align: justify;

apps/demos/Demos/TreeList/Overview/Angular/app/app.component.css

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,8 @@
1515
::ng-deep .img {
1616
height: 50px;
1717
width: 50px;
18+
object-fit: contain;
1819
margin-right: 10px;
19-
background-position: center;
20-
background-repeat: no-repeat;
21-
background-size: contain;
2220
border-radius: 25px;
2321
border: 1px solid lightgray;
2422
background-color: #fff;

apps/demos/Demos/TreeList/Overview/Angular/app/app.component.html

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,12 +70,11 @@
7070
></dxi-tree-list-column>
7171
<div *dxTemplate="let options of 'employeeTemplate'">
7272
@if(options.data.Task_Assigned_Employee) {
73-
<div
73+
<img
7474
class="img"
75-
style.background-image="url('{{
76-
options.data.Task_Assigned_Employee.Picture
77-
}}')"
78-
></div>
75+
[src]="options.data.Task_Assigned_Employee.Picture"
76+
alt=""
77+
/>
7978
} @if(options.data.Task_Assigned_Employee) {
8079
<span class="name">{{ options.data.Task_Assigned_Employee.Name }}</span>
8180
}

apps/demos/Demos/TreeList/Overview/React/EmployeeCell.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@ const EmployeeCell = (props: TreeListTypes.ColumnCellTemplateData) => {
1010

1111
return (
1212
<>
13-
<div className="img" style={{ backgroundImage: `url(${employee.Picture})` }} />
13+
<img
14+
className="img"
15+
src={employee.Picture}
16+
alt=""
17+
/>
1418
&nbsp;
1519
<span className="name">{employee.Name}</span>
1620
</>

apps/demos/Demos/TreeList/Overview/React/styles.css

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,8 @@
1515
.img {
1616
height: 50px;
1717
width: 50px;
18+
object-fit: contain;
1819
margin-right: 10px;
19-
background-position: center;
20-
background-repeat: no-repeat;
21-
background-size: contain;
2220
border-radius: 25px;
2321
border: 1px solid lightgray;
2422
background-color: #fff;

apps/demos/Demos/TreeList/Overview/ReactJs/EmployeeCell.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@ const EmployeeCell = (props) => {
77
}
88
return (
99
<>
10-
<div
10+
<img
1111
className="img"
12-
style={{ backgroundImage: `url(${employee.Picture})` }}
12+
src={employee.Picture}
13+
alt=""
1314
/>
1415
&nbsp;
1516
<span className="name">{employee.Name}</span>

0 commit comments

Comments
 (0)