UNPKG

@true-directive/grid

Version:

Angular Data Grid from Yopsilon.

126 lines 15.2 kB
import * as tslib_1 from "tslib"; /** * Copyright (c) 2018-2019 Aleksey Melnikov, True Directive Company. * @link https://truedirective.com/ * @license MIT */ import { Component, Output, EventEmitter, ViewChild, Renderer2 } from '@angular/core'; import { Keys } from '@true-directive/base'; import { DOMUtils } from '../common/dom-utils.class'; var EditorTextComponent = /** @class */ (function () { function EditorTextComponent(_renderer) { this._renderer = _renderer; this.ie = false; this.valueChanged = false; this.height = 0; this.commit = new EventEmitter(); this.change = new EventEmitter(); this.cancel = new EventEmitter(); } EditorTextComponent.prototype.init = function (value, valueChanged, height, ie, wasShown) { if (ie === void 0) { ie = false; } if (wasShown === void 0) { wasShown = false; } this.value = value; this.valueChanged = valueChanged; this.height = height; this.ie = ie; if (this.state.iOS) { DOMUtils.focusAndOpenKeyboard(this.input.nativeElement, 50); } }; // Останавливаем propagation, чтобы не влиять на grid EditorTextComponent.prototype.inputMouseDown = function (e) { e.stopPropagation(); }; EditorTextComponent.prototype.inputChange = function (e) { this.change.emit(e); }; EditorTextComponent.prototype.inputKeyDown = function (e) { if (e.defaultPrevented) { return; } if (e.keyCode === Keys.UP || e.keyCode === Keys.DOWN || e.keyCode === Keys.PAGE_UP || e.keyCode === Keys.PAGE_DOWN || e.keyCode === Keys.TAB) { // По идее просто их должен отработать грид return; } e.stopPropagation(); if (e.keyCode === Keys.ESCAPE) { this.cancel.emit(); return; } if (e.keyCode === Keys.ENTER) { this.commit.emit(this.value); return; } }; EditorTextComponent.prototype.ngAfterContentInit = function () { var _this = this; if (!this.valueChanged) { if (this.state.iOS) { // Мы уже позаботились об этом при инициализации } else { setTimeout(function () { _this.input.nativeElement.select(); _this.input.nativeElement.focus(); }); } } else { this.input.nativeElement.focus(); this._renderer.setProperty(this.input.nativeElement, 'value', this.value); this._renderer.setProperty(this.input.nativeElement, 'selectionStart', this.value.length); this._renderer.setProperty(this.input.nativeElement, 'selectionEnd', this.value.length); } }; // Если у нас есть информация о высоте строки - берем её и не // назначаем никакого класса EditorTextComponent.prototype.getClass = function () { if ((this.height !== null && this.height > 0)) { return 'true-grid__input-container'; } if (this.ie) { return 'true-grid-editor-ie'; } else { return 'true-grid-editor-100p'; } }; EditorTextComponent.prototype.getH = function () { if (this.height !== null && this.height > 0) { return this.height + 'px'; } return '100%'; }; tslib_1.__decorate([ ViewChild('input', { static: true }), tslib_1.__metadata("design:type", Object) ], EditorTextComponent.prototype, "input", void 0); tslib_1.__decorate([ Output("commit"), tslib_1.__metadata("design:type", EventEmitter) ], EditorTextComponent.prototype, "commit", void 0); tslib_1.__decorate([ Output("change"), tslib_1.__metadata("design:type", EventEmitter) ], EditorTextComponent.prototype, "change", void 0); tslib_1.__decorate([ Output("cancel"), tslib_1.__metadata("design:type", EventEmitter) ], EditorTextComponent.prototype, "cancel", void 0); EditorTextComponent = tslib_1.__decorate([ Component({ selector: 'true-editor-text', template: "<input #input class=\"true-grid-input\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"inputChange($event)\"\n [style.height]=\"getH()\"\n [ngClass]=\"getClass()\"\n (mousedown)=\"inputMouseDown($event)\"\n (keydown)=\"inputKeyDown($event)\" />", styles: ["\n :host {\n padding: 0;\n }\n "] }), tslib_1.__metadata("design:paramtypes", [Renderer2]) ], EditorTextComponent); return EditorTextComponent; }()); export { EditorTextComponent }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLXRleHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRydWUtZGlyZWN0aXZlL2dyaWQvIiwic291cmNlcyI6WyJzcmMvZWRpdG9ycy9lZGl0b3ItdGV4dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0VBSUU7QUFDRixPQUFPLEVBQUUsU0FBUyxFQUFTLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUNqRCxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBSzVDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQWlCckQ7SUE2R0UsNkJBQXNCLFNBQW9CO1FBQXBCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUEzR2xDLE9BQUUsR0FBWSxLQUFLLENBQUM7UUFDcEIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsV0FBTSxHQUFXLENBQUMsQ0FBQztRQVkzQixXQUFNLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHbEQsV0FBTSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRy9DLFdBQU0sR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQXVGRixDQUFDO0lBckYvQyxrQ0FBSSxHQUFKLFVBQUssS0FBVSxFQUFFLFlBQXFCLEVBQUUsTUFBYyxFQUFFLEVBQW1CLEVBQUUsUUFBeUI7UUFBOUMsbUJBQUEsRUFBQSxVQUFtQjtRQUFFLHlCQUFBLEVBQUEsZ0JBQXlCO1FBQ3BHLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtZ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RSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzNDLE9BQU8sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7U0FDM0I7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBOUZEO1FBREMsU0FBUyxDQUFDLE9BQU8sRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQzs7c0RBQ3hCO0lBR1g7UUFEQyxNQUFNLENBQUMsUUFBUSxDQUFDOzBDQUNULFlBQVk7dURBQThCO0lBR2xEO1FBREMsTUFBTSxDQUFDLFFBQVEsQ0FBQzswQ0FDVCxZQUFZO3VEQUEyQjtJQUcvQztRQURDLE1BQU0sQ0FBQyxRQUFRLENBQUM7MENBQ1QsWUFBWTt1REFBNEI7SUF0QnJDLG1CQUFtQjtRQWYvQixTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsa0JBQWtCO1lBQzVCLFFBQVEsRUFBRSx5VkFNMEM7cUJBQzNDLCtDQUlOO1NBQ0YsQ0FBQztpREE4RytCLFNBQVM7T0E3Ry9CLG1CQUFtQixDQThHL0I7SUFBRCwwQkFBQztDQUFBLEFBOUdELElBOEdDO1NBOUdZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAxOSBBbGVrc2V5IE1lbG5pa292LCBUcnVlIERpcmVjdGl2ZSBDb21wYW55LlxyXG4gKiBAbGluayBodHRwczovL3RydWVkaXJlY3RpdmUuY29tL1xyXG4gKiBAbGljZW5zZSBNSVRcclxuKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCxcclxuICAgICAgICAgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBDb2x1bW4gfSBmcm9tICdAdHJ1ZS1kaXJlY3RpdmUvYmFzZSc7XHJcbmltcG9ydCB7IEtleXMgfSBmcm9tICdAdHJ1ZS1kaXJlY3RpdmUvYmFzZSc7XHJcblxyXG5pbXBvcnQgeyBHcmlkU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vZ3JpZC1zdGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSUVkaXRvciB9IGZyb20gXCIuL2VkaXRvci5pbnRlcmZhY2VcIjtcclxuXHJcbmltcG9ydCB7IERPTVV0aWxzIH0gZnJvbSAnLi4vY29tbW9uL2RvbS11dGlscy5jbGFzcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RydWUtZWRpdG9yLXRleHQnLFxyXG4gIHRlbXBsYXRlOiBgPGlucHV0ICNpbnB1dCBjbGFzcz1cInRydWUtZ3JpZC1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJpbnB1dENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgW3N0eWxlLmhlaWdodF09XCJnZXRIKClcIlxyXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJnZXRDbGFzcygpXCJcclxuICAgICAgICAgICAgICAgICAgKG1vdXNlZG93bik9XCJpbnB1dE1vdXNlRG93bigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgKGtleWRvd24pPVwiaW5wdXRLZXlEb3duKCRldmVudClcIiAvPmAsXHJcbiAgc3R5bGVzOiBbYFxyXG4gICAgOmhvc3Qge1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgfVxyXG4gICAgYF1cclxuICB9KVxyXG5leHBvcnQgY2xhc3MgRWRpdG9yVGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIElFZGl0b3Ige1xyXG5cclxuICBwcml2YXRlIGllOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSB2YWx1ZUNoYW5nZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIGhlaWdodDogbnVtYmVyID0gMDtcclxuXHJcbiAgcHVibGljIHZhbHVlOiBzdHJpbmc7XHJcblxyXG4gIHN0YXRlOiBHcmlkU3RhdGVTZXJ2aWNlO1xyXG4gIGNvbHVtbjogQ29sdW1uO1xyXG4gIHJvdzogYW55O1xyXG5cclxuICBAVmlld0NoaWxkKCdpbnB1dCcsIHtzdGF0aWM6IHRydWV9KVxyXG4gIGlucHV0OiBhbnk7XHJcblxyXG4gIEBPdXRwdXQoXCJjb21taXRcIilcclxuICBjb21taXQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KFwiY2hhbmdlXCIpXHJcbiAgY2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dChcImNhbmNlbFwiKVxyXG4gIGNhbmNlbDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBpbml0KHZhbHVlOiBhbnksIHZhbHVlQ2hhbmdlZDogYm9vbGVhbiwgaGVpZ2h0OiBudW1iZXIsIGllOiBib29sZWFuID0gZmFsc2UsIHdhc1Nob3duOiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2VkID0gdmFsdWVDaGFuZ2VkO1xyXG4gICAgdGhpcy5oZWlnaHQgPSBoZWlnaHQ7XHJcbiAgICB0aGlzLmllID0gaWU7XHJcbiAgICBpZiAodGhpcy5zdGF0ZS5pT1MpIHtcclxuICAgICAgRE9NVXRpbHMuZm9jdXNBbmRPcGVuS2V5Ym9hcmQodGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCA1MCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyDQntGB0YLQsNC90LDQstC70LjQstCw0LXQvCBwcm9wYWdhdGlvbiwg0YfRgtC+0LHRiyDQvdC1INCy0LvQuNGP0YLRjCDQvdCwIGdyaWRcclxuICBpbnB1dE1vdXNlRG93bihlOiBhbnkpIHtcclxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBpbnB1dENoYW5nZShlOiBhbnkpIHtcclxuICAgIHRoaXMuY2hhbmdlLmVtaXQoZSk7XHJcbiAgfVxyXG5cclxuICBpbnB1dEtleURvd24oZTogYW55KSB7XHJcblxyXG4gICAgaWYgKGUuZGVmYXVsdFByZXZlbnRlZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGUua2V5Q29kZSA9PT0gS2V5cy5VUCB8fFxyXG4gICAgICAgIGUua2V5Q29kZSA9PT0gS2V5cy5ET1dOIHx8XHJcbiAgICAgICAgZS5rZXlDb2RlID09PSBLZXlzLlBBR0VfVVAgfHxcclxuICAgICAgICBlLmtleUNvZGUgPT09IEtleXMuUEFHRV9ET1dOIHx8XHJcbiAgICAgICAgZS5rZXlDb2RlID09PSBLZXlzLlRBQikge1xyXG4gICAgICAvLyDQn9C+INC40LTQtdC1INC/0YDQvtGB0YLQviDQuNGFINC00L7Qu9C20LXQvSDQvtGC0YDQsNCx0L7RgtCw0YLRjCDQs9GA0LjQtFxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICBpZiAoZS5rZXlDb2RlID09PSBLZXlzLkVTQ0FQRSkge1xyXG4gICAgICB0aGlzLmNhbmNlbC5lbWl0KCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZS5rZXlDb2RlID09PSBLZXlzLkVOVEVSKSB7XHJcbiAgICAgIHRoaXMuY29tbWl0LmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcclxuICAgIGlmKCF0aGlzLnZhbHVlQ2hhbmdlZCkge1xyXG4gICAgICBpZiAodGhpcy5zdGF0ZS5pT1MpIHtcclxuICAgICAgICAvLyDQnNGLINGD0LbQtSDQv9C+0LfQsNCx0L7RgtC40LvQuNGB0Ywg0L7QsSDRjdGC0L7QvCDQv9GA0Lgg0LjQvdC40YbQuNCw0LvQuNC30LDRhtC40LhcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3QoKVxyXG4gICAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsIHRoaXMudmFsdWUpO1xyXG4gICAgICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsICdzZWxlY3Rpb25TdGFydCcsIHRoaXMudmFsdWUubGVuZ3RoKTtcclxuICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCAnc2VsZWN0aW9uRW5kJywgdGhpcy52YWx1ZS5sZW5ndGgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8g0JXRgdC70Lgg0YMg0L3QsNGBINC10YHRgtGMINC40L3RhNC+0YDQvNCw0YbQuNGPINC+INCy0YvRgdC+0YLQtSDRgdGC0YDQvtC60LggLSDQsdC10YDQtdC8INC10ZEg0Lgg0L3QtVxyXG4gIC8vINC90LDQt9C90LDRh9Cw0LXQvCDQvdC40LrQsNC60L7Qs9C+INC60LvQsNGB0YHQsFxyXG4gIGdldENsYXNzKCkge1xyXG4gICAgaWYgKCh0aGlzLmhlaWdodCAhPT0gbnVsbCAmJiB0aGlzLmhlaWdodCA+IDApKSB7XHJcbiAgICAgIHJldHVybiAndHJ1ZS1ncmlkX19pbnB1dC1jb250YWluZXInO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaWUpIHtcclxuICAgICAgcmV0dXJuICd0cnVlLWdyaWQtZWRpdG9yLWllJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAndHJ1ZS1ncmlkLWVkaXRvci0xMDBwJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldEgoKSB7XHJcbiAgICBpZiAodGhpcy5oZWlnaHQgIT09IG51bGwgJiYgdGhpcy5oZWlnaHQgPiAwKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmhlaWdodCArICdweCc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJzEwMCUnO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9yZW5kZXJlcjogUmVuZGVyZXIyKSB7IH1cclxufVxyXG4iXX0=