ngx-custom-numeric-range-form-field
Version:
Angular material numeric range form field
18 lines • 3.63 kB
JavaScript
import { FormGroup } from '@angular/forms';
export class NumericRangeStateMatcher {
isErrorState(control, form, minimumControlName = 'minimum', maximumControlName = 'maximum') {
if (!control.parent && form instanceof FormGroup) {
const minimumControl = form.get(minimumControlName);
const maximumControl = form.get(maximumControlName);
const isFormInvalid = form.touched && form.invalid;
const areFormControlsInvalid = this.isControlTouchedInvalid(minimumControl) ||
this.isControlTouchedInvalid(maximumControl);
return isFormInvalid || areFormControlsInvalid;
}
return control.touched && control.invalid;
}
isControlTouchedInvalid(control) {
return control.touched && control.invalid;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy1yYW5nZS1zdGF0ZS1tYXRjaGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW51bWVyaWMtcmFuZ2UtZm9ybS1maWVsZC9zcmMvbGliL2Zvcm0vbnVtZXJpYy1yYW5nZS1zdGF0ZS1tYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTixTQUFTLEVBR1QsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QixNQUFNLE9BQU8sd0JBQXdCO0lBQ3BDLFlBQVksQ0FDWCxPQUEyQixFQUMzQixJQUFvRCxFQUNwRCxrQkFBa0IsR0FBRyxTQUFTLEVBQzlCLGtCQUFrQixHQUFHLFNBQVM7UUFFOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxZQUFZLFNBQVMsRUFBRTtZQUNqRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFnQixDQUFDO1lBQ25FLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQWdCLENBQUM7WUFFbkUsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDO1lBRW5ELE1BQU0sc0JBQXNCLEdBQzNCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLENBQUM7Z0JBQzVDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUU5QyxPQUFPLGFBQWEsSUFBSSxzQkFBc0IsQ0FBQztTQUMvQztRQUVELE9BQU8sT0FBTyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQzNDLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxPQUFvQjtRQUNuRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUMzQyxDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG5cdEZvcm1Db250cm9sLFxyXG5cdEZvcm1Hcm91cCxcclxuXHRGb3JtR3JvdXBEaXJlY3RpdmUsXHJcblx0TmdGb3JtXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBFcnJvclN0YXRlTWF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5cclxuZXhwb3J0IGNsYXNzIE51bWVyaWNSYW5nZVN0YXRlTWF0Y2hlciBpbXBsZW1lbnRzIEVycm9yU3RhdGVNYXRjaGVyIHtcclxuXHRpc0Vycm9yU3RhdGUoXHJcblx0XHRjb250cm9sOiBGb3JtQ29udHJvbCB8IG51bGwsXHJcblx0XHRmb3JtOiBGb3JtR3JvdXAgfCBGb3JtR3JvdXBEaXJlY3RpdmUgfCBOZ0Zvcm0gfCBudWxsLFxyXG5cdFx0bWluaW11bUNvbnRyb2xOYW1lID0gJ21pbmltdW0nLFxyXG5cdFx0bWF4aW11bUNvbnRyb2xOYW1lID0gJ21heGltdW0nXHJcblx0KTogYm9vbGVhbiB7XHJcblx0XHRpZiAoIWNvbnRyb2wucGFyZW50ICYmIGZvcm0gaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcclxuXHRcdFx0Y29uc3QgbWluaW11bUNvbnRyb2wgPSBmb3JtLmdldChtaW5pbXVtQ29udHJvbE5hbWUpIGFzIEZvcm1Db250cm9sO1xyXG5cdFx0XHRjb25zdCBtYXhpbXVtQ29udHJvbCA9IGZvcm0uZ2V0KG1heGltdW1Db250cm9sTmFtZSkgYXMgRm9ybUNvbnRyb2w7XHJcblxyXG5cdFx0XHRjb25zdCBpc0Zvcm1JbnZhbGlkID0gZm9ybS50b3VjaGVkICYmIGZvcm0uaW52YWxpZDtcclxuXHJcblx0XHRcdGNvbnN0IGFyZUZvcm1Db250cm9sc0ludmFsaWQgPVxyXG5cdFx0XHRcdHRoaXMuaXNDb250cm9sVG91Y2hlZEludmFsaWQobWluaW11bUNvbnRyb2wpIHx8XHJcblx0XHRcdFx0dGhpcy5pc0NvbnRyb2xUb3VjaGVkSW52YWxpZChtYXhpbXVtQ29udHJvbCk7XHJcblxyXG5cdFx0XHRyZXR1cm4gaXNGb3JtSW52YWxpZCB8fCBhcmVGb3JtQ29udHJvbHNJbnZhbGlkO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBjb250cm9sLnRvdWNoZWQgJiYgY29udHJvbC5pbnZhbGlkO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBpc0NvbnRyb2xUb3VjaGVkSW52YWxpZChjb250cm9sOiBGb3JtQ29udHJvbCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIGNvbnRyb2wudG91Y2hlZCAmJiBjb250cm9sLmludmFsaWQ7XHJcblx0fVxyXG59XHJcbiJdfQ==