UNPKG

ngrx-forms

Version:

Proper integration of forms in Angular 4 applications using ngrx

29 lines 4.78 kB
import { SetAsyncErrorAction } from '../../actions'; import { computeGroupState } 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 computeGroupState(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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LWFzeW5jLWVycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2dyb3VwL3JlZHVjZXIvc2V0LWFzeW5jLWVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQTRCLE1BQU0sYUFBYSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUV0QyxNQUFNLFVBQVUsb0JBQW9CLENBQ2xDLEtBQTZCLEVBQzdCLE1BQXVCO0lBRXZCLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUU7UUFDNUMsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELElBQUksTUFBTSxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUMsRUFBRSxFQUFFO1FBQ2pDLE9BQU8sWUFBWSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztLQUNwQztJQUVELElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRTtRQUNwQixPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDL0IsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUV6QixJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNoRCxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUM1QjtJQUVELE1BQU0sTUFBTSxtQ0FBUSxLQUFLLENBQUMsTUFBTSxLQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxHQUFFLENBQUM7SUFDbEQsTUFBTSxrQkFBa0IsR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVuRixPQUFPLGlCQUFpQixDQUN0QixLQUFLLENBQUMsRUFBRSxFQUNSLEtBQUssQ0FBQyxRQUFRLEVBQ2QsS0FBSyxDQUFDLEtBQUssRUFDWCxNQUFNLEVBQ04sa0JBQWtCLEVBQ2xCLEtBQUssQ0FBQyxxQkFBcUIsRUFDM0I7UUFDRSxrQkFBa0IsRUFBRSxLQUFLLENBQUMsT0FBTztRQUNqQyxvQkFBb0IsRUFBRSxLQUFLLENBQUMsU0FBUztRQUNyQyxvQkFBb0IsRUFBRSxLQUFLLENBQUMsU0FBUztRQUNyQyxzQkFBc0IsRUFBRSxLQUFLLENBQUMsV0FBVztLQUMxQyxDQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9ucywgU2V0QXN5bmNFcnJvckFjdGlvbiB9IGZyb20gJy4uLy4uL2FjdGlvbnMnO1xyXG5pbXBvcnQgeyBjb21wdXRlR3JvdXBTdGF0ZSwgRm9ybUdyb3VwU3RhdGUsIEtleVZhbHVlIH0gZnJvbSAnLi4vLi4vc3RhdGUnO1xyXG5pbXBvcnQgeyBkZWVwRXF1YWxzIH0gZnJvbSAnLi4vLi4vdXRpbCc7XHJcbmltcG9ydCB7IGNoaWxkUmVkdWNlciB9IGZyb20gJy4vdXRpbCc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2V0QXN5bmNFcnJvclJlZHVjZXI8VFZhbHVlIGV4dGVuZHMgS2V5VmFsdWU+KFxyXG4gIHN0YXRlOiBGb3JtR3JvdXBTdGF0ZTxUVmFsdWU+LFxyXG4gIGFjdGlvbjogQWN0aW9uczxUVmFsdWU+LFxyXG4pOiBGb3JtR3JvdXBTdGF0ZTxUVmFsdWU+IHtcclxuICBpZiAoYWN0aW9uLnR5cGUgIT09IFNldEFzeW5jRXJyb3JBY3Rpb24uVFlQRSkge1xyXG4gICAgcmV0dXJuIHN0YXRlO1xyXG4gIH1cclxuXHJcbiAgaWYgKGFjdGlvbi5jb250cm9sSWQgIT09IHN0YXRlLmlkKSB7XHJcbiAgICByZXR1cm4gY2hpbGRSZWR1Y2VyKHN0YXRlLCBhY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgaWYgKHN0YXRlLmlzRGlzYWJsZWQpIHtcclxuICAgIHJldHVybiBzdGF0ZTtcclxuICB9XHJcblxyXG4gIGNvbnN0IG5hbWUgPSBgJCR7YWN0aW9uLm5hbWV9YDtcclxuICBsZXQgdmFsdWUgPSBhY3Rpb24udmFsdWU7XHJcblxyXG4gIGlmIChkZWVwRXF1YWxzKHN0YXRlLmVycm9yc1tuYW1lXSwgYWN0aW9uLnZhbHVlKSkge1xyXG4gICAgdmFsdWUgPSBzdGF0ZS5lcnJvcnNbbmFtZV07XHJcbiAgfVxyXG5cclxuICBjb25zdCBlcnJvcnMgPSB7IC4uLnN0YXRlLmVycm9ycywgW25hbWVdOiB2YWx1ZSB9O1xyXG4gIGNvbnN0IHBlbmRpbmdWYWxpZGF0aW9ucyA9IHN0YXRlLnBlbmRpbmdWYWxpZGF0aW9ucy5maWx0ZXIodiA9PiB2ICE9PSBhY3Rpb24ubmFtZSk7XHJcblxyXG4gIHJldHVybiBjb21wdXRlR3JvdXBTdGF0ZShcclxuICAgIHN0YXRlLmlkLFxyXG4gICAgc3RhdGUuY29udHJvbHMsXHJcbiAgICBzdGF0ZS52YWx1ZSxcclxuICAgIGVycm9ycyxcclxuICAgIHBlbmRpbmdWYWxpZGF0aW9ucyxcclxuICAgIHN0YXRlLnVzZXJEZWZpbmVkUHJvcGVydGllcyxcclxuICAgIHtcclxuICAgICAgd2FzT3JTaG91bGRCZURpcnR5OiBzdGF0ZS5pc0RpcnR5LFxyXG4gICAgICB3YXNPclNob3VsZEJlRW5hYmxlZDogc3RhdGUuaXNFbmFibGVkLFxyXG4gICAgICB3YXNPclNob3VsZEJlVG91Y2hlZDogc3RhdGUuaXNUb3VjaGVkLFxyXG4gICAgICB3YXNPclNob3VsZEJlU3VibWl0dGVkOiBzdGF0ZS5pc1N1Ym1pdHRlZCxcclxuICAgIH0sXHJcbiAgKTtcclxufVxyXG4iXX0=