ngrx-forms
Version:
Proper integration of forms in Angular 4 applications using ngrx
15 lines • 2.69 kB
JavaScript
import { SetUserDefinedPropertyAction } from '../../actions';
import { childReducer } from './util';
export function setUserDefinedPropertyReducer(state, action) {
if (action.type !== SetUserDefinedPropertyAction.TYPE) {
return state;
}
if (action.controlId !== state.id) {
return childReducer(state, action);
}
if (state.userDefinedProperties[action.name] === action.value) {
return state;
}
return Object.assign(Object.assign({}, state), { userDefinedProperties: Object.assign(Object.assign({}, state.userDefinedProperties), { [action.name]: action.value }) });
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LXVzZXItZGVmaW5lZC1wcm9wZXJ0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcnJheS9yZWR1Y2VyL3NldC11c2VyLWRlZmluZWQtcHJvcGVydHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFXLDRCQUE0QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFdEMsTUFBTSxVQUFVLDZCQUE2QixDQUMzQyxLQUE2QixFQUM3QixNQUF5QjtJQUV6QixJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssNEJBQTRCLENBQUMsSUFBSSxFQUFFO1FBQ3JELE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCxJQUFJLE1BQU0sQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDLEVBQUUsRUFBRTtRQUNqQyxPQUFPLFlBQVksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDcEM7SUFFRCxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssTUFBTSxDQUFDLEtBQUssRUFBRTtRQUM3RCxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsdUNBQ0ssS0FBSyxLQUNSLHFCQUFxQixrQ0FDaEIsS0FBSyxDQUFDLHFCQUFxQixLQUM5QixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUMsS0FBSyxPQUU3QjtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb25zLCBTZXRVc2VyRGVmaW5lZFByb3BlcnR5QWN0aW9uIH0gZnJvbSAnLi4vLi4vYWN0aW9ucyc7XHJcbmltcG9ydCB7IEZvcm1BcnJheVN0YXRlIH0gZnJvbSAnLi4vLi4vc3RhdGUnO1xyXG5pbXBvcnQgeyBjaGlsZFJlZHVjZXIgfSBmcm9tICcuL3V0aWwnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHNldFVzZXJEZWZpbmVkUHJvcGVydHlSZWR1Y2VyPFRWYWx1ZT4oXHJcbiAgc3RhdGU6IEZvcm1BcnJheVN0YXRlPFRWYWx1ZT4sXHJcbiAgYWN0aW9uOiBBY3Rpb25zPFRWYWx1ZVtdPixcclxuKTogRm9ybUFycmF5U3RhdGU8VFZhbHVlPiB7XHJcbiAgaWYgKGFjdGlvbi50eXBlICE9PSBTZXRVc2VyRGVmaW5lZFByb3BlcnR5QWN0aW9uLlRZUEUpIHtcclxuICAgIHJldHVybiBzdGF0ZTtcclxuICB9XHJcblxyXG4gIGlmIChhY3Rpb24uY29udHJvbElkICE9PSBzdGF0ZS5pZCkge1xyXG4gICAgcmV0dXJuIGNoaWxkUmVkdWNlcihzdGF0ZSwgYWN0aW9uKTtcclxuICB9XHJcblxyXG4gIGlmIChzdGF0ZS51c2VyRGVmaW5lZFByb3BlcnRpZXNbYWN0aW9uLm5hbWVdID09PSBhY3Rpb24udmFsdWUpIHtcclxuICAgIHJldHVybiBzdGF0ZTtcclxuICB9XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICAuLi5zdGF0ZSxcclxuICAgIHVzZXJEZWZpbmVkUHJvcGVydGllczoge1xyXG4gICAgICAuLi5zdGF0ZS51c2VyRGVmaW5lZFByb3BlcnRpZXMsXHJcbiAgICAgIFthY3Rpb24ubmFtZV06IGFjdGlvbi52YWx1ZSxcclxuICAgIH0sXHJcbiAgfTtcclxufVxyXG4iXX0=