Skip to content

Commit 9ac2511

Browse files
committed
chore(*): when rowEditTabs are null move to first/last editable cell
1 parent 1493541 commit 9ac2511

File tree

1 file changed

+21
-10
lines changed

1 file changed

+21
-10
lines changed

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

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -167,23 +167,34 @@ export class IgxGridNavigationService {
167167
}
168168

169169
public movePreviousEditable(rowIndex: number, currentColumnVisibleIndex: number) {
170-
const prevEditableColumnIndex = this.findNextEditable(MoveDirection.LEFT, currentColumnVisibleIndex - 1);
170+
let prevEditableColumnIndex = this.findNextEditable(MoveDirection.LEFT, currentColumnVisibleIndex - 1);
171171
if (prevEditableColumnIndex === -1) {
172-
// TODO: make gridAPI visible for internal use and remove cast to any
173-
(this.grid as any).gridAPI.submit_value();
174-
if (this.grid.rowEditTabs.length) { this.grid.rowEditTabs.last.element.nativeElement.focus(); }
175-
return;
172+
if (this.grid.rowEditTabs.length) {
173+
// TODO: make gridAPI visible for internal use and remove cast to any
174+
(this.grid as any).gridAPI.submit_value();
175+
this.grid.rowEditTabs.last.element.nativeElement.focus();
176+
return;
177+
} else {
178+
// In case when row edit template is empty select last editable cell
179+
prevEditableColumnIndex = this.grid.lastEditableColumnIndex;
180+
}
181+
176182
}
177183
this.focusEditableTarget(rowIndex, prevEditableColumnIndex);
178184
}
179185

180186
public moveNextEditable(rowIndex: number, currentColumnVisibleIndex: number) {
181-
const nextEditableColumnIndex = this.findNextEditable(MoveDirection.RIGHT, currentColumnVisibleIndex + 1);
187+
let nextEditableColumnIndex = this.findNextEditable(MoveDirection.RIGHT, currentColumnVisibleIndex + 1);
182188
if (nextEditableColumnIndex === -1) {
183-
// TODO: make gridAPI visible for internal use and remove cast to any
184-
(this.grid as any).gridAPI.submit_value();
185-
if ( this.grid.rowEditTabs.length) { this.grid.rowEditTabs.first.element.nativeElement.focus(); }
186-
return;
189+
if ( this.grid.rowEditTabs.length) {
190+
// TODO: make gridAPI visible for internal use and remove cast to any
191+
(this.grid as any).gridAPI.submit_value();
192+
this.grid.rowEditTabs.first.element.nativeElement.focus();
193+
return;
194+
} else {
195+
// In case when row edit template is empty select first editable cell
196+
nextEditableColumnIndex = this.grid.firstEditableColumnIndex;
197+
}
187198
}
188199
this.focusEditableTarget(rowIndex, nextEditableColumnIndex);
189200
}

0 commit comments

Comments
 (0)