Skip to content

Commit 4253fb3

Browse files
authored
Merge branch 'master' into gedinakova/fix-clear-filter-15193
2 parents 1f26189 + 06959f3 commit 4253fb3

File tree

11 files changed

+56
-38
lines changed

11 files changed

+56
-38
lines changed

projects/igniteui-angular/src/lib/core/styles/components/checkbox/_checkbox-theme.scss

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,7 @@
175175
flex-flow: row nowrap;
176176
align-items: center;
177177
outline-style: none;
178+
cursor: pointer;
178179
}
179180

180181
%cbx-display--disabled {
@@ -211,7 +212,6 @@
211212
%cbx-composite {
212213
position: relative;
213214
display: inline-block;
214-
cursor: pointer;
215215
width: $size;
216216
height: $size;
217217
min-width: $size;
@@ -500,7 +500,6 @@
500500
%cbx-label {
501501
display: inline-block;
502502
color: var-get($theme, 'label-color');
503-
cursor: pointer;
504503
user-select: none;
505504
word-wrap: break-all;
506505
transition: color .2s $ease-out-quad;

projects/igniteui-angular/src/lib/core/styles/components/chip/_chip-theme.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,7 @@
384384
}
385385

386386
@if $variant == 'indigo' {
387-
%igx-icon-display {
387+
igx-icon {
388388
--size: #{sizable(rem(14px), rem(14px), rem(16px))}
389389
}
390390
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,14 +174,14 @@
174174
// The wrapping element here is needed
175175
// in order to override the !important rule of .igx-icon--inactive.
176176
%igx-combo__case-icon {
177-
.igx-icon {
177+
igx-icon {
178178
// Important is needed since the .igx-icon--inactive has !important
179179
color: color($color: 'gray', $variant: 600) !important;
180180
}
181181
}
182182

183183
%igx-combo__case-icon--active {
184-
.igx-icon {
184+
igx-icon {
185185
color: color($color: 'primary')
186186
}
187187
}

projects/igniteui-angular/src/lib/core/styles/components/grid/_excel-filtering-theme.scss

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -99,13 +99,9 @@
9999
}
100100
}
101101

102-
igx-icon {
103-
@if $variant == 'indigo' {
104-
--component-size: 2;
105-
} @else {
106-
width: var(--igx-icon-size, #{rem(15px)});
107-
height: var(--igx-icon-size, #{rem(15px)});
108-
font-size: var(--igx-icon-size, #{rem(15px)});
102+
@if $variant != 'indigo' {
103+
igx-icon {
104+
--size: var(--igx-icon-size, #{rem(15px)});
109105
}
110106
}
111107
}

projects/igniteui-angular/src/lib/core/styles/components/grid/_grid-theme.scss

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1204,7 +1204,7 @@
12041204
} @else {
12051205
padding-inline: pad-inline(rem(8px), rem(12px), rem(16px));
12061206

1207-
%igx-icon-display {
1207+
igx-icon {
12081208
opacity: if($theme-variant == 'light', .75, .85);
12091209

12101210
&:hover {
@@ -1458,12 +1458,12 @@
14581458
} @else {
14591459
padding-inline: pad-inline(rem(8px), rem(12px), rem(16px));
14601460

1461-
%igx-icon-display {
1461+
igx-icon {
14621462
opacity: if($theme-variant == 'light', .75, .85);
14631463
}
14641464

14651465
&:hover {
1466-
%igx-icon-display {
1466+
igx-icon {
14671467
opacity: 1;
14681468
}
14691469
}
@@ -2035,13 +2035,10 @@
20352035
position: relative;
20362036
display: flex;
20372037

2038-
igx-icon {
2039-
@if $variant == 'indigo' {
2040-
--component-size: 2;
2041-
} @else {
2042-
width: var(--igx-icon-size, #{rem(15px)});
2043-
height: var(--igx-icon-size, #{rem(15px)});
2044-
font-size: var(--igx-icon-size, #{rem(15px)});
2038+
2039+
@if $variant != 'indigo' {
2040+
igx-icon {
2041+
--size: var(--igx-icon-size, #{rem(15px)});
20452042
}
20462043
}
20472044

@@ -2147,15 +2144,15 @@
21472144
%grid-excel-icon {
21482145
color: var-get($theme, 'header-selected-text-color');
21492146

2150-
%igx-icon-display {
2147+
igx-icon {
21512148
color: var-get($theme, 'header-selected-text-color');
21522149
}
21532150

21542151
&:focus,
21552152
&:hover {
21562153
color: var-get($theme, 'header-selected-text-color');
21572154

2158-
%igx-icon-display {
2155+
igx-icon {
21592156
color: var-get($theme, 'header-selected-text-color');
21602157
}
21612158
}
@@ -2499,7 +2496,7 @@
24992496
}
25002497

25012498
%igx-group-label__icon {
2502-
&.igx-icon {
2499+
@at-root igx-icon#{&} {
25032500
--component-size: #{if($variant == 'indigo', 2, 1)};
25042501

25052502
color: var-get($theme, 'group-label-icon');
@@ -3447,10 +3444,9 @@
34473444
}
34483445

34493446
@if $variant == 'indigo' {
3450-
%igx-icon-display {
3447+
igx-icon {
34513448
opacity: if($theme-variant == 'light', .75, .85);
34523449

3453-
34543450
&:hover {
34553451
opacity: 1;
34563452
cursor: pointer;

projects/igniteui-angular/src/lib/core/styles/components/radio/_radio-theme.scss

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,6 @@
212212
height: $size;
213213
min-width: $size;
214214
line-height: $size;
215-
cursor: pointer;
216215
color: var-get($theme, 'label-color');
217216
user-select: none;
218217

@@ -400,7 +399,6 @@
400399

401400
%radio-label {
402401
color: var-get($theme, 'label-color');
403-
cursor: pointer;
404402
user-select: none;
405403
word-wrap: break-all;
406404

projects/igniteui-angular/src/lib/core/styles/components/switch/_switch-theme.scss

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,6 @@
290290
border: rem(1px) solid var-get($theme, 'border-color');
291291
border-radius: var-get($theme, 'border-radius-track');
292292
background: var-get($theme, 'track-off-color');
293-
cursor: pointer;
294293
user-select: none;
295294
transition: $input-transition;
296295

@@ -557,7 +556,6 @@
557556
%switch-label {
558557
display: inline-block;
559558
color: var-get($theme, 'label-color');
560-
cursor: pointer;
561559
user-select: none;
562560
word-wrap: break-all;
563561

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

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import { IgxAvatarComponent } from '../../avatar/avatar.component';
1616
import { IColumnResizeEventArgs, IgxColumnComponent } from '../public_api';
1717
import { Size } from "../common/enums";
1818
import { setElementSize } from '../../test-utils/helper-utils.spec';
19+
import { IgxColumnResizerDirective } from '../resizing/resizer.directive';
1920

2021
describe('IgxGrid - Deferred Column Resizing #grid', () => {
2122

@@ -133,6 +134,27 @@ describe('IgxGrid - Deferred Column Resizing #grid', () => {
133134
expect(grid.columnList.get(1).width).toEqual('70px');
134135
}));
135136

137+
it('should calculate correctly resizer position and column width when grid is scaled and zoomed', fakeAsync(() => {
138+
grid.nativeElement.style.transform = 'scale(1.2)';
139+
grid.nativeElement.style.setProperty('zoom', '1.05');
140+
fixture.detectChanges();
141+
headerResArea = GridFunctions.getHeaderResizeArea(headers[1]).nativeElement;
142+
UIInteractions.simulateMouseEvent('mousedown', headerResArea, 153, 0);
143+
tick(200);
144+
fixture.detectChanges();
145+
146+
const resizer = GridFunctions.getResizer(fixture);
147+
const resizerDirective = resizer.componentInstance.resizer as IgxColumnResizerDirective;
148+
const leftSetterSpy = spyOnProperty(resizerDirective, 'left', 'set').and.callThrough();
149+
UIInteractions.simulateMouseEvent('mousemove', resizer.nativeElement, 200, 5);
150+
UIInteractions.simulateMouseEvent('mouseup', resizer.nativeElement, 200, 5);
151+
fixture.detectChanges();
152+
153+
expect(leftSetterSpy).toHaveBeenCalled();
154+
expect(parseInt(leftSetterSpy.calls.mostRecent().args[0].toFixed(0))).toEqual(200);
155+
expect(parseInt(grid.columnList.get(1).headerCell.nativeElement.getBoundingClientRect().width.toFixed(0))).toEqual(173);
156+
}));
157+
136158
it('should be able to resize column to the minWidth < defaultMinWidth', fakeAsync(() => {
137159
const column = grid.getColumnByName('ID');
138160
column.minWidth = 'a';

projects/igniteui-angular/src/lib/grids/resizing/resizer.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@
44
[restrictHResizeMax]="colResizingService.restrictResizeMax"
55
[restrictHResizeMin]="colResizingService.restrictResizeMin"
66
[restrictResizerTop]="restrictResizerTop"
7-
(resizeEnd)="colResizingService.resizeColumn($event)">
7+
(resizeEnd)="colResizingService.resizeColumn($event, resizer.ratio)">
88
</div>

projects/igniteui-angular/src/lib/grids/resizing/resizer.directive.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,13 @@ export class IgxColumnResizerDirective implements OnInit, OnDestroy {
4141
@Output() public resize = new Subject<any>();
4242

4343
private _left: number;
44+
private _ratio: number = 1;
4445
private _destroy = new Subject<boolean>();
4546

47+
public get ratio(): number {
48+
return this._ratio;
49+
}
50+
4651
constructor(
4752
public element: ElementRef<HTMLElement>,
4853
@Inject(DOCUMENT) public document,
@@ -56,7 +61,7 @@ export class IgxColumnResizerDirective implements OnInit, OnDestroy {
5661
.pipe(
5762
takeUntil(this._destroy),
5863
takeUntil<MouseEvent>(this.resizeEnd),
59-
map((event) => event.clientX - offset),
64+
map((event) => (event.clientX - offset) / (this._ratio)),
6065
))
6166
)
6267
.subscribe((pos) => {
@@ -113,8 +118,12 @@ export class IgxColumnResizerDirective implements OnInit, OnDestroy {
113118
public onMousedown(event: MouseEvent) {
114119
event.preventDefault();
115120
const parent = this.element.nativeElement.parentElement.parentElement;
116-
117-
this.left = this._left = event.clientX - parent.getBoundingClientRect().left;
121+
const parentRectWidth = parent.getBoundingClientRect().width;
122+
const parentComputedWidth = parseFloat(window.getComputedStyle(parent).width);
123+
if (Math.abs(parentRectWidth - parentComputedWidth) > 1) {
124+
this._ratio = parentRectWidth / parentComputedWidth;
125+
}
126+
this.left = this._left = (event.clientX - parent.getBoundingClientRect().left) / this._ratio;
118127
this.top = (event.target as HTMLElement).getBoundingClientRect().top - parent.getBoundingClientRect().top;
119128

120129
this.resizeStart.next(event);

0 commit comments

Comments
 (0)