UNPKG

ngrx-forms

Version:

Proper integration of forms in Angular 4 applications using ngrx

54 lines 9.57 kB
import { isArrayState, isGroupState } from '../state'; import { clearAsyncErrorReducer } from './reducer/clear-async-error'; import { disableReducer } from './reducer/disable'; import { enableReducer } from './reducer/enable'; import { focusReducer } from './reducer/focus'; import { markAsDirtyReducer } from './reducer/mark-as-dirty'; import { markAsPristineReducer } from './reducer/mark-as-pristine'; import { markAsSubmittedReducer } from './reducer/mark-as-submitted'; import { markAsTouchedReducer } from './reducer/mark-as-touched'; import { markAsUnsubmittedReducer } from './reducer/mark-as-unsubmitted'; import { markAsUntouchedReducer } from './reducer/mark-as-untouched'; import { resetReducer } from './reducer/reset'; import { setAsyncErrorReducer } from './reducer/set-async-error'; import { setErrorsReducer } from './reducer/set-errors'; import { setUserDefinedPropertyReducer } from './reducer/set-user-defined-property'; import { setValueReducer } from './reducer/set-value'; import { startAsyncValidationReducer } from './reducer/start-async-validation'; import { unfocusReducer } from './reducer/unfocus'; export function formControlReducerInternal(state, action) { if (isGroupState(state) || isArrayState(state)) { throw new Error('The state must be a control state'); } if (action.controlId !== state.id) { return state; } state = setValueReducer(state, action); state = setErrorsReducer(state, action); state = startAsyncValidationReducer(state, action); state = setAsyncErrorReducer(state, action); state = clearAsyncErrorReducer(state, action); state = enableReducer(state, action); state = disableReducer(state, action); state = focusReducer(state, action); state = unfocusReducer(state, action); state = markAsDirtyReducer(state, action); state = markAsPristineReducer(state, action); state = markAsTouchedReducer(state, action); state = markAsUntouchedReducer(state, action); state = markAsSubmittedReducer(state, action); state = markAsUnsubmittedReducer(state, action); state = setUserDefinedPropertyReducer(state, action); state = resetReducer(state, action); return state; } /** * This reducer function updates a form control state with actions. */ export function formControlReducer(state, action) { if (!state) { throw new Error('The control state must be defined!'); } return formControlReducerInternal(state, action); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb250cm9sL3JlZHVjZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUEyQyxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQy9GLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRW5ELE1BQU0sVUFBVSwwQkFBMEIsQ0FDeEMsS0FBK0IsRUFDL0IsTUFBdUI7SUFFdkIsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQzlDLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztLQUN0RDtJQUVELElBQUksTUFBTSxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUMsRUFBRSxFQUFFO1FBQ2pDLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCxLQUFLLEdBQUcsZUFBZSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN2QyxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLEtBQUssR0FBRywyQkFBMkIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbkQsS0FBSyxHQUFHLG9CQUFvQixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM1QyxLQUFLLEdBQUcsc0JBQXNCLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzlDLEtBQUssR0FBRyxhQUFhLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3JDLEtBQUssR0FBRyxjQUFjLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLEtBQUssR0FBRyxZQUFZLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLEtBQUssR0FBRyxjQUFjLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDMUMsS0FBSyxHQUFHLHFCQUFxQixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM3QyxLQUFLLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzVDLEtBQUssR0FBRyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDOUMsS0FBSyxHQUFHLHNCQUFzQixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM5QyxLQUFLLEdBQUcsd0JBQXdCLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hELEtBQUssR0FBRyw2QkFBNkIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDckQsS0FBSyxHQUFHLFlBQVksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFcEMsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQXVDLEtBQTJDLEVBQUUsTUFBYztJQUNsSSxJQUFJLENBQUMsS0FBSyxFQUFFO1FBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO0tBQ3ZEO0lBRUQsT0FBTywwQkFBMEIsQ0FBQyxLQUFLLEVBQUUsTUFBYSxDQUFDLENBQUM7QUFDMUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuXHJcbmltcG9ydCB7IEFjdGlvbnMgfSBmcm9tICcuLi9hY3Rpb25zJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2xTdGF0ZSwgRm9ybUNvbnRyb2xWYWx1ZVR5cGVzLCBpc0FycmF5U3RhdGUsIGlzR3JvdXBTdGF0ZSB9IGZyb20gJy4uL3N0YXRlJztcclxuaW1wb3J0IHsgY2xlYXJBc3luY0Vycm9yUmVkdWNlciB9IGZyb20gJy4vcmVkdWNlci9jbGVhci1hc3luYy1lcnJvcic7XHJcbmltcG9ydCB7IGRpc2FibGVSZWR1Y2VyIH0gZnJvbSAnLi9yZWR1Y2VyL2Rpc2FibGUnO1xyXG5pbXBvcnQgeyBlbmFibGVSZWR1Y2VyIH0gZnJvbSAnLi9yZWR1Y2VyL2VuYWJsZSc7XHJcbmltcG9ydCB7IGZvY3VzUmVkdWNlciB9IGZyb20gJy4vcmVkdWNlci9mb2N1cyc7XHJcbmltcG9ydCB7IG1hcmtBc0RpcnR5UmVkdWNlciB9IGZyb20gJy4vcmVkdWNlci9tYXJrLWFzLWRpcnR5JztcclxuaW1wb3J0IHsgbWFya0FzUHJpc3RpbmVSZWR1Y2VyIH0gZnJvbSAnLi9yZWR1Y2VyL21hcmstYXMtcHJpc3RpbmUnO1xyXG5pbXBvcnQgeyBtYXJrQXNTdWJtaXR0ZWRSZWR1Y2VyIH0gZnJvbSAnLi9yZWR1Y2VyL21hcmstYXMtc3VibWl0dGVkJztcclxuaW1wb3J0IHsgbWFya0FzVG91Y2hlZFJlZHVjZXIgfSBmcm9tICcuL3JlZHVjZXIvbWFyay1hcy10b3VjaGVkJztcclxuaW1wb3J0IHsgbWFya0FzVW5zdWJtaXR0ZWRSZWR1Y2VyIH0gZnJvbSAnLi9yZWR1Y2VyL21hcmstYXMtdW5zdWJtaXR0ZWQnO1xyXG5pbXBvcnQgeyBtYXJrQXNVbnRvdWNoZWRSZWR1Y2VyIH0gZnJvbSAnLi9yZWR1Y2VyL21hcmstYXMtdW50b3VjaGVkJztcclxuaW1wb3J0IHsgcmVzZXRSZWR1Y2VyIH0gZnJvbSAnLi9yZWR1Y2VyL3Jlc2V0JztcclxuaW1wb3J0IHsgc2V0QXN5bmNFcnJvclJlZHVjZXIgfSBmcm9tICcuL3JlZHVjZXIvc2V0LWFzeW5jLWVycm9yJztcclxuaW1wb3J0IHsgc2V0RXJyb3JzUmVkdWNlciB9IGZyb20gJy4vcmVkdWNlci9zZXQtZXJyb3JzJztcclxuaW1wb3J0IHsgc2V0VXNlckRlZmluZWRQcm9wZXJ0eVJlZHVjZXIgfSBmcm9tICcuL3JlZHVjZXIvc2V0LXVzZXItZGVmaW5lZC1wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IHNldFZhbHVlUmVkdWNlciB9IGZyb20gJy4vcmVkdWNlci9zZXQtdmFsdWUnO1xyXG5pbXBvcnQgeyBzdGFydEFzeW5jVmFsaWRhdGlvblJlZHVjZXIgfSBmcm9tICcuL3JlZHVjZXIvc3RhcnQtYXN5bmMtdmFsaWRhdGlvbic7XHJcbmltcG9ydCB7IHVuZm9jdXNSZWR1Y2VyIH0gZnJvbSAnLi9yZWR1Y2VyL3VuZm9jdXMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1Db250cm9sUmVkdWNlckludGVybmFsPFRWYWx1ZSBleHRlbmRzIEZvcm1Db250cm9sVmFsdWVUeXBlcz4oXHJcbiAgc3RhdGU6IEZvcm1Db250cm9sU3RhdGU8VFZhbHVlPixcclxuICBhY3Rpb246IEFjdGlvbnM8VFZhbHVlPixcclxuKTogRm9ybUNvbnRyb2xTdGF0ZTxUVmFsdWU+IHtcclxuICBpZiAoaXNHcm91cFN0YXRlKHN0YXRlKSB8fCBpc0FycmF5U3RhdGUoc3RhdGUpKSB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBzdGF0ZSBtdXN0IGJlIGEgY29udHJvbCBzdGF0ZScpO1xyXG4gIH1cclxuXHJcbiAgaWYgKGFjdGlvbi5jb250cm9sSWQgIT09IHN0YXRlLmlkKSB7XHJcbiAgICByZXR1cm4gc3RhdGU7XHJcbiAgfVxyXG5cclxuICBzdGF0ZSA9IHNldFZhbHVlUmVkdWNlcihzdGF0ZSwgYWN0aW9uKTtcclxuICBzdGF0ZSA9IHNldEVycm9yc1JlZHVjZXIoc3RhdGUsIGFjdGlvbik7XHJcbiAgc3RhdGUgPSBzdGFydEFzeW5jVmFsaWRhdGlvblJlZHVjZXIoc3RhdGUsIGFjdGlvbik7XHJcbiAgc3RhdGUgPSBzZXRBc3luY0Vycm9yUmVkdWNlcihzdGF0ZSwgYWN0aW9uKTtcclxuICBzdGF0ZSA9IGNsZWFyQXN5bmNFcnJvclJlZHVjZXIoc3RhdGUsIGFjdGlvbik7XHJcbiAgc3RhdGUgPSBlbmFibGVSZWR1Y2VyKHN0YXRlLCBhY3Rpb24pO1xyXG4gIHN0YXRlID0gZGlzYWJsZVJlZHVjZXIoc3RhdGUsIGFjdGlvbik7XHJcbiAgc3RhdGUgPSBmb2N1c1JlZHVjZXIoc3RhdGUsIGFjdGlvbik7XHJcbiAgc3RhdGUgPSB1bmZvY3VzUmVkdWNlcihzdGF0ZSwgYWN0aW9uKTtcclxuICBzdGF0ZSA9IG1hcmtBc0RpcnR5UmVkdWNlcihzdGF0ZSwgYWN0aW9uKTtcclxuICBzdGF0ZSA9IG1hcmtBc1ByaXN0aW5lUmVkdWNlcihzdGF0ZSwgYWN0aW9uKTtcclxuICBzdGF0ZSA9IG1hcmtBc1RvdWNoZWRSZWR1Y2VyKHN0YXRlLCBhY3Rpb24pO1xyXG4gIHN0YXRlID0gbWFya0FzVW50b3VjaGVkUmVkdWNlcihzdGF0ZSwgYWN0aW9uKTtcclxuICBzdGF0ZSA9IG1hcmtBc1N1Ym1pdHRlZFJlZHVjZXIoc3RhdGUsIGFjdGlvbik7XHJcbiAgc3RhdGUgPSBtYXJrQXNVbnN1Ym1pdHRlZFJlZHVjZXIoc3RhdGUsIGFjdGlvbik7XHJcbiAgc3RhdGUgPSBzZXRVc2VyRGVmaW5lZFByb3BlcnR5UmVkdWNlcihzdGF0ZSwgYWN0aW9uKTtcclxuICBzdGF0ZSA9IHJlc2V0UmVkdWNlcihzdGF0ZSwgYWN0aW9uKTtcclxuXHJcbiAgcmV0dXJuIHN0YXRlO1xyXG59XHJcblxyXG4vKipcclxuICogVGhpcyByZWR1Y2VyIGZ1bmN0aW9uIHVwZGF0ZXMgYSBmb3JtIGNvbnRyb2wgc3RhdGUgd2l0aCBhY3Rpb25zLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1Db250cm9sUmVkdWNlcjxUVmFsdWUgZXh0ZW5kcyBGb3JtQ29udHJvbFZhbHVlVHlwZXM+KHN0YXRlOiBGb3JtQ29udHJvbFN0YXRlPFRWYWx1ZT4gfCB1bmRlZmluZWQsIGFjdGlvbjogQWN0aW9uKSB7XHJcbiAgaWYgKCFzdGF0ZSkge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgY29udHJvbCBzdGF0ZSBtdXN0IGJlIGRlZmluZWQhJyk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZm9ybUNvbnRyb2xSZWR1Y2VySW50ZXJuYWwoc3RhdGUsIGFjdGlvbiBhcyBhbnkpO1xyXG59XHJcbiJdfQ==