@ngez/core
Version:
A collection of minimalistic, easy-to-use and fully customizable Angular components, directives and services
74 lines • 5.3 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 NgEzTotalSizeValidator {
/**
* @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.totalSize(+this.totalSize);
}
}
NgEzTotalSizeValidator.decorators = [
{ type: Directive, args: [{
selector: '[ngezTotalSize][formControlName],[ngezTotalSize][formControl],[ngezTotalSize][ngModel]',
providers: [{
provide: NG_VALIDATORS,
useExisting: forwardRef(() => NgEzTotalSizeValidator),
multi: true
}]
},] }
];
NgEzTotalSizeValidator.propDecorators = {
totalSize: [{ type: Input, args: ['ngezTotalSize',] }]
};
if (false) {
/** @type {?} */
NgEzTotalSizeValidator.prototype.totalSize;
/**
* @type {?}
* @private
*/
NgEzTotalSizeValidator.prototype.validator;
/**
* @type {?}
* @private
*/
NgEzTotalSizeValidator.prototype.onChange;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG90YWwtc2l6ZS52YWxpZGF0b3IuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmdlei9jb3JlLyIsInNvdXJjZXMiOlsiZm9ybXMvdG90YWwtc2l6ZS52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLGFBQWEsRUFBNkQsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBVTlDLE1BQU0sT0FBTyxzQkFBc0I7Ozs7O0lBUS9CLFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBRyxJQUFJLENBQUMsUUFBUTtZQUNaLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN4QixDQUFDOzs7O0lBRUQsUUFBUTtRQUNKLElBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUztZQUNkLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMvQixDQUFDOzs7OztJQUVELFFBQVEsQ0FBQyxPQUF3QjtRQUM3QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMzRCxDQUFDOzs7OztJQUVELHlCQUF5QixDQUFDLEVBQUU7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQzs7Ozs7SUFFTyxlQUFlO1FBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvRCxDQUFDOzs7WUFyQ0osU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSx3RkFBd0Y7Z0JBQ2xHLFNBQVMsRUFBRyxDQUFDO3dCQUNULE9BQU8sRUFBRSxhQUFhO3dCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDO3dCQUNyRCxLQUFLLEVBQUUsSUFBSTtxQkFDZCxDQUFDO2FBQ0w7Ozt3QkFHSSxLQUFLLFNBQUMsZUFBZTs7OztJQUF0QiwyQ0FBMEM7Ozs7O0lBRTFDLDJDQUErQjs7Ozs7SUFFL0IsMENBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBmb3J3YXJkUmVmLCBJbnB1dCwgU2ltcGxlQ2hhbmdlcywgT25Jbml0LCBPbkNoYW5nZXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBOR19WQUxJREFUT1JTLCBWYWxpZGF0b3IsIEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdG9yRm4sIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgTmdFelZhbGlkYXRvcnMgfSBmcm9tIFwiLi92YWxpZGF0b3JzXCI7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW25nZXpUb3RhbFNpemVdW2Zvcm1Db250cm9sTmFtZV0sW25nZXpUb3RhbFNpemVdW2Zvcm1Db250cm9sXSxbbmdlelRvdGFsU2l6ZV1bbmdNb2RlbF0nLFxyXG4gICAgcHJvdmlkZXJzOiAgW3tcclxuICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE5nRXpUb3RhbFNpemVWYWxpZGF0b3IpLFxyXG4gICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmdFelRvdGFsU2l6ZVZhbGlkYXRvciBpbXBsZW1lbnRzIFZhbGlkYXRvciwgT25Jbml0LCBPbkNoYW5nZXN7XHJcblxyXG4gICAgQElucHV0KCduZ2V6VG90YWxTaXplJykgdG90YWxTaXplOiBudW1iZXI7XHJcblxyXG4gICAgcHJpdmF0ZSB2YWxpZGF0b3I6IFZhbGlkYXRvckZuO1xyXG5cclxuICAgIHByaXZhdGUgb25DaGFuZ2U6IEZ1bmN0aW9uO1xyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpe1xyXG4gICAgICAgIHRoaXMuY3JlYXRlVmFsaWRhdG9yKCk7XHJcbiAgICAgICAgaWYodGhpcy5vbkNoYW5nZSlcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIGlmKCF0aGlzLnZhbGlkYXRvcilcclxuICAgICAgICAgICAgdGhpcy5jcmVhdGVWYWxpZGF0b3IoKTtcclxuICAgIH1cclxuXHJcbiAgICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3Jze1xyXG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRvciA/IHRoaXMudmFsaWRhdG9yKGNvbnRyb2wpIDogbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuKXtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVWYWxpZGF0b3IoKXtcclxuICAgICAgICB0aGlzLnZhbGlkYXRvciA9IE5nRXpWYWxpZGF0b3JzLnRvdGFsU2l6ZSgrdGhpcy50b3RhbFNpemUpO1xyXG4gICAgfVxyXG59Il19