Skip to content

Commit 64202bf

Browse files
committed
Merge branch 'bpenkov/overlay-close-on-escape' of https://github.com/IgniteUI/igniteui-angular into bpenkov/overlay-close-on-escape
2 parents 76e2577 + fb249d2 commit 64202bf

File tree

5 files changed

+65
-20
lines changed

5 files changed

+65
-20
lines changed

projects/igniteui-angular/migrations/update-10_1_0/index.spec.ts

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,44 @@ describe('Update 10.1.0', () => {
6565
private actionIcon: IgxNavbarActionDirective; }`);
6666
});
6767

68+
it('should update DropPosition.None', async () => {
69+
const origFileContent =
70+
`import { Component, Injectable, ViewChild } from "@angular/core";` +
71+
`import { IgxGridComponent, DropPosition } from "igniteui-angular";` +
72+
`import { IgxColumnComponent } from "igniteui-angular";\r\n` +
73+
`@Component({` +
74+
` providers: [RemoteService]` +
75+
`})` +
76+
`export class GridSampleComponent {` +
77+
` @ViewChild("grid1", { read: IgxGridComponent }) public grid1: IgxGridComponent;` +
78+
` public move() {` +
79+
` const column: IgxColumnComponent = this.grid1.columns[0];` +
80+
` const column2: IgxColumnComponent = this.grid1.columns[1];` +
81+
` this.grid1.moveColumn(col1, col2, DropPosition.None);` +
82+
` }` +
83+
`}`;
84+
const expectedFileContent =
85+
`import { Component, Injectable, ViewChild } from "@angular/core";` +
86+
`import { IgxGridComponent, DropPosition } from "igniteui-angular";` +
87+
`import { IgxColumnComponent } from "igniteui-angular";\r\n` +
88+
`@Component({` +
89+
` providers: [RemoteService]` +
90+
`})` +
91+
`export class GridSampleComponent {` +
92+
` @ViewChild("grid1", { read: IgxGridComponent }) public grid1: IgxGridComponent;` +
93+
` public move() {` +
94+
` const column: IgxColumnComponent = this.grid1.columns[0];` +
95+
` const column2: IgxColumnComponent = this.grid1.columns[1];` +
96+
` this.grid1.moveColumn(col1, col2, DropPosition.AfterDropTarget);` +
97+
` }` +
98+
`}`;
99+
appTree.create(
100+
'/testSrc/appPrefix/component/drop.component.ts',
101+
origFileContent);
102+
103+
const tree = await schematicRunner.runSchematicAsync('migration-16', {}, appTree).toPromise();
104+
expect(tree.readContent('/testSrc/appPrefix/component/drop.component.ts'))
105+
.toEqual(expectedFileContent);
106+
});
107+
68108
});

projects/igniteui-angular/migrations/update-10_1_0/index.ts

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,32 @@ import {
33
SchematicContext,
44
Tree
55
} from '@angular-devkit/schematics';
6-
import { UpdateChanges, InputPropertyType, BoundPropertyObject } from '../common/UpdateChanges';
6+
import { UpdateChanges } from '../common/UpdateChanges';
7+
import { getIdentifierPositions } from '../common/tsUtils';
78

89
const version = '10.1.0';
910

10-
export default function (): Rule {
11+
export default function(): Rule {
1112
return (host: Tree, context: SchematicContext) => {
1213
context.logger.info(`Applying migration for Ignite UI for Angular to version ${version}`);
1314

1415
const update = new UpdateChanges(__dirname, host, context);
1516
update.applyChanges();
17+
18+
// replace DropPosition.None with DropPosition.AfterDropTarget
19+
for (const entryPath of update.tsFiles) {
20+
let content = host.read(entryPath).toString();
21+
if (content.indexOf('DropPosition.None') !== -1) {
22+
const pos = getIdentifierPositions(content, 'DropPosition');
23+
for (let i = pos.length; i--;) {
24+
const end = pos[i].end + 5;
25+
const isMatch = content.slice(pos[i].start, end) === 'DropPosition.None';
26+
if (isMatch) {
27+
content = content.slice(0, pos[i].start) + 'DropPosition.AfterDropTarget' + content.slice(end);
28+
}
29+
}
30+
host.overwrite(entryPath, content);
31+
}
32+
}
1633
};
1734
}

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

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,6 @@ import { showMessage } from '../core/deprecateDecorators';
155155

156156
const MINIMUM_COLUMN_WIDTH = 136;
157157
const FILTER_ROW_HEIGHT = 50;
158-
let warningShown = false;
159158
// By default row editing overlay outlet is inside grid body so that overlay is hidden below grid header when scrolling.
160159
// In cases when grid has 1-2 rows there isn't enough space in grid body and row editing overlay should be shown above header.
161160
// Default row editing overlay height is higher then row height that is why the case is valid also for row with 2 rows.
@@ -3837,19 +3836,12 @@ export class IgxGridBaseDirective extends DisplayDensityBase implements
38373836
* grid.moveColumn(compName, persDetails);
38383837
* ```
38393838
*/
3840-
public moveColumn(column: IgxColumnComponent, dropTarget: IgxColumnComponent, pos: DropPosition = DropPosition.None) {
3839+
public moveColumn(column: IgxColumnComponent, dropTarget: IgxColumnComponent, pos: DropPosition = DropPosition.AfterDropTarget) {
38413840

38423841
if (column === dropTarget) {
38433842
return;
38443843
}
38453844
let position = pos;
3846-
if (position === DropPosition.None) {
3847-
warningShown = showMessage(
3848-
'DropPosition.None is deprecated.' +
3849-
'Use DropPosition.AfterDropTarget instead.',
3850-
warningShown);
3851-
position = DropPosition.AfterDropTarget;
3852-
}
38533845
if ((column.level !== dropTarget.level) ||
38543846
(column.topLevelParent !== dropTarget.topLevelParent)) {
38553847
return;
@@ -3869,8 +3861,6 @@ export class IgxGridBaseDirective extends DisplayDensityBase implements
38693861
if (!this.isPinningToStart) {
38703862
if (pos === DropPosition.AfterDropTarget) {
38713863
position = DropPosition.AfterDropTarget;
3872-
} else {
3873-
position = DropPosition.None;
38743864
}
38753865
}
38763866
this._reorderColumns(column, dropTarget, position, this._pinnedColumns);
@@ -3893,8 +3883,6 @@ export class IgxGridBaseDirective extends DisplayDensityBase implements
38933883
position = DropPosition.BeforeDropTarget;
38943884
} else if (pos === DropPosition.AfterDropTarget && fi > ti) {
38953885
position = DropPosition.AfterDropTarget;
3896-
} else {
3897-
position = DropPosition.None;
38983886
}
38993887
}
39003888

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import {
2727
PinOnInitAndSelectionComponent
2828
} from '../../test-utils/grid-samples.spec';
2929
import { IgxGridComponent } from './grid.component';
30+
import { DropPosition } from '../moving/moving.service';
3031
// tslint:disable: no-use-before-declare
3132

3233
describe('IgxGrid - Column Pinning #grid', () => {
@@ -585,7 +586,7 @@ describe('IgxGrid - Column Pinning #grid', () => {
585586
it('should pin an unpinned column when drag/drop it among pinned columns.', () => {
586587

587588
// move 'ID' column to the pinned area
588-
grid.moveColumn(grid.getColumnByName('ID'), grid.getColumnByName('ContactName'));
589+
grid.moveColumn(grid.getColumnByName('ID'), grid.getColumnByName('ContactName'), DropPosition.BeforeDropTarget);
589590
fix.detectChanges();
590591

591592
// verify column is pinned at the correct place

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,12 @@ import { Injectable } from '@angular/core';
22
import { IgxColumnComponent } from '../columns/column.component';
33

44
/**
5-
* This enumeration is used to configure whether the pinning possition is set before or after
6-
* the target. DropPosition.None is acting like DropPosition.AfterDropTarget.
5+
* This enumeration is used to configure whether the drop position is set before or after
6+
* the target.
77
*/
88
export enum DropPosition {
99
BeforeDropTarget,
10-
AfterDropTarget,
11-
None
10+
AfterDropTarget
1211
}
1312

1413

0 commit comments

Comments
 (0)