UNPKG

ngrx-forms

Version:

Proper integration of forms in Angular 4 applications using ngrx

21 lines 3.61 kB
import { ResetAction } from '../../actions'; import { computeGroupState } from '../../state'; import { childReducer, dispatchActionPerChild } from './util'; export function resetReducer(state, action) { if (action.type !== ResetAction.TYPE) { return state; } if (action.controlId !== state.id) { return childReducer(state, action); } if (state.isPristine && state.isUntouched && state.isUnsubmitted) { return state; } return computeGroupState(state.id, dispatchActionPerChild(state.controls, controlId => new ResetAction(controlId)), state.value, state.errors, state.pendingValidations, state.userDefinedProperties, { wasOrShouldBeDirty: false, wasOrShouldBeEnabled: state.isEnabled, wasOrShouldBeTouched: false, wasOrShouldBeSubmitted: false, }); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZ3JvdXAvcmVkdWNlci9yZXNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBNEIsTUFBTSxhQUFhLENBQUM7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUU5RCxNQUFNLFVBQVUsWUFBWSxDQUMxQixLQUE2QixFQUM3QixNQUF1QjtJQUV2QixJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLElBQUksRUFBRTtRQUNwQyxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsSUFBSSxNQUFNLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxFQUFFLEVBQUU7UUFDakMsT0FBTyxZQUFZLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0tBQ3BDO0lBRUQsSUFBSSxLQUFLLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRTtRQUNoRSxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsT0FBTyxpQkFBaUIsQ0FDdEIsS0FBSyxDQUFDLEVBQUUsRUFDUixzQkFBc0IsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsRUFDL0UsS0FBSyxDQUFDLEtBQUssRUFDWCxLQUFLLENBQUMsTUFBTSxFQUNaLEtBQUssQ0FBQyxrQkFBa0IsRUFDeEIsS0FBSyxDQUFDLHFCQUFxQixFQUMzQjtRQUNFLGtCQUFrQixFQUFFLEtBQUs7UUFDekIsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLFNBQVM7UUFDckMsb0JBQW9CLEVBQUUsS0FBSztRQUMzQixzQkFBc0IsRUFBRSxLQUFLO0tBQzlCLENBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb25zLCBSZXNldEFjdGlvbiB9IGZyb20gJy4uLy4uL2FjdGlvbnMnO1xyXG5pbXBvcnQgeyBjb21wdXRlR3JvdXBTdGF0ZSwgRm9ybUdyb3VwU3RhdGUsIEtleVZhbHVlIH0gZnJvbSAnLi4vLi4vc3RhdGUnO1xyXG5pbXBvcnQgeyBjaGlsZFJlZHVjZXIsIGRpc3BhdGNoQWN0aW9uUGVyQ2hpbGQgfSBmcm9tICcuL3V0aWwnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlc2V0UmVkdWNlcjxUVmFsdWUgZXh0ZW5kcyBLZXlWYWx1ZT4oXHJcbiAgc3RhdGU6IEZvcm1Hcm91cFN0YXRlPFRWYWx1ZT4sXHJcbiAgYWN0aW9uOiBBY3Rpb25zPFRWYWx1ZT4sXHJcbik6IEZvcm1Hcm91cFN0YXRlPFRWYWx1ZT4ge1xyXG4gIGlmIChhY3Rpb24udHlwZSAhPT0gUmVzZXRBY3Rpb24uVFlQRSkge1xyXG4gICAgcmV0dXJuIHN0YXRlO1xyXG4gIH1cclxuXHJcbiAgaWYgKGFjdGlvbi5jb250cm9sSWQgIT09IHN0YXRlLmlkKSB7XHJcbiAgICByZXR1cm4gY2hpbGRSZWR1Y2VyKHN0YXRlLCBhY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgaWYgKHN0YXRlLmlzUHJpc3RpbmUgJiYgc3RhdGUuaXNVbnRvdWNoZWQgJiYgc3RhdGUuaXNVbnN1Ym1pdHRlZCkge1xyXG4gICAgcmV0dXJuIHN0YXRlO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGNvbXB1dGVHcm91cFN0YXRlKFxyXG4gICAgc3RhdGUuaWQsXHJcbiAgICBkaXNwYXRjaEFjdGlvblBlckNoaWxkKHN0YXRlLmNvbnRyb2xzLCBjb250cm9sSWQgPT4gbmV3IFJlc2V0QWN0aW9uKGNvbnRyb2xJZCkpLFxyXG4gICAgc3RhdGUudmFsdWUsXHJcbiAgICBzdGF0ZS5lcnJvcnMsXHJcbiAgICBzdGF0ZS5wZW5kaW5nVmFsaWRhdGlvbnMsXHJcbiAgICBzdGF0ZS51c2VyRGVmaW5lZFByb3BlcnRpZXMsXHJcbiAgICB7XHJcbiAgICAgIHdhc09yU2hvdWxkQmVEaXJ0eTogZmFsc2UsXHJcbiAgICAgIHdhc09yU2hvdWxkQmVFbmFibGVkOiBzdGF0ZS5pc0VuYWJsZWQsXHJcbiAgICAgIHdhc09yU2hvdWxkQmVUb3VjaGVkOiBmYWxzZSxcclxuICAgICAgd2FzT3JTaG91bGRCZVN1Ym1pdHRlZDogZmFsc2UsXHJcbiAgICB9LFxyXG4gICk7XHJcbn1cclxuIl19