Skip to content

Commit f3835ef

Browse files
authored
Merge branch '19.2.x' into rivanova/fix-15848-19.2.x
2 parents fbece40 + d1c8765 commit f3835ef

File tree

12 files changed

+85
-37
lines changed

12 files changed

+85
-37
lines changed

projects/igniteui-angular/src/lib/combo/combo.component.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<ng-content select="[igxLabel]"></ng-content>
44
</ng-container>
55
<ng-container ngProjectAs="igx-prefix">
6-
<ng-content select="igx-prefix"></ng-content>
6+
<ng-content select="igx-prefix,[igxPrefix]"></ng-content>
77
</ng-container>
88
<ng-container ngProjectAs="igx-hint, [igxHint]">
99
<ng-content select="igx-hint, [igxHint]"></ng-content>
@@ -15,7 +15,7 @@
1515
[attr.aria-labelledby]="ariaLabelledBy || label?.id || placeholder"
1616
(blur)="onBlur()" />
1717
<ng-container ngProjectAs="igx-suffix">
18-
<ng-content select="igx-suffix"></ng-content>
18+
<ng-content select="igx-suffix,[igxSuffix]"></ng-content>
1919
</ng-container>
2020
@if (displayValue) {
2121
<igx-suffix [attr.aria-label]="resourceStrings.igx_combo_clearItems_placeholder" class="igx-combo__clear-button"

projects/igniteui-angular/src/lib/core/styles/components/_common/_igx-vhelper.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
position: absolute;
1313
top: 0;
1414
inset-inline-end: 0;
15+
width: var(--vhelper-scrollbar-size);
1516
}
1617

1718
%vhelper--horizontal {

projects/igniteui-angular/src/lib/core/styles/components/combo/_combo-theme.scss

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -165,18 +165,15 @@
165165
%igx-combo__case-icon,
166166
%igx-combo__case-icon--active {
167167
line-height: 0;
168-
169-
igx-icon {
170-
--size: rem(18px);
171-
}
172168
}
173169

174170
// The wrapping element here is needed
175171
// in order to override the !important rule of .igx-icon--inactive.
176172
%igx-combo__case-icon {
177173
igx-icon {
178-
// Important is needed since the .igx-icon--inactive has !important
179-
color: color($color: 'gray', $variant: 600) !important;
174+
--igx-icon-disabled-color: var(--ig-gray-600);
175+
176+
opacity: 1;
180177
}
181178
}
182179

@@ -244,6 +241,13 @@
244241
}
245242
}
246243

244+
@if $variant == 'fluent' or $variant == 'bootstrap' {
245+
%igx-combo__search {
246+
--igx-input-group-input-suffix-background: transparent;
247+
--igx-input-group-input-suffix-background--focused: transparent;
248+
}
249+
}
250+
247251
.igx-input-group {
248252
%igx-combo__toggle-button {
249253
background: var-get($theme, 'toggle-button-background');

projects/igniteui-angular/src/lib/core/styles/components/drop-down/_drop-down-theme.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,10 @@
242242
overflow-x: hidden;
243243
-webkit-overflow-scrolling: touch;
244244
position: relative;
245+
246+
igx-display-container {
247+
padding-inline-end: var(--vhelper-scrollbar-size);
248+
}
245249
}
246250

247251
%igx-drop-down__content {

projects/igniteui-angular/src/lib/core/styles/themes/_core.scss

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,12 @@
124124
inherits: true;
125125
}
126126

127+
@property --vhelper-scollbar-size {
128+
syntax: '<length>';
129+
initial-value: 16px;
130+
inherits: true;
131+
}
132+
127133
// Component styles
128134
@include ripple.component();
129135
@include action-strip.component();

projects/igniteui-angular/src/lib/directives/for-of/virtual.helper.component.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,11 @@ export class VirtualHelperComponent extends VirtualHelperBaseDirective implement
1313
@HostBinding('scrollTop')
1414
public scrollTop;
1515

16-
@HostBinding('style.width.px')
1716
public scrollWidth;
1817

1918
@ViewChild('container', { read: ViewContainerRef, static: true }) public _vcr;
2019
@Input() public itemsLength: number;
2120

22-
2321
@HostBinding('class')
2422
public cssClasses = 'igx-vhelper--vertical';
2523

@@ -29,6 +27,10 @@ export class VirtualHelperComponent extends VirtualHelperBaseDirective implement
2927

3028
public ngOnInit() {
3129
this.scrollWidth = this.scrollNativeSize;
30+
this.document.documentElement.style.setProperty(
31+
'--vhelper-scrollbar-size',
32+
`${this.scrollNativeSize}px`
33+
);
3234
}
3335

3436
protected override restoreScroll() {

projects/igniteui-angular/src/lib/grids/columns/column.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2309,7 +2309,7 @@ export class IgxColumnComponent implements AfterContentInit, OnDestroy, ColumnTy
23092309
// estimate the exact index at which column will be inserted
23102310
// takes into account initial unpinned index of the column
23112311
if (!hasIndex) {
2312-
const indices = grid.unpinnedColumns.map(col => col.index);
2312+
const indices = grid._unpinnedColumns.map(col => col.index);
23132313
indices.push(this.index);
23142314
indices.sort((a, b) => a - b);
23152315
index = indices.indexOf(this.index);

projects/igniteui-angular/src/lib/grids/grid/column-pinning.spec.ts

Lines changed: 30 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -108,27 +108,6 @@ describe('Column Pinning UI #grid', () => {
108108
verifyColumnIsPinned(column, false, 0);
109109
});
110110

111-
it('Checks order of columns after unpinning', () => {
112-
for (const column of grid.columnList) {
113-
column.pin();
114-
}
115-
fix.detectChanges();
116-
grid.getColumnByName('ID').unpin();
117-
grid.getColumnByName('ReleaseDate').unpin();
118-
grid.getColumnByName('Downloads').unpin();
119-
grid.getColumnByName('ProductName').unpin();
120-
grid.getColumnByName('Released').unpin();
121-
fix.detectChanges();
122-
grid.unpinnedColumns.forEach((column, index) => {
123-
if (index === grid.unpinnedColumns.length - 1) {
124-
return;
125-
}
126-
expect(
127-
column.index < grid.unpinnedColumns[index + 1].index
128-
).toBe(true);
129-
});
130-
});
131-
132111
it('reflects properly grid column pinned value changes.', () => {
133112
const name = 'ReleaseDate';
134113
verifyCheckbox(name, false, false, columnChooserElement);
@@ -307,6 +286,36 @@ describe('Column Pinning UI #grid', () => {
307286
).toBe(true);
308287
});
309288
});
289+
290+
it('Checks order of columns after unpinning if there are hidden columns', () => {
291+
// Columns are ordered like this: ID, ProductName, Downloads, Released, ReleaseDate
292+
expect(grid.getColumnByName('Downloads').index).toBe(2);
293+
expect(grid.getColumnByName('Released').index).toBe(3);
294+
295+
grid.getColumnByName('ID').hidden = true;
296+
grid.getColumnByName('Downloads').pin();
297+
grid.getColumnByName('Released').pin();
298+
fix.detectChanges();
299+
300+
// unpinnedColumns contains only visible cols
301+
expect(grid.unpinnedColumns.length).toBe(2);
302+
// _unpinnedColumns contains all unpinned cols (including hidden)
303+
expect((grid as any)._unpinnedColumns.length).toBe(3);
304+
305+
grid.getColumnByName('Released').unpin();
306+
fix.detectChanges();
307+
308+
expect(grid.unpinnedColumns.length).toBe(3);
309+
expect((grid as any)._unpinnedColumns.length).toBe(4);
310+
// Downloads is still pinned; ID is not part of unpinnedColumns
311+
expect(grid.getColumnByName('Released').field).toEqual((grid as any).unpinnedColumns[1].field);
312+
expect(grid.getColumnByName('Released').field).toEqual((grid as any)._unpinnedColumns[2].field);
313+
314+
grid.getColumnByName('Downloads').unpin();
315+
fix.detectChanges();
316+
expect(grid.getColumnByName('Downloads').field).toEqual((grid as any).unpinnedColumns[1].field);
317+
expect(grid.getColumnByName('Downloads').field).toEqual((grid as any)._unpinnedColumns[2].field);
318+
});
310319
});
311320

312321
describe('Pinning with Column Groups', () => {

projects/igniteui-angular/src/lib/grids/grid/grid-toolbar.spec.ts

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,18 @@ describe('IgxGrid - Grid Toolbar #grid - ', () => {
173173
expect($('#csvEntry').textContent).toMatch(instance.customCSVText);
174174
});
175175

176+
it('progress indicator should stop on canceling the export', () => {
177+
fixture.componentInstance.exportStartCancelled = true;
178+
fixture.detectChanges();
179+
$(TOOLBAR_EXPORTER_TAG).querySelector('button').click();
180+
fixture.detectChanges();
181+
$('#excelEntry').click();
182+
fixture.detectChanges();
183+
184+
expect(instance.exporterAction.isExporting).toBeFalse();
185+
expect(instance.exporterAction.toolbar.showProgress).toBeFalse();
186+
});
187+
176188
it('Setting overlaySettings for each toolbar columns action', () => {
177189
const defaultSettings = instance.pinningAction.overlaySettings;
178190
const defaultFiltSettings = instance.advancedFiltAction.overlaySettings;
@@ -297,7 +309,7 @@ export class DefaultToolbarComponent {
297309
<igx-grid-toolbar-advanced-filtering #advancedFiltAction>
298310
{{ advancedFilteringTitle }}
299311
</igx-grid-toolbar-advanced-filtering>
300-
<igx-grid-toolbar-exporter #exporterAction [exportCSV]="exportCSV" [exportExcel]="exportExcel" [filename]="exportFilename">
312+
<igx-grid-toolbar-exporter #exporterAction [exportCSV]="exportCSV" [exportExcel]="exportExcel" [filename]="exportFilename" (exportStarted)="exportStarted($event)">
301313
{{ exporterText }}
302314
<span id="excelEntry" excelText>{{ customExcelText }}</span>
303315
<span id="csvEntry" csvText>{{ customCSVText }}</span>
@@ -346,8 +358,15 @@ export class ToolbarActionsComponent {
346358
modal: true,
347359
closeOnEscape: false
348360
};
361+
public exportStartCancelled = false;
349362

350363
constructor() {
351364
this.data = [...DATA];
352365
}
366+
367+
public exportStarted(args) {
368+
if (this.exportStartCancelled) {
369+
args.cancel = true;
370+
}
371+
}
353372
}

projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-exporter.component.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,13 +126,14 @@ export class IgxGridToolbarExporterComponent extends BaseToolbarDirective {
126126

127127
this.exportStarted.emit(args);
128128
this.grid.toolbarExporting.emit(args);
129-
this.isExporting = true;
130-
this.toolbar.showProgress = true;
131129

132130
if (args.cancel) {
133131
return;
134132
}
135133

134+
this.isExporting = true;
135+
this.toolbar.showProgress = true;
136+
136137
exporter.exportEnded.pipe(first()).subscribe(() => {
137138
this.exportEnded.emit();
138139
this.isExporting = false;

0 commit comments

Comments
 (0)