UNPKG

ngrx-forms

Version:

Proper integration of forms in Angular 4 applications using ngrx

29 lines 4.74 kB
import { SetAsyncErrorAction } from '../../actions'; import { computeArrayState } from '../../state'; import { deepEquals } from '../../util'; import { childReducer } from './util'; export function setAsyncErrorReducer(state, action) { if (action.type !== SetAsyncErrorAction.TYPE) { return state; } if (action.controlId !== state.id) { return childReducer(state, action); } 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 computeArrayState(state.id, state.controls, state.value, errors, pendingValidations, state.userDefinedProperties, { wasOrShouldBeDirty: state.isDirty, wasOrShouldBeEnabled: state.isEnabled, wasOrShouldBeTouched: state.isTouched, wasOrShouldBeSubmitted: state.isSubmitted, }); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LWFzeW5jLWVycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FycmF5L3JlZHVjZXIvc2V0LWFzeW5jLWVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQWtCLE1BQU0sYUFBYSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUV0QyxNQUFNLFVBQVUsb0JBQW9CLENBQ2xDLEtBQTZCLEVBQzdCLE1BQXlCO0lBRXpCLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUU7UUFDNUMsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELElBQUksTUFBTSxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUMsRUFBRSxFQUFFO1FBQ2pDLE9BQU8sWUFBWSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztLQUNwQztJQUVELElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRTtRQUNwQixPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDL0IsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUV6QixJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNoRCxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUM1QjtJQUVELE1BQU0sTUFBTSxtQ0FBUSxLQUFLLENBQUMsTUFBTSxLQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxHQUFFLENBQUM7SUFDbEQsTUFBTSxrQkFBa0IsR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVuRixPQUFPLGlCQUFpQixDQUN0QixLQUFLLENBQUMsRUFBRSxFQUNSLEtBQUssQ0FBQyxRQUFRLEVBQ2QsS0FBSyxDQUFDLEtBQUssRUFDWCxNQUFNLEVBQ04sa0JBQWtCLEVBQ2xCLEtBQUssQ0FBQyxxQkFBcUIsRUFDM0I7UUFDRSxrQkFBa0IsRUFBRSxLQUFLLENBQUMsT0FBTztRQUNqQyxvQkFBb0IsRUFBRSxLQUFLLENBQUMsU0FBUztRQUNyQyxvQkFBb0IsRUFBRSxLQUFLLENBQUMsU0FBUztRQUNyQyxzQkFBc0IsRUFBRSxLQUFLLENBQUMsV0FBVztLQUMxQyxDQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9ucywgU2V0QXN5bmNFcnJvckFjdGlvbiB9IGZyb20gJy4uLy4uL2FjdGlvbnMnO1xyXG5pbXBvcnQgeyBjb21wdXRlQXJyYXlTdGF0ZSwgRm9ybUFycmF5U3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZSc7XHJcbmltcG9ydCB7IGRlZXBFcXVhbHMgfSBmcm9tICcuLi8uLi91dGlsJztcclxuaW1wb3J0IHsgY2hpbGRSZWR1Y2VyIH0gZnJvbSAnLi91dGlsJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRBc3luY0Vycm9yUmVkdWNlcjxUVmFsdWU+KFxyXG4gIHN0YXRlOiBGb3JtQXJyYXlTdGF0ZTxUVmFsdWU+LFxyXG4gIGFjdGlvbjogQWN0aW9uczxUVmFsdWVbXT4sXHJcbik6IEZvcm1BcnJheVN0YXRlPFRWYWx1ZT4ge1xyXG4gIGlmIChhY3Rpb24udHlwZSAhPT0gU2V0QXN5bmNFcnJvckFjdGlvbi5UWVBFKSB7XHJcbiAgICByZXR1cm4gc3RhdGU7XHJcbiAgfVxyXG5cclxuICBpZiAoYWN0aW9uLmNvbnRyb2xJZCAhPT0gc3RhdGUuaWQpIHtcclxuICAgIHJldHVybiBjaGlsZFJlZHVjZXIoc3RhdGUsIGFjdGlvbik7XHJcbiAgfVxyXG5cclxuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkge1xyXG4gICAgcmV0dXJuIHN0YXRlO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgbmFtZSA9IGAkJHthY3Rpb24ubmFtZX1gO1xyXG4gIGxldCB2YWx1ZSA9IGFjdGlvbi52YWx1ZTtcclxuXHJcbiAgaWYgKGRlZXBFcXVhbHMoc3RhdGUuZXJyb3JzW25hbWVdLCBhY3Rpb24udmFsdWUpKSB7XHJcbiAgICB2YWx1ZSA9IHN0YXRlLmVycm9yc1tuYW1lXTtcclxuICB9XHJcblxyXG4gIGNvbnN0IGVycm9ycyA9IHsgLi4uc3RhdGUuZXJyb3JzLCBbbmFtZV06IHZhbHVlIH07XHJcbiAgY29uc3QgcGVuZGluZ1ZhbGlkYXRpb25zID0gc3RhdGUucGVuZGluZ1ZhbGlkYXRpb25zLmZpbHRlcih2ID0+IHYgIT09IGFjdGlvbi5uYW1lKTtcclxuXHJcbiAgcmV0dXJuIGNvbXB1dGVBcnJheVN0YXRlKFxyXG4gICAgc3RhdGUuaWQsXHJcbiAgICBzdGF0ZS5jb250cm9scyxcclxuICAgIHN0YXRlLnZhbHVlLFxyXG4gICAgZXJyb3JzLFxyXG4gICAgcGVuZGluZ1ZhbGlkYXRpb25zLFxyXG4gICAgc3RhdGUudXNlckRlZmluZWRQcm9wZXJ0aWVzLFxyXG4gICAge1xyXG4gICAgICB3YXNPclNob3VsZEJlRGlydHk6IHN0YXRlLmlzRGlydHksXHJcbiAgICAgIHdhc09yU2hvdWxkQmVFbmFibGVkOiBzdGF0ZS5pc0VuYWJsZWQsXHJcbiAgICAgIHdhc09yU2hvdWxkQmVUb3VjaGVkOiBzdGF0ZS5pc1RvdWNoZWQsXHJcbiAgICAgIHdhc09yU2hvdWxkQmVTdWJtaXR0ZWQ6IHN0YXRlLmlzU3VibWl0dGVkLFxyXG4gICAgfSxcclxuICApO1xyXG59XHJcbiJdfQ==