UNPKG

@ngez/core

Version:

A collection of minimalistic, easy-to-use and fully customizable Angular components, directives and services

81 lines 5.79 kB
/** * @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==