UNPKG

ngrx-forms

Version:

Proper integration of forms in Angular 4 applications using ngrx

20 lines 3.57 kB
import { SetAsyncErrorAction } from '../../actions'; import { deepEquals } from '../../util'; export function setAsyncErrorReducer(state, action) { if (action.type !== SetAsyncErrorAction.TYPE) { return state; } if (state.isDisabled) { return state; } const name = `$${action.name}`; let value = action.value; if (deepEquals(state.errors[name], action.value)) { value = state.errors[name]; } const errors = Object.assign(Object.assign({}, state.errors), { [name]: value }); const pendingValidations = state.pendingValidations.filter(v => v !== action.name); return Object.assign(Object.assign({}, state), { isValid: false, isInvalid: true, errors, pendingValidations, isValidationPending: pendingValidations.length > 0 }); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LWFzeW5jLWVycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbnRyb2wvcmVkdWNlci9zZXQtYXN5bmMtZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFXLG1CQUFtQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFeEMsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxLQUErQixFQUMvQixNQUF1QjtJQUV2QixJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssbUJBQW1CLENBQUMsSUFBSSxFQUFFO1FBQzVDLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUU7UUFDcEIsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELE1BQU0sSUFBSSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9CLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFFekIsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDaEQsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDNUI7SUFFRCxNQUFNLE1BQU0sbUNBQVEsS0FBSyxDQUFDLE1BQU0sS0FBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssR0FBRSxDQUFDO0lBQ2xELE1BQU0sa0JBQWtCLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFbkYsdUNBQ0ssS0FBSyxLQUNSLE9BQU8sRUFBRSxLQUFLLEVBQ2QsU0FBUyxFQUFFLElBQUksRUFDZixNQUFNO1FBQ04sa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUFFLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxDQUFDLElBQ2xEO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbnMsIFNldEFzeW5jRXJyb3JBY3Rpb24gfSBmcm9tICcuLi8uLi9hY3Rpb25zJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2xTdGF0ZSwgRm9ybUNvbnRyb2xWYWx1ZVR5cGVzIH0gZnJvbSAnLi4vLi4vc3RhdGUnO1xyXG5pbXBvcnQgeyBkZWVwRXF1YWxzIH0gZnJvbSAnLi4vLi4vdXRpbCc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2V0QXN5bmNFcnJvclJlZHVjZXI8VFZhbHVlIGV4dGVuZHMgRm9ybUNvbnRyb2xWYWx1ZVR5cGVzPihcclxuICBzdGF0ZTogRm9ybUNvbnRyb2xTdGF0ZTxUVmFsdWU+LFxyXG4gIGFjdGlvbjogQWN0aW9uczxUVmFsdWU+LFxyXG4pOiBGb3JtQ29udHJvbFN0YXRlPFRWYWx1ZT4ge1xyXG4gIGlmIChhY3Rpb24udHlwZSAhPT0gU2V0QXN5bmNFcnJvckFjdGlvbi5UWVBFKSB7XHJcbiAgICByZXR1cm4gc3RhdGU7XHJcbiAgfVxyXG5cclxuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkge1xyXG4gICAgcmV0dXJuIHN0YXRlO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgbmFtZSA9IGAkJHthY3Rpb24ubmFtZX1gO1xyXG4gIGxldCB2YWx1ZSA9IGFjdGlvbi52YWx1ZTtcclxuXHJcbiAgaWYgKGRlZXBFcXVhbHMoc3RhdGUuZXJyb3JzW25hbWVdLCBhY3Rpb24udmFsdWUpKSB7XHJcbiAgICB2YWx1ZSA9IHN0YXRlLmVycm9yc1tuYW1lXTtcclxuICB9XHJcblxyXG4gIGNvbnN0IGVycm9ycyA9IHsgLi4uc3RhdGUuZXJyb3JzLCBbbmFtZV06IHZhbHVlIH07XHJcbiAgY29uc3QgcGVuZGluZ1ZhbGlkYXRpb25zID0gc3RhdGUucGVuZGluZ1ZhbGlkYXRpb25zLmZpbHRlcih2ID0+IHYgIT09IGFjdGlvbi5uYW1lKTtcclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIC4uLnN0YXRlLFxyXG4gICAgaXNWYWxpZDogZmFsc2UsXHJcbiAgICBpc0ludmFsaWQ6IHRydWUsXHJcbiAgICBlcnJvcnMsXHJcbiAgICBwZW5kaW5nVmFsaWRhdGlvbnMsXHJcbiAgICBpc1ZhbGlkYXRpb25QZW5kaW5nOiBwZW5kaW5nVmFsaWRhdGlvbnMubGVuZ3RoID4gMCxcclxuICB9O1xyXG59XHJcbiJdfQ==