Skip to content

Commit e76b2c4

Browse files
Merge branch '25_2' into 25_2_demos_rehype_parse_version_fix
2 parents 315fa98 + a394d02 commit e76b2c4

82 files changed

Lines changed: 1336 additions & 796 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
64 KB
Loading
75.1 KB
Loading
63.3 KB
Loading
74.1 KB
Loading

e2e/testcafe-devextreme/tests/dataGrid/sticky/common/withGrouping.ts

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,3 +281,80 @@ test('DataGrid - Group row content is scrolled if repaintChangesOnly is enabled
281281
autoExpandAll: false,
282282
},
283283
}));
284+
285+
[false, true].forEach((rtlEnabled) => {
286+
// T1284612
287+
safeSizeTest(`DataGrid - Group summaries are shown over sticky columns on a horizontal scroll (rtl=${rtlEnabled})`, async (t) => {
288+
const { takeScreenshot, compareResults } = createScreenshotsComparer(t);
289+
290+
const dataGrid = new DataGrid(DATA_GRID_SELECTOR);
291+
292+
await t.expect(dataGrid.isReady()).ok();
293+
294+
await dataGrid.scrollTo(t, { x: rtlEnabled ? 100 : 250 });
295+
await takeScreenshot(`grouping-scroll-total_summary_intersection-rtl=${rtlEnabled}.png`, dataGrid.element);
296+
297+
await dataGrid.apiOption('summary.totalItems', [{
298+
column: 'SaleAmount',
299+
summaryType: 'max',
300+
valueFormat: 'currency',
301+
}]);
302+
await dataGrid.scrollTo(t, { x: 0 });
303+
await dataGrid.scrollTo(t, { x: rtlEnabled ? 100 : 250 });
304+
305+
await takeScreenshot(`grouping-scroll-total_summary-rtl=${rtlEnabled}.png`, dataGrid.element);
306+
307+
await t
308+
.expect(compareResults.isValid())
309+
.ok(compareResults.errorMessages());
310+
}, [900, 800]).before(async () => createWidget('dxDataGrid', {
311+
...defaultConfig,
312+
rtlEnabled,
313+
customizeColumns(columns) {
314+
columns[2].groupIndex = 0;
315+
},
316+
summary: {
317+
groupItems: [{
318+
column: 'OrderNumber',
319+
summaryType: 'count',
320+
displayFormat: '{0} orders',
321+
}, {
322+
column: 'City',
323+
summaryType: 'max',
324+
valueFormat: 'currency',
325+
showInGroupFooter: false,
326+
alignByColumn: true,
327+
}, {
328+
column: 'TotalAmount',
329+
summaryType: 'max',
330+
valueFormat: 'currency',
331+
showInGroupFooter: false,
332+
alignByColumn: true,
333+
}, {
334+
column: 'TotalAmount',
335+
summaryType: 'sum',
336+
valueFormat: 'currency',
337+
displayFormat: 'Total: {0}',
338+
showInGroupFooter: true,
339+
}],
340+
totalItems: [{
341+
column: 'OrderNumber',
342+
summaryType: 'count',
343+
displayFormat: '{0} orders',
344+
}, {
345+
column: 'SaleAmount',
346+
summaryType: 'max',
347+
valueFormat: 'currency',
348+
}, {
349+
column: 'TotalAmount',
350+
summaryType: 'max',
351+
valueFormat: 'currency',
352+
}, {
353+
column: 'TotalAmount',
354+
summaryType: 'sum',
355+
valueFormat: 'currency',
356+
displayFormat: 'Total: {0}',
357+
}],
358+
},
359+
}));
360+
});

packages/devextreme-angular/src/ui/card-view/nested/tab-panel-options.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,14 @@ export class DxoCardViewTabPanelOptionsComponent extends NestedOption implements
172172
this._setOption('itemTitleTemplate', value);
173173
}
174174

175+
@Input()
176+
get keyExpr(): Function | string {
177+
return this._getOption('keyExpr');
178+
}
179+
set keyExpr(value: Function | string) {
180+
this._setOption('keyExpr', value);
181+
}
182+
175183
@Input()
176184
get loop(): boolean {
177185
return this._getOption('loop');

packages/devextreme-angular/src/ui/form/nested/tab-panel-options.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,14 @@ export class DxoFormTabPanelOptionsComponent extends NestedOption implements OnD
172172
this._setOption('itemTitleTemplate', value);
173173
}
174174

175+
@Input()
176+
get keyExpr(): Function | string {
177+
return this._getOption('keyExpr');
178+
}
179+
set keyExpr(value: Function | string) {
180+
this._setOption('keyExpr', value);
181+
}
182+
175183
@Input()
176184
get loop(): boolean {
177185
return this._getOption('loop');

packages/devextreme-angular/src/ui/nested/base/tab-panel-options.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,13 @@ export abstract class DxoTabPanelOptions extends NestedOption {
126126
this._setOption('itemTitleTemplate', value);
127127
}
128128

129+
get keyExpr(): Function | string {
130+
return this._getOption('keyExpr');
131+
}
132+
set keyExpr(value: Function | string) {
133+
this._setOption('keyExpr', value);
134+
}
135+
129136
get loop(): boolean {
130137
return this._getOption('loop');
131138
}

packages/devextreme-angular/src/ui/nested/tab-panel-options.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ import { DxiItemComponent } from './item-dxi';
5252
'items',
5353
'itemTemplate',
5454
'itemTitleTemplate',
55+
'keyExpr',
5556
'loop',
5657
'noDataText',
5758
'onContentReady',

packages/devextreme-angular/src/ui/tab-panel/index.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,19 @@ export class DxTabPanelComponent<TItem = any, TKey = any> extends DxComponent im
279279
}
280280

281281

282+
/**
283+
* [descr:dxTabPanelOptions.keyExpr]
284+
285+
*/
286+
@Input()
287+
get keyExpr(): Function | string {
288+
return this._getOption('keyExpr');
289+
}
290+
set keyExpr(value: Function | string) {
291+
this._setOption('keyExpr', value);
292+
}
293+
294+
282295
/**
283296
* [descr:dxMultiViewOptions.loop]
284297
@@ -689,6 +702,13 @@ export class DxTabPanelComponent<TItem = any, TKey = any> extends DxComponent im
689702
*/
690703
@Output() itemTitleTemplateChange: EventEmitter<any>;
691704

705+
/**
706+
707+
* This member supports the internal infrastructure and is not intended to be used directly from your code.
708+
709+
*/
710+
@Output() keyExprChange: EventEmitter<Function | string>;
711+
692712
/**
693713
694714
* This member supports the internal infrastructure and is not intended to be used directly from your code.
@@ -856,6 +876,7 @@ export class DxTabPanelComponent<TItem = any, TKey = any> extends DxComponent im
856876
{ emit: 'itemsChange' },
857877
{ emit: 'itemTemplateChange' },
858878
{ emit: 'itemTitleTemplateChange' },
879+
{ emit: 'keyExprChange' },
859880
{ emit: 'loopChange' },
860881
{ emit: 'noDataTextChange' },
861882
{ emit: 'repaintChangesOnlyChange' },

0 commit comments

Comments
 (0)