igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
144 lines • 12.2 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Directive, ElementRef, forwardRef, HostListener, Inject } from '@angular/core';
import { IgxGridBaseComponent } from './grid-base.component';
import { first, tap } from 'rxjs/operators';
import { IgxGridNavigationService } from './grid-navigation.service';
/**
* @hidden
*/
export class IgxRowEditTemplateDirective {
}
IgxRowEditTemplateDirective.decorators = [
{ type: Directive, args: [{
selector: '[igxRowEdit]'
},] }
];
/**
* @hidden
*/
export class IgxRowEditTextDirective {
}
IgxRowEditTextDirective.decorators = [
{ type: Directive, args: [{
selector: '[igxRowEditText]'
},] }
];
/**
* @hidden
*/
export class IgxRowEditActionsDirective {
}
IgxRowEditActionsDirective.decorators = [
{ type: Directive, args: [{
selector: '[igxRowEditActions]'
},] }
];
// TODO: Refactor circular ref, deps and logic
/**
* @hidden
*/
export class IgxRowEditTabStopDirective {
/**
* @param {?} grid
* @param {?} element
* @param {?} navigationService
*/
constructor(grid, element, navigationService) {
this.element = element;
this.grid = grid;
this.navigationService = navigationService;
this.navigationService.grid = grid;
}
/**
* @private
* @return {?}
*/
get allTabs() {
return this.grid.rowEditTabs;
}
/**
* @param {?} event
* @return {?}
*/
handleTab(event) {
event.stopPropagation();
if (this.allTabs.length > 1) {
if ((this.allTabs.last === this && !event.shiftKey) ||
(this.allTabs.first === this && event.shiftKey)) {
this.move(event);
}
}
else {
this.move(event);
}
}
/**
* @private
* @param {?} rowIndex
* @param {?} cellIndex
* @return {?}
*/
focusNextCell(rowIndex, cellIndex) {
/** @type {?} */
const grid = (/** @type {?} */ (this.grid));
grid.parentVirtDir.onChunkLoad.pipe(first(), tap(() => grid.markForCheck())).subscribe(() => {
grid.rowInEditMode.cells.find(c => c.visibleColumnIndex === cellIndex).element.nativeElement.focus();
});
}
/**
* @private
* @param {?} event
* @return {?}
*/
move(event) {
event.preventDefault();
/** @type {?} */
const horizontalScroll = this.grid.parentVirtDir.getHorizontalScroll();
/** @type {?} */
const targetIndex = event.shiftKey ? this.grid.lastEditableColumnIndex : this.grid.firstEditableColumnIndex;
/** @type {?} */
const targetCell = this.grid.rowInEditMode.cells.find(e => e.visibleColumnIndex === targetIndex);
if (!targetCell ||
!this.navigationService.isColumnFullyVisible(targetIndex)
|| !this.navigationService.isColumnLeftFullyVisible(targetIndex)) {
this.focusNextCell(this.grid.rowInEditMode.index, targetIndex);
horizontalScroll.scrollLeft =
this.grid.rowInEditMode.virtDirRow.getColumnScrollLeft(this.navigationService.getColumnUnpinnedIndex(targetIndex));
}
else {
targetCell.nativeElement.focus();
}
}
}
IgxRowEditTabStopDirective.decorators = [
{ type: Directive, args: [{
selector: `[igxRowEditTabStop]`
},] }
];
/** @nocollapse */
IgxRowEditTabStopDirective.ctorParameters = () => [
{ type: undefined, decorators: [{ type: Inject, args: [forwardRef(() => IgxGridBaseComponent),] }] },
{ type: ElementRef },
{ type: undefined, decorators: [{ type: Inject, args: [forwardRef(() => IgxGridNavigationService),] }] }
];
IgxRowEditTabStopDirective.propDecorators = {
handleTab: [{ type: HostListener, args: ['keydown.Tab', [`$event`],] }, { type: HostListener, args: ['keydown.Shift.Tab', [`$event`],] }]
};
if (false) {
/**
* @type {?}
* @private
*/
IgxRowEditTabStopDirective.prototype.grid;
/**
* @type {?}
* @private
*/
IgxRowEditTabStopDirective.prototype.navigationService;
/** @type {?} */
IgxRowEditTabStopDirective.prototype.element;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5yb3dFZGl0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2lnbml0ZXVpLWFuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvZ3JpZHMvZ3JpZC5yb3dFZGl0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7OztBQU1yRSxNQUFNLE9BQU8sMkJBQTJCOzs7WUFIdkMsU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxjQUFjO2FBQzNCOzs7OztBQU9ELE1BQU0sT0FBTyx1QkFBdUI7OztZQUhuQyxTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGtCQUFrQjthQUMvQjs7Ozs7QUFPRCxNQUFNLE9BQU8sMEJBQTBCOzs7WUFIdEMsU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxxQkFBcUI7YUFDbEM7Ozs7OztBQVNELE1BQU0sT0FBTywwQkFBMEI7Ozs7OztJQVFuQyxZQUNvRCxJQUFJLEVBQzdDLE9BQW1CLEVBQzBCLGlCQUFpQjtRQUQ5RCxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBRXRCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUMzQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUN2QyxDQUFDOzs7OztJQWRMLElBQVksT0FBTztRQUNmLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7SUFD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Q0FBQzs7Ozs7OztJQVo3QywwQ0FBbUM7Ozs7O0lBQ25DLHVEQUFvRDs7SUFJaEQsNkNBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJZ3hHcmlkQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vZ3JpZC1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBmaXJzdCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSWd4R3JpZE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9ncmlkLW5hdmlnYXRpb24uc2VydmljZSc7XG5cbi8qKiBAaGlkZGVuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hSb3dFZGl0XSdcbn0pXG5leHBvcnQgY2xhc3MgSWd4Um93RWRpdFRlbXBsYXRlRGlyZWN0aXZlIHsgfVxuXG4vKiogQGhpZGRlbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4Um93RWRpdFRleHRdJ1xufSlcbmV4cG9ydCBjbGFzcyBJZ3hSb3dFZGl0VGV4dERpcmVjdGl2ZSB7IH1cblxuLyoqIEBoaWRkZW4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2lneFJvd0VkaXRBY3Rpb25zXSdcbn0pXG5leHBvcnQgY2xhc3MgSWd4Um93RWRpdEFjdGlvbnNEaXJlY3RpdmUgeyB9XG5cblxuLy8gVE9ETzogUmVmYWN0b3IgY2lyY3VsYXIgcmVmLCBkZXBzIGFuZCBsb2dpY1xuLyoqIEBoaWRkZW4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiBgW2lneFJvd0VkaXRUYWJTdG9wXWBcbn0pXG5leHBvcnQgY2xhc3MgSWd4Um93RWRpdFRhYlN0b3BEaXJlY3RpdmUge1xuICAgIHByaXZhdGUgZ2V0IGFsbFRhYnMoKTogUXVlcnlMaXN0PElneFJvd0VkaXRUYWJTdG9wRGlyZWN0aXZlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWQucm93RWRpdFRhYnM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBncmlkOiBJZ3hHcmlkQmFzZUNvbXBvbmVudDtcbiAgICBwcml2YXRlIG5hdmlnYXRpb25TZXJ2aWNlOiBJZ3hHcmlkTmF2aWdhdGlvblNlcnZpY2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IElneEdyaWRCYXNlQ29tcG9uZW50KSkgZ3JpZCxcbiAgICAgICAgcHVibGljIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBJZ3hHcmlkTmF2aWdhdGlvblNlcnZpY2UpKSBuYXZpZ2F0aW9uU2VydmljZSkge1xuICAgICAgICAgICAgdGhpcy5ncmlkID0gZ3JpZDtcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvblNlcnZpY2UgPSBuYXZpZ2F0aW9uU2VydmljZTtcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvblNlcnZpY2UuZ3JpZCA9IGdyaWQ7XG4gICAgICAgIH1cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLlRhYicsIFtgJGV2ZW50YF0pXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5TaGlmdC5UYWInLCBbYCRldmVudGBdKVxuICAgIHB1YmxpYyBoYW5kbGVUYWIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGlmICh0aGlzLmFsbFRhYnMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgaWYgKCh0aGlzLmFsbFRhYnMubGFzdCA9PT0gIHRoaXMgJiYgIWV2ZW50LnNoaWZ0S2V5KSB8fFxuICAgICAgICAgICAgICAgICh0aGlzLmFsbFRhYnMuZmlyc3QgPT09ICB0aGlzICYmIGV2ZW50LnNoaWZ0S2V5KVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb3ZlKGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubW92ZShldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJpdmF0ZSBmb2N1c05leHRDZWxsKHJvd0luZGV4LCBjZWxsSW5kZXgpIHtcbiAgICAgICAgY29uc3QgZ3JpZCA9IHRoaXMuZ3JpZCBhcyBhbnk7XG4gICAgICAgIGdyaWQucGFyZW50VmlydERpci5vbkNodW5rTG9hZC5waXBlKGZpcnN0KCksIHRhcCgoKSA9PiBncmlkLm1hcmtGb3JDaGVjaygpKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGdyaWQucm93SW5FZGl0TW9kZS5jZWxscy5maW5kKGMgPT4gYy52aXNpYmxlQ29sdW1uSW5kZXggPT09IGNlbGxJbmRleCkuZWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBwcml2YXRlIG1vdmUoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgY29uc3QgaG9yaXpvbnRhbFNjcm9sbCA9IHRoaXMuZ3JpZC5wYXJlbnRWaXJ0RGlyLmdldEhvcml6b250YWxTY3JvbGwoKTtcbiAgICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSBldmVudC5zaGlmdEtleSA/IHRoaXMuZ3JpZC5sYXN0RWRpdGFibGVDb2x1bW5JbmRleCA6IHRoaXMuZ3JpZC5maXJzdEVkaXRhYmxlQ29sdW1uSW5kZXg7XG4gICAgICAgIGNvbnN0IHRhcmdldENlbGwgPSB0aGlzLmdyaWQucm93SW5FZGl0TW9kZS5jZWxscy5maW5kKGUgPT4gZS52aXNpYmxlQ29sdW1uSW5kZXggPT09IHRhcmdldEluZGV4KTtcbiAgICAgICAgaWYgKCF0YXJnZXRDZWxsIHx8XG4gICAgICAgICAgICAhdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5pc0NvbHVtbkZ1bGx5VmlzaWJsZSh0YXJnZXRJbmRleClcbiAgICAgICAgICAgIHx8ICF0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLmlzQ29sdW1uTGVmdEZ1bGx5VmlzaWJsZSh0YXJnZXRJbmRleCkpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNOZXh0Q2VsbCh0aGlzLmdyaWQucm93SW5FZGl0TW9kZS5pbmRleCwgdGFyZ2V0SW5kZXgpO1xuICAgICAgICAgICAgaG9yaXpvbnRhbFNjcm9sbC5zY3JvbGxMZWZ0ID1cbiAgICAgICAgICAgIHRoaXMuZ3JpZC5yb3dJbkVkaXRNb2RlLnZpcnREaXJSb3cuZ2V0Q29sdW1uU2Nyb2xsTGVmdCh0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLmdldENvbHVtblVucGlubmVkSW5kZXgodGFyZ2V0SW5kZXgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRhcmdldENlbGwubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19