Skip to content

Commit ba9ea7e

Browse files
authored
Merge branch 'master' into randriova/localization-fr-fix-master
2 parents 1605b80 + 9b59b4d commit ba9ea7e

File tree

7 files changed

+83
-42
lines changed

7 files changed

+83
-42
lines changed

projects/igniteui-angular/src/lib/grids/cell.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1069,7 +1069,7 @@ export class IgxGridCellComponent implements OnInit, OnChanges, OnDestroy, CellT
10691069
this.selectionService.keyboardStateOnFocus(node, this.grid.rangeSelected, this.nativeElement);
10701070
}
10711071
if (this.grid.isCellSelectable && shouldEmitSelection) {
1072-
this.grid.selected.emit({ cell: this.getCellType(), event });
1072+
this.zone.run(() => this.grid.selected.emit({ cell: this.getCellType(), event }));
10731073
}
10741074
}
10751075

projects/igniteui-angular/src/lib/grids/grid-base.directive.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7520,7 +7520,11 @@ export abstract class IgxGridBaseDirective extends DisplayDensityBase implements
75207520
directive.scrollTo(goal);
75217521
}
75227522

7523-
private getColumnWidthSum(): number {
7523+
7524+
/**
7525+
* @hidden
7526+
*/
7527+
protected getColumnWidthSum(): number {
75247528
let colSum = 0;
75257529
const cols = this.hasColumnLayouts ?
75267530
this.visibleColumns.filter(x => x.columnLayout) : this.visibleColumns.filter(x => !x.columnGroup);

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2376,8 +2376,13 @@ describe('IgxGrid Component Tests #grid', () => {
23762376
tab.items.toArray()[1].selected = true;
23772377
await wait(100);
23782378
fix.detectChanges();
2379+
await wait(100);
2380+
fix.detectChanges();
23792381

2380-
grid.navigateTo(grid.data.length - 1, grid.columnList.length - 1);
2382+
grid.navigateTo(0, grid.columnList.length - 1);
2383+
await wait(100);
2384+
fix.detectChanges();
2385+
grid.navigateTo(grid.data.length - 1);
23812386
await wait(100);
23822387
fix.detectChanges();
23832388

projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid.component.html

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@
2121
<div igxGridBody (keydown.control.c)="copyHandler($event)" (copy)="copyHandler($event)" class="igx-grid__tbody" role="rowgroup">
2222
<ng-container *ngTemplateOutlet="rowDimensions.length ? defaultRowDimensionsTemplate : emptyRowDimensionsTemplate; context: this"></ng-container>
2323
<div class="igx-grid__tbody-content" tabindex="0" [attr.role]="dataView.length ? null : 'row'" (keydown)="navigation.handleNavigation($event)" (focus)="navigation.focusTbody($event)"
24-
(dragStop)="selectionService.dragMode = $event" (scroll)='preventContainerScroll($event)'
24+
(dragStop)="selectionService.dragMode = $event" (scroll)="preventContainerScroll($event)"
2525
(dragScroll)="dragScroll($event)" [igxGridDragSelect]="selectionService.dragMode"
26-
[style.height.px]='totalHeight' [style.width.px]='calcWidth || null' #tbody [attr.aria-activedescendant]="activeDescendant">
26+
[style.height.px]="totalHeight" [style.width.px]="pivotContentCalcWidth || null" #tbody [attr.aria-activedescendant]="activeDescendant">
2727
<span *ngIf="hasMovableColumns && columnInDrag && pinnedColumns.length <= 0"
2828
[igxColumnMovingDrop]="headerContainer" [attr.droppable]="true" id="left"
2929
class="igx-grid__scroll-on-drag-left"></span>
@@ -38,15 +38,15 @@
3838
| pivotGridAutoTransform:pivotConfiguration:pipeTrigger
3939
| pivotGridColumnSort:sortingExpressions:sortStrategy:pipeTrigger
4040
| pivotGridRowExpansion:pivotConfiguration:expansionStates:defaultExpandState:pipeTrigger"
41-
let-rowIndex="index" [igxForScrollOrientation]="'vertical'" [igxForScrollContainer]='verticalScroll'
42-
[igxForContainerSize]='calcHeight'
41+
let-rowIndex="index" [igxForScrollOrientation]="'vertical'" [igxForScrollContainer]="verticalScroll"
42+
[igxForContainerSize]="calcHeight"
4343
[igxForItemSize]="hasColumnLayouts ? rowHeight * multiRowLayoutRowSize + 1 : renderedRowHeight"
44-
[igxGridForOfVariableSizes]='false'
44+
[igxGridForOfVariableSizes]="false"
4545
#verticalScrollContainer>
4646
<ng-template
47-
[igxTemplateOutlet]='recordTemplate'
48-
[igxTemplateOutletContext]='getContext(rowData, rowIndex)'
49-
(cachedViewLoaded)='cachedViewLoaded($event)'>
47+
[igxTemplateOutlet]="recordTemplate"
48+
[igxTemplateOutletContext]="getContext(rowData, rowIndex)"
49+
(cachedViewLoaded)="cachedViewLoaded($event)">
5050
</ng-template>
5151
</ng-template>
5252
<ng-template #record_template let-rowIndex="index" let-rowData>
@@ -60,33 +60,33 @@
6060
<igc-trial-watermark></igc-trial-watermark>
6161
</div>
6262
<div igxToggle #loadingOverlay>
63-
<igx-circular-bar [indeterminate]="true" *ngIf='shouldOverlayLoading'>
63+
<igx-circular-bar [indeterminate]="true" *ngIf="shouldOverlayLoading">
6464
</igx-circular-bar>
6565
</div>
6666
<span *ngIf="hasMovableColumns && columnInDrag" [igxColumnMovingDrop]="headerContainer" [attr.droppable]="true"
6767
id="right" class="igx-grid__scroll-on-drag-right"></span>
68-
<div [hidden]='!hasVerticalScroll()' class="igx-grid__tbody-scrollbar" [style.width.px]="scrollSize" (pointerdown)="$event.preventDefault()">
69-
<div class="igx-grid__tbody-scrollbar-start" [style.height.px]=' isRowPinningToTop ? pinnedRowHeight : 0'></div>
70-
<div class="igx-grid__tbody-scrollbar-main" [style.height.px]='calcHeight'>
71-
<ng-template igxGridFor [igxGridForOf]='[]' #verticalScrollHolder></ng-template>
68+
<div [hidden]="!hasVerticalScroll()" class="igx-grid__tbody-scrollbar" [style.width.px]="scrollSize" (pointerdown)="$event.preventDefault()">
69+
<div class="igx-grid__tbody-scrollbar-start" [style.height.px]=" isRowPinningToTop ? pinnedRowHeight : 0"></div>
70+
<div class="igx-grid__tbody-scrollbar-main" [style.height.px]="calcHeight">
71+
<ng-template igxGridFor [igxGridForOf]="[]" #verticalScrollHolder></ng-template>
7272
</div>
73-
<div class="igx-grid__tbody-scrollbar-end" [style.height.px]='!isRowPinningToTop ? pinnedRowHeight : 0'></div>
73+
<div class="igx-grid__tbody-scrollbar-end" [style.height.px]="!isRowPinningToTop ? pinnedRowHeight : 0"></div>
7474
</div>
7575

7676
<div class="igx-grid__addrow-snackbar">
77-
<igx-snackbar #addRowSnackbar [outlet]="igxBodyOverlayOutlet" [actionText]="resourceStrings.igx_grid_snackbar_addrow_actiontext" [displayTime]='snackbarDisplayTime'>{{resourceStrings.igx_grid_snackbar_addrow_label}}</igx-snackbar>
77+
<igx-snackbar #addRowSnackbar [outlet]="igxBodyOverlayOutlet" [actionText]="resourceStrings.igx_grid_snackbar_addrow_actiontext" [displayTime]="snackbarDisplayTime">{{resourceStrings.igx_grid_snackbar_addrow_label}}</igx-snackbar>
7878
</div>
7979

8080
<div #igxBodyOverlayOutlet="overlay-outlet" igxOverlayOutlet></div>
8181
</div>
8282

8383
<div class="igx-grid__scroll" [style.height.px]="scrollSize" #scr [hidden]="isHorizontalScrollHidden" (pointerdown)="$event.preventDefault()">
84-
<div class="igx-grid__scroll-start" [style.width.px]='isPinningToStart ? pinnedWidth : headerFeaturesWidth' [style.min-width.px]='isPinningToStart ? pinnedWidth : headerFeaturesWidth'></div>
85-
<div class="igx-grid__scroll-main" [style.width.px]='unpinnedWidth'>
86-
<ng-template igxGridFor [igxGridForOf]='EMPTY_DATA' #scrollContainer>
84+
<div class="igx-grid__scroll-start" [style.width.px]="pivotPinnedWidth" [style.min-width.px]="pivotPinnedWidth"></div>
85+
<div class="igx-grid__scroll-main" [style.width.px]="pivotUnpinnedWidth">
86+
<ng-template igxGridFor [igxGridForOf]="EMPTY_DATA" #scrollContainer>
8787
</ng-template>
8888
</div>
89-
<div class="igx-grid__scroll-end" [style.float]='"right"' [style.width.px]='pinnedWidth' [style.min-width.px]='pinnedWidth' [hidden]="pinnedWidth === 0 || isPinningToStart"></div>
89+
<div class="igx-grid__scroll-end" [style.float]="'right'" [style.width.px]="pivotPinnedWidth" [style.min-width.px]="pivotPinnedWidth" [hidden]="pivotPinnedWidth === 0 || isPinningToStart"></div>
9090
</div>
9191

9292
<div class="igx-grid__tfoot" role="rowgroup" #tfoot>
@@ -122,36 +122,36 @@
122122
<div class="igx-grid__tr--header">
123123
<igx-icon [attr.draggable]="false"
124124
(click)="toggleColumn(column)">
125-
{{getColumnGroupExpandState(column) ? 'chevron_right' : 'expand_more'}}</igx-icon>
125+
{{getColumnGroupExpandState(column) ? "chevron_right" : "expand_more"}}</igx-icon>
126126
{{column.header}}
127127
</div>
128128
</ng-template>
129129

130130
<ng-template #defaultRowDimensionsTemplate>
131-
<div tabindex="0" [style.height.px]='totalHeight' *ngFor='let dim of rowDimensions; let dimIndex = index;' #rowDimensionContainer role="rowgroup" class='igx-grid__tbody-pivot-dimension' (focus)="navigation.focusTbody($event)" (keydown)="navigation.handleNavigation($event)">
131+
<div tabindex="0" [style.height.px]="totalHeight" *ngFor="let dim of rowDimensions; let dimIndex = index;" #rowDimensionContainer role="rowgroup" class="igx-grid__tbody-pivot-dimension" (focus)="navigation.focusTbody($event)" (keydown)="navigation.handleNavigation($event)">
132132
<ng-template igxGridFor let-rowData [igxGridForOf]="dataView
133133
| pivotGridCellMerging:pivotConfiguration:dim:pipeTrigger"
134-
let-rowIndex="index" [igxForScrollOrientation]="'vertical'" [igxForScrollContainer]='verticalScroll'
135-
[igxForContainerSize]='calcHeight'
134+
let-rowIndex="index" [igxForScrollOrientation]="'vertical'" [igxForScrollContainer]="verticalScroll"
135+
[igxForContainerSize]="calcHeight"
136136
[igxForItemSize]="renderedRowHeight"
137-
[igxForSizePropName]='"height"'
137+
[igxForSizePropName]="'height'"
138138
#verticalRowDimScrollContainer>
139-
<igx-pivot-row-dimension-content role='row' class="igx-grid-thead" [grid]="this"
140-
[dimension]='rowData.dimensions[dimIndex]'
141-
[rootDimension]='dim'
139+
<igx-pivot-row-dimension-content role="row" class="igx-grid-thead" [grid]="this"
140+
[dimension]="rowData.dimensions[dimIndex]"
141+
[rootDimension]="dim"
142142
[style.height.px]="renderedRowHeight * (rowData.rowSpan || 1)"
143-
[rowIndex]='rowIndex' [rowData]='rowData'
143+
[rowIndex]="rowIndex" [rowData]="rowData"
144144
[density]="displayDensity" [width]="rowDimensionWidthToPixels(dim)">
145145
</igx-pivot-row-dimension-content>
146146
</ng-template>
147147
</div>
148148
</ng-template>
149149
<ng-template #emptyRowDimensionsTemplate>
150-
<div tabindex="0" *ngIf='columnDimensions.length > 0 || values.length > 0' #rowDimensionContainer role="rowgroup" class='igx-grid__tbody-pivot-dimension' (focus)="navigation.focusTbody($event)" (keydown)="navigation.handleNavigation($event)">
151-
<igx-pivot-row-dimension-content role='row' class="igx-grid-thead" [grid]="this"
152-
[dimension]='emptyRowDimension'
153-
[rootDimension]='emptyRowDimension'
154-
[rowIndex]='0' [rowData]='dataView[0]'
150+
<div tabindex="0" *ngIf="columnDimensions.length > 0 || values.length > 0" #rowDimensionContainer role="rowgroup" class="igx-grid__tbody-pivot-dimension" (focus)="navigation.focusTbody($event)" (keydown)="navigation.handleNavigation($event)">
151+
<igx-pivot-row-dimension-content role="row" class="igx-grid-thead" [grid]="this"
152+
[dimension]="emptyRowDimension"
153+
[rootDimension]="emptyRowDimension"
154+
[rowIndex]="0" [rowData]="dataView[0]"
155155
[density]="displayDensity" [width]="rowDimensionWidthToPixels(emptyRowDimension)">
156156
</igx-pivot-row-dimension-content>
157157
</div>
@@ -163,9 +163,9 @@
163163
</span>
164164
</ng-template>
165165

166-
<div [hidden]='true'>
167-
<igx-grid-excel-style-filtering [maxHeight]='excelStyleFilterMaxHeight' [minHeight]='excelStyleFilterMinHeight'>
168-
<div igxExcelStyleColumnOperations [hidden]='true'></div>
166+
<div [hidden]="true">
167+
<igx-grid-excel-style-filtering [maxHeight]="excelStyleFilterMaxHeight" [minHeight]="excelStyleFilterMinHeight">
168+
<div igxExcelStyleColumnOperations [hidden]="true"></div>
169169
<igx-excel-style-filter-operations>
170170
<igx-excel-style-search></igx-excel-style-search>
171171
</igx-excel-style-filter-operations>

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

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1135,7 +1135,11 @@ export class IgxPivotGridComponent extends IgxGridBaseDirective implements OnIni
11351135
/**
11361136
* @hidden @internal
11371137
*/
1138-
public rowDimensionWidthToPixels(dim: IPivotDimension): number {
1138+
public rowDimensionWidthToPixels(dim: IPivotDimension, ignoreBeforeInit: boolean = false): number {
1139+
if (!ignoreBeforeInit && this.shouldGenerate) {
1140+
return 0;
1141+
}
1142+
11391143
if (!dim.width) {
11401144
return MINIMUM_COLUMN_WIDTH;
11411145
}
@@ -1154,6 +1158,21 @@ export class IgxPivotGridComponent extends IgxGridBaseDirective implements OnIni
11541158
return (width * 100 / this.calcWidth);
11551159
}
11561160

1161+
public get pivotContentCalcWidth() {
1162+
const totalDimWidth = this.rowDimensions.length > 0 ?
1163+
this.rowDimensions.map((dim) => this.rowDimensionWidthToPixels(dim)).reduce((prev, cur) => prev + cur) :
1164+
0;
1165+
return this.calcWidth - totalDimWidth;
1166+
}
1167+
1168+
public get pivotPinnedWidth() {
1169+
return !this.shouldGenerate ? (this.isPinningToStart ? this.pinnedWidth : this.headerFeaturesWidth) : 0;
1170+
}
1171+
1172+
public get pivotUnpinnedWidth() {
1173+
return !this.shouldGenerate ? this.unpinnedWidth : 0;
1174+
}
1175+
11571176
public get rowDimensions() {
11581177
return this.pivotConfiguration.rows?.filter(x => x.enabled) || [];
11591178
}
@@ -1178,6 +1197,12 @@ export class IgxPivotGridComponent extends IgxGridBaseDirective implements OnIni
11781197
this.reflow();
11791198
}
11801199

1200+
protected override getColumnWidthSum(): number {
1201+
let colSum = super.getColumnWidthSum();
1202+
colSum += this.rowDimensions.map(dim => this.rowDimensionWidthToPixels(dim, true)).reduce((prev, cur) => prev + cur, 0);
1203+
return colSum;
1204+
}
1205+
11811206
/**
11821207
* @hidden @internal
11831208
*/

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<ng-container ngProjectAs="igx-suffix">
2121
<ng-content select="igx-suffix"></ng-content>
2222
</ng-container>
23-
<igx-suffix *ngIf="comboInput.value.length" aria-label="Clear Selection" class="igx-combo__clear-button"
23+
<igx-suffix *ngIf="selection.length" aria-label="Clear Selection" class="igx-combo__clear-button"
2424
(click)="handleClear($event)">
2525
<ng-container *ngIf="clearIconTemplate">
2626
<ng-container *ngTemplateOutlet="clearIconTemplate"></ng-container>

projects/igniteui-angular/src/lib/simple-combo/simple-combo.component.spec.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1286,7 +1286,7 @@ describe('IgxSimpleCombo', () => {
12861286
fixture.detectChanges();
12871287
combo = fixture.componentInstance.combo;
12881288

1289-
const toggleIcon = fixture.debugElement.query(By.directive(IgxIconComponent));
1289+
const toggleIcon = fixture.debugElement.query(By.css(`.${CSS_CLASS_TOGGLEBUTTON}`));
12901290
expect(toggleIcon).toBeDefined();
12911291

12921292
expect(toggleIcon.nativeElement.textContent).toBe('search');
@@ -1311,12 +1311,19 @@ describe('IgxSimpleCombo', () => {
13111311

13121312
expect(combo.selection.length).toEqual(1);
13131313

1314+
let clearButton = fixture.debugElement.query(By.css(`.${CSS_CLASS_CLEARBUTTON}`));
1315+
expect(clearButton).not.toBeNull();
1316+
13141317
input.triggerEventHandler('focus', {});
13151318
fixture.detectChanges();
13161319

13171320
UIInteractions.simulateTyping('L', input, 9, 10);
13181321
fixture.detectChanges();
13191322
expect(combo.selection.length).toEqual(0);
1323+
1324+
//should hide the clear button immediately when clearing the selection by typing
1325+
clearButton = fixture.debugElement.query(By.css(`.${CSS_CLASS_CLEARBUTTON}`));
1326+
expect(clearButton).toBeNull();
13201327
});
13211328
});
13221329

0 commit comments

Comments
 (0)