UNPKG

ngrx-forms

Version:

Proper integration of forms in Angular 4 applications using ngrx

28 lines 4.68 kB
import { ClearAsyncErrorAction } from '../../actions'; import { computeGroupState } from '../../state'; import { childReducer } from './util'; export function clearAsyncErrorReducer(state, action) { if (action.type !== ClearAsyncErrorAction.TYPE) { return state; } if (action.controlId !== state.id) { return childReducer(state, action); } const name = `$${action.name}`; let errors = state.errors; if (errors.hasOwnProperty(name)) { errors = Object.assign({}, state.errors); delete errors[name]; } const pendingValidations = state.pendingValidations.filter(v => v !== action.name); if (errors === state.errors && pendingValidations.length === state.pendingValidations.length) { return state; } 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXItYXN5bmMtZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZ3JvdXAvcmVkdWNlci9jbGVhci1hc3luYy1lcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUE0QixNQUFNLGFBQWEsQ0FBQztBQUMxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRXRDLE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsS0FBNkIsRUFDN0IsTUFBdUI7SUFFdkIsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLHFCQUFxQixDQUFDLElBQUksRUFBRTtRQUM5QyxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsSUFBSSxNQUFNLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxFQUFFLEVBQUU7UUFDakMsT0FBTyxZQUFZLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0tBQ3BDO0lBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFL0IsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUUxQixJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDL0IsTUFBTSxxQkFBUSxLQUFLLENBQUMsTUFBTSxDQUFFLENBQUM7UUFDN0IsT0FBUSxNQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDOUI7SUFFRCxNQUFNLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRW5GLElBQUksTUFBTSxLQUFLLEtBQUssQ0FBQyxNQUFNLElBQUksa0JBQWtCLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUU7UUFDNUYsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELE9BQU8saUJBQWlCLENBQ3RCLEtBQUssQ0FBQyxFQUFFLEVBQ1IsS0FBSyxDQUFDLFFBQVEsRUFDZCxLQUFLLENBQUMsS0FBSyxFQUNYLE1BQU0sRUFDTixrQkFBa0IsRUFDbEIsS0FBSyxDQUFDLHFCQUFxQixFQUMzQjtRQUNFLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxPQUFPO1FBQ2pDLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxTQUFTO1FBQ3JDLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxTQUFTO1FBQ3JDLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxXQUFXO0tBQzFDLENBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb25zLCBDbGVhckFzeW5jRXJyb3JBY3Rpb24gfSBmcm9tICcuLi8uLi9hY3Rpb25zJztcclxuaW1wb3J0IHsgY29tcHV0ZUdyb3VwU3RhdGUsIEZvcm1Hcm91cFN0YXRlLCBLZXlWYWx1ZSB9IGZyb20gJy4uLy4uL3N0YXRlJztcclxuaW1wb3J0IHsgY2hpbGRSZWR1Y2VyIH0gZnJvbSAnLi91dGlsJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjbGVhckFzeW5jRXJyb3JSZWR1Y2VyPFRWYWx1ZSBleHRlbmRzIEtleVZhbHVlPihcclxuICBzdGF0ZTogRm9ybUdyb3VwU3RhdGU8VFZhbHVlPixcclxuICBhY3Rpb246IEFjdGlvbnM8VFZhbHVlPixcclxuKTogRm9ybUdyb3VwU3RhdGU8VFZhbHVlPiB7XHJcbiAgaWYgKGFjdGlvbi50eXBlICE9PSBDbGVhckFzeW5jRXJyb3JBY3Rpb24uVFlQRSkge1xyXG4gICAgcmV0dXJuIHN0YXRlO1xyXG4gIH1cclxuXHJcbiAgaWYgKGFjdGlvbi5jb250cm9sSWQgIT09IHN0YXRlLmlkKSB7XHJcbiAgICByZXR1cm4gY2hpbGRSZWR1Y2VyKHN0YXRlLCBhY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgbmFtZSA9IGAkJHthY3Rpb24ubmFtZX1gO1xyXG5cclxuICBsZXQgZXJyb3JzID0gc3RhdGUuZXJyb3JzO1xyXG5cclxuICBpZiAoZXJyb3JzLmhhc093blByb3BlcnR5KG5hbWUpKSB7XHJcbiAgICBlcnJvcnMgPSB7IC4uLnN0YXRlLmVycm9ycyB9O1xyXG4gICAgZGVsZXRlIChlcnJvcnMgYXMgYW55KVtuYW1lXTtcclxuICB9XHJcblxyXG4gIGNvbnN0IHBlbmRpbmdWYWxpZGF0aW9ucyA9IHN0YXRlLnBlbmRpbmdWYWxpZGF0aW9ucy5maWx0ZXIodiA9PiB2ICE9PSBhY3Rpb24ubmFtZSk7XHJcblxyXG4gIGlmIChlcnJvcnMgPT09IHN0YXRlLmVycm9ycyAmJiBwZW5kaW5nVmFsaWRhdGlvbnMubGVuZ3RoID09PSBzdGF0ZS5wZW5kaW5nVmFsaWRhdGlvbnMubGVuZ3RoKSB7XHJcbiAgICByZXR1cm4gc3RhdGU7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gY29tcHV0ZUdyb3VwU3RhdGUoXHJcbiAgICBzdGF0ZS5pZCxcclxuICAgIHN0YXRlLmNvbnRyb2xzLFxyXG4gICAgc3RhdGUudmFsdWUsXHJcbiAgICBlcnJvcnMsXHJcbiAgICBwZW5kaW5nVmFsaWRhdGlvbnMsXHJcbiAgICBzdGF0ZS51c2VyRGVmaW5lZFByb3BlcnRpZXMsXHJcbiAgICB7XHJcbiAgICAgIHdhc09yU2hvdWxkQmVEaXJ0eTogc3RhdGUuaXNEaXJ0eSxcclxuICAgICAgd2FzT3JTaG91bGRCZUVuYWJsZWQ6IHN0YXRlLmlzRW5hYmxlZCxcclxuICAgICAgd2FzT3JTaG91bGRCZVRvdWNoZWQ6IHN0YXRlLmlzVG91Y2hlZCxcclxuICAgICAgd2FzT3JTaG91bGRCZVN1Ym1pdHRlZDogc3RhdGUuaXNTdWJtaXR0ZWQsXHJcbiAgICB9LFxyXG4gICk7XHJcbn1cclxuIl19