@ngez/core
Version:
A collection of minimalistic, easy-to-use and fully customizable Angular components, directives and services
81 lines • 5.79 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Directive, forwardRef, Input } from "@angular/core";
import { NG_VALIDATORS } from "@angular/forms";
import { NgEzValidators } from "./validators";
export class NgEzEqualsValidator {
/**
* @param {?} changes
* @return {?}
*/
ngOnChanges(changes) {
this.createValidator();
if (this.onChange)
this.onChange();
}
/**
* @return {?}
*/
ngOnInit() {
if (!this.validator)
this.createValidator();
}
/**
* @param {?} control
* @return {?}
*/
validate(control) {
return this.validator ? this.validator(control) : null;
}
/**
* @param {?} fn
* @return {?}
*/
registerOnValidatorChange(fn) {
this.onChange = fn;
}
/**
* @private
* @return {?}
*/
createValidator() {
this.validator = NgEzValidators.equals(this.c1, this.c2);
}
}
NgEzEqualsValidator.decorators = [
{ type: Directive, args: [{
selector: '[ngezEquals][formGroupName], [ngezEquals][formGroup], form[ngezEquals], [ngezEquals][ngModelGroup]',
providers: [{
provide: NG_VALIDATORS,
useExisting: forwardRef(() => NgEzEqualsValidator),
multi: true
}],
host: {
'[attr.c1]': 'c1 ? c1 : null',
'[attr.c2]': 'c2 ? c2 : null'
}
},] }
];
NgEzEqualsValidator.propDecorators = {
c1: [{ type: Input }],
c2: [{ type: Input }]
};
if (false) {
/** @type {?} */
NgEzEqualsValidator.prototype.c1;
/** @type {?} */
NgEzEqualsValidator.prototype.c2;
/**
* @type {?}
* @private
*/
NgEzEqualsValidator.prototype.validator;
/**
* @type {?}
* @private
*/
NgEzEqualsValidator.prototype.onChange;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXF1YWxzLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ2V6L2NvcmUvIiwic291cmNlcyI6WyJmb3Jtcy9lcXVhbHMudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQW9DLE1BQU0sZUFBZSxDQUFDO0FBQy9GLE9BQU8sRUFBOEIsYUFBYSxFQUE2QyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFjOUMsTUFBTSxPQUFPLG1CQUFtQjs7Ozs7SUFVNUIsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFHLElBQUksQ0FBQyxRQUFRO1lBQ1osSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3hCLENBQUM7Ozs7SUFFRCxRQUFRO1FBQ0osSUFBRyxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQ2QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQy9CLENBQUM7Ozs7O0lBRUQsUUFBUSxDQUFDLE9BQXdCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzNELENBQUM7Ozs7O0lBRUQseUJBQXlCLENBQUMsRUFBRTtRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDOzs7OztJQUVPLGVBQWU7UUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7OztZQTNDSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLG9HQUFvRztnQkFDOUcsU0FBUyxFQUFHLENBQUM7d0JBQ1QsT0FBTyxFQUFFLGFBQWE7d0JBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7d0JBQ2xELEtBQUssRUFBRSxJQUFJO3FCQUNkLENBQUM7Z0JBQ0YsSUFBSSxFQUFFO29CQUNGLFdBQVcsRUFBRSxnQkFBZ0I7b0JBQzdCLFdBQVcsRUFBRSxnQkFBZ0I7aUJBQ2hDO2FBQ0o7OztpQkFHSSxLQUFLO2lCQUVMLEtBQUs7Ozs7SUFGTixpQ0FBb0I7O0lBRXBCLGlDQUFvQjs7Ozs7SUFFcEIsd0NBQStCOzs7OztJQUUvQix1Q0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGZvcndhcmRSZWYsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFZhbGlkYXRvciwgQWJzdHJhY3RDb250cm9sLCBOR19WQUxJREFUT1JTLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycywgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBOZ0V6VmFsaWRhdG9ycyB9IGZyb20gXCIuL3ZhbGlkYXRvcnNcIjtcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbbmdlekVxdWFsc11bZm9ybUdyb3VwTmFtZV0sIFtuZ2V6RXF1YWxzXVtmb3JtR3JvdXBdLCBmb3JtW25nZXpFcXVhbHNdLCBbbmdlekVxdWFsc11bbmdNb2RlbEdyb3VwXScsXHJcbiAgICBwcm92aWRlcnM6ICBbe1xyXG4gICAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcbiAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTmdFekVxdWFsc1ZhbGlkYXRvciksXHJcbiAgICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1dLFxyXG4gICAgaG9zdDoge1xyXG4gICAgICAgICdbYXR0ci5jMV0nOiAnYzEgPyBjMSA6IG51bGwnLFxyXG4gICAgICAgICdbYXR0ci5jMl0nOiAnYzIgPyBjMiA6IG51bGwnXHJcbiAgICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ0V6RXF1YWxzVmFsaWRhdG9yIGltcGxlbWVudHMgVmFsaWRhdG9yLCBPbkNoYW5nZXMsIE9uSW5pdHtcclxuXHJcbiAgICBASW5wdXQoKSBjMTogc3RyaW5nO1xyXG5cclxuICAgIEBJbnB1dCgpIGMyOiBzdHJpbmc7XHJcblxyXG4gICAgcHJpdmF0ZSB2YWxpZGF0b3I6IFZhbGlkYXRvckZuO1xyXG5cclxuICAgIHByaXZhdGUgb25DaGFuZ2U6IEZ1bmN0aW9uO1xyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpe1xyXG4gICAgICAgIHRoaXMuY3JlYXRlVmFsaWRhdG9yKCk7XHJcbiAgICAgICAgaWYodGhpcy5vbkNoYW5nZSlcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIGlmKCF0aGlzLnZhbGlkYXRvcilcclxuICAgICAgICAgICAgdGhpcy5jcmVhdGVWYWxpZGF0b3IoKTtcclxuICAgIH1cclxuXHJcbiAgICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3Jze1xyXG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRvciA/IHRoaXMudmFsaWRhdG9yKGNvbnRyb2wpIDogbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuKXtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVWYWxpZGF0b3IoKXtcclxuICAgICAgICB0aGlzLnZhbGlkYXRvciA9IE5nRXpWYWxpZGF0b3JzLmVxdWFscyh0aGlzLmMxLCB0aGlzLmMyKTtcclxuICAgIH1cclxufSJdfQ==