UNPKG

@universal-material/angular

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.1.0.

78 lines 9.35 kB
import { Directive, HostBinding, HostListener, Input } from '@angular/core'; import { coerceBooleanProperty } from '../coercion/boolean.coercion'; import * as i0 from "@angular/core"; import * as i1 from "@angular/forms"; import * as i2 from "../form-field/form-field.component"; export class TextInputBase { get disabled() { if (this.ngControl && this.ngControl.disabled !== null) { return this.ngControl.disabled; } return this._disabled; } set disabled(value) { this._disabled = (value === '') || value; // Browsers may not fire the blur event if the input is disabled too quickly. // Reset from here to ensure that the element doesn't become stuck. if (this.focused) { this.focused = false; } } /** Whether the element is readonly. */ get readonly() { return this._readonly; } set readonly(value) { this._readonly = coerceBooleanProperty(value); } get empty() { return !this._elementRef.nativeElement.value; } get _disabledAttribute() { return this.disabled ? true : null; } constructor(ngControl, formField, _elementRef) { this.ngControl = ngControl; this._elementRef = _elementRef; this.focused = false; this._disabled = false; this._readonly = false; this._blur = () => this._focusChanged(false); this._focus = () => this._focusChanged(true); if (formField) { formField._input = this; } } focus() { if (document.activeElement !== this._elementRef.nativeElement) { this._elementRef.nativeElement.focus(); } } /** Callback for the cases where the focused state of the input changes. */ _focusChanged(focused) { if (focused !== this.focused && (!this.readonly || !focused)) { this.focused = focused; } } mouseDown(e) { e.stopPropagation(); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TextInputBase, deps: [{ token: i1.NgControl }, { token: i2.FormFieldComponent }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TextInputBase, inputs: { disabled: "disabled", readonly: "readonly" }, host: { listeners: { "blur": "_blur()", "focus": "_focus()", "mousedown": "mouseDown($event)" }, properties: { "attr.disabled": "this._disabledAttribute" } }, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TextInputBase, decorators: [{ type: Directive }], ctorParameters: function () { return [{ type: i1.NgControl }, { type: i2.FormFieldComponent }, { type: i0.ElementRef }]; }, propDecorators: { disabled: [{ type: Input }], readonly: [{ type: Input }], _blur: [{ type: HostListener, args: ['blur'] }], _focus: [{ type: HostListener, args: ['focus'] }], _disabledAttribute: [{ type: HostBinding, args: ['attr.disabled'] }], mouseDown: [{ type: HostListener, args: ['mousedown', ['$event']] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1pbnB1dC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3NoYXJlZC90ZXh0LWlucHV0LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUl4RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQUdyRSxNQUFNLE9BQWdCLGFBQWE7SUFHakMsSUFDSSxRQUFRO1FBQ1YsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxLQUFLLElBQUksRUFBRTtZQUN0RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO1NBQ2hDO1FBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFjO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFZLEtBQUssRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDO1FBRWhELDZFQUE2RTtRQUM3RSxtRUFBbUU7UUFDbkUsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUtELHVDQUF1QztJQUN2QyxJQUNJLFFBQVEsS0FBYyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ2xELElBQUksUUFBUSxDQUFDLEtBQWMsSUFBSSxJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUcvRSxJQUFJLEtBQUs7UUFDUCxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO0lBQy9DLENBQUM7SUFJRCxJQUFrQyxrQkFBa0I7UUFDbEQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNyQyxDQUFDO0lBRUQsWUFBK0IsU0FBMkIsRUFDOUMsU0FBb0MsRUFDakIsV0FBdUI7UUFGdkIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFFM0IsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUF4Q3RELFlBQU8sR0FBRyxLQUFLLENBQUM7UUFtQk4sY0FBUyxHQUFHLEtBQUssQ0FBQztRQU9wQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBTUosVUFBSyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsV0FBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFTN0QsSUFBSSxTQUFTLEVBQUU7WUFDYixTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxRQUFRLENBQUMsYUFBYSxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFO1lBQzdELElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQztJQUVELDJFQUEyRTtJQUMzRSxhQUFhLENBQUMsT0FBZ0I7UUFDNUIsSUFBSSxPQUFPLEtBQUssSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzVELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUdELFNBQVMsQ0FBQyxDQUFhO1FBQ3JCLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN0QixDQUFDOytHQWhFbUIsYUFBYTttR0FBYixhQUFhOzs0RkFBYixhQUFhO2tCQURsQyxTQUFTOzBKQUtKLFFBQVE7c0JBRFgsS0FBSztnQkFzQkYsUUFBUTtzQkFEWCxLQUFLO2dCQVNnQixLQUFLO3NCQUExQixZQUFZO3VCQUFDLE1BQU07Z0JBQ0csTUFBTTtzQkFBNUIsWUFBWTt1QkFBQyxPQUFPO2dCQUNhLGtCQUFrQjtzQkFBbkQsV0FBVzt1QkFBQyxlQUFlO2dCQTJCNUIsU0FBUztzQkFEUixZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgRm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJy4uL2NvZXJjaW9uL2Jvb2xlYW4uY29lcmNpb24nO1xyXG5cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUZXh0SW5wdXRCYXNlIHtcclxuICBmb2N1c2VkID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMubmdDb250cm9sICYmIHRoaXMubmdDb250cm9sLmRpc2FibGVkICE9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbC5kaXNhYmxlZDtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcclxuICB9XHJcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9kaXNhYmxlZCA9ICh2YWx1ZSBhcyBhbnkgPT09ICcnKSB8fCB2YWx1ZTtcclxuXHJcbiAgICAvLyBCcm93c2VycyBtYXkgbm90IGZpcmUgdGhlIGJsdXIgZXZlbnQgaWYgdGhlIGlucHV0IGlzIGRpc2FibGVkIHRvbyBxdWlja2x5LlxyXG4gICAgLy8gUmVzZXQgZnJvbSBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSBlbGVtZW50IGRvZXNuJ3QgYmVjb21lIHN0dWNrLlxyXG4gICAgaWYgKHRoaXMuZm9jdXNlZCkge1xyXG4gICAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfZGlzYWJsZWQgPSBmYWxzZTtcclxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZGlzYWJsZWQ6IGJvb2xlYW4gfCAnJztcclxuXHJcbiAgLyoqIFdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgcmVhZG9ubHkuICovXHJcbiAgQElucHV0KClcclxuICBnZXQgcmVhZG9ubHkoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9yZWFkb25seTsgfVxyXG4gIHNldCByZWFkb25seSh2YWx1ZTogYm9vbGVhbikgeyB0aGlzLl9yZWFkb25seSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cclxuICBwcml2YXRlIF9yZWFkb25seSA9IGZhbHNlO1xyXG5cclxuICBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInKSBfYmx1ciA9ICgpID0+IHRoaXMuX2ZvY3VzQ2hhbmdlZChmYWxzZSk7XHJcbiAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKSBfZm9jdXMgPSAoKSA9PiB0aGlzLl9mb2N1c0NoYW5nZWQodHJ1ZSk7XHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRpc2FibGVkJykgZ2V0IF9kaXNhYmxlZEF0dHJpYnV0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmRpc2FibGVkID8gdHJ1ZSA6IG51bGw7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IocmVhZG9ubHkgbmdDb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxyXG4gICAgICAgICAgICAgIGZvcm1GaWVsZDogRm9ybUZpZWxkQ29tcG9uZW50IHwgbnVsbCxcclxuICAgICAgICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcclxuXHJcbiAgICBpZiAoZm9ybUZpZWxkKSB7XHJcbiAgICAgIGZvcm1GaWVsZC5faW5wdXQgPSB0aGlzO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZm9jdXMoKTogdm9pZCB7XHJcbiAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIENhbGxiYWNrIGZvciB0aGUgY2FzZXMgd2hlcmUgdGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIGlucHV0IGNoYW5nZXMuICovXHJcbiAgX2ZvY3VzQ2hhbmdlZChmb2N1c2VkOiBib29sZWFuKSB7XHJcbiAgICBpZiAoZm9jdXNlZCAhPT0gdGhpcy5mb2N1c2VkICYmICghdGhpcy5yZWFkb25seSB8fCAhZm9jdXNlZCkpIHtcclxuICAgICAgdGhpcy5mb2N1c2VkID0gZm9jdXNlZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pXHJcbiAgbW91c2VEb3duKGU6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==