@catull/igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
107 lines • 11.8 kB
JavaScript
import { __decorate, __metadata } from "tslib";
import { Directive, ElementRef, HostListener } from '@angular/core';
import { GridBaseAPIService } from './api.service';
/** @hidden */
let IgxRowEditTemplateDirective = class IgxRowEditTemplateDirective {
};
IgxRowEditTemplateDirective = __decorate([
Directive({
selector: '[igxRowEdit]'
})
], IgxRowEditTemplateDirective);
export { IgxRowEditTemplateDirective };
/** @hidden */
let IgxRowEditTextDirective = class IgxRowEditTextDirective {
};
IgxRowEditTextDirective = __decorate([
Directive({
selector: '[igxRowEditText]'
})
], IgxRowEditTextDirective);
export { IgxRowEditTextDirective };
/** @hidden */
let IgxRowEditActionsDirective = class IgxRowEditActionsDirective {
};
IgxRowEditActionsDirective = __decorate([
Directive({
selector: '[igxRowEditActions]'
})
], IgxRowEditActionsDirective);
export { IgxRowEditActionsDirective };
// TODO: Refactor circular ref, deps and logic
/** @hidden */
let IgxRowEditTabStopDirective = class IgxRowEditTabStopDirective {
constructor(api, element) {
this.api = api;
this.element = element;
/**
* Sets the cell in edit mode and focus its native element
* @param cellIndex index of the cell to activate
*/
this.activateCell = () => {
const cell = this.grid.rowInEditMode.cells.find(e => e.visibleColumnIndex === this.currentCellIndex);
cell.nativeElement.focus();
cell.setEditMode(true);
this.currentCellIndex = -1;
};
}
get grid() {
return this.api.grid;
}
handleTab(event) {
event.stopPropagation();
if ((this.grid.rowEditTabs.last === this && !event.shiftKey) ||
(this.grid.rowEditTabs.first === this && event.shiftKey)) {
this.move(event);
}
}
handleEscape(event) {
this.grid.endEdit(false, event);
const activeNode = this.grid.selectionService.activeElement;
// on right click activeNode is deleted, so we may have no one
if (activeNode) {
const cell = this.grid.navigation.getCellElementByVisibleIndex(activeNode.row, activeNode.layout ? activeNode.layout.columnVisibleIndex : activeNode.column);
cell.focus();
}
}
/**
* Moves focus to first/last editable cell in the editable row and put the cell in edit mode.
* If cell is out of view first scrolls to the cell
* @param event keyboard event containing information about whether SHIFT key was pressed
*/
move(event) {
event.preventDefault();
this.currentCellIndex = event.shiftKey ? this.grid.lastEditableColumnIndex : this.grid.firstEditableColumnIndex;
if (!this.grid.navigation.isColumnFullyVisible(this.currentCellIndex)) {
this.grid.navigation.performHorizontalScrollToCell(this.grid.rowInEditMode.index, this.currentCellIndex, false, this.activateCell);
}
else {
this.activateCell();
}
}
};
IgxRowEditTabStopDirective.ctorParameters = () => [
{ type: GridBaseAPIService },
{ type: ElementRef }
];
__decorate([
HostListener('keydown.Tab', [`$event`]),
HostListener('keydown.Shift.Tab', [`$event`]),
__metadata("design:type", Function),
__metadata("design:paramtypes", [KeyboardEvent]),
__metadata("design:returntype", void 0)
], IgxRowEditTabStopDirective.prototype, "handleTab", null);
__decorate([
HostListener('keydown.Escape', [`$event`]),
__metadata("design:type", Function),
__metadata("design:paramtypes", [KeyboardEvent]),
__metadata("design:returntype", void 0)
], IgxRowEditTabStopDirective.prototype, "handleEscape", null);
IgxRowEditTabStopDirective = __decorate([
Directive({
selector: `[igxRowEditTabStop]`
}),
__metadata("design:paramtypes", [GridBaseAPIService, ElementRef])
], IgxRowEditTabStopDirective);
export { IgxRowEditTabStopDirective };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5yb3dFZGl0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2lnbml0ZXVpLWFuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvZ3JpZHMvZ3JpZC5yb3dFZGl0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxjQUFjO0FBSWQsSUFBYSwyQkFBMkIsR0FBeEMsTUFBYSwyQkFBMkI7Q0FBSSxDQUFBO0FBQS9CLDJCQUEyQjtJQUh2QyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsY0FBYztLQUMzQixDQUFDO0dBQ1csMkJBQTJCLENBQUk7U0FBL0IsMkJBQTJCO0FBRXhDLGNBQWM7QUFJZCxJQUFhLHVCQUF1QixHQUFwQyxNQUFhLHVCQUF1QjtDQUFJLENBQUE7QUFBM0IsdUJBQXVCO0lBSG5DLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSxrQkFBa0I7S0FDL0IsQ0FBQztHQUNXLHVCQUF1QixDQUFJO1NBQTNCLHVCQUF1QjtBQUVwQyxjQUFjO0FBSWQsSUFBYSwwQkFBMEIsR0FBdkMsTUFBYSwwQkFBMEI7Q0FBSSxDQUFBO0FBQTlCLDBCQUEwQjtJQUh0QyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUscUJBQXFCO0tBQ2xDLENBQUM7R0FDVywwQkFBMEIsQ0FBSTtTQUE5QiwwQkFBMEI7QUFHdkMsOENBQThDO0FBQzlDLGNBQWM7QUFJZCxJQUFhLDBCQUEwQixHQUF2QyxNQUFhLDBCQUEwQjtJQUluQyxZQUFtQixHQUE0QixFQUFTLE9BQW1CO1FBQXhELFFBQUcsR0FBSCxHQUFHLENBQXlCO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQThDM0U7OztXQUdHO1FBQ0ssaUJBQVksR0FBRyxHQUFTLEVBQUU7WUFDOUIsTUFBTSxJQUFJ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cUI7S0FDbEMsQ0FBQztxQ0FLMEIsa0JBQWtCLEVBQXVCLFVBQVU7R0FKbEUsMEJBQTBCLENBNER0QztTQTVEWSwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR3JpZEJhc2VBUElTZXJ2aWNlIH0gZnJvbSAnLi9hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBHcmlkVHlwZSB9IGZyb20gJy4vY29tbW9uL2dyaWQuaW50ZXJmYWNlJztcblxuLyoqIEBoaWRkZW4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2lneFJvd0VkaXRdJ1xufSlcbmV4cG9ydCBjbGFzcyBJZ3hSb3dFZGl0VGVtcGxhdGVEaXJlY3RpdmUgeyB9XG5cbi8qKiBAaGlkZGVuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hSb3dFZGl0VGV4dF0nXG59KVxuZXhwb3J0IGNsYXNzIElneFJvd0VkaXRUZXh0RGlyZWN0aXZlIHsgfVxuXG4vKiogQGhpZGRlbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4Um93RWRpdEFjdGlvbnNdJ1xufSlcbmV4cG9ydCBjbGFzcyBJZ3hSb3dFZGl0QWN0aW9uc0RpcmVjdGl2ZSB7IH1cblxuXG4vLyBUT0RPOiBSZWZhY3RvciBjaXJjdWxhciByZWYsIGRlcHMgYW5kIGxvZ2ljXG4vKiogQGhpZGRlbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6IGBbaWd4Um93RWRpdFRhYlN0b3BdYFxufSlcbmV4cG9ydCBjbGFzcyBJZ3hSb3dFZGl0VGFiU3RvcERpcmVjdGl2ZSB7XG4gICAgcHJpdmF0ZSBjdXJyZW50Q2VsbEluZGV4OiBudW1iZXI7XG5cblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBhcGk6IEdyaWRCYXNlQVBJU2VydmljZTxhbnk+LCBwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZikge31cblxuICAgIGdldCBncmlkKCk6IEdyaWRUeXBlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmdyaWQ7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5UYWInLCBbYCRldmVudGBdKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uU2hpZnQuVGFiJywgW2AkZXZlbnRgXSlcbiAgICBwdWJsaWMgaGFuZGxlVGFiKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBpZiAoKHRoaXMuZ3JpZC5yb3dFZGl0VGFicy5sYXN0ID09PSB0aGlzICYmICFldmVudC5zaGlmdEtleSkgfHxcbiAgICAgICAgICAgICh0aGlzLmdyaWQucm93RWRpdFRhYnMuZmlyc3QgPT09IHRoaXMgJiYgZXZlbnQuc2hpZnRLZXkpXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5tb3ZlKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uRXNjYXBlJywgW2AkZXZlbnRgXSlcbiAgICBwdWJsaWMgaGFuZGxlRXNjYXBlKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ3JpZC5lbmRFZGl0KGZhbHNlLCBldmVudCk7XG4gICAgICAgIGNvbnN0IGFjdGl2ZU5vZGUgPSB0aGlzLmdyaWQuc2VsZWN0aW9uU2VydmljZS5hY3RpdmVFbGVtZW50O1xuICAgICAgICAvLyAgb24gcmlnaHQgY2xpY2sgYWN0aXZlTm9kZSBpcyBkZWxldGVkLCBzbyB3ZSBtYXkgaGF2ZSBubyBvbmVcbiAgICAgICAgaWYgKGFjdGl2ZU5vZGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGNlbGwgPSB0aGlzLmdyaWQubmF2aWdhdGlvbi5nZXRDZWxsRWxlbWVudEJ5VmlzaWJsZUluZGV4KFxuICAgICAgICAgICAgICAgIGFjdGl2ZU5vZGUucm93LFxuICAgICAgICAgICAgICAgIGFjdGl2ZU5vZGUubGF5b3V0ID8gYWN0aXZlTm9kZS5sYXlvdXQuY29sdW1uVmlzaWJsZUluZGV4IDogYWN0aXZlTm9kZS5jb2x1bW4pO1xuICAgICAgICAgICAgY2VsbC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTW92ZXMgZm9jdXMgdG8gZmlyc3QvbGFzdCBlZGl0YWJsZSBjZWxsIGluIHRoZSBlZGl0YWJsZSByb3cgYW5kIHB1dCB0aGUgY2VsbCBpbiBlZGl0IG1vZGUuXG4gICAgICogSWYgY2VsbCBpcyBvdXQgb2YgdmlldyBmaXJzdCBzY3JvbGxzIHRvIHRoZSBjZWxsXG4gICAgICogQHBhcmFtIGV2ZW50IGtleWJvYXJkIGV2ZW50IGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gYWJvdXQgd2hldGhlciBTSElGVCBrZXkgd2FzIHByZXNzZWRcbiAgICAgKi9cbiAgICBwcml2YXRlIG1vdmUoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5jdXJyZW50Q2VsbEluZGV4ID0gZXZlbnQuc2hpZnRLZXkgPyB0aGlzLmdyaWQubGFzdEVkaXRhYmxlQ29sdW1uSW5kZXggOiB0aGlzLmdyaWQuZmlyc3RFZGl0YWJsZUNvbHVtbkluZGV4O1xuICAgICAgICBpZiAoIXRoaXMuZ3JpZC5uYXZpZ2F0aW9uLmlzQ29sdW1uRnVsbHlWaXNpYmxlKHRoaXMuY3VycmVudENlbGxJbmRleCkpIHtcbiAgICAgICAgICAgIHRoaXMuZ3JpZC5uYXZpZ2F0aW9uLnBlcmZvcm1Ib3Jpem9udGFsU2Nyb2xsVG9DZWxsKFxuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZC5yb3dJbkVkaXRNb2RlLmluZGV4LCB0aGlzLmN1cnJlbnRDZWxsSW5kZXgsIGZhbHNlLCB0aGlzLmFjdGl2YXRlQ2VsbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2YXRlQ2VsbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgY2VsbCBpbiBlZGl0IG1vZGUgYW5kIGZvY3VzIGl0cyBuYXRpdmUgZWxlbWVudFxuICAgICAqIEBwYXJhbSBjZWxsSW5kZXggaW5kZXggb2YgdGhlIGNlbGwgdG8gYWN0aXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGFjdGl2YXRlQ2VsbCA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgY29uc3QgY2VsbCA9IHRoaXMuZ3JpZC5yb3dJbkVkaXRNb2RlLmNlbGxzLmZpbmQoZSA9PiBlLnZpc2libGVDb2x1bW5JbmRleCA9PT0gdGhpcy5jdXJyZW50Q2VsbEluZGV4KTtcbiAgICAgICAgY2VsbC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIGNlbGwuc2V0RWRpdE1vZGUodHJ1ZSk7XG4gICAgICAgIHRoaXMuY3VycmVudENlbGxJbmRleCA9IC0xO1xuICAgIH1cbn1cbiJdfQ==