UNPKG

@true-directive/grid

Version:

Angular Data Grid from Yopsilon.

104 lines 10.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 } from '@angular/core'; import { Keys } from '@true-directive/base'; let EditorSelectComponent = class EditorSelectComponent { constructor() { this.ie = false; this.value = ""; this.height = 0; this.commit = new EventEmitter(); this.cancel = new EventEmitter(); this.change = new EventEmitter(); } init(value, valueChanged, height, ie = false, wasShown = false) { this.ie = ie; this.value = value; this.height = height; } setValueAndFocus(value, selectAll = false) { this.input.nativeElement.focus(); } inputMouseDown(e) { e.stopPropagation(); } processKey(keyEvent) { // } inputKeyDown(e) { if (e.keyCode === Keys.TAB) { return; } e.stopPropagation(); if (e.keyCode === Keys.ESCAPE) { this.cancel.emit(false); return; } if (e.keyCode === Keys.ENTER) { this.commit.emit(this.value); return; } } inputBlur(e) { this.cancel.emit(true); } // Если у нас есть информация о высоте строки - берем её и не // назначаем никакого класса getClass() { if ((this.height !== null && this.height > 0)) return ''; if (this.ie) return 'true-grid-editor-ie'; else return 'true-grid-editor-100p'; } getH() { 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) ], EditorSelectComponent.prototype, "input", void 0); tslib_1.__decorate([ Output("commit"), tslib_1.__metadata("design:type", EventEmitter) ], EditorSelectComponent.prototype, "commit", void 0); tslib_1.__decorate([ Output("cancel"), tslib_1.__metadata("design:type", EventEmitter) ], EditorSelectComponent.prototype, "cancel", void 0); tslib_1.__decorate([ Output("change"), tslib_1.__metadata("design:type", EventEmitter) ], EditorSelectComponent.prototype, "change", void 0); EditorSelectComponent = tslib_1.__decorate([ Component({ selector: 'true-editor-select', template: `<select #input class="true-grid-input" [(ngModel)]="value" [style.height]="getH()" [ngClass]="getClass()" (mousedown)="inputMouseDown($event)" (keydown)="inputKeyDown($event)" (blur)="inputBlur($event)"> <option value="CELL">CELL</option> <option value="ROW">ROW</option> </select> `, styles: [` :host { padding: 0; } `] }) ], EditorSelectComponent); export { EditorSelectComponent }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdHJ1ZS1kaXJlY3RpdmUvZ3JpZC8iLCJzb3VyY2VzIjpbInNyYy9lZGl0b3JzL2VkaXRvci1zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7OztFQUlFO0FBQ0YsT0FBTyxFQUFFLFNBQVMsRUFBUyxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUlsRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFzQjVDLElBQWEscUJBQXFCLEdBQWxDLE1BQWEscUJBQXFCO0lBcEJsQztRQXNCRSxPQUFFLEdBQVksS0FBSyxDQUFDO1FBQ3BCLFVBQUssR0FBVyxFQUFFLENBQUM7UUFDbkIsV0FBTSxHQUFXLENBQUMsQ0FBQztRQVVuQixXQUFNLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHL0MsV0FBTSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRy9DLFdBQU0sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQTJEakQsQ0FBQztJQXpEQyxJQUFJLENBQUMsS0FBVSxFQUFFLFlBQXFCLEVBQUUsTUFBYyxFQUFFLEtBQWMsS0FBSyxFQUFFLFdBQW9CLEtBQUs7UUFDcEcsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBVSxFQUFFLFlBQXFCLEtBQUs7UUFDckQsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELGNBQWMsQ0FBQyxDQUFNO1FBQ25CLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsVUFBVSxDQUFDLFFBQWE7UUFDdEIsRUFBRTtJQUNKLENBQUM7SUFFRCxZQUFZLENBQUMsQ0FBTTtRQUVqQixJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUMxQixPQUFPO1NBQ1I7UUFFRCxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFcEIsSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEIsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdCLE9BQU87U0FDUjtJQUNILENBQUM7SUFFRCxTQUFTLENBQUMsQ0FBTTtRQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCw2REFBNkQ7SUFDN0QsNEJBQTRCO0lBQzVCLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDM0MsT0FBTyxFQUFFLENBQUM7UUFDWixJQUFJLElBQUksQ0FBQyxFQUFFO1lBQ1QsT0FBTyxxQkFBcUIsQ0FBQzs7WUFFN0IsT0FBTyx1QkFBdUIsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQ3pDLE9BQU8sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDNUIsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGLENBQUE7QUF6RXFDO0lBQW5DLFNBQVMsQ0FBQyxPQUFPLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDLENBQUM7O29EQUFZO0FBUS9DO0lBREMsTUFBTSxDQUFDLFFBQVEsQ0FBQztzQ0FDVCxZQUFZO3FEQUEyQjtBQUcvQztJQURDLE1BQU0sQ0FBQyxRQUFRLENBQUM7c0NBQ1QsWUFBWTtxREFBMkI7QUFHL0M7SUFEQyxNQUFNLENBQUMsUUFBUSxDQUFDO3NDQUNULFlBQVk7cURBQTJCO0FBcEJwQyxxQkFBcUI7SUFwQmpDLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxvQkFBb0I7UUFDOUIsUUFBUSxFQUFFOzs7Ozs7Ozs7OzttQkFXTztpQkFDUjs7OztLQUlOO0tBQ0YsQ0FBQztHQUNTLHFCQUFxQixDQStFakM7U0EvRVkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDE5IEFsZWtzZXkgTWVsbmlrb3YsIFRydWUgRGlyZWN0aXZlIENvbXBhbnkuXHJcbiAqIEBsaW5rIGh0dHBzOi8vdHJ1ZWRpcmVjdGl2ZS5jb20vXHJcbiAqIEBsaWNlbnNlIE1JVFxyXG4qL1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBDb2x1bW4gfSBmcm9tICdAdHJ1ZS1kaXJlY3RpdmUvYmFzZSc7XHJcbmltcG9ydCB7IEdyaWRTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9ncmlkLXN0YXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBLZXlzIH0gZnJvbSAnQHRydWUtZGlyZWN0aXZlL2Jhc2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0cnVlLWVkaXRvci1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlOiBgPHNlbGVjdCAjaW5wdXRcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0cnVlLWdyaWQtaW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgW3N0eWxlLmhlaWdodF09XCJnZXRIKClcIlxyXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJnZXRDbGFzcygpXCJcclxuICAgICAgICAgICAgICAgICAgKG1vdXNlZG93bik9XCJpbnB1dE1vdXNlRG93bigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgKGtleWRvd24pPVwiaW5wdXRLZXlEb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAoYmx1cik9XCJpbnB1dEJsdXIoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIkNFTExcIj5DRUxMPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiUk9XXCI+Uk9XPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgIGAsXHJcbiAgc3R5bGVzOiBbYFxyXG4gICAgOmhvc3Qge1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgfVxyXG4gICAgYF1cclxuICB9KVxyXG5leHBvcnQgY2xhc3MgRWRpdG9yU2VsZWN0Q29tcG9uZW50ICB7XHJcblxyXG4gIGllOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdmFsdWU6IHN0cmluZyA9IFwiXCI7XHJcbiAgaGVpZ2h0OiBudW1iZXIgPSAwO1xyXG5cclxuICBAVmlld0NoaWxkKCdpbnB1dCcsIHtzdGF0aWM6IHRydWV9KSBpbnB1dDogYW55O1xyXG5cclxuICAvLyBJbXBsZW1lbnRhdGlvbiBvZiBJRWRpdG9yXHJcbiAgc3RhdGU6IEdyaWRTdGF0ZVNlcnZpY2U7XHJcbiAgY29sdW1uOiBDb2x1bW47XHJcbiAgcm93OiBhbnk7XHJcblxyXG4gIEBPdXRwdXQoXCJjb21taXRcIilcclxuICBjb21taXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KFwiY2FuY2VsXCIpXHJcbiAgY2FuY2VsOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dChcImNoYW5nZVwiKVxyXG4gIGNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGluaXQodmFsdWU6IGFueSwgdmFsdWVDaGFuZ2VkOiBib29sZWFuLCBoZWlnaHQ6IG51bWJlciwgaWU6IGJvb2xlYW4gPSBmYWxzZSwgd2FzU2hvd246IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgdGhpcy5pZSA9IGllO1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5oZWlnaHQgPSBoZWlnaHQ7XHJcbiAgfVxyXG5cclxuICBzZXRWYWx1ZUFuZEZvY3VzKHZhbHVlOiBhbnksIHNlbGVjdEFsbDogYm9vbGVhbiA9IGZhbHNlKSB7XHJcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICB9XHJcblxyXG4gIGlucHV0TW91c2VEb3duKGU6IGFueSkge1xyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIHByb2Nlc3NLZXkoa2V5RXZlbnQ6IGFueSkge1xyXG4gICAgLy9cclxuICB9XHJcblxyXG4gIGlucHV0S2V5RG93bihlOiBhbnkpIHtcclxuXHJcbiAgICBpZiAoZS5rZXlDb2RlID09PSBLZXlzLlRBQikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICBpZiAoZS5rZXlDb2RlID09PSBLZXlzLkVTQ0FQRSkge1xyXG4gICAgICB0aGlzLmNhbmNlbC5lbWl0KGZhbHNlKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChlLmtleUNvZGUgPT09IEtleXMuRU5URVIpIHtcclxuICAgICAgdGhpcy5jb21taXQuZW1pdCh0aGlzLnZhbHVlKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5wdXRCbHVyKGU6IGFueSkge1xyXG4gICAgdGhpcy5jYW5jZWwuZW1pdCh0cnVlKTtcclxuICB9XHJcblxyXG4gIC8vINCV0YHQu9C4INGDINC90LDRgSDQtdGB0YLRjCDQuNC90YTQvtGA0LzQsNGG0LjRjyDQviDQstGL0YHQvtGC0LUg0YHRgtGA0L7QutC4IC0g0LHQtdGA0LXQvCDQtdGRINC4INC90LVcclxuICAvLyDQvdCw0LfQvdCw0YfQsNC10Lwg0L3QuNC60LDQutC+0LPQviDQutC70LDRgdGB0LBcclxuICBnZXRDbGFzcygpIHtcclxuICAgIGlmICgodGhpcy5oZWlnaHQgIT09IG51bGwgJiYgdGhpcy5oZWlnaHQgPiAwKSlcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgaWYgKHRoaXMuaWUpXHJcbiAgICAgIHJldHVybiAndHJ1ZS1ncmlkLWVkaXRvci1pZSc7XHJcbiAgICBlbHNlXHJcbiAgICAgIHJldHVybiAndHJ1ZS1ncmlkLWVkaXRvci0xMDBwJztcclxuICB9XHJcblxyXG4gIGdldEgoKSB7XHJcbiAgICBpZiAodGhpcy5oZWlnaHQgIT09IG51bGwgJiYgdGhpcy5oZWlnaHQgPiAwKVxyXG4gICAgICByZXR1cm4gdGhpcy5oZWlnaHQgKyAncHgnO1xyXG4gICAgcmV0dXJuICcxMDAlJztcclxuICB9XHJcbn1cclxuIl19