UNPKG

@empathyco/x-components

Version:
77 lines (74 loc) 2.37 kB
import { setConfig, mergeConfig } from '../../../store/utils/config-store.utils.js'; import { setQuery } from '../../../store/utils/query.utils.js'; import { facets } from './getters/facets.getter.js'; import { selectedFiltersByFacet } from './getters/selected-filters-by-facet.getter.js'; import { selectedFiltersForRequest } from './getters/selected-filters-for-request.getter.js'; import { selectedFilters } from './getters/selected-filters.getter.js'; /** * {@link XStoreModule} For the facets' module. * * @internal */ const facetsXStoreModule = { state: () => ({ query: '', filters: {}, groups: {}, facets: {}, preselectedFilters: [], stickyFilters: {}, config: { filtersStrategyForRequest: 'all', }, }), getters: { selectedFilters, selectedFiltersForRequest, selectedFiltersByFacet, facets, }, mutations: { mutateFilter(state, { filter, newFilterState }) { const newFilter = Object.assign(filter, newFilterState); state.filters[newFilter.id] = newFilter; }, setFilters(state, filters) { filters.forEach(filter => (state.filters[filter.id] = filter)); }, setPreselectedFilters(state, filters) { state.preselectedFilters = filters; }, removeFilter(state, { id }) { delete state.filters[id]; }, removeFilters(state, filters) { filters.forEach(({ id }) => delete state.filters[id]); }, setFacetGroup(state, { facetId, groupId }) { state.groups[facetId] = groupId; }, removeFacet(state, { id }) { delete state.facets[id]; }, setFacet(state, facet) { state.facets[facet.id] = facet; }, setConfig, mergeConfig, setQuery, setStickyFilter(state, filter) { if (!state.stickyFilters[filter.id]) { state.stickyFilters[filter.id] = filter; } }, removeStickyFilter(state, filter) { delete state.stickyFilters[filter.id]; }, clearStickyFilters(state) { state.stickyFilters = {}; }, }, actions: {}, }; export { facetsXStoreModule }; //# sourceMappingURL=module.js.map