ngx-config-form
Version:
use configuration to generate form
133 lines • 9.57 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { of } from 'rxjs';
import { debounceTime, first, map, switchMap } from 'rxjs/operators';
// @dynamic
export class CfValidators {
/**
* @param {?} passwordName
* @param {?} confirmPasswordName
* @return {?}
*/
static confirmPassword(passwordName, confirmPasswordName) {
return (/**
* @param {?} c
* @return {?}
*/
(c) => {
if (!c.dirty) {
return null;
}
/** @type {?} */
const password = c.get(passwordName);
/** @type {?} */
const confirmPassword = c.get(confirmPasswordName);
if (password.value === confirmPassword.value) {
return null;
}
/** @type {?} */
const errObj = { confirmPassword: true };
return errObj;
});
}
/**
* @param {...?} childrenNames
* @return {?}
*/
static groupRequired(...childrenNames) {
return (/**
* @param {?} c
* @return {?}
*/
(c) => {
if (!c.dirty) {
return null;
}
/** @type {?} */
const arr = [];
for (const name of childrenNames) {
arr.push(c.get(name));
}
/** @type {?} */
const emptyElemCount = arr.filter((/**
* @param {?} a
* @return {?}
*/
a => !a.value)).length;
if (emptyElemCount === 0) {
return null;
}
/** @type {?} */
const errObj = { groupRequired: true };
return errObj;
});
}
/**
* @param {?} errClassName
* @param {?} regExp
* @return {?}
*/
static pattern(errClassName, regExp) {
return (/**
* @param {?} c
* @return {?}
*/
(c) => {
if (!c.dirty) {
return null;
}
if (!c.value) {
return null;
}
/** @type {?} */
const isValid = regExp.test(c.value);
if (isValid) {
return null;
}
/** @type {?} */
const errObj = {};
errObj[errClassName] = true;
return errObj;
});
}
/**
* @param {?} errClassName
* @param {?} debounce
* @param {?} fn
* @return {?}
*/
static AsyncValidate(errClassName, debounce, fn) {
return (/**
* @param {?} c
* @return {?}
*/
(c) => {
if (!c.dirty) {
return of(null);
}
/** @type {?} */
const $ob = c.valueChanges.pipe(debounceTime(debounce), switchMap((/**
* @param {?} v
* @return {?}
*/
(v) => tslib_1.__awaiter(this, void 0, void 0, function* () { return yield fn(v); }))), map((/**
* @param {?} isValid
* @return {?}
*/
isValid => {
if (isValid) {
return null;
}
/** @type {?} */
const errObj = {};
errObj[errClassName] = true;
return errObj;
})), first());
return $ob;
});
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2ZWYWxpZGF0b3JzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWNvbmZpZy1mb3JtLyIsInNvdXJjZXMiOlsibGliL3ZhbGlkYXRvcnMvY2ZWYWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBR3JFLE1BQU0sT0FBTyxZQUFZOzs7Ozs7SUFFdkIsTUFBTSxDQUFDLGVBQWUsQ0FBQyxZQUFvQixFQUFFLG1CQUEyQjtRQUN0RTs7OztRQUFPLENBQUMsQ0FBa0IsRUFBcUMsRUFBRTtZQUMvRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRTtnQkFDWixPQUFPLElBQUksQ0FBQzthQUNiOztrQkFFSyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7O2tCQUM5QixlQUFlLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQztZQUNsRCxJQUFJLFFBQVEsQ0FBQyxLQUFLLEtBQUssZUFBZSxDQUFDLEtBQUssRUFBRTtnQkFDNUMsT0FBTyxJQUFJLENBQUM7YUFDYjs7a0JBRUssTUFBTSxHQUFHLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRTtZQUN4QyxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLEVBQUM7SUFDSixDQUFDOzs7OztJQUVELE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxhQUF1QjtRQUM3Qzs7OztRQUFPLENBQUMsQ0FBa0IsRUFBcUMsRUFBRTtZQUMvRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRTtnQkFDWixPQUFPLElBQUksQ0FBQzthQUNiOztrQkFFSyxHQUFHLEdBQUcsRUFBRTtZQUNkLEtBQUssTUFBTSxJQUFJLElBQUksYUFBYSxFQUFFO2dCQUNoQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzthQUN2Qjs7a0JBRUssY0FBYyxHQUFHLEdBQUcsQ0FBQyxNQUFNOzs7O1lBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxNQUFNO1lBQ3ZELElBQUksY0FBYyxLQUFLLENBQUMsRUFBRTtnQkFDeEIsT0FBTyxJQUFJLENBQUM7YUFDYjs7a0JBRUssTUFBTSxHQUFHLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRTtZQUN0QyxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLEVBQUM7SUFDSixDQUFDOzs7Ozs7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQW9CLEVBQUUsTUFBYztRQUNqRDs7OztRQUFPLENBQUMsQ0FBa0IsRUFBRSxFQUFFO1lBQzVCLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFO2dCQUNaLE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFDRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRTtnQkFDWixPQUFPLElBQUksQ0FBQzthQUNiOztrQkFDSyxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ3BDLElBQUksT0FBTyxFQUFFO2dCQUNYLE9BQU8sSUFBSSxDQUFDO2FBQ2I7O2tCQUNLLE1BQU0sR0FBRyxFQUFFO1lBQ2pCLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDNUIsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxFQUFDO0lBQ0osQ0FBQzs7Ozs7OztJQUVELE1BQU0sQ0FBQyxhQUFhLENBQUMsWUFBb0IsRUFBRSxRQUFnQixFQUFFLEVBQWdDO1FBQzNGOzs7O1FBQU8sQ0FBQyxDQUFrQixFQUFFLEVBQUU7WUFDNUIsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUU7Z0JBQ1osT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDakI7O2tCQUNLLEdBQUcsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDN0IsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUN0QixTQUFTOzs7O1lBQUMsQ0FBTSxDQUFDLEVBQUMsRUFBRSx3REFBQyxPQUFBLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBLEdBQUEsRUFBQyxFQUNqQyxHQUFHOzs7O1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1osSUFBSSxPQUFPLEVBQUU7b0JBQ1gsT0FBTyxJQUFJLENBQUM7aUJBQ2I7O3NCQUNLLE1BQU0sR0FBRyxFQUFFO2dCQUNqQixNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUM1QixPQUFPLE1BQU0sQ0FBQztZQUNoQixDQUFDLEVBQUMsRUFDRixLQUFLLEVBQUUsQ0FDUjtZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFDO0lBQ0osQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpcnN0LCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLy8gQGR5bmFtaWNcbmV4cG9ydCBjbGFzcyBDZlZhbGlkYXRvcnMge1xuXG4gIHN0YXRpYyBjb25maXJtUGFzc3dvcmQocGFzc3dvcmROYW1lOiBzdHJpbmcsIGNvbmZpcm1QYXNzd29yZE5hbWU6IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGM6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9IHwgbnVsbCA9PiB7XG4gICAgICBpZiAoIWMuZGlydHkpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBhc3N3b3JkID0gYy5nZXQocGFzc3dvcmROYW1lKTtcbiAgICAgIGNvbnN0IGNvbmZpcm1QYXNzd29yZCA9IGMuZ2V0KGNvbmZpcm1QYXNzd29yZE5hbWUpO1xuICAgICAgaWYgKHBhc3N3b3JkLnZhbHVlID09PSBjb25maXJtUGFzc3dvcmQudmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGVyck9iaiA9IHsgY29uZmlybVBhc3N3b3JkOiB0cnVlIH07XG4gICAgICByZXR1cm4gZXJyT2JqO1xuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZ3JvdXBSZXF1aXJlZCguLi5jaGlsZHJlbk5hbWVzOiBzdHJpbmdbXSk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGM6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9IHwgbnVsbCA9PiB7XG4gICAgICBpZiAoIWMuZGlydHkpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGFyciA9IFtdO1xuICAgICAgZm9yIChjb25zdCBuYW1lIG9mIGNoaWxkcmVuTmFtZXMpIHtcbiAgICAgICAgYXJyLnB1c2goYy5nZXQobmFtZSkpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBlbXB0eUVsZW1Db3VudCA9IGFyci5maWx0ZXIoYSA9PiAhYS52YWx1ZSkubGVuZ3RoO1xuICAgICAgaWYgKGVtcHR5RWxlbUNvdW50ID09PSAwKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBlcnJPYmogPSB7IGdyb3VwUmVxdWlyZWQ6IHRydWUgfTtcbiAgICAgIHJldHVybiBlcnJPYmo7XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBwYXR0ZXJuKGVyckNsYXNzTmFtZTogc3RyaW5nLCByZWdFeHA6IFJlZ0V4cCkge1xuICAgIHJldHVybiAoYzogQWJzdHJhY3RDb250cm9sKSA9PiB7XG4gICAgICBpZiAoIWMuZGlydHkpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBpZiAoIWMudmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBjb25zdCBpc1ZhbGlkID0gcmVnRXhwLnRlc3QoYy52YWx1ZSk7XG4gICAgICBpZiAoaXNWYWxpZCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGVyck9iaiA9IHt9O1xuICAgICAgZXJyT2JqW2VyckNsYXNzTmFtZV0gPSB0cnVlO1xuICAgICAgcmV0dXJuIGVyck9iajtcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIEFzeW5jVmFsaWRhdGUoZXJyQ2xhc3NOYW1lOiBzdHJpbmcsIGRlYm91bmNlOiBudW1iZXIsIGZuOiAodjogYW55KSA9PiBQcm9taXNlPGJvb2xlYW4+KSB7XG4gICAgcmV0dXJuIChjOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcbiAgICAgIGlmICghYy5kaXJ0eSkge1xuICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICB9XG4gICAgICBjb25zdCAkb2IgPSBjLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUoZGVib3VuY2UpLFxuICAgICAgICBzd2l0Y2hNYXAoYXN5bmMgdiA9PiBhd2FpdCBmbih2KSksXG4gICAgICAgIG1hcChpc1ZhbGlkID0+IHtcbiAgICAgICAgICBpZiAoaXNWYWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGVyck9iaiA9IHt9O1xuICAgICAgICAgIGVyck9ialtlcnJDbGFzc05hbWVdID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm4gZXJyT2JqO1xuICAgICAgICB9KSxcbiAgICAgICAgZmlyc3QoKVxuICAgICAgKTtcbiAgICAgIHJldHVybiAkb2I7XG4gICAgfTtcbiAgfVxuXG59XG4iXX0=