UNPKG

ngx-ui-hero

Version:

Simple, fast and reliable utilities for Angular.

79 lines 11 kB
import { map } from 'rxjs/operators'; import { Inject, Input, Directive } from '@angular/core'; import { INPUT_FORMS_CONFIG } from '../input-forms-config.constants'; import { message, validate } from './validate'; import { ValueAccessorBase } from './value-accessor-base'; import * as i0 from "@angular/core"; export class ElementBase extends ValueAccessorBase { constructor(validators, asyncValidators, config) { super(); this.validators = validators; this.asyncValidators = asyncValidators; this.config = config; this.showValidations = false; this.autocomplete = 'on'; } validate() { return validate(this.validators, this.asyncValidators)(this.model.control); } get invalid() { return this.validate().pipe(map((v) => this.invalidPattern || this.invalidMaxValue || this.invalidMinValue || Object.keys(v || {}).length > 0)); } get failures() { return this.validate().pipe(map((v) => { const fails = Object.keys(v || {}).map(k => message(v, k, this.label, this.config.validationMessages)); if (this.invalidPattern) { fails.push(message(v, 'pattern', this.label, this.config.validationMessages)); } else if (this.invalidMaxValue) { fails.push(message(v, 'max', this.label, this.config.validationMessages)); } else if (this.invalidMinValue) { fails.push(message(v, 'min', this.label, this.config.validationMessages)); } return fails; })); } get touched() { return this.model != null && this.model != undefined && (this.model.touched || this.internallyTouched); } get invalidPattern() { return this.model.control.hasError('pattern') || this.model.control.hasError('invalid'); } get invalidMaxValue() { return this.model.control.hasError('max'); } get invalidMinValue() { return this.model.control.hasError('min'); } get isRequired() { if (!this.validators || this.validators.length === 0) { return; } return this.validators.filter(x => x['required'] == true).length > 0; } } ElementBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ElementBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); ElementBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: ElementBase, inputs: { label: "label", disabled: "disabled", showValidations: "showValidations", autocomplete: "autocomplete", help: "help", description: "description" }, usesInheritance: true, ngImport: i0 }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ElementBase, decorators: [{ type: Directive }], ctorParameters: function () { return [{ type: undefined }, { type: undefined }, { type: undefined, decorators: [{ type: Inject, args: [INPUT_FORMS_CONFIG] }] }]; }, propDecorators: { label: [{ type: Input }], disabled: [{ type: Input }], showValidations: [{ type: Input }], autocomplete: [{ type: Input }], help: [{ type: Input }], description: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXVpLWhlcm8vc3JjL2xpYi9pbnB1dC1mb3Jtcy9iYXNlL2VsZW1lbnQtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXpELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBdUIsT0FBTyxFQUFFLFFBQVEsRUFBb0MsTUFBTSxZQUFZLENBQUM7QUFDdEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRzFELE1BQU0sT0FBZ0IsV0FBZSxTQUFRLGlCQUFvQjtJQVUvRCxZQUNVLFVBQTBCLEVBQzFCLGVBQW9DLEVBQ1AsTUFBd0I7UUFFN0QsS0FBSyxFQUFFLENBQUM7UUFKQSxlQUFVLEdBQVYsVUFBVSxDQUFnQjtRQUMxQixvQkFBZSxHQUFmLGVBQWUsQ0FBcUI7UUFDUCxXQUFNLEdBQU4sTUFBTSxDQUFrQjtRQVYvQyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixpQkFBWSxHQUFXLElBQUksQ0FBQztJQVk1QyxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sUUFBUSxDQUNaLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FDekMsSUFBSSxDQUFDLGNBQWM7ZUFDaEIsSUFB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WUFBWTtzQkFBM0IsS0FBSztnQkFDVSxJQUFJO3NCQUFuQixLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEluamVjdCwgSW5wdXQsIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdNb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgSW5wdXRGb3Jtc0NvbmZpZyB9IGZyb20gJy4uL2lucHV0LWZvcm1zLWNvbmZpZyc7XG5pbXBvcnQgeyBJTlBVVF9GT1JNU19DT05GSUcgfSBmcm9tICcuLi9pbnB1dC1mb3Jtcy1jb25maWcuY29uc3RhbnRzJztcbmltcG9ydCB7IEFzeW5jVmFsaWRhdG9yQXJyYXksIG1lc3NhZ2UsIHZhbGlkYXRlLCBWYWxpZGF0aW9uUmVzdWx0LCBWYWxpZGF0b3JBcnJheSB9IGZyb20gJy4vdmFsaWRhdGUnO1xuaW1wb3J0IHsgVmFsdWVBY2Nlc3NvckJhc2UgfSBmcm9tICcuL3ZhbHVlLWFjY2Vzc29yLWJhc2UnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbGVtZW50QmFzZTxUPiBleHRlbmRzIFZhbHVlQWNjZXNzb3JCYXNlPFQ+IHtcbiAgQElucHV0KCkgcHVibGljIGxhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KCkgcHVibGljIHNob3dWYWxpZGF0aW9ucyA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgYXV0b2NvbXBsZXRlOiBzdHJpbmcgPSAnb24nO1xuICBASW5wdXQoKSBwdWJsaWMgaGVscDogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgZGVzY3JpcHRpb246IHN0cmluZztcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgbW9kZWw6IE5nTW9kZWw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB2YWxpZGF0b3JzOiBWYWxpZGF0b3JBcnJheSxcbiAgICBwcml2YXRlIGFzeW5jVmFsaWRhdG9yczogQXN5bmNWYWxpZGF0b3JBcnJheSxcbiAgICBASW5qZWN0KCBJTlBVVF9GT1JNU19DT05GSUcgKSBwdWJsaWMgY29uZmlnOiBJbnB1dEZvcm1zQ29uZmlnXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICB2YWxpZGF0ZSgpOiBPYnNlcnZhYmxlPFZhbGlkYXRpb25SZXN1bHQ+IHtcbiAgICByZXR1cm4gdmFsaWRhdGVcbiAgICAgICh0aGlzLnZhbGlkYXRvcnMsIHRoaXMuYXN5bmNWYWxpZGF0b3JzKVxuICAgICAgKHRoaXMubW9kZWwuY29udHJvbCk7XG4gIH1cblxuICBnZXQgaW52YWxpZCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy52YWxpZGF0ZSgpLnBpcGUobWFwKCh2OiBhbnkpID0+XG4gICAgICB0aGlzLmludmFsaWRQYXR0ZXJuXG4gICAgICB8fCB0aGlzLmludmFsaWRNYXhWYWx1ZVxuICAgICAgfHwgdGhpcy5pbnZhbGlkTWluVmFsdWVcbiAgICAgIHx8IE9iamVjdC5rZXlzKHYgfHwge30pLmxlbmd0aCA+IDApKTtcbiAgfVxuXG4gIGdldCBmYWlsdXJlcygpOiBPYnNlcnZhYmxlPEFycmF5PHN0cmluZz4+IHtcbiAgICByZXR1cm4gdGhpcy52YWxpZGF0ZSgpLnBpcGUoXG4gICAgICBtYXAoKHY6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBmYWlscyA9IE9iamVjdC5rZXlzKHYgfHwge30pLm1hcChrID0+IG1lc3NhZ2UodiwgaywgdGhpcy5sYWJlbCwgdGhpcy5jb25maWcudmFsaWRhdGlvbk1lc3NhZ2VzKSk7XG5cbiAgICAgICAgaWYgKHRoaXMuaW52YWxpZFBhdHRlcm4pIHtcbiAgICAgICAgICBmYWlscy5wdXNoKG1lc3NhZ2UodiwgJ3BhdHRlcm4nLCB0aGlzLmxhYmVsLCB0aGlzLmNvbmZpZy52YWxpZGF0aW9uTWVzc2FnZXMpKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmludmFsaWRNYXhWYWx1ZSkge1xuICAgICAgICAgIGZhaWxzLnB1c2gobWVzc2FnZSh2LCAnbWF4JywgdGhpcy5sYWJlbCwgdGhpcy5jb25maWcudmFsaWRhdGlvbk1lc3NhZ2VzKSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pbnZhbGlkTWluVmFsdWUpIHtcbiAgICAgICAgICBmYWlscy5wdXNoKG1lc3NhZ2UodiwgJ21pbicsIHRoaXMubGFiZWwsIHRoaXMuY29uZmlnLnZhbGlkYXRpb25NZXNzYWdlcykpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhaWxzO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgZ2V0IHRvdWNoZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWwgIT0gbnVsbCAmJiB0aGlzLm1vZGVsICE9IHVuZGVmaW5lZCAmJiAodGhpcy5tb2RlbC50b3VjaGVkIHx8IHRoaXMuaW50ZXJuYWxseVRvdWNoZWQpO1xuICB9XG5cbiAgZ2V0IGludmFsaWRQYXR0ZXJuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1vZGVsLmNvbnRyb2wuaGFzRXJyb3IoJ3BhdHRlcm4nKSB8fCB0aGlzLm1vZGVsLmNvbnRyb2wuaGFzRXJyb3IoJ2ludmFsaWQnKTtcbiAgfVxuICBnZXQgaW52YWxpZE1heFZhbHVlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1vZGVsLmNvbnRyb2wuaGFzRXJyb3IoJ21heCcpO1xuICB9XG4gIGdldCBpbnZhbGlkTWluVmFsdWUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWwuY29udHJvbC5oYXNFcnJvcignbWluJyk7XG4gIH1cbiAgZ2V0IGlzUmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnZhbGlkYXRvcnMgfHwgdGhpcy52YWxpZGF0b3JzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnZhbGlkYXRvcnMuZmlsdGVyKHggPT4geFsncmVxdWlyZWQnXSA9PSB0cnVlKS5sZW5ndGggPiAwO1xuICB9XG59XG4iXX0=