UNPKG

@ngez/core

Version:

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

74 lines 5.3 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 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