UNPKG

ngx-config-form

Version:
133 lines 9.57 kB
/** * @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=