UNPKG

ngrx-forms

Version:

Proper integration of forms in Angular 4 applications using ngrx

23 lines 3.51 kB
import { formArrayReducer } from '../array/reducer'; import { formControlReducer } from '../control/reducer'; import { formGroupReducer } from '../group/reducer'; import { isArrayState, isGroupState } from '../state'; export function abstractControlReducer(state, action) { if (isArrayState(state)) { return formArrayReducer(state, action); } if (isGroupState(state)) { return formGroupReducer(state, action); } return formControlReducer(state, action); } export function compose(...fns) { return (t) => fns.reduce((res, f) => f(res), t); } export function ensureState(state) { if (!state) { throw new Error('state must not be undefined!'); } return state; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91cGRhdGUtZnVuY3Rpb24vdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQXdCLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFLNUUsTUFBTSxVQUFVLHNCQUFzQixDQUFTLEtBQW1DLEVBQUUsTUFBYztJQUNoRyxJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUN2QixPQUFPLGdCQUFnQixDQUFDLEtBQUssRUFBRSxNQUFhLENBQVEsQ0FBQztLQUN0RDtJQUVELElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3ZCLE9BQU8sZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0tBQ3hDO0lBRUQsT0FBTyxrQkFBa0IsQ0FBQyxLQUFZLEVBQUUsTUFBTSxDQUFRLENBQUM7QUFDekQsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQUksR0FBRyxHQUFvQjtJQUNoRCxPQUFPLENBQUMsQ0FBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFTLEtBQXlCO0lBQzNELElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDVixNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7S0FDakQ7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XHJcblxyXG5pbXBvcnQgeyBmb3JtQXJyYXlSZWR1Y2VyIH0gZnJvbSAnLi4vYXJyYXkvcmVkdWNlcic7XHJcbmltcG9ydCB7IGZvcm1Db250cm9sUmVkdWNlciB9IGZyb20gJy4uL2NvbnRyb2wvcmVkdWNlcic7XHJcbmltcG9ydCB7IGZvcm1Hcm91cFJlZHVjZXIgfSBmcm9tICcuLi9ncm91cC9yZWR1Y2VyJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sU3RhdGUsIGlzQXJyYXlTdGF0ZSwgaXNHcm91cFN0YXRlIH0gZnJvbSAnLi4vc3RhdGUnO1xyXG5cclxuZXhwb3J0IHR5cGUgUHJvamVjdEZuPFQ+ID0gKHQ6IFQpID0+IFQ7XHJcbmV4cG9ydCB0eXBlIFByb2plY3RGbjI8VCwgSz4gPSAodDogVCwgazogSykgPT4gVDtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhYnN0cmFjdENvbnRyb2xSZWR1Y2VyPFRWYWx1ZT4oc3RhdGU6IEFic3RyYWN0Q29udHJvbFN0YXRlPFRWYWx1ZT4sIGFjdGlvbjogQWN0aW9uKTogQWJzdHJhY3RDb250cm9sU3RhdGU8VFZhbHVlPiB7XHJcbiAgaWYgKGlzQXJyYXlTdGF0ZShzdGF0ZSkpIHtcclxuICAgIHJldHVybiBmb3JtQXJyYXlSZWR1Y2VyKHN0YXRlLCBhY3Rpb24gYXMgYW55KSBhcyBhbnk7XHJcbiAgfVxyXG5cclxuICBpZiAoaXNHcm91cFN0YXRlKHN0YXRlKSkge1xyXG4gICAgcmV0dXJuIGZvcm1Hcm91cFJlZHVjZXIoc3RhdGUsIGFjdGlvbik7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZm9ybUNvbnRyb2xSZWR1Y2VyKHN0YXRlIGFzIGFueSwgYWN0aW9uKSBhcyBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjb21wb3NlPFQ+KC4uLmZuczogKCh0OiBUKSA9PiBUKVtdKSB7XHJcbiAgcmV0dXJuICh0OiBUKSA9PiBmbnMucmVkdWNlKChyZXMsIGYpID0+IGYocmVzKSwgdCk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVTdGF0ZTxUU3RhdGU+KHN0YXRlOiBUU3RhdGUgfCB1bmRlZmluZWQpOiBUU3RhdGUge1xyXG4gIGlmICghc3RhdGUpIHtcclxuICAgIHRocm93IG5ldyBFcnJvcignc3RhdGUgbXVzdCBub3QgYmUgdW5kZWZpbmVkIScpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHN0YXRlO1xyXG59XHJcbiJdfQ==