Skip to content

Commit 3db55a7

Browse files
committed
Merge branch 'master' of https://github.com/IgniteUI/igniteui-angular into ddincheva/calendarKB
2 parents e55e390 + 170c815 commit 3db55a7

File tree

8 files changed

+646
-48
lines changed

8 files changed

+646
-48
lines changed

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

+542-3
Large diffs are not rendered by default.

projects/igniteui-angular/src/lib/grids/grid/grid.multi-row-layout.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1168,7 +1168,7 @@ describe('IgxGrid - multi-row-layout #grid', () => {
11681168

11691169
@Component({
11701170
template: `
1171-
<igx-grid #grid [data]="data" height="500px">
1171+
<igx-grid #grid [data]="data" height="500px" [rowEditable]='true' [primaryKey]="'ID'">
11721172
<igx-column-layout *ngFor='let group of colGroups'>
11731173
<igx-column *ngFor='let col of group.columns'
11741174
[rowStart]="col.rowStart" [colStart]="col.colStart" [width]='col.width'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
import { async, TestBed, fakeAsync } from '@angular/core/testing';
2+
import { IgxHierarchicalGridModule, IgxHierarchicalGridComponent } from './public_api';
3+
import { configureTestSuite } from '../../test-utils/configure-suite';
4+
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
5+
import { IgxActionStripModule, IgxActionStripComponent } from '../../action-strip/public_api';
6+
import { IgxHierarchicalGridActionStripComponent } from '../../test-utils/hierarchical-grid-components.spec';
7+
import { wait } from '../../test-utils/ui-interactions.spec';
8+
9+
describe('IgxHierarchicalGrid - Add Row UI #tGrid', () => {
10+
configureTestSuite();
11+
let fixture;
12+
let hierarchicalGrid: IgxHierarchicalGridComponent;
13+
let actionStrip: IgxActionStripComponent;
14+
beforeAll(async(() => {
15+
TestBed.configureTestingModule({
16+
declarations: [
17+
IgxHierarchicalGridActionStripComponent
18+
],
19+
imports: [IgxHierarchicalGridModule, NoopAnimationsModule, IgxActionStripModule]
20+
})
21+
.compileComponents();
22+
}));
23+
24+
describe(' Basic', () => {
25+
beforeEach(fakeAsync(/** height/width setter rAF */() => {
26+
fixture = TestBed.createComponent(IgxHierarchicalGridActionStripComponent);
27+
fixture.detectChanges();
28+
hierarchicalGrid = fixture.componentInstance.hgrid;
29+
actionStrip = fixture.componentInstance.actionStrip;
30+
}));
31+
32+
it('Should collapse an expanded record when beginAddRow is called for it', () => {
33+
const row = hierarchicalGrid.rowList.first;
34+
hierarchicalGrid.expandRow(row.rowID);
35+
fixture.detectChanges();
36+
expect(row.expanded).toBeTrue();
37+
38+
row.beginAddRow();
39+
fixture.detectChanges();
40+
expect(row.expanded).toBeFalse();
41+
expect(hierarchicalGrid.getRowByIndex(1).addRow).toBeTrue();
42+
});
43+
44+
it('Should allow the expansion of a newly added (commited) record', async() => {
45+
const row = hierarchicalGrid.rowList.first;
46+
hierarchicalGrid.expandRow(row.rowID);
47+
fixture.detectChanges();
48+
expect(row.expanded).toBeTrue();
49+
50+
row.beginAddRow();
51+
fixture.detectChanges();
52+
expect(row.expanded).toBeFalse();
53+
expect(hierarchicalGrid.getRowByIndex(1).addRow).toBeTrue();
54+
hierarchicalGrid.endEdit(true);
55+
fixture.detectChanges();
56+
hierarchicalGrid.addRowSnackbar.triggerAction();
57+
fixture.detectChanges();
58+
59+
await wait(100);
60+
fixture.detectChanges();
61+
62+
const newRowData = hierarchicalGrid.data[hierarchicalGrid.data.length - 1];
63+
const newRow = hierarchicalGrid.rowList.find(r => r.rowID === newRowData[hierarchicalGrid.primaryKey]);
64+
expect(newRow.expanded).toBeFalse();
65+
hierarchicalGrid.expandRow(newRow.rowID);
66+
fixture.detectChanges();
67+
expect(newRow.expanded).toBeTrue();
68+
});
69+
});
70+
});

projects/igniteui-angular/src/lib/services/overlay/overlay.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -150,8 +150,8 @@ export class IgxOverlayService implements OnDestroy {
150150
*/
151151
public static createRelativeOverlaySettings(
152152
target: Point | HTMLElement,
153-
strategy?: RelativePositionStrategy,
154-
position?: RelativePosition):
153+
position?: RelativePosition,
154+
strategy?: RelativePositionStrategy):
155155
OverlaySettings {
156156
const positionSettings = this.createRelativePositionSettings(position);
157157
const overlaySettings: OverlaySettings = {

projects/igniteui-angular/src/lib/services/overlay/utilities.ts

+17-20
Original file line numberDiff line numberDiff line change
@@ -21,34 +21,31 @@ export enum VerticalAlignment {
2121
/**
2222
* Defines the possible values of the overlays' position strategy.
2323
*/
24-
export const RelativePositionStrategy = mkenum({
25-
Connected: 'connected',
26-
Auto: 'auto',
27-
Elastic: 'elastic'
28-
});
29-
export type RelativePositionStrategy = (typeof RelativePositionStrategy)[keyof typeof RelativePositionStrategy];
24+
export enum RelativePositionStrategy {
25+
Connected = 'connected',
26+
Auto = 'auto',
27+
Elastic = 'elastic'
28+
}
3029

3130
/**
3231
* Defines the possible positions for the relative overlay settings presets.
3332
*/
34-
export const RelativePosition = mkenum({
35-
Above: 'above',
36-
Below: 'below',
37-
Before: 'before',
38-
After: 'after',
39-
Default: 'default'
40-
});
41-
export type RelativePosition = (typeof RelativePosition)[keyof typeof RelativePosition];
33+
export enum RelativePosition {
34+
Above = 'above',
35+
Below = 'below',
36+
Before = 'before',
37+
After = 'after',
38+
Default = 'default'
39+
}
4240

4341
/**
4442
* Defines the possible positions for the absolute overlay settings presets.
4543
*/
46-
export const AbsolutePosition = mkenum({
47-
Bottom: 'bottom',
48-
Top: 'top',
49-
Center: 'center'
50-
});
51-
export type AbsolutePosition = (typeof AbsolutePosition)[keyof typeof AbsolutePosition];
44+
export enum AbsolutePosition {
45+
Bottom = 'bottom',
46+
Top = 'top',
47+
Center = 'center'
48+
}
5249

5350
export class Point {
5451
constructor(public x: number, public y: number) { }

projects/igniteui-angular/src/lib/test-utils/grid-samples.spec.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -2168,9 +2168,9 @@ export class MRLTestComponent {
21682168
@Component({
21692169
template: `
21702170
<igx-grid #grid [data]="data" [width]="'800px'" [height]="'500px'"
2171-
[rowEditable]="true" [primaryKey]="'ID'">
2171+
[rowEditable]="true" [primaryKey]="'ID'" [allowFiltering]="true">
21722172
<igx-column *ngFor="let c of columns" [sortable]="true" [field]="c.field" [header]="c.field"
2173-
[width]="c.width">
2173+
[width]="c.width" [movable]='true' [resizable]='true'>
21742174
</igx-column>
21752175
21762176
<igx-action-strip #actionStrip>

projects/igniteui-angular/src/lib/test-utils/hierarchical-grid-components.spec.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { IPinningConfig } from '../grids/grid.common';
88
import { ColumnPinningPosition, RowPinningPosition } from '../grids/common/enums';
99
import { IgxActionStripComponent } from '../action-strip/public_api';
1010

11+
1112
@Component({
1213
template: `
1314
<igx-hierarchical-grid #grid1 [data]="data" [allowFiltering]="true" [rowEditable]="true" [pinning]='pinningConfig'
@@ -209,11 +210,10 @@ export class IgxHierarchicalGridCustomSelectorsComponent implements OnInit {
209210
})
210211
export class IgxHierarchicalGridTestCustomToolbarComponent extends IgxHierarchicalGridTestBaseComponent { }
211212

212-
213213
@Component({
214214
template: `
215215
<igx-hierarchical-grid #grid1 [data]="data" [height]="'600px'" [width]="'700px'" #hierarchicalGrid
216-
[primaryKey]="'ID'" [showToolbar]="true" [autoGenerate]="true">
216+
[primaryKey]="'ID'" [showToolbar]="true" [autoGenerate]="true" [rowEditable]='true'>
217217
<igx-action-strip #actionStrip1>
218218
<igx-grid-pinning-actions></igx-grid-pinning-actions>
219219
<igx-grid-editing-actions></igx-grid-editing-actions>

src/app/overlay/overlay-presets.sample.ts

+10-18
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,7 @@ import { Component, ViewChild, ElementRef, ChangeDetectorRef, OnInit } from '@an
22
import {
33
IgxDropDownComponent,
44
OverlaySettings,
5-
AutoPositionStrategy,
6-
GlobalPositionStrategy,
7-
ConnectedPositioningStrategy,
8-
AbsoluteScrollStrategy,
9-
BlockScrollStrategy,
10-
CloseScrollStrategy,
11-
NoOpScrollStrategy,
12-
ElasticPositionStrategy,
135
IgxDragDirective,
14-
ContainerPositionStrategy,
156
IgxOverlayService
167
} from 'igniteui-angular';
178
import { RelativePositionStrategy, AbsolutePosition, RelativePosition } from 'projects/igniteui-angular/src/lib/services/overlay/utilities';
@@ -33,12 +24,12 @@ export class OverlayPresetsSampleComponent implements OnInit {
3324
private yAddition = 0;
3425
items = [];
3526
itemsCount = 10;
36-
relStrategies = ['Auto', 'Connected', 'Elastic'];
27+
relStrategies = [RelativePositionStrategy.Auto, RelativePositionStrategy.Connected, RelativePositionStrategy.Elastic];
3728
absStrategies = ['Global', 'Container'];
3829
positionStrategy = 'Global';
3930
absPosition: AbsolutePosition = AbsolutePosition.Center;
4031
absPositions = [AbsolutePosition.Center, AbsolutePosition.Top, AbsolutePosition.Bottom];
41-
relPosition: RelativePosition = RelativePosition.Below;
32+
relPosition: RelativePosition;
4233
relPositions = [
4334
RelativePosition.Above,
4435
RelativePosition.Below,
@@ -47,7 +38,6 @@ export class OverlayPresetsSampleComponent implements OnInit {
4738
RelativePosition.Default];
4839

4940
constructor(
50-
private cdr: ChangeDetectorRef
5141
) {
5242
for (let item = 0; item < this.itemsCount; item++) {
5343
this.items.push(`Item ${item}`);
@@ -58,18 +48,20 @@ export class OverlayPresetsSampleComponent implements OnInit {
5848
this._overlaySettings = IgxOverlayService.createAbsoluteOverlaySettings(this.absPosition);
5949
}
6050

61-
onChange(ev) {
51+
onChange() {
6252
switch (this.positionStrategy) {
63-
case 'Auto':
64-
case 'Connected':
65-
case 'Elastic':
53+
case RelativePositionStrategy.Auto:
54+
case RelativePositionStrategy.Connected:
55+
case RelativePositionStrategy.Elastic:
6656
this.absPosition = null;
57+
this.relPosition = this.relPosition || RelativePosition.Default;
6758
this._overlaySettings = IgxOverlayService.createRelativeOverlaySettings(
6859
this.button.nativeElement,
69-
RelativePositionStrategy[this.positionStrategy],
70-
this.relPosition);
60+
this.relPosition,
61+
this.positionStrategy);
7162
break;
7263
case 'Global':
64+
this.relPosition = null;
7365
this._overlaySettings = IgxOverlayService.createAbsoluteOverlaySettings(this.absPosition);
7466
break;
7567
case 'Container':

0 commit comments

Comments
 (0)