Skip to content

Commit 0847517

Browse files
authored
Merge branch '10.2.x' into grid-cell-edit-styling
2 parents adf297e + 59d43b3 commit 0847517

File tree

9 files changed

+49
-19
lines changed

9 files changed

+49
-19
lines changed

angular.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,8 @@
9090
"browserTarget": "igniteui-dev-demos:build:hmr"
9191
},
9292
"es5": {
93+
"hmr": true,
94+
"hmrWarning": false,
9395
"browserTarget": "igniteui-dev-demos:build:es5"
9496
}
9597
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"scripts": {
55
"ng": "ng",
66
"start": "ng serve --open --configuration hmr",
7-
"start-es5": "ng serve --configuration es5 -o",
7+
"start:es5": "ng serve --open --configuration es5",
88
"build": "ng build",
99
"test": "ng test",
1010
"lint": "ng lint",

projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-action-button.component.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<ng-container *ngIf="!asMenuItem">
22

33
<ng-container *ngIf="!asMenuItem">
4-
<button igxButton="icon" igxRipple (click)="handleClick($event)">
4+
<button igxButton="icon" igxRipple (click)="handleClick($event)" (mousedown)="preventEvent($event)">
55
<igx-icon *ngIf="iconSet" [fontSet]="iconSet" [name]="iconName">{{iconName}}</igx-icon>
66
<igx-icon *ngIf="!iconSet" >{{iconName}}</igx-icon>
77
</button>
@@ -14,4 +14,4 @@
1414
<label *ngIf='asMenuItem' igxLabel>{{labelText}}</label>
1515
</div>
1616
</ng-container>
17-
</ng-container>
17+
</ng-container>

projects/igniteui-angular/src/lib/action-strip/grid-actions/grid-action-button.component.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,4 +69,14 @@ export class IgxGridActionButtonComponent {
6969
public handleClick(event) {
7070
this.onActionClick.emit(event);
7171
}
72+
73+
/**
74+
* @hidden @internal
75+
*/
76+
public preventEvent(event) {
77+
if (event) {
78+
event.stopPropagation();
79+
event.preventDefault();
80+
}
81+
}
7282
}

projects/igniteui-angular/src/lib/grids/filtering/excel-style/grid.excel-style-filtering.component.ts

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ export class IgxGridExcelStyleFilteringComponent implements OnDestroy {
126126
this._columnPinning = this.grid.onColumnPinning.pipe(takeUntil(this.destroy$)).subscribe(() => {
127127
requestAnimationFrame(() => {
128128
if (!(this.cdr as ViewRef).destroyed) {
129-
this.cdr.detectChanges();
129+
this.cdr.detectChanges();
130130
}
131131
});
132132
});
@@ -190,7 +190,7 @@ export class IgxGridExcelStyleFilteringComponent implements OnDestroy {
190190
*/
191191
@Input()
192192
get minHeight(): string {
193-
if (this._minHeight || this._minHeight === 0) {
193+
if (this._minHeight || this._minHeight === 0) {
194194
return this._minHeight;
195195
}
196196

@@ -413,20 +413,20 @@ export class IgxGridExcelStyleFilteringComponent implements OnDestroy {
413413
private areExpressionsSelectable () {
414414
if (this.expressionsList.length === 1 &&
415415
(this.expressionsList[0].expression.condition.name === 'equals' ||
416-
this.expressionsList[0].expression.condition.name === 'true' ||
417-
this.expressionsList[0].expression.condition.name === 'false' ||
418-
this.expressionsList[0].expression.condition.name === 'empty' ||
419-
this.expressionsList[0].expression.condition.name === 'in')) {
416+
this.expressionsList[0].expression.condition.name === 'true' ||
417+
this.expressionsList[0].expression.condition.name === 'false' ||
418+
this.expressionsList[0].expression.condition.name === 'empty' ||
419+
this.expressionsList[0].expression.condition.name === 'in')) {
420420
return true;
421421
}
422422

423423
const selectableExpressionsCount = this.expressionsList.filter(exp =>
424424
(exp.beforeOperator === 1 || exp.afterOperator === 1) &&
425425
(exp.expression.condition.name === 'equals' ||
426-
exp.expression.condition.name === 'true' ||
427-
exp.expression.condition.name === 'false' ||
428-
exp.expression.condition.name === 'empty' ||
429-
exp.expression.condition.name === 'in')).length;
426+
exp.expression.condition.name === 'true' ||
427+
exp.expression.condition.name === 'false' ||
428+
exp.expression.condition.name === 'empty' ||
429+
exp.expression.condition.name === 'in')).length;
430430

431431
return selectableExpressionsCount === this.expressionsList.length;
432432
}
@@ -466,7 +466,12 @@ export class IgxGridExcelStyleFilteringComponent implements OnDestroy {
466466
this.loadingStart.emit();
467467
const expressionsTree: FilteringExpressionsTree = this.getColumnFilterExpressionsTree();
468468

469+
const prevColumn = this.column;
469470
this.grid.uniqueColumnValuesStrategy(this.column, expressionsTree, (colVals: any[]) => {
471+
if (!this.column || this.column !== prevColumn) {
472+
return;
473+
}
474+
470475
const columnValues = (this.column.dataType === DataType.Date) ?
471476
colVals.map(val => val ? val.toDateString() : val) : colVals;
472477

@@ -503,7 +508,7 @@ export class IgxGridExcelStyleFilteringComponent implements OnDestroy {
503508
if (this.column.dataType === DataType.String && this.column.filteringIgnoreCase) {
504509
const filteredUniqueValues = columnValues.map(s => s?.toString().toLowerCase())
505510
.reduce((map, val, i) => map.get(val) ? map : map.set(val, columnValues[i]),
506-
new Map);
511+
new Map);
507512

508513
this.uniqueValues = Array.from(filteredUniqueValues.values());
509514
} else {
@@ -591,9 +596,9 @@ export class IgxGridExcelStyleFilteringComponent implements OnDestroy {
591596
filterListItem.isFiltered = true;
592597
this.selectAllIndeterminate = true;
593598
} else if (element === false && this.expressionsList.find(exp => exp.expression.condition.name === 'false' )) {
594-
filterListItem.isSelected = true;
595-
filterListItem.isFiltered = true;
596-
this.selectAllIndeterminate = true;
599+
filterListItem.isSelected = true;
600+
filterListItem.isFiltered = true;
601+
this.selectAllIndeterminate = true;
597602
} else {
598603
filterListItem.isSelected = false;
599604
filterListItem.isFiltered = false;

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4855,6 +4855,17 @@ describe('IgxGrid - Filtering actions - Excel style filtering #grid', () => {
48554855
loadingIndicator = GridFunctions.getExcelFilteringLoadingIndicator(fix);
48564856
expect(loadingIndicator).toBeNull('esf loading indicator is visible');
48574857
}));
4858+
4859+
it('Should not execute done callback for null column', fakeAsync(() => {
4860+
const compInstance = fix.componentInstance as IgxGridFilteringESFLoadOnDemandComponent;
4861+
GridFunctions.clickExcelFilterIcon(fix, 'ProductName');
4862+
fix.detectChanges();
4863+
4864+
expect(() => {
4865+
GridFunctions.clickExcelFilterIcon(fix, 'Downloads');
4866+
tick(2000);
4867+
}).not.toThrowError(/\'dataType\' of null/);
4868+
}));
48584869
});
48594870

48604871
describe(null, () => {

projects/igniteui-angular/src/lib/grids/row.directive.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ export class IgxRowDirective<T extends IgxGridBaseDirective & GridType> implemen
113113
}
114114

115115
get cellHeight() {
116-
return this.addRow ? null : this.grid.rowHeight || 32;
116+
return this.addRow && !this.inEditMode ? null : this.grid.rowHeight || 32;
117117
}
118118

119119
/**

src/polyfills.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
/** IE10 and IE11 requires the following for NgClass support on SVG elements */
2222
import 'classlist.js'; // Run `npm install --save classlist.js`.
2323

24+
import 'core-js/es7/array'; // for Array.includes()
25+
2426
/**
2527
* Web Animations `@angular/platform-browser/animations`
2628
* Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.

src/styles/igniteui-theme.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ body {
1818
}
1919

2020
@include igx-core($direction: ltr);
21-
@include igx-theme($palette: $palette, $schema: $schema);
21+
@include igx-theme($palette: $palette, $schema: $schema, $legacy-support: true);
2222
@include igx-typography($type-scale: $typography);
2323

2424
@include igx-palette-vars($palette, $contrast: true);

0 commit comments

Comments
 (0)