UNPKG

angular2-text-mask

Version:
104 lines 4.5 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var core_1 = require("@angular/core"); var common_1 = require("@angular/common"); var forms_1 = require("@angular/forms"); var textMaskCore_1 = require("text-mask-core/dist/textMaskCore"); var MaskedInputDirective = MaskedInputDirective_1 = (function () { function MaskedInputDirective(renderer, element) { this.renderer = renderer; this.element = element; this.textMaskConfig = { mask: '', guide: true, placeholderChar: '_', pipe: undefined, keepCharPositions: false, }; this._onTouched = function () { }; this._onChange = function (_) { }; } MaskedInputDirective.prototype.setupMask = function () { if (this.element.nativeElement.tagName === 'INPUT') { // `textMask` directive is used directly on an input element this.inputElement = this.element.nativeElement; } else { // `textMask` directive is used on an abstracted input element, `ion-input`, `md-input`, etc this.inputElement = this.element.nativeElement.getElementsByTagName('INPUT')[0]; } if (this.inputElement) { this.textMaskInputElement = textMaskCore_1.createTextMaskInputElement(Object.assign({ inputElement: this.inputElement }, this.textMaskConfig)); } }; MaskedInputDirective.prototype.writeValue = function (value) { if (!this.inputElement) { this.setupMask(); } if (this.textMaskInputElement !== undefined) { this.textMaskInputElement.update(value); } }; MaskedInputDirective.prototype.registerOnChange = function (fn) { this._onChange = fn; }; MaskedInputDirective.prototype.registerOnTouched = function (fn) { this._onTouched = fn; }; MaskedInputDirective.prototype.onInput = function (value) { if (!this.inputElement) { this.setupMask(); } this.textMaskInputElement.update(value); // check against the last value to prevent firing ngModelChange despite no changes if (this.lastValue !== value) { this.lastValue = value; this._onChange(value); } }; MaskedInputDirective.prototype.setDisabledState = function (isDisabled) { this.renderer.setElementProperty(this.element.nativeElement, 'disabled', isDisabled); }; return MaskedInputDirective; }()); __decorate([ core_1.Input('textMask'), __metadata("design:type", Object) ], MaskedInputDirective.prototype, "textMaskConfig", void 0); MaskedInputDirective = MaskedInputDirective_1 = __decorate([ core_1.Directive({ host: { '(input)': 'onInput($event.target.value)', '(blur)': '_onTouched()' }, selector: '[textMask]', providers: [{ provide: forms_1.NG_VALUE_ACCESSOR, useExisting: core_1.forwardRef(function () { return MaskedInputDirective_1; }), multi: true }] }), __metadata("design:paramtypes", [core_1.Renderer, core_1.ElementRef]) ], MaskedInputDirective); exports.MaskedInputDirective = MaskedInputDirective; var TextMaskModule = (function () { function TextMaskModule() { } return TextMaskModule; }()); TextMaskModule = __decorate([ core_1.NgModule({ declarations: [MaskedInputDirective], exports: [MaskedInputDirective], imports: [common_1.CommonModule] }) ], TextMaskModule); exports.TextMaskModule = TextMaskModule; var textMaskCore_2 = require("text-mask-core/dist/textMaskCore"); exports.conformToMask = textMaskCore_2.conformToMask; var MaskedInputDirective_1; //# sourceMappingURL=angular2TextMask.js.map