Skip to content

Commit fff177c

Browse files
authored
Merge branch '20.1.x' into mkirkova/fix-16238-20.1.x
2 parents 552ea27 + 02694ea commit fff177c

9 files changed

Lines changed: 73 additions & 14 deletions

File tree

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,7 @@
178178

179179
.igx-input-group {
180180
%igx-combo__toggle-button {
181+
cursor: pointer;
181182
background: var-get($theme, 'toggle-button-background');
182183
color: var-get($theme, 'toggle-button-foreground');
183184
}
@@ -286,4 +287,12 @@
286287
}
287288
}
288289
}
290+
291+
igx-combo {
292+
%form-group-input,
293+
%form-group-prefix,
294+
%form-group-suffix {
295+
cursor: pointer;
296+
}
297+
}
289298
}

projects/igniteui-angular/src/lib/core/styles/components/input/_input-group-theme.scss

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@
5959
$material-box-top-padding: sizable(rem(16px), rem(20px), rem(24px));
6060
$material-border-top-padding: sizable(rem(8px), rem(12px), rem(16px));
6161

62-
$textarea-top-padding: map.get((
63-
'material': rem(0px),
62+
$textarea-padding: map.get((
63+
'material': sizable(rem(8px), rem(12px), rem(16px)),
6464
'fluent': sizable(rem(6px), rem(10px), rem(14px)),
6565
'bootstrap': sizable(rem(4px), rem(8px), rem(12px)),
6666
'indigo': sizable(rem(4px), rem(6px), rem(8px)),
@@ -149,6 +149,7 @@
149149
[igxPrefix] {
150150
@extend %form-group-prefix;
151151
outline-style: none;
152+
cursor: default;
152153

153154
&:first-child {
154155
@if $variant == 'fluent' {
@@ -164,6 +165,7 @@
164165
[igxSuffix] {
165166
@extend %form-group-suffix;
166167
outline-style: none;
168+
cursor: default;
167169

168170
&:last-child {
169171
@if $variant == 'fluent' {
@@ -1289,7 +1291,7 @@
12891291

12901292
%textarea-group-label--focused {
12911293
transform: translateY(0);
1292-
top: calc(#{$material-box-top-padding} / 4);
1294+
top: calc(#{$textarea-padding} / 4);
12931295
}
12941296

12951297
%textarea-group-label--filled--border,
@@ -1425,7 +1427,6 @@
14251427
}
14261428

14271429
%form-group-input--hover {
1428-
cursor: pointer;
14291430
color: var-get($theme, 'filled-text-hover-color');
14301431

14311432
&::placeholder {
@@ -1434,7 +1435,6 @@
14341435
}
14351436

14361437
%form-group-input--focus {
1437-
cursor: text;
14381438
color: var-get($theme, 'focused-text-color');
14391439

14401440
&::placeholder {
@@ -1465,9 +1465,10 @@
14651465
resize: vertical;
14661466
overflow: hidden;
14671467
z-index: 1;
1468+
padding-block-end: $textarea-padding;
14681469

14691470
@if $material-theme {
1470-
padding: 0;
1471+
padding-block-start: 0;
14711472
}
14721473
}
14731474

@@ -2023,14 +2024,14 @@
20232024
}
20242025

20252026
%indigo-textarea {
2026-
padding-block: $textarea-top-padding 0;
2027+
padding-block: $textarea-padding;
20272028
padding-inline: pad-inline(rem(2px), rem(4px), rem(6px));
20282029
inset-block-end: rem(2px);
20292030
}
20302031

20312032
%fluent-textarea {
20322033
padding-inline: pad-inline(rem(8px));
2033-
padding-block: $textarea-top-padding 0;
2034+
padding-block: $textarea-padding;
20342035
}
20352036

20362037
%fluent-input-disabled {
@@ -2292,7 +2293,7 @@
22922293
);
22932294

22942295
&:is(textarea) {
2295-
padding-block: $textarea-top-padding 0;
2296+
padding-block: $textarea-padding;
22962297
}
22972298
}
22982299

projects/igniteui-angular/src/lib/core/styles/components/select/_select-theme.scss

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
.igx-input-group {
1717
%igx-select__toggle-button {
18+
cursor: pointer;
1819
background: var-get($theme, 'toggle-button-background');
1920
color: var-get($theme, 'toggle-button-foreground');
2021
}
@@ -60,4 +61,12 @@
6061
color: var-get($theme, 'toggle-button-foreground-disabled');
6162
}
6263
}
64+
65+
igx-select {
66+
%form-group-input,
67+
%form-group-prefix,
68+
%form-group-suffix {
69+
cursor: pointer;
70+
}
71+
}
6372
}

projects/igniteui-angular/src/lib/grids/api.service.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,9 @@ export class GridBaseAPIService<T extends GridType> implements GridServiceType {
283283
}
284284

285285
public should_apply_number_style(column: ColumnType): boolean {
286-
return column.dataType === GridColumnDataType.Number;
286+
return column.dataType === GridColumnDataType.Number
287+
|| column.dataType === GridColumnDataType.Currency
288+
|| column.dataType === GridColumnDataType.Percent;
287289
}
288290

289291
public get_data(): any[] {

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,9 @@ export class IgxGridHeaderComponent implements DoCheck, OnDestroy {
149149

150150
@HostBinding('class.igx-grid-th--number')
151151
public get numberStyle() {
152-
return this.column.dataType === GridColumnDataType.Number;
152+
return this.column.dataType === GridColumnDataType.Number
153+
|| this.column.dataType === GridColumnDataType.Currency
154+
|| this.column.dataType === GridColumnDataType.Percent;
153155
}
154156

155157
@HostBinding('class.igx-grid-th--sortable')

projects/igniteui-angular/src/lib/grids/tree-grid/tree-grid-api.service.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,14 @@ export class IgxTreeGridAPIService extends GridBaseAPIService<GridType> {
7676
if (expanded !== undefined) {
7777
return expanded;
7878
} else {
79-
return record.children && record.children.length && record.level < grid.expansionDepth;
79+
return record.children && !!record.children.length && record.level < grid.expansionDepth;
8080
}
8181
}
8282

8383
public override should_apply_number_style(column: ColumnType): boolean {
84-
return column.dataType === GridColumnDataType.Number && column.visibleIndex !== 0;
84+
return (column.dataType === GridColumnDataType.Number
85+
|| column.dataType === GridColumnDataType.Currency
86+
|| column.dataType === GridColumnDataType.Percent) && column.visibleIndex !== 0;
8587
}
8688

8789
public override deleteRowById(rowID: any): any {

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,15 @@ describe('IgxTreeGrid - Expanding / Collapsing #tGrid', () => {
4545
treeGrid = fix.componentInstance.treeGrid;
4646
});
4747

48+
it('should return boolean for expand state of row without children using getRowByKey()', () => {
49+
treeGrid.primaryKey = "ID";
50+
treeGrid.childDataKey = "";
51+
fix.detectChanges();
52+
53+
const testRow = treeGrid.getRowByKey(147);
54+
expect(testRow.expanded).toEqual(false);
55+
});
56+
4857
it('check row expanding and collapsing are changing rows count (UI)', () => {
4958
let rows = TreeGridFunctions.getAllRows(fix);
5059
expect(rows.length).toBe(4);

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

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2208,6 +2208,29 @@ describe('IgxSimpleCombo', () => {
22082208
fixture.detectChanges();
22092209
expect(document.activeElement).toEqual(thirdComboInput.nativeElement);
22102210
}));
2211+
2212+
it('should lose focus when user closes combo by clicking outside', fakeAsync(() => {
2213+
// Initially combo is not focused
2214+
expect(document.activeElement).not.toBe(input.nativeElement);
2215+
2216+
// Click inside combo input to focus it
2217+
input.triggerEventHandler('focus', {});
2218+
input.triggerEventHandler('click', UIInteractions.getMouseEvent('click'));
2219+
fixture.detectChanges();
2220+
2221+
// Verify combo is focused and opened
2222+
expect(document.activeElement).toBe(input.nativeElement);
2223+
expect(combo.collapsed).toBe(false);
2224+
2225+
// Simulate outside click by clicking on document body
2226+
// This triggers the blur event which is what happens on outside clicks
2227+
input.triggerEventHandler('blur', {});
2228+
document.body.click();
2229+
tick();
2230+
fixture.detectChanges();
2231+
2232+
expect(document.activeElement).not.toBe(input.nativeElement);
2233+
}));
22112234
});
22122235

22132236
describe('Form control tests: ', () => {

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,11 +260,13 @@ export class IgxSimpleComboComponent extends IgxComboBaseDirective implements Co
260260
}
261261
if (this.getEditElement() && !args.event) {
262262
this._collapsing = true;
263+
// Only focus back when programmatically closing (no user event)
264+
// to avoid focus loops when user clicks on another combo
265+
this.comboInput.focus();
263266
} else {
264267
this.clearOnBlur();
265268
this._onTouchedCallback();
266269
}
267-
this.comboInput.focus();
268270
});
269271

270272
// in reactive form the control is not present initially

0 commit comments

Comments
 (0)