@jsbailey/reactive-form-validators
Version:
[](https://badge.fury.io/js/%40rxweb%2Freactive-form-validators) [](https://gitter.im/rxweb-project/rxweb?utm_source=badge
55 lines (54 loc) • 6.81 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { ObjectMaker } from "../util/object-maker";
/**
* @param {?} conditionalValidationProps
* @return {?}
*/
export function conditionalChangeValidator(conditionalValidationProps) {
/** @type {?} */
var timeOuts = [];
/** @type {?} */
var setTimeOut = (control) => {
/** @type {?} */
var timeOut = window.setTimeout(t => {
window.clearTimeout(timeOut);
control.updateValueAndValidity();
}, 100);
};
return (control) => {
/** @type {?} */
const parentFormGroup = control.parent;
if (parentFormGroup) {
timeOuts = [];
conditionalValidationProps.forEach(t => {
if (t.indexOf("[]") != -1) {
/** @type {?} */
var splitText = t.split("[]");
/** @type {?} */
var formArray = /** @type {?} */ (parentFormGroup.get([splitText[0]]));
formArray.controls.forEach(formGroup => {
/** @type {?} */
var abstractControl = formGroup.get(splitText[1]);
if (abstractControl) {
setTimeOut(abstractControl);
}
});
}
else {
/** @type {?} */
var control = parentFormGroup.get([t]);
if (!control)
control = parentFormGroup.root.get([t]);
if (control) {
setTimeOut(control);
}
}
});
}
return ObjectMaker.null();
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZGl0aW9uYWwtY2hhbmdlLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bqc2JhaWxleS9yZWFjdGl2ZS1mb3JtLXZhbGlkYXRvcnMvIiwic291cmNlcyI6WyJyZWFjdGl2ZS1mb3JtLXZhbGlkYXRvcnMvY29uZGl0aW9uYWwtY2hhbmdlLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBVUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7OztBQU1uRCxNQUFNLHFDQUFxQywwQkFBb0M7O0lBQzNFLElBQUksUUFBUSxHQUFhLEVBQUUsQ0FBQzs7SUFDNUIsSUFBSSxVQUFVLEdBQUcsQ0FBQyxPQUF3QixFQUFFLEVBQUU7O1FBQzFDLElBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDaEMsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3QixPQUFPLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztTQUNwQyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0tBQ1YsQ0FBQTtJQUNELE1BQU0sQ0FBQyxDQUFDLE9BQXdCLEVBQTBCLEVBQUU7O1FBQ3hELE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDdkMsRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDLENBQ3BCLENBQUM7WUFDRyxRQUFRLEdBQUcsRUFBRSxDQUFDO1lBQ2QsMEJBQTBCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNuQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7b0JBQ3hCLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7O29CQUM5QixJQUFJLFNBQVMscUJBQWMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUM7b0JBQy9ELFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFOzt3QkFDbkMsSUFBSSxlQUFlLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDbEQsRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQzs0QkFDbEIsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDO3lCQUMvQjtxQkFDSixDQUFDLENBQUE7aUJBQ0w7Z0JBQUMsSUFBSSxDQUFDLENBQUM7O29CQUNKLElBQUksT0FBTyxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN2QyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQzt3QkFDVCxPQUFPLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM1QyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO3dCQUNWLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDdkI7aUJBQ0o7YUFFSixDQUFDLENBQUE7U0FDTDtRQUNELE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7S0FDN0IsQ0FBQTtDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIFZhbGlkYXRvckZuLFxyXG4gICAgQWJzdHJhY3RDb250cm9sLFxyXG5cclxuICAgIEZvcm1BcnJheVxyXG59IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuaW1wb3J0IHsgUmVnZXhWYWxpZGF0b3IgfSBmcm9tIFwiLi4vdXRpbC9yZWdleC12YWxpZGF0b3JcIjtcclxuaW1wb3J0IHsgUmVnRXhSdWxlIH0gZnJvbSBcIi4uL3V0aWwvcmVnZXgtcnVsZXNcIjtcclxuaW1wb3J0IHsgRGVjb3JhdG9yTmFtZSB9IGZyb20gXCIuLi91dGlsL2RlY29yYXRvci1uYW1lXCJcclxuaW1wb3J0IHsgT2JqZWN0TWFrZXIgfSBmcm9tIFwiLi4vdXRpbC9vYmplY3QtbWFrZXJcIjtcclxuaW1wb3J0IHsgQWxwaGFDb25maWcgfSBmcm9tIFwiLi4vbW9kZWxzL2NvbmZpZy9hbHBoYS1jb25maWdcIjtcclxuaW1wb3J0IHsgTGlucSB9IGZyb20gXCIuLi91dGlsL2xpbnFcIjtcclxuaW1wb3J0IHsgQXBwbGljYXRpb25VdGlsIH0gZnJvbSBcIi4uL3V0aWwvYXBwLXV0aWxcIjtcclxuaW1wb3J0IHsgQW5ub3RhdGlvblR5cGVzIH0gZnJvbSBcIi4uL2NvcmUvdmFsaWRhdG9yLnN0YXRpY1wiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbmRpdGlvbmFsQ2hhbmdlVmFsaWRhdG9yKGNvbmRpdGlvbmFsVmFsaWRhdGlvblByb3BzOiBzdHJpbmdbXSk6IFZhbGlkYXRvckZuIHtcclxuICAgIHZhciB0aW1lT3V0czogbnVtYmVyW10gPSBbXTtcclxuICAgIHZhciBzZXRUaW1lT3V0ID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xyXG4gICAgICAgIHZhciB0aW1lT3V0ID0gd2luZG93LnNldFRpbWVvdXQodCA9PiB7XHJcbiAgICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGltZU91dCk7XHJcbiAgICAgICAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICAgIH0sIDEwMClcclxuICAgIH1cclxuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9PiB7XHJcbiAgICAgICAgY29uc3QgcGFyZW50Rm9ybUdyb3VwID0gY29udHJvbC5wYXJlbnQ7XHJcbiAgICAgICAgaWYgKHBhcmVudEZvcm1Hcm91cClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpbWVPdXRzID0gW107XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbmFsVmFsaWRhdGlvblByb3BzLmZvckVhY2godCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodC5pbmRleE9mKFwiW11cIikgIT0gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgc3BsaXRUZXh0ID0gdC5zcGxpdChcIltdXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBmb3JtQXJyYXkgPSA8Rm9ybUFycmF5PnBhcmVudEZvcm1Hcm91cC5nZXQoW3NwbGl0VGV4dFswXV0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1BcnJheS5jb250cm9scy5mb3JFYWNoKGZvcm1Hcm91cCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhYnN0cmFjdENvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KHNwbGl0VGV4dFsxXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhYnN0cmFjdENvbnRyb2wpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVPdXQoYWJzdHJhY3RDb250cm9sKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBjb250cm9sID0gcGFyZW50Rm9ybUdyb3VwLmdldChbdF0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghY29udHJvbClcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbCA9IHBhcmVudEZvcm1Hcm91cC5yb290LmdldChbdF0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjb250cm9sKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVPdXQoY29udHJvbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBPYmplY3RNYWtlci5udWxsKCk7XHJcbiAgICB9XHJcbn1cclxuIl19