@hxui/angular
Version:
* * *
90 lines • 5.9 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
*/
import { Directive, HostListener, ElementRef, HostBinding } from '@angular/core';
var TextInputDirective = /** @class */ (function () {
function TextInputDirective(el) {
this.el = el;
this.styleLabel();
}
/**
* @return {?}
*/
TextInputDirective.prototype.onFocus = /**
* @return {?}
*/
function () {
this.styleLabelAsFloating();
};
/**
* @return {?}
*/
TextInputDirective.prototype.onBlur = /**
* @return {?}
*/
function () {
this.styleLabel();
};
/**
* @return {?}
*/
TextInputDirective.prototype.styleLabel = /**
* @return {?}
*/
function () {
// If the element is empty, style the label like a placeholder otherwise float the label above the input
if (this.el.nativeElement.value.trim().length === 0 && this.el.nativeElement.placeholder.trim().length === 0) {
this.styleLabelAsPlaceholder();
}
else {
this.styleLabelAsFloating();
}
};
/**
* @return {?}
*/
TextInputDirective.prototype.styleLabelAsPlaceholder = /**
* @return {?}
*/
function () {
this.isPlaceholder = true;
this.isLabel = false;
};
/**
* @return {?}
*/
TextInputDirective.prototype.styleLabelAsFloating = /**
* @return {?}
*/
function () {
this.isPlaceholder = false;
this.isLabel = true;
};
TextInputDirective.decorators = [
{ type: Directive, args: [{
selector: '[hxaTextInput]'
},] },
];
/** @nocollapse */
TextInputDirective.ctorParameters = function () { return [
{ type: ElementRef }
]; };
TextInputDirective.propDecorators = {
isPlaceholder: [{ type: HostBinding, args: ['class.has-label-placeholder',] }],
isLabel: [{ type: HostBinding, args: ['class.has-label-floating',] }],
onFocus: [{ type: HostListener, args: ['focus',] }],
onBlur: [{ type: HostListener, args: ['blur',] }]
};
return TextInputDirective;
}());
export { TextInputDirective };
if (false) {
/** @type {?} */
TextInputDirective.prototype.isPlaceholder;
/** @type {?} */
TextInputDirective.prototype.isLabel;
/** @type {?} */
TextInputDirective.prototype.el;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1pbnB1dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaHh1aS9hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFL0U7SUFRSSw0QkFBb0IsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDMUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzFCLENBQUM7Ozs7SUFHRCxvQ0FBTzs7O0lBRFA7UUFFSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNoQyxDQUFDOzs7O0lBR0QsbUNBQU07OztJQUROO1FBRUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7Ozs7SUFFRCx1Q0FBVTs7O0lBQVY7UUFDSSx3R0FBd0c7UUFDeEcsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBSTtZQUM1RyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztTQUNsQzthQUFNO1lBQ0gsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7U0FDL0I7SUFDTCxDQUFDOzs7O0lBRUQsb0RBQXVCOzs7SUFBdkI7UUFDRSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDOzs7O0lBRUQsaURBQW9COzs7SUFBcEI7UUFDRSxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUN0QixDQUFDOztnQkF2Q0osU0FBUyxTQUFDO29CQUNQLFFBQVEsRUFBRSxnQkFBZ0I7aUJBQzNCOzs7O2dCQUo4QixVQUFVOzs7Z0NBT3hDLFdBQVcsU0FBQyw2QkFBNkI7MEJBQ3pDLFdBQVcsU0FBQywwQkFBMEI7MEJBTXBDLFlBQVksU0FBQyxPQUFPO3lCQUtwQixZQUFZLFNBQUMsTUFBTTs7SUF3QnRCLHlCQUFDO0NBQUEsQUF6Q0gsSUF5Q0c7U0F0Q1ksa0JBQWtCOzs7SUFFL0IsMkNBQW1FOztJQUNuRSxxQ0FBMEQ7O0lBRTVDLGdDQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbaHhhVGV4dElucHV0XSdcclxuICB9KVxyXG4gIGV4cG9ydCBjbGFzcyBUZXh0SW5wdXREaXJlY3RpdmUge1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmhhcy1sYWJlbC1wbGFjZWhvbGRlcicpIGlzUGxhY2Vob2xkZXI6IGJvb2xlYW47XHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5oYXMtbGFiZWwtZmxvYXRpbmcnKSBpc0xhYmVsOiBib29sZWFuO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHtcclxuICAgICAgICAgICAgdGhpcy5zdHlsZUxhYmVsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxyXG4gICAgb25Gb2N1cygpIHtcclxuICAgICAgICB0aGlzLnN0eWxlTGFiZWxBc0Zsb2F0aW5nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignYmx1cicpXHJcbiAgICBvbkJsdXIoKSB7XHJcbiAgICAgICAgdGhpcy5zdHlsZUxhYmVsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc3R5bGVMYWJlbCgpIHtcclxuICAgICAgICAvLyBJZiB0aGUgZWxlbWVudCBpcyBlbXB0eSwgc3R5bGUgdGhlIGxhYmVsIGxpa2UgYSBwbGFjZWhvbGRlciBvdGhlcndpc2UgZmxvYXQgdGhlIGxhYmVsIGFib3ZlIHRoZSBpbnB1dFxyXG4gICAgICAgIGlmICh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUudHJpbSgpLmxlbmd0aCA9PT0gMCAmJiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucGxhY2Vob2xkZXIudHJpbSgpLmxlbmd0aCA9PT0gMCApICB7XHJcbiAgICAgICAgICAgIHRoaXMuc3R5bGVMYWJlbEFzUGxhY2Vob2xkZXIoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnN0eWxlTGFiZWxBc0Zsb2F0aW5nKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0eWxlTGFiZWxBc1BsYWNlaG9sZGVyKCkge1xyXG4gICAgICB0aGlzLmlzUGxhY2Vob2xkZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLmlzTGFiZWwgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBzdHlsZUxhYmVsQXNGbG9hdGluZygpIHtcclxuICAgICAgdGhpcy5pc1BsYWNlaG9sZGVyID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaXNMYWJlbCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuIl19