UNPKG

angular2-text-equality-validator

Version:
68 lines 2.72 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 forms_1 = require('@angular/forms'); var core_2 = require("@angular/core"); var EqualTextValidator = (function () { function EqualTextValidator() { } EqualTextValidator.prototype.registerOnValidatorChange = function (fn) { this._onChange = fn; }; /** * * @param c * @returns {{validateEqual: boolean}|null} */ EqualTextValidator.prototype.validate = function (c) { var _this = this; var passwordVal = c.value; var repeatEle = c.root.get(this.validateEqualTo); if (repeatEle) { this.oldVal = repeatEle.value; } c.root.valueChanges.subscribe(function (changes) { if (_this.oldVal !== changes[_this.validateEqualTo]) { _this._onChange(); } }); return this.checkEquality(passwordVal, repeatEle); }; /** * * @param passwordVal * @param repeatEle * @returns {any} */ EqualTextValidator.prototype.checkEquality = function (passwordVal, repeatEle) { if (repeatEle && passwordVal !== repeatEle.value) return { validateEqual: true }; return null; }; __decorate([ core_2.Input(), __metadata('design:type', String) ], EqualTextValidator.prototype, "validateEqualTo", void 0); EqualTextValidator = __decorate([ core_1.Directive({ selector: '[validateEqualTo][ngModel],[validateEqualTo][formControlName]', providers: [ { provide: forms_1.NG_VALIDATORS, useExisting: core_1.forwardRef(function () { return EqualTextValidator; }), multi: true } ] }), __metadata('design:paramtypes', []) ], EqualTextValidator); return EqualTextValidator; }()); exports.EqualTextValidator = EqualTextValidator; //# sourceMappingURL=angular2-text-equality-validator.js.map