import { combineReducers, createFeatureSelector } from '@ngrx/store';

import * as dataset from './dataset.reducer';
import * as criteria from './criteria.reducer';
import * as output from './output.reducer';

export interface State {
    dataset: dataset.State;
    criteria: criteria.State;
    output: output.State;
}

const reducers = {
    dataset: dataset.reducer,
    criteria: criteria.reducer,
    output: output.reducer
};

const productionReducer = combineReducers(reducers);

export function reducer(state: any, action: any) {
    return productionReducer(state, action);
}

export const getMetamodelState = createFeatureSelector<State>('metamodel');