@empathyco/x-components
Version:
Empathy X Components
25 lines (22 loc) • 828 B
JavaScript
import { isFacetFilter } from '@empathyco/x-types';
import { map } from '@empathyco/x-utils';
import { groupItemsBy } from '../../../../utils/array.js';
import { UNKNOWN_FACET_KEY } from '../constants.js';
/**
* Default implementation for the {@link FacetsGetters.facets} getter.
*
* @param state - Current {@link https://vuex.vuejs.org/guide/state.html | state} of the facets'
* module.
* @returns An array containing the facets with the filters.
*
* @public
*/
const facets = state => {
const filtersByFacet = groupItemsBy(Object.values(state.filters), filter => isFacetFilter(filter) ? filter.facetId : UNKNOWN_FACET_KEY);
return map(state.facets, (_id, facet) => ({
...facet,
filters: filtersByFacet[facet.id] ?? [],
}));
};
export { facets };
//# sourceMappingURL=facets.getter.js.map