UNPKG

@empathyco/x-components

Version:
84 lines (69 loc) 2.97 kB
--- title: FacetsProvider --- # FacetsProvider This component allows to provide facets by prop, to add them to the state of the `Facets X-Module`. These facets will be added to the `Facets X-Module` state together with the facets emitted by the `Search X-Module` through the SearchXEvents.FacetsChanged event. ## Props | Name | Description | Type | Default | | -------------------- | ---------------------------------------------------------------------------------------------------------------------- | -------------------- | ------------------------------ | | <code>groupId</code> | An facet group identifier to distinguish the provided facets from other facets like the<br />`Search X-Module` facets. | <code>GroupId</code> | <code>'provided-facets'</code> | | <code>facets</code> | The facets to provide to the `Facets X-Module` state. They have to include the<br />@empathyco/x-types#Filter. | <code>Facet[]</code> | <code></code> | ## Events A list of events that the component will emit: - [`UserChangedSelectedFilters`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts): the event is emitted after the user performed an action that changed the selected filters. The payload is the new list of selected filters. - [`FacetsGroupProvided`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts): the event is emitted after updating the facets prop with a new list of facets. The payload contains a Facets Group with the facets and the group id. ## Example This component allows to provide facets by prop, to add them to the state of the `Facets X-Module`. These facets will be added to the `Facets X-Module` state together with the facets emitted by the `Search X-Module` through the `SearchXEvents.FacetsChanged` event. ```vue <template> <FacetsProvider :facets="myFacets" /> </template> <script> import { FacetsProvider } from '@empathyco/x-components/facets' export default { components: { FacetsProvider, }, data() { return { myFacets: [ { modelName: 'SimpleFacet', id: 'color-facet', label: 'Color', filters: [ { modelName: 'SimpleFilter', id: 'color:red', facetId: 'color-facet', label: 'Red', selected: false, value: 'color:red', totalResults: 10, }, { modelName: 'SimpleFilter', id: 'color:blue', facetId: 'color-facet', label: 'Blue', selected: false, value: 'color:blue', totalResults: 10, }, ], }, ], } }, } </script> ```