@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
JavaScript
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==