UNPKG

dynamic-display-shared

Version:

A library for dynamic view

114 lines 15.9 kB
import { createReducer, on } from '@ngrx/store'; import * as FilterActions from './filter.actions'; export const filterFeatureKey = 'filter'; export const initialState = { currentFilter: { filterTerm: '', categoriesFilter: [], categoriesRangeFilter: [], sortId: undefined, }, filterCategoriesOptions: [], entities: [], selectedCharts: {}, isDownloadingFile: false, }; const filterReducer = createReducer(initialState, on(FilterActions.addCategoriesFilter, (state, action) => { const res = { ...state, currentFilter: { ...state.currentFilter, categoriesFilter: [...state.currentFilter.categoriesFilter, ...action.categoriesFilter] } }; return res; // const newState = { ...state }; // newState.filter = { ...state.filter }; // newState.filter.categoriesFilter = action.categoriesFilter; // return newState; }), on(FilterActions.loadFiltersOptionsFailure, (state, action) => state), on(FilterActions.updateFreeFilter, (state, action) => { return { ...state, currentFilter: { ...state.currentFilter, filterTerm: action.freeFilter } }; }), on(FilterActions.updateRangesFilter, (state, action) => { return { ...state, currentFilter: { ...state.currentFilter, categoriesRangeFilter: [...state.currentFilter.categoriesRangeFilter, ...action.ranges] } }; }), // @ts-ignore on(FilterActions.clearFilter, (state) => { return { ...state, currentFilter: { categoriesFilter: [], categoriesRangeFilter: [], filterTerm: '' } }; }), on(FilterActions.loadFiltersOptionsSuccess, (state, action) => { return { ...state, filterCategoriesOptions: action.categoriesFilter .filter(category => !state.currentFilter.categoriesFilter.find(f => category.id === f.id)) .sort((c1, c2) => c1.order - c2.order) }; }), on(FilterActions.removeCategoriesFilter, (state, action) => { const removedFilterIndex = state.currentFilter.categoriesFilter.indexOf(action.categoryFilter); if (removedFilterIndex >= 0) { const updatedCategories = Array.from(state.currentFilter.categoriesFilter); updatedCategories.splice(removedFilterIndex, 1); return { ...state, currentFilter: { ...state.currentFilter, categoriesFilter: updatedCategories } }; } else { return state; } }), on(FilterActions.removeCategoriesFilterRange, (state, action) => { const removedFilterIndex = state.currentFilter.categoriesRangeFilter.indexOf(action.categoryFilterRange); if (removedFilterIndex >= 0) { const updatedCategories = Array.from(state.currentFilter.categoriesRangeFilter); updatedCategories.splice(removedFilterIndex, 1); return { ...state, currentFilter: { ...state.currentFilter, categoriesRangeFilter: updatedCategories } }; } else { return state; } }), on(FilterActions.updateSelectedChart, (state, action) => { return { ...state, selectedCharts: { ...state.selectedCharts, [action.chartId]: action.selectedChart } }; }), on(FilterActions.downloadFileStarted, (state, action) => { return { ...state, isDownloadingFile: true }; }), on(FilterActions.downloadFileFinished, (state, action) => { return { ...state, isDownloadingFile: false }; }), on(FilterActions.refreshEntities, (state, action) => { return { ...state, entities: action.entities }; }), on(FilterActions.sortIdChange, (state, action) => { return { ...state, currentFilter: { ...state.currentFilter, sortId: action.sortId } }; })); export function reducer(state, action) { return filterReducer(state, action); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLnJlZHVjZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9keW5hbWljLWRpc3BsYXktc2hhcmVkL3NyYy9saWIvc2hhcmVkL3N0b3JlL2ZpbHRlci5yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxhQUFhLEVBQUUsRUFBRSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSXhELE9BQU8sS0FBSyxhQUFhLE1BQU0sa0JBQWtCLENBQUM7QUFFbEQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDO0FBYXpDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBZ0I7SUFDdkMsYUFBYSxFQUFFO1FBQ2IsVUFBVSxFQUFFLEVBQUU7UUFDZCxnQkFBZ0IsRUFBRSxFQUFFO1FBQ3BCLHFCQUFxQixFQUFFLEVBQUU7UUFDekIsTUFBTSxFQUFFLFNBQVM7S0FDbEI7SUFDRCx1QkFBdUIsRUFBRSxFQUFFO0lBQzNCLFFBQVEsRUFBRSxFQUFFO0lBQ1osY0FBYyxFQUFFLEVBQUU7SUFDbEIsaUJBQWlCLEVBQUUsS0FBSztDQUN6QixDQUFDO0FBRUYsTUFBTSxhQUFhLEdBQUcsYUFBYSxDQUNqQyxZQUFZLEVBQ1osRUFBRSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLEtBQWtCLEVBQUUsTUFBTSxFQUFFLEVBQUU7SUFDbkUsTUFBTSxHQUFHLEdBQUc7UUFDVixHQUFHLEtBQUs7UUFDUixhQUFhLEVBQUU7WUFDYixHQUFHLEtBQUssQ0FBQyxhQUFhO1lBQ3RCLGdCQUFnQixFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1NBQ3hGO0tBQ0YsQ0FBQztJQUNGLE9BQU8sR0FBRyxDQUFDO0lBQ1gsaUNBQWlDO0lBQ2pDLHlDQUF5QztJQUN6Qyw4REFBOEQ7SUFDOUQsbUJB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QUs7UUFDUixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7S0FDMUIsQ0FBQztBQUNKLENBQUMsQ0FBQyxFQUNGLEVBQUUsQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUMsS0FBa0IsRUFBRSxNQUFNLEVBQUUsRUFBRTtJQUM1RCxPQUFPO1FBQ0wsR0FBRyxLQUFLO1FBQ1IsYUFBYSxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFO0tBQ2pFLENBQUM7QUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0FBRUYsTUFBTSxVQUFVLE9BQU8sQ0FBQyxLQUE4QixFQUFFLE1BQWM7SUFDcEUsT0FBTyxhQUFhLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3RDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb24sIGNyZWF0ZVJlZHVjZXIsIG9uIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xyXG5pbXBvcnQgeyBFbnRpdHlEZXRhaWxzVmlld01vZGVsIH0gZnJvbSAnLi4vbW9kZWwvZW50aXR5LWRldGFpbHMudmlldy1tb2RlbCc7XHJcbmltcG9ydCB7IEZpbHRlciB9IGZyb20gJy4uL21vZGVsL2ZpbHRlcic7XHJcbmltcG9ydCB7IEZpbHRlckNhdGVnb3J5IH0gZnJvbSAnLi4vbW9kZWwvZmlsdGVyLWNhdGVnb3J5JztcclxuaW1wb3J0ICogYXMgRmlsdGVyQWN0aW9ucyBmcm9tICcuL2ZpbHRlci5hY3Rpb25zJztcclxuXHJcbmV4cG9ydCBjb25zdCBmaWx0ZXJGZWF0dXJlS2V5ID0gJ2ZpbHRlcic7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlclN0YXRlIHtcclxuICBjdXJyZW50RmlsdGVyOiBGaWx0ZXI7XHJcbiAgZmlsdGVyQ2F0ZWdvcmllc09wdGlvbnM6IEZpbHRlckNhdGVnb3J5W107XHJcbiAgZW50aXRpZXM6IEVudGl0eURldGFpbHNWaWV3TW9kZWxbXTtcclxuICBzZWxlY3RlZENoYXJ0czogU2VsZWN0ZWRDaGFydDtcclxuICBpc0Rvd25sb2FkaW5nRmlsZTogYm9vbGVhbjtcclxuXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0ZWRDaGFydCB7IFtjaGFydElkOiBudW1iZXJdOiBzdHJpbmc7IH1cclxuXHJcbmV4cG9ydCBjb25zdCBpbml0aWFsU3RhdGU6IEZpbHRlclN0YXRlID0ge1xyXG4gIGN1cnJlbnRGaWx0ZXI6IHtcclxuICAgIGZpbHRlclRlcm06ICcnLFxyXG4gICAgY2F0ZWdvcmllc0ZpbHRlcjogW10sXHJcbiAgICBjYXRlZ29yaWVzUmFuZ2VGaWx0ZXI6IFtdLFxyXG4gICAgc29ydElkOiB1bmRlZmluZWQsXHJcbiAgfSxcclxuICBmaWx0ZXJDYXRlZ29yaWVzT3B0aW9uczogW10sXHJcbiAgZW50aXRpZXM6IFtdLFxyXG4gIHNlbGVjdGVkQ2hhcnRzOiB7fSxcclxuICBpc0Rvd25sb2FkaW5nRmlsZTogZmFsc2UsXHJcbn07XHJcblxyXG5jb25zdCBmaWx0ZXJSZWR1Y2VyID0gY3JlYXRlUmVkdWNlcihcclxuICBpbml0aWFsU3RhdGUsXHJcbiAgb24oRmlsdGVyQWN0aW9ucy5hZGRDYXRlZ29yaWVzRmlsdGVyLCAoc3RhdGU6IEZpbHRlclN0YXRlLCBhY3Rpb24pID0+IHtcclxuICAgIGNvbnN0IHJlcyA9IHtcclxuICAgICAgLi4uc3RhdGUsXHJcbiAgICAgIGN1cnJlbnRGaWx0ZXI6IHtcclxuICAgICAgICAuLi5zdGF0ZS5jdXJyZW50RmlsdGVyLFxyXG4gICAgICAgIGNhdGVnb3JpZXNGaWx0ZXI6IFsuLi5zdGF0ZS5jdXJyZW50RmlsdGVyLmNhdGVnb3JpZXNGaWx0ZXIsIC4uLmFjdGlvbi5jYXRlZ29yaWVzRmlsdGVyXVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHJlcztcclxuICAgIC8vIGNvbnN0IG5ld1N0YXRlID0geyAuLi5zdGF0ZSB9O1xyXG4gICAgLy8gbmV3U3RhdGUuZmlsdGVyID0geyAuLi5zdGF0ZS5maWx0ZXIgfTtcclxuICAgIC8vIG5ld1N0YXRlLmZpbHRlci5jYXRlZ29yaWVzRmlsdGVyID0gYWN0aW9uLmNhdGVnb3JpZXNGaWx0ZXI7XHJcbiAgICAvLyByZXR1cm4gbmV3U3RhdGU7XHJcbiAgfSksXHJcbiAgb24oRmlsdGVyQWN0aW9ucy5sb2FkRmlsdGVyc09wdGlvbnNGYWlsdXJlLCAoc3RhdGUsIGFjdGlvbikgPT4gc3RhdGUpLFxyXG4gIG9uKEZpbHRlckFjdGlvbnMudXBkYXRlRnJlZUZpbHRlciwgKHN0YXRlOiBGaWx0ZXJTdGF0ZSwgYWN0aW9uKSA9PiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAuLi5zdGF0ZSxcclxuICAgICAgY3VycmVudEZpbHRlcjogeyAuLi5zdGF0ZS5jdXJyZW50RmlsdGVyLCBmaWx0ZXJUZXJtOiBhY3Rpb24uZnJlZUZpbHRlciB9XHJcbiAgICB9O1xyXG4gIH0pLFxyXG4gIG9uKEZpbHRlckFjdGlvbnMudXBkYXRlUmFuZ2VzRmlsdGVyLCAoc3RhdGU6IEZpbHRlclN0YXRlLCBhY3Rpb24pID0+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIC4uLnN0YXRlLFxyXG4gICAgICBjdXJyZW50RmlsdGVyOiB7XHJcbiAgICAgICAgLi4uc3RhdGUuY3VycmVudEZpbHRlcixcclxuICAgICAgICBjYXRlZ29yaWVzUmFuZ2VGaWx0ZXI6IFsuLi5zdGF0ZS5jdXJyZW50RmlsdGVyLmNhdGVnb3JpZXNSYW5nZUZpbHRlciwgLi4uYWN0aW9uLnJhbmdlc11cclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9KSxcclxuICAvLyBAdHMtaWdub3JlXHJcbiAgb24oRmlsdGVyQWN0aW9ucy5jbGVhckZpbHRlciwgKHN0YXRlOiBGaWx0ZXJTdGF0ZSkgPT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgLi4uc3RhdGUsXHJcbiAgICAgIGN1cnJlbnRGaWx0ZXI6IHsgY2F0ZWdvcmllc0ZpbHRlcjogW10sIGNhdGVnb3JpZXNSYW5nZUZpbHRlcjogW10sIGZpbHRlclRlcm06ICcnIH1cclxuICAgIH07XHJcbiAgfSksIG9uKEZpbHRlckFjdGlvbnMubG9hZEZpbHRlcnNPcHRpb25zU3VjY2VzcywgKHN0YXRlOiBGaWx0ZXJTdGF0ZSwgYWN0aW9uKSA9PiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAuLi5zdGF0ZSxcclxuICAgICAgZmlsdGVyQ2F0ZWdvcmllc09wdGlvbnM6IGFjdGlvbi5jYXRlZ29yaWVzRmlsdGVyXHJcbiAgICAgICAgLmZpbHRlcihjYXRlZ29yeSA9PiAhc3RhdGUuY3VycmVudEZpbHRlci5jYXRlZ29yaWVzRmlsdGVyLmZpbmQoZiA9PiBjYXRlZ29yeS5pZCA9PT0gZi5pZCkpXHJcbiAgICAgICAgLnNvcnQoKGMxLCBjMikgPT4gYzEub3JkZXIgLSBjMi5vcmRlcilcclxuICAgIH07XHJcbiAgfSksXHJcbiAgb24oRmlsdGVyQWN0aW9ucy5yZW1vdmVDYXRlZ29yaWVzRmlsdGVyLCAoc3RhdGU6IEZpbHRlclN0YXRlLCBhY3Rpb24pID0+IHtcclxuICAgIGNvbnN0IHJlbW92ZWRGaWx0ZXJJbmRleCA9IHN0YXRlLmN1cnJlbnRGaWx0ZXIuY2F0ZWdvcmllc0ZpbHRlci5pbmRleE9mKGFjdGlvbi5jYXRlZ29yeUZpbHRlcik7XHJcbiAgICBpZiAocmVtb3ZlZEZpbHRlckluZGV4ID49IDApIHtcclxuICAgICAgY29uc3QgdXBkYXRlZENhdGVnb3JpZXMgPSBBcnJheS5mcm9tKHN0YXRlLmN1cnJlbnRGaWx0ZXIuY2F0ZWdvcmllc0ZpbHRlcik7XHJcbiAgICAgIHVwZGF0ZWRDYXRlZ29yaWVzLnNwbGljZShyZW1vdmVkRmlsdGVySW5kZXgsIDEpO1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIC4uLnN0YXRlLFxyXG4gICAgICAgIGN1cnJlbnRGaWx0ZXI6IHsgLi4uc3RhdGUuY3VycmVudEZpbHRlciwgY2F0ZWdvcmllc0ZpbHRlcjogdXBkYXRlZENhdGVnb3JpZXMgfVxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHsgcmV0dXJuIHN0YXRlOyB9XHJcbiAgfSksXHJcbiAgb24oRmlsdGVyQWN0aW9ucy5yZW1vdmVDYXRlZ29yaWVzRmlsdGVyUmFuZ2UsIChzdGF0ZTogRmlsdGVyU3RhdGUsIGFjdGlvbikgPT4ge1xyXG4gICAgY29uc3QgcmVtb3ZlZEZpbHRlckluZGV4ID0gc3RhdGUuY3VycmVudEZpbHRlci5jYXRlZ29yaWVzUmFuZ2VGaWx0ZXIuaW5kZXhPZihhY3Rpb24uY2F0ZWdvcnlGaWx0ZXJSYW5nZSk7XHJcbiAgICBpZiAocmVtb3ZlZEZpbHRlckluZGV4ID49IDApIHtcclxuICAgICAgY29uc3QgdXBkYXRlZENhdGVnb3JpZXMgPSBBcnJheS5mcm9tKHN0YXRlLmN1cnJlbnRGaWx0ZXIuY2F0ZWdvcmllc1JhbmdlRmlsdGVyKTtcclxuICAgICAgdXBkYXRlZENhdGVnb3JpZXMuc3BsaWNlKHJlbW92ZWRGaWx0ZXJJbmRleCwgMSk7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgLi4uc3RhdGUsXHJcbiAgICAgICAgY3VycmVudEZpbHRlcjogeyAuLi5zdGF0ZS5jdXJyZW50RmlsdGVyLCBjYXRlZ29yaWVzUmFuZ2VGaWx0ZXI6IHVwZGF0ZWRDYXRlZ29yaWVzIH1cclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7IHJldHVybiBzdGF0ZTsgfVxyXG4gIH0pLFxyXG4gIG9uKEZpbHRlckFjdGlvbnMudXBkYXRlU2VsZWN0ZWRDaGFydCwgKHN0YXRlOiBGaWx0ZXJTdGF0ZSwgYWN0aW9uKSA9PiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAuLi5zdGF0ZSxcclxuICAgICAgc2VsZWN0ZWRDaGFydHM6IHtcclxuICAgICAgICAuLi5zdGF0ZS5zZWxlY3RlZENoYXJ0cyxcclxuICAgICAgICBbYWN0aW9uLmNoYXJ0SWRdOiBhY3Rpb24uc2VsZWN0ZWRDaGFydFxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gIH0pLFxyXG4gIG9uKEZpbHRlckFjdGlvbnMuZG93bmxvYWRGaWxlU3RhcnRlZCwgKHN0YXRlOiBGaWx0ZXJTdGF0ZSwgYWN0aW9uKSA9PiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAuLi5zdGF0ZSxcclxuICAgICAgaXNEb3dubG9hZGluZ0ZpbGU6IHRydWVcclxuICAgIH07XHJcbiAgfSksXHJcbiAgb24oRmlsdGVyQWN0aW9ucy5kb3dubG9hZEZpbGVGaW5pc2hlZCwgKHN0YXRlOiBGaWx0ZXJTdGF0ZSwgYWN0aW9uKSA9PiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAuLi5zdGF0ZSxcclxuICAgICAgaXNEb3dubG9hZGluZ0ZpbGU6IGZhbHNlXHJcbiAgICB9O1xyXG4gIH0pLFxyXG4gIG9uKEZpbHRlckFjdGlvbnMucmVmcmVzaEVudGl0aWVzLCAoc3RhdGU6IEZpbHRlclN0YXRlLCBhY3Rpb24pID0+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIC4uLnN0YXRlLFxyXG4gICAgICBlbnRpdGllczogYWN0aW9uLmVudGl0aWVzXHJcbiAgICB9O1xyXG4gIH0pLFxyXG4gIG9uKEZpbHRlckFjdGlvbnMuc29ydElkQ2hhbmdlLCAoc3RhdGU6IEZpbHRlclN0YXRlLCBhY3Rpb24pID0+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIC4uLnN0YXRlLFxyXG4gICAgICBjdXJyZW50RmlsdGVyOiB7IC4uLnN0YXRlLmN1cnJlbnRGaWx0ZXIsIHNvcnRJZDogYWN0aW9uLnNvcnRJZCB9XHJcbiAgICB9O1xyXG4gIH0pXHJcbik7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcmVkdWNlcihzdGF0ZTogRmlsdGVyU3RhdGUgfCB1bmRlZmluZWQsIGFjdGlvbjogQWN0aW9uKSB7XHJcbiAgcmV0dXJuIGZpbHRlclJlZHVjZXIoc3RhdGUsIGFjdGlvbik7XHJcbn1cclxuIl19