@true-directive/grid
Version:
Angular Data Grid from Yopsilon.
106 lines (102 loc) • 8.25 kB
JavaScript
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=