ngrx-forms
Version:
Proper integration of forms in Angular 4 applications using ngrx
15 lines • 2.72 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LXVzZXItZGVmaW5lZC1wcm9wZXJ0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9ncm91cC9yZWR1Y2VyL3NldC11c2VyLWRlZmluZWQtcHJvcGVydHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFXLDRCQUE0QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFdEMsTUFBTSxVQUFVLDZCQUE2QixDQUMzQyxLQUE2QixFQUM3QixNQUF1QjtJQUV2QixJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssNEJBQTRCLENBQUMsSUFBSSxFQUFFO1FBQ3JELE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCxJQUFJLE1BQU0sQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDLEVBQUUsRUFBRTtRQUNqQyxPQUFPLFlBQVksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDcEM7SUFFRCxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssTUFBTSxDQUFDLEtBQUssRUFBRTtRQUM3RCxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsdUNBQ0ssS0FBSyxLQUNSLHFCQUFxQixrQ0FDaEIsS0FBSyxDQUFDLHFCQUFxQixLQUM5QixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUMsS0FBSyxPQUU3QjtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb25zLCBTZXRVc2VyRGVmaW5lZFByb3BlcnR5QWN0aW9uIH0gZnJvbSAnLi4vLi4vYWN0aW9ucyc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cFN0YXRlLCBLZXlWYWx1ZSB9IGZyb20gJy4uLy4uL3N0YXRlJztcclxuaW1wb3J0IHsgY2hpbGRSZWR1Y2VyIH0gZnJvbSAnLi91dGlsJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRVc2VyRGVmaW5lZFByb3BlcnR5UmVkdWNlcjxUVmFsdWUgZXh0ZW5kcyBLZXlWYWx1ZT4oXHJcbiAgc3RhdGU6IEZvcm1Hcm91cFN0YXRlPFRWYWx1ZT4sXHJcbiAgYWN0aW9uOiBBY3Rpb25zPFRWYWx1ZT4sXHJcbik6IEZvcm1Hcm91cFN0YXRlPFRWYWx1ZT4ge1xyXG4gIGlmIChhY3Rpb24udHlwZSAhPT0gU2V0VXNlckRlZmluZWRQcm9wZXJ0eUFjdGlvbi5UWVBFKSB7XHJcbiAgICByZXR1cm4gc3RhdGU7XHJcbiAgfVxyXG5cclxuICBpZiAoYWN0aW9uLmNvbnRyb2xJZCAhPT0gc3RhdGUuaWQpIHtcclxuICAgIHJldHVybiBjaGlsZFJlZHVjZXIoc3RhdGUsIGFjdGlvbik7XHJcbiAgfVxyXG5cclxuICBpZiAoc3RhdGUudXNlckRlZmluZWRQcm9wZXJ0aWVzW2FjdGlvbi5uYW1lXSA9PT0gYWN0aW9uLnZhbHVlKSB7XHJcbiAgICByZXR1cm4gc3RhdGU7XHJcbiAgfVxyXG5cclxuICByZXR1cm4ge1xyXG4gICAgLi4uc3RhdGUsXHJcbiAgICB1c2VyRGVmaW5lZFByb3BlcnRpZXM6IHtcclxuICAgICAgLi4uc3RhdGUudXNlckRlZmluZWRQcm9wZXJ0aWVzLFxyXG4gICAgICBbYWN0aW9uLm5hbWVdOiBhY3Rpb24udmFsdWUsXHJcbiAgICB9LFxyXG4gIH07XHJcbn1cclxuIl19