UNPKG

@hxui/angular

Version:

* * *

76 lines 5.27 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc */ import { Directive, HostListener, ElementRef, HostBinding } from '@angular/core'; export class TextInputDirective { /** * @param {?} el */ constructor(el) { this.el = el; this.styleLabel(); } /** * @return {?} */ onFocus() { this.styleLabelAsFloating(); } /** * @return {?} */ onBlur() { this.styleLabel(); } /** * @return {?} */ styleLabel() { // 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 {?} */ styleLabelAsPlaceholder() { this.isPlaceholder = true; this.isLabel = false; } /** * @return {?} */ styleLabelAsFloating() { this.isPlaceholder = false; this.isLabel = true; } } TextInputDirective.decorators = [ { type: Directive, args: [{ selector: '[hxaTextInput]' },] }, ]; /** @nocollapse */ TextInputDirective.ctorParameters = () => [ { 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',] }] }; if (false) { /** @type {?} */ TextInputDirective.prototype.isPlaceholder; /** @type {?} */ TextInputDirective.prototype.isLabel; /** @type {?} */ TextInputDirective.prototype.el; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1pbnB1dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaHh1aS9hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFLN0UsTUFBTSxPQUFPLGtCQUFrQjs7OztJQUs3QixZQUFvQixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUMxQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDMUIsQ0FBQzs7OztJQUdELE9BQU87UUFDSCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNoQyxDQUFDOzs7O0lBR0QsTUFBTTtRQUNGLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDOzs7O0lBRUQsVUFBVTtRQUNOLHdHQUF3RztRQUN4RyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFJO1lBQzVHLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1NBQ2xDO2FBQU07WUFDSCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUMvQjtJQUNMLENBQUM7Ozs7SUFFRCx1QkFBdUI7UUFDckIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQzs7OztJQUVELG9CQUFvQjtRQUNsQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUN0QixDQUFDOzs7WUF2Q0osU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxnQkFBZ0I7YUFDM0I7Ozs7WUFKOEIsVUFBVTs7OzRCQU94QyxXQUFXLFNBQUMsNkJBQTZCO3NCQUN6QyxXQUFXLFNBQUMsMEJBQTBCO3NCQU1wQyxZQUFZLFNBQUMsT0FBTztxQkFLcEIsWUFBWSxTQUFDLE1BQU07Ozs7SUFadEIsMkNBQW1FOztJQUNuRSxxQ0FBMEQ7O0lBRTVDLGdDQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbaHhhVGV4dElucHV0XSdcclxuICB9KVxyXG4gIGV4cG9ydCBjbGFzcyBUZXh0SW5wdXREaXJlY3RpdmUge1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmhhcy1sYWJlbC1wbGFjZWhvbGRlcicpIGlzUGxhY2Vob2xkZXI6IGJvb2xlYW47XHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5oYXMtbGFiZWwtZmxvYXRpbmcnKSBpc0xhYmVsOiBib29sZWFuO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHtcclxuICAgICAgICAgICAgdGhpcy5zdHlsZUxhYmVsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxyXG4gICAgb25Gb2N1cygpIHtcclxuICAgICAgICB0aGlzLnN0eWxlTGFiZWxBc0Zsb2F0aW5nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignYmx1cicpXHJcbiAgICBvbkJsdXIoKSB7XHJcbiAgICAgICAgdGhpcy5zdHlsZUxhYmVsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc3R5bGVMYWJlbCgpIHtcclxuICAgICAgICAvLyBJZiB0aGUgZWxlbWVudCBpcyBlbXB0eSwgc3R5bGUgdGhlIGxhYmVsIGxpa2UgYSBwbGFjZWhvbGRlciBvdGhlcndpc2UgZmxvYXQgdGhlIGxhYmVsIGFib3ZlIHRoZSBpbnB1dFxyXG4gICAgICAgIGlmICh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUudHJpbSgpLmxlbmd0aCA9PT0gMCAmJiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucGxhY2Vob2xkZXIudHJpbSgpLmxlbmd0aCA9PT0gMCApICB7XHJcbiAgICAgICAgICAgIHRoaXMuc3R5bGVMYWJlbEFzUGxhY2Vob2xkZXIoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnN0eWxlTGFiZWxBc0Zsb2F0aW5nKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0eWxlTGFiZWxBc1BsYWNlaG9sZGVyKCkge1xyXG4gICAgICB0aGlzLmlzUGxhY2Vob2xkZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLmlzTGFiZWwgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBzdHlsZUxhYmVsQXNGbG9hdGluZygpIHtcclxuICAgICAgdGhpcy5pc1BsYWNlaG9sZGVyID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaXNMYWJlbCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuIl19