Skip to content
Snippets Groups Projects
search-multiple.selector.ts 2.61 KiB
Newer Older
  • Learn to ignore specific revisions
  • import { createSelector, createFeatureSelector } from '@ngrx/store';
    
    
    import * as searchMultiple from './search-multiple.reducer';
    
    import { getConeSearch, getIsValidConeSearch } from '../../shared/cone-search/store/cone-search.selector';
    import { ConeSearch } from '../../shared/cone-search/store/model';
    import { SearchMultipleQueryParams } from './model';
    
    
    export const getSearchMultipleState = createFeatureSelector<searchMultiple.State>('searchMultiple');
    
    export const getCurrentStep = createSelector(
        getSearchMultipleState,
        searchMultiple.getCurrentStep
    );
    
    export const getPositionStepChecked = createSelector(
        getSearchMultipleState,
        searchMultiple.getPositionStepChecked
    );
    
    export const getDatasetsStepChecked = createSelector(
        getSearchMultipleState,
        searchMultiple.getDatasetsStepChecked
    );
    
    export const getResultStepChecked = createSelector(
        getSearchMultipleState,
        searchMultiple.getResultStepChecked
    );
    
    
    Tifenn Guillas's avatar
    Tifenn Guillas committed
    export const getSelectedDatasets = createSelector(
    
        getSearchMultipleState,
    
    Tifenn Guillas's avatar
    Tifenn Guillas committed
        searchMultiple.getSelectedDatasets
    
    Tifenn Guillas's avatar
    Tifenn Guillas committed
    
    
    export const getNoSelectedDatasets = createSelector(
        getSelectedDatasets,
        (
            selectedDatasets: string[]) => {
    
    Tifenn Guillas's avatar
    Tifenn Guillas committed
    export const getQueryParams = createSelector(
        getIsValidConeSearch,
        getConeSearch,
    
    Tifenn Guillas's avatar
    Tifenn Guillas committed
        getSelectedDatasets,
    
    Tifenn Guillas's avatar
    Tifenn Guillas committed
        (
            isValidConeSearch: boolean,
            coneSearch: ConeSearch,
    
    Tifenn Guillas's avatar
    Tifenn Guillas committed
            selectedDatasets: string[]) => {
    
    Tifenn Guillas's avatar
    Tifenn Guillas committed
            let queryParams: SearchMultipleQueryParams = { };
            if (isValidConeSearch) {
                queryParams = {
                    ...queryParams,
                    cs: coneSearch.ra + ':' + coneSearch.dec + ':' + coneSearch.radius
                };
            }
    
    Tifenn Guillas's avatar
    Tifenn Guillas committed
            if (selectedDatasets.length > 0) {
    
    Tifenn Guillas's avatar
    Tifenn Guillas committed
                queryParams = {
                    ...queryParams,
    
    Tifenn Guillas's avatar
    Tifenn Guillas committed
                    d: selectedDatasets.join(';')
    
    Tifenn Guillas's avatar
    Tifenn Guillas committed
                };
            }
            return queryParams;
        }
    
    );
    
    export const getDatasetsCountIsLoading = createSelector(
        getSearchMultipleState,
        searchMultiple.getDatasetsCountIsLoading
    );
    
    export const getDatasetsCountIsLoaded = createSelector(
        getSearchMultipleState,
        searchMultiple.getDatasetsCountIsLoaded
    );
    
    export const getDatasetsCount = createSelector(
        getSearchMultipleState,
        searchMultiple.getDatasetsCount
    );
    
    
    export const getDatasetsWithData = createSelector(
    
        getSearchMultipleState,
    
        searchMultiple.selectIds
    
    export const getAllData = createSelector(
        getSearchMultipleState,
        searchMultiple.selectEntities
    );
    
    
    export const getSelectedData = createSelector(
        getSearchMultipleState,
        searchMultiple.getSelectedData
    );