UNPKG

@true-directive/grid

Version:

Angular Data Grid from Yopsilon.

106 lines (102 loc) 8.25 kB
import * as tslib_1 from "tslib"; /** * Copyright (c) 2018-2019 Aleksey Melnikov, True Directive Company. * @link https://truedirective.com/ * @license MIT */ import { Component, Input, Output, HostBinding, EventEmitter } from '@angular/core'; let InputWrapperComponent = class InputWrapperComponent { constructor() { this.showError = true; this.disabled = null; this.onBtnClick = new EventEmitter(); } get hasBtn() { return this.icon !== undefined && this.icon !== ""; } get hasError() { return this.error !== undefined && this.error !== ""; } btnClick(e) { this.onBtnClick.emit(e); e.stopPropagation(); } }; tslib_1.__decorate([ HostBinding('class.true-input_with-btn'), tslib_1.__metadata("design:type", Object), tslib_1.__metadata("design:paramtypes", []) ], InputWrapperComponent.prototype, "hasBtn", null); tslib_1.__decorate([ HostBinding('class.true-input_with-error'), tslib_1.__metadata("design:type", Object), tslib_1.__metadata("design:paramtypes", []) ], InputWrapperComponent.prototype, "hasError", null); tslib_1.__decorate([ Input('icon'), tslib_1.__metadata("design:type", String) ], InputWrapperComponent.prototype, "icon", void 0); tslib_1.__decorate([ Input('error'), tslib_1.__metadata("design:type", String) ], InputWrapperComponent.prototype, "error", void 0); tslib_1.__decorate([ Input('showError'), tslib_1.__metadata("design:type", Boolean) ], InputWrapperComponent.prototype, "showError", void 0); tslib_1.__decorate([ Input('disabled'), tslib_1.__metadata("design:type", Boolean) ], InputWrapperComponent.prototype, "disabled", void 0); tslib_1.__decorate([ Output('btnClick'), tslib_1.__metadata("design:type", EventEmitter) ], InputWrapperComponent.prototype, "onBtnClick", void 0); InputWrapperComponent = tslib_1.__decorate([ Component({ selector: 'true-input-wrapper', // It is important that the button follows the content without line breaking. // Otherwise a suspicious margin to the right of the button appears. // // Inner DIV with display=flex to avoid line breaking if the width of the component = 100% template: ` <div> <ng-content></ng-content><button *ngIf="icon" type="button" tabindex="-1" class="true-input__btn" [attr.disabled]="disabled" (click)="btnClick($event)"> <div [ngClass]="icon"></div> </button> </div> <div *ngIf="showError" class="true-input__err-msg">{{error}}</div> `, host: { 'class': 'true-input' }, styles: [` :host { overflow-x: visible; word-wrap: normal; display: inline-block; vertical-align: baseline; padding: 0; margin: 0; } :host > div:first-child { width: 100%; height: 100%; display: inline-flex; } .true-input__err-msg { position: absolute; display: none; } :host.true-input_with-error > .true-input__err-msg { display: block; } `] }) ], InputWrapperComponent); export { InputWrapperComponent }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtd3JhcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdHJ1ZS1kaXJlY3RpdmUvZ3JpZC8iLCJzb3VyY2VzIjpbInNyYy9jb250cm9scy9pbnB1dC13cmFwcGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7RUFJRTtBQUNGLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBa0RwRixJQUFhLHFCQUFxQixHQUFsQyxNQUFhLHFCQUFxQjtJQWhEbEM7UUFtRUUsY0FBUyxHQUFZLElBQUksQ0FBQztRQUcxQixhQUFRLEdBQVksSUFBSSxDQUFDO1FBR3pCLGVBQVUsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQU0xRCxDQUFDO0lBNUJDLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUdELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUM7SUFDdkQsQ0FBQztJQWlCRCxRQUFRLENBQUMsQ0FBTTtRQUNiLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN0QixDQUFDO0NBQ0YsQ0FBQTtBQTVCQztJQURDLFdBQVcsQ0FBQywyQkFBMkIsQ0FBQzs7O21EQUd4QztBQUdEO0lBREMsV0FBVyxDQUFDLDZCQUE2QixDQUFDOzs7cURBRzFDO0FBR0Q7SUFEQyxLQUFLLENBQUMsTUFBTSxDQUFDOzttREFDRDtBQUdiO0lBREMsS0FBSyxDQUFDLE9BQU8sQ0FBQzs7b0RBQ0Q7QUFHZDtJQURDLEtBQUssQ0FBQyxXQUFXLENBQUM7O3dEQUNPO0FBRzFCO0lBREMsS0FBSyxDQUFDLFVBQVUsQ0FBQzs7dURBQ087QUFHekI7SUFEQyxNQUFNLENBQUMsVUFBVSxDQUFDO3NDQUNQLFlBQVk7eURBQWdDO0FBekI3QyxxQkFBcUI7SUFoRGpDLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSxvQkFBb0I7UUFDOUIsNkVBQTZFO1FBQzdFLG9FQUFvRTtRQUNwRSxFQUFFO1FBQ0YsMEZBQTBGO1FBQzFGLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7OztLQWFUO1FBQ0QsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRTtpQkFDdkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0F5QlA7S0FDSixDQUFDO0dBQ1cscUJBQXFCLENBK0JqQztTQS9CWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMTkgQWxla3NleSBNZWxuaWtvdiwgVHJ1ZSBEaXJlY3RpdmUgQ29tcGFueS5cclxuICogQGxpbmsgaHR0cHM6Ly90cnVlZGlyZWN0aXZlLmNvbS9cclxuICogQGxpY2Vuc2UgTUlUXHJcbiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgSG9zdEJpbmRpbmcsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3RydWUtaW5wdXQtd3JhcHBlcicsXHJcbiAgICAvLyBJdCBpcyBpbXBvcnRhbnQgdGhhdCB0aGUgYnV0dG9uIGZvbGxvd3MgdGhlIGNvbnRlbnQgd2l0aG91dCBsaW5lIGJyZWFraW5nLlxyXG4gICAgLy8gT3RoZXJ3aXNlIGEgc3VzcGljaW91cyBtYXJnaW4gdG8gdGhlIHJpZ2h0IG9mIHRoZSBidXR0b24gYXBwZWFycy5cclxuICAgIC8vXHJcbiAgICAvLyBJbm5lciBESVYgd2l0aCBkaXNwbGF5PWZsZXggdG8gYXZvaWQgbGluZSBicmVha2luZyBpZiB0aGUgd2lkdGggb2YgdGhlIGNvbXBvbmVudCA9IDEwMCVcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2PlxyXG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+PGJ1dHRvblxyXG4gICAgICAgICAgKm5nSWY9XCJpY29uXCJcclxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgdGFiaW5kZXg9XCItMVwiXHJcbiAgICAgICAgICBjbGFzcz1cInRydWUtaW5wdXRfX2J0blwiXHJcbiAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiYnRuQ2xpY2soJGV2ZW50KVwiPlxyXG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiaWNvblwiPjwvZGl2PlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cInNob3dFcnJvclwiIGNsYXNzPVwidHJ1ZS1pbnB1dF9fZXJyLW1zZ1wiPnt7ZXJyb3J9fTwvZGl2PlxyXG4gICAgYCxcclxuICAgIGhvc3Q6IHsgJ2NsYXNzJzogJ3RydWUtaW5wdXQnIH0sXHJcbiAgICBzdHlsZXM6W2BcclxuICAgICAgOmhvc3Qge1xyXG4gICAgICAgIG92ZXJmbG93LXg6IHZpc2libGU7XHJcbiAgICAgICAgd29yZC13cmFwOiBub3JtYWw7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgOmhvc3QgPiBkaXY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnRydWUtaW5wdXRfX2Vyci1tc2cge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICB9XHJcblxyXG4gICAgICA6aG9zdC50cnVlLWlucHV0X3dpdGgtZXJyb3IgPiAudHJ1ZS1pbnB1dF9fZXJyLW1zZyB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIH1cclxuXHJcbiAgICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXRXcmFwcGVyQ29tcG9uZW50IHtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy50cnVlLWlucHV0X3dpdGgtYnRuJylcclxuICBnZXQgaGFzQnRuKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaWNvbiAhPT0gdW5kZWZpbmVkICYmIHRoaXMuaWNvbiAhPT0gXCJcIjtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MudHJ1ZS1pbnB1dF93aXRoLWVycm9yJylcclxuICBnZXQgaGFzRXJyb3IoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5lcnJvciAhPT0gdW5kZWZpbmVkICYmIHRoaXMuZXJyb3IgIT09IFwiXCI7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoJ2ljb24nKVxyXG4gIGljb246IHN0cmluZztcclxuXHJcbiAgQElucHV0KCdlcnJvcicpXHJcbiAgZXJyb3I6IHN0cmluZztcclxuXHJcbiAgQElucHV0KCdzaG93RXJyb3InKVxyXG4gIHNob3dFcnJvcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgnZGlzYWJsZWQnKVxyXG4gIGRpc2FibGVkOiBib29sZWFuID0gbnVsbDtcclxuXHJcbiAgQE91dHB1dCgnYnRuQ2xpY2snKVxyXG4gIG9uQnRuQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGJ0bkNsaWNrKGU6IGFueSkge1xyXG4gICAgdGhpcy5vbkJ0bkNsaWNrLmVtaXQoZSk7XHJcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxufVxyXG4iXX0=