Newer
Older
import { Criterion, SearchQueryParams } from '../store/model';
import { Dataset, Family, Attribute } from '../../metamodel/model';
import * as searchActions from '../store/search.action';
import * as datasetActions from '../../metamodel/action/dataset.action';
import * as criteriaActions from '../../metamodel/action/criteria.action';
import * as fromSearch from '../store/search.reducer';
import * as fromMetamodel from '../../metamodel/reducers';
import * as searchSelector from '../store/search.selector';
import * as metamodelSelector from '../../metamodel/selectors';
import { ScrollTopService } from '../../shared/service/sroll-top.service';
interface StoreState {
search: fromSearch.State;
metamodel: fromMetamodel.State;
}
@Component({
selector: 'app-criteria',
})
export class CriteriaComponent implements OnInit {
public criteriaSearchMetaIsLoading: Observable<boolean>;
public criteriaSearchMetaIsLoaded: Observable<boolean>;
public datasetSearchMetaIsLoading: Observable<boolean>;
public datasetSearchMetaIsLoaded: Observable<boolean>;
public attributeSearchMetaIsLoading: Observable<boolean>;
public attributeSearchMetaIsLoaded: Observable<boolean>;
public datasetName: Observable<string>;
public currentStep: Observable<string>;
public datasetList: Observable<Dataset[]>;
public criteriaFamilyList: Observable<Family[]>;
public datasetAttributeList: Observable<Attribute[]>;
public criteriaList: Observable<Criterion[]>;
public outputList: Observable<number[]>;
constructor(private store: Store<StoreState>, private scrollTopService: ScrollTopService) {
this.criteriaSearchMetaIsLoading = store.select(metamodelSelector.getCriteriaSearchMetaIsLoading);
this.criteriaSearchMetaIsLoaded = store.select(metamodelSelector.getCriteriaSearchMetaIsLoaded);
this.datasetSearchMetaIsLoading = store.select(metamodelSelector.getDatasetSearchMetaIsLoading);
this.datasetSearchMetaIsLoaded = store.select(metamodelSelector.getDatasetSearchMetaIsLoaded);
this.attributeSearchMetaIsLoading = store.select(metamodelSelector.getAttributeSearchMetaIsLoading);
this.attributeSearchMetaIsLoaded = store.select(metamodelSelector.getAttributeSearchMetaIsLoaded);
this.datasetName = store.select(searchSelector.getDatasetName);
this.currentStep = store.select(searchSelector.getCurrentStep);
this.datasetList = store.select(metamodelSelector.getDatasetList);
this.datasetAttributeList = this.store.select(metamodelSelector.getDatasetAttributeList);
this.criteriaFamilyList = this.store.select(metamodelSelector.getCriteriaFamilyList);
this.criteriaList = this.store.select(searchSelector.getCriteriaList);
this.outputList = this.store.select(searchSelector.getOutputList);
this.queryParams = this.store.select(searchSelector.getQueryParams);
}
ngOnInit() {
// Create a micro task that is processed after the current synchronous code
// This micro task prevent the expression has changed after view init error
Promise.resolve(null).then(() => this.store.dispatch(new searchActions.InitSearchByUrl()));
Promise.resolve(null).then(() => this.store.dispatch(new searchActions.ChangeStepAction('criteria')));
Promise.resolve(null).then(() => this.store.dispatch(new searchActions.CriteriaChecked()));
this.store.dispatch(new datasetActions.LoadDatasetSearchMetaAction());
this.store.dispatch(new criteriaActions.LoadCriteriaSearchMetaAction());