UNPKG

@nowzoo/ngx-firebase-auth

Version:

Angular components for Firebase email-first sign in and out-of-band (oob) actions (reset password, etc).

59 lines (58 loc) 4.72 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { take } from 'rxjs/operators'; export class NgxFirebaseAuthFormHelper { /** * @param {?} fc * @param {?} key * @param {?=} value * @return {?} */ static setErrorUntilChanged(fc, key, value = true) { /** @type {?} */ const error = {}; error[key] = value; fc.setErrors(error); fc.valueChanges.pipe(take(1)).subscribe(() => { NgxFirebaseAuthFormHelper.clearError(fc, key); }); } /** * @param {?} fc * @param {?} key * @return {?} */ static clearError(fc, key) { /** @type {?} */ const errors = {}; if (!fc.errors) { return; } Object.keys(fc.errors).forEach((k) => { if (k !== key) { errors[k] = fc.errors[k]; } }); if (Object.keys(errors).length === 0) { fc.setErrors(null); } else { fc.setErrors(errors); } } /** * @param {?} fc * @return {?} */ static requiredNonEmpty(fc) { /** @type {?} */ const value = fc.value; if (typeof value !== 'string') { return null; } return value.trim().length === 0 ? { required: true } : null; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1oZWxwZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abm93em9vL25neC1maXJlYmFzZS1hdXRoLyIsInNvdXJjZXMiOlsibGliL2Zvcm0taGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsTUFBTTs7Ozs7OztJQUNKLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxFQUFtQixFQUFFLEdBQVcsRUFBRSxRQUFhLElBQUk7O1FBQzdFLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNqQixLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ25CLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEIsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUMzQyx5QkFBeUIsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQy9DLENBQUMsQ0FBQztLQUVKOzs7Ozs7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQW1CLEVBQUUsR0FBVzs7UUFDaEQsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLEVBQUUsQ0FBQyxDQUFDLENBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDaEIsTUFBTSxDQUFDO1NBQ1I7UUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNuQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDZCxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMxQjtTQUNGLENBQUMsQ0FBQztRQUNILEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNwQjtRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ04sRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN0QjtLQUNGOzs7OztJQUVELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFtQjs7UUFDekMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztRQUN2QixFQUFFLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDYjtRQUNELE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztLQUM1RDtDQUdGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmV4cG9ydCBjbGFzcyBOZ3hGaXJlYmFzZUF1dGhGb3JtSGVscGVyIHtcbiAgc3RhdGljIHNldEVycm9yVW50aWxDaGFuZ2VkKGZjOiBBYnN0cmFjdENvbnRyb2wsIGtleTogc3RyaW5nLCB2YWx1ZTogYW55ID0gdHJ1ZSkge1xuICAgIGNvbnN0IGVycm9yID0ge307XG4gICAgZXJyb3Jba2V5XSA9IHZhbHVlO1xuICAgIGZjLnNldEVycm9ycyhlcnJvcik7XG4gICAgZmMudmFsdWVDaGFuZ2VzLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIE5neEZpcmViYXNlQXV0aEZvcm1IZWxwZXIuY2xlYXJFcnJvcihmYywga2V5KTtcbiAgICB9KTtcblxuICB9XG5cbiAgc3RhdGljIGNsZWFyRXJyb3IoZmM6IEFic3RyYWN0Q29udHJvbCwga2V5OiBzdHJpbmcpIHtcbiAgICBjb25zdCBlcnJvcnMgPSB7fTtcbiAgICBpZiAoISBmYy5lcnJvcnMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgT2JqZWN0LmtleXMoZmMuZXJyb3JzKS5mb3JFYWNoKChrKSA9PiB7XG4gICAgICBpZiAoayAhPT0ga2V5KSB7XG4gICAgICAgIGVycm9yc1trXSA9IGZjLmVycm9yc1trXTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoT2JqZWN0LmtleXMoZXJyb3JzKS5sZW5ndGggPT09IDApIHtcbiAgICAgIGZjLnNldEVycm9ycyhudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmMuc2V0RXJyb3JzKGVycm9ycyk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIHJlcXVpcmVkTm9uRW1wdHkoZmM6IEFic3RyYWN0Q29udHJvbCkge1xuICAgIGNvbnN0IHZhbHVlID0gZmMudmFsdWU7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWUudHJpbSgpLmxlbmd0aCA9PT0gMCA/IHtyZXF1aXJlZDogdHJ1ZX0gOiBudWxsO1xuICB9XG5cblxufVxuIl19