@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
JavaScript
/**
* @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