ngrx-forms
Version:
Proper integration of forms in Angular 4 applications using ngrx
21 lines • 3.58 kB
JavaScript
import { ResetAction } from '../../actions';
import { computeArrayState } 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 computeArrayState(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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXJyYXkvcmVkdWNlci9yZXNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBa0IsTUFBTSxhQUFhLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUU5RCxNQUFNLFVBQVUsWUFBWSxDQUMxQixLQUE2QixFQUM3QixNQUF5QjtJQUV6QixJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLElBQUksRUFBRTtRQUNwQyxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsSUFBSSxNQUFNLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxFQUFFLEVBQUU7UUFDakMsT0FBTyxZQUFZLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0tBQ3BDO0lBRUQsSUFBSSxLQUFLLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRTtRQUNoRSxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsT0FBTyxpQkFBaUIsQ0FDdEIsS0FBSyxDQUFDLEVBQUUsRUFDUixzQkFBc0IsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsRUFDL0UsS0FBSyxDQUFDLEtBQUssRUFDWCxLQUFLLENBQUMsTUFBTSxFQUNaLEtBQUssQ0FBQyxrQkFBa0IsRUFDeEIsS0FBSyxDQUFDLHFCQUFxQixFQUMzQjtRQUNFLGtCQUFrQixFQUFFLEtBQUs7UUFDekIsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLFNBQVM7UUFDckMsb0JBQW9CLEVBQUUsS0FBSztRQUMzQixzQkFBc0IsRUFBRSxLQUFLO0tBQzlCLENBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb25zLCBSZXNldEFjdGlvbiB9IGZyb20gJy4uLy4uL2FjdGlvbnMnO1xyXG5pbXBvcnQgeyBjb21wdXRlQXJyYXlTdGF0ZSwgRm9ybUFycmF5U3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZSc7XHJcbmltcG9ydCB7IGNoaWxkUmVkdWNlciwgZGlzcGF0Y2hBY3Rpb25QZXJDaGlsZCB9IGZyb20gJy4vdXRpbCc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcmVzZXRSZWR1Y2VyPFRWYWx1ZT4oXHJcbiAgc3RhdGU6IEZvcm1BcnJheVN0YXRlPFRWYWx1ZT4sXHJcbiAgYWN0aW9uOiBBY3Rpb25zPFRWYWx1ZVtdPixcclxuKTogRm9ybUFycmF5U3RhdGU8VFZhbHVlPiB7XHJcbiAgaWYgKGFjdGlvbi50eXBlICE9PSBSZXNldEFjdGlvbi5UWVBFKSB7XHJcbiAgICByZXR1cm4gc3RhdGU7XHJcbiAgfVxyXG5cclxuICBpZiAoYWN0aW9uLmNvbnRyb2xJZCAhPT0gc3RhdGUuaWQpIHtcclxuICAgIHJldHVybiBjaGlsZFJlZHVjZXIoc3RhdGUsIGFjdGlvbik7XHJcbiAgfVxyXG5cclxuICBpZiAoc3RhdGUuaXNQcmlzdGluZSAmJiBzdGF0ZS5pc1VudG91Y2hlZCAmJiBzdGF0ZS5pc1Vuc3VibWl0dGVkKSB7XHJcbiAgICByZXR1cm4gc3RhdGU7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gY29tcHV0ZUFycmF5U3RhdGUoXHJcbiAgICBzdGF0ZS5pZCxcclxuICAgIGRpc3BhdGNoQWN0aW9uUGVyQ2hpbGQoc3RhdGUuY29udHJvbHMsIGNvbnRyb2xJZCA9PiBuZXcgUmVzZXRBY3Rpb24oY29udHJvbElkKSksXHJcbiAgICBzdGF0ZS52YWx1ZSxcclxuICAgIHN0YXRlLmVycm9ycyxcclxuICAgIHN0YXRlLnBlbmRpbmdWYWxpZGF0aW9ucyxcclxuICAgIHN0YXRlLnVzZXJEZWZpbmVkUHJvcGVydGllcyxcclxuICAgIHtcclxuICAgICAgd2FzT3JTaG91bGRCZURpcnR5OiBmYWxzZSxcclxuICAgICAgd2FzT3JTaG91bGRCZUVuYWJsZWQ6IHN0YXRlLmlzRW5hYmxlZCxcclxuICAgICAgd2FzT3JTaG91bGRCZVRvdWNoZWQ6IGZhbHNlLFxyXG4gICAgICB3YXNPclNob3VsZEJlU3VibWl0dGVkOiBmYWxzZSxcclxuICAgIH0sXHJcbiAgKTtcclxufVxyXG4iXX0=