UNPKG

igniteui-angular

Version:

Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps

144 lines 12.2 kB
/** * @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