UNPKG

ngrx-forms

Version:

Proper integration of forms in Angular 4 applications using ngrx

16 lines 5.88 kB
import { SetErrorsAction } from '../actions'; import { formStateReducer } from '../reducer'; import { isFormState } from '../state'; import { ensureState } from './util'; export function setErrors(errorsOrErrorsArrayOrState, errorsOrErrorsArray, ...rest) { if (isFormState(errorsOrErrorsArrayOrState)) { const state = errorsOrErrorsArrayOrState; const errorsArray = Array.isArray(errorsOrErrorsArray) ? errorsOrErrorsArray : [errorsOrErrorsArray]; const errors = errorsArray.concat(...rest).reduce((agg, err) => Object.assign(agg, err), {}); return formStateReducer(state, new SetErrorsAction(state.id, errors)); } let errorsArray = Array.isArray(errorsOrErrorsArrayOrState) ? errorsOrErrorsArrayOrState : [errorsOrErrorsArrayOrState]; errorsArray = errorsOrErrorsArray === undefined ? errorsArray : errorsArray.concat(errorsOrErrorsArray); return (s) => setErrors(ensureState(s), errorsArray.concat(rest)); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LWVycm9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91cGRhdGUtZnVuY3Rpb24vc2V0LWVycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM5QyxPQUFPLEVBQW1DLFdBQVcsRUFBb0IsTUFBTSxVQUFVLENBQUM7QUFDMUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQWlDckMsTUFBTSxVQUFVLFNBQVMsQ0FDdkIsMEJBQXFGLEVBQ3JGLG1CQUEyRCxFQUMzRCxHQUFHLElBQXdCO0lBRTNCLElBQUksV0FBVyxDQUFTLDBCQUEwQixDQUFDLEVBQUU7UUFDbkQsTUFBTSxLQUFLLEdBQUcsMEJBQTBELENBQUM7UUFDekUsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBb0IsQ0FBQyxDQUFDO1FBQ3RHLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFzQixDQUFDLENBQUM7UUFFakgsT0FBTyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0tBQ3ZFO0lBRUQsSUFBSSxXQUFXLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQ3hILFdBQVcsR0FBRyxtQkFBbUIsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3hHLE9BQU8sQ0FBQyxDQUErQixFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQVMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUMxRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2V0RXJyb3JzQWN0aW9uIH0gZnJvbSAnLi4vYWN0aW9ucyc7XHJcbmltcG9ydCB7IGZvcm1TdGF0ZVJlZHVjZXIgfSBmcm9tICcuLi9yZWR1Y2VyJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sU3RhdGUsIEZvcm1TdGF0ZSwgaXNGb3JtU3RhdGUsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICcuLi9zdGF0ZSc7XHJcbmltcG9ydCB7IGVuc3VyZVN0YXRlIH0gZnJvbSAnLi91dGlsJztcclxuXHJcbi8qKlxyXG4gKiBUaGlzIHVwZGF0ZSBmdW5jdGlvbiB0YWtlcyBhIGZvcm0gc3RhdGUgYW5kIGEgbnVtYmVyIG9mIGVycm9yIG9iamVjdHMgYW5kIHNldHMgdGhlXHJcbiAqIGVycm9ycyBvZiB0aGUgc3RhdGUuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0RXJyb3JzPFRWYWx1ZT4oXHJcbiAgc3RhdGU6IEFic3RyYWN0Q29udHJvbFN0YXRlPFRWYWx1ZT4sXHJcbiAgZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzLFxyXG4gIC4uLnJlc3Q6IFZhbGlkYXRpb25FcnJvcnNbXVxyXG4pOiBGb3JtU3RhdGU8VFZhbHVlPjtcclxuXHJcbi8qKlxyXG4gKiBUaGlzIHVwZGF0ZSBmdW5jdGlvbiB0YWtlcyBhIGZvcm0gc3RhdGUgYW5kIGFuIGFycmF5IG9mIGVycm9yIG9iamVjdHMgYW5kIHNldHMgdGhlXHJcbiAqIGVycm9ycyBvZiB0aGUgc3RhdGUuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0RXJyb3JzPFRWYWx1ZT4oXHJcbiAgc3RhdGU6IEFic3RyYWN0Q29udHJvbFN0YXRlPFRWYWx1ZT4sXHJcbiAgZXJyb3JzQXJyYXk6IFZhbGlkYXRpb25FcnJvcnNbXSxcclxuKTogRm9ybVN0YXRlPFRWYWx1ZT47XHJcblxyXG4vKipcclxuICogVGhpcyB1cGRhdGUgZnVuY3Rpb24gdGFrZXMgYSBudW1iZXIgb2YgZXJyb3Igb2JqZWN0cyBhbmQgcmV0dXJucyBhIHByb2plY3Rpb25cclxuICogZnVuY3Rpb24gdGhhdCBzZXRzIHRoZSBlcnJvcnMgb2YgYSBmb3JtIHN0YXRlLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNldEVycm9ycyhlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMsIC4uLnJlc3Q6IFZhbGlkYXRpb25FcnJvcnNbXSk6IDxUVmFsdWU+KHN0YXRlOiBBYnN0cmFjdENvbnRyb2xTdGF0ZTxUVmFsdWU+KSA9PiBGb3JtU3RhdGU8VFZhbHVlPjtcclxuXHJcbi8qKlxyXG4gKiBUaGlzIHVwZGF0ZSBmdW5jdGlvbiB0YWtlcyBhbiBhcnJheSBvZiBlcnJvciBvYmplY3RzIGFuZCByZXR1cm5zIGEgcHJvamVjdGlvblxyXG4gKiBmdW5jdGlvbiB0aGF0IHNldHMgdGhlIGVycm9ycyBvZiBhIGZvcm0gc3RhdGUuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0RXJyb3JzKGVycm9yc0FycmF5OiBWYWxpZGF0aW9uRXJyb3JzW10pOiA8VFZhbHVlPihzdGF0ZTogQWJzdHJhY3RDb250cm9sU3RhdGU8VFZhbHVlPikgPT4gRm9ybVN0YXRlPFRWYWx1ZT47XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2V0RXJyb3JzPFRWYWx1ZT4oXHJcbiAgZXJyb3JzT3JFcnJvcnNBcnJheU9yU3RhdGU6IFZhbGlkYXRpb25FcnJvcnMgfCBWYWxpZGF0aW9uRXJyb3JzW10gfCBGb3JtU3RhdGU8VFZhbHVlPixcclxuICBlcnJvcnNPckVycm9yc0FycmF5PzogVmFsaWRhdGlvbkVycm9ycyB8IFZhbGlkYXRpb25FcnJvcnNbXSxcclxuICAuLi5yZXN0OiBWYWxpZGF0aW9uRXJyb3JzW11cclxuKSB7XHJcbiAgaWYgKGlzRm9ybVN0YXRlPFRWYWx1ZT4oZXJyb3JzT3JFcnJvcnNBcnJheU9yU3RhdGUpKSB7XHJcbiAgICBjb25zdCBzdGF0ZSA9IGVycm9yc09yRXJyb3JzQXJyYXlPclN0YXRlIGFzIEFic3RyYWN0Q29udHJvbFN0YXRlPFRWYWx1ZT47XHJcbiAgICBjb25zdCBlcnJvcnNBcnJheSA9IEFycmF5LmlzQXJyYXkoZXJyb3JzT3JFcnJvcnNBcnJheSkgPyBlcnJvcnNPckVycm9yc0FycmF5IDogW2Vycm9yc09yRXJyb3JzQXJyYXkhXTtcclxuICAgIGNvbnN0IGVycm9ycyA9IGVycm9yc0FycmF5LmNvbmNhdCguLi5yZXN0KS5yZWR1Y2UoKGFnZywgZXJyKSA9PiBPYmplY3QuYXNzaWduKGFnZywgZXJyKSwge30gYXMgVmFsaWRhdGlvbkVycm9ycyk7XHJcblxyXG4gICAgcmV0dXJuIGZvcm1TdGF0ZVJlZHVjZXIoc3RhdGUsIG5ldyBTZXRFcnJvcnNBY3Rpb24oc3RhdGUuaWQsIGVycm9ycykpO1xyXG4gIH1cclxuXHJcbiAgbGV0IGVycm9yc0FycmF5ID0gQXJyYXkuaXNBcnJheShlcnJvcnNPckVycm9yc0FycmF5T3JTdGF0ZSkgPyBlcnJvcnNPckVycm9yc0FycmF5T3JTdGF0ZSA6IFtlcnJvcnNPckVycm9yc0FycmF5T3JTdGF0ZV07XHJcbiAgZXJyb3JzQXJyYXkgPSBlcnJvcnNPckVycm9yc0FycmF5ID09PSB1bmRlZmluZWQgPyBlcnJvcnNBcnJheSA6IGVycm9yc0FycmF5LmNvbmNhdChlcnJvcnNPckVycm9yc0FycmF5KTtcclxuICByZXR1cm4gKHM6IEFic3RyYWN0Q29udHJvbFN0YXRlPFRWYWx1ZT4pID0+IHNldEVycm9yczxUVmFsdWU+KGVuc3VyZVN0YXRlKHMpLCBlcnJvcnNBcnJheS5jb25jYXQocmVzdCkpO1xyXG59XHJcbiJdfQ==