# mixitup.Mixer ## Overview The `mixitup.Mixer` class is extended with API methods relating to the MultiFilter extension. For the full list of API methods, please refer to the MixItUp core documentation. ### Contents - [parseFilterGroups()](#parseFilterGroups) - [setFilterGroupSelectors()](#setFilterGroupSelectors) - [getFilterGroupSelectors()](#getFilterGroupSelectors)

parseFilterGroups()

*Version added: 3.0.0* `.parseFilterGroups([animate] [, callback])` Traverses the currently active filters in all groups, building up a compound selector string as per the defined logic. A filter operation is then called on the mixer using the resulting selector. This method can be used to programmatically trigger the parsing of filter groups after manipulations to a group's active selector(s) by the `.setFilterGroupSelectors()` API method. | |Type | Name | Description |---|--- | --- | --- |Param |`boolean` | `[animate]` | An optional boolean dictating whether the operation should animate, or occur syncronously with no animation. `true` by default. |Param |`function` | `[callback]` | An optional callback function to be invoked after the operation has completed. |Returns |`Promise.` | A promise resolving with the current state object. ###### Example: Triggering parsing after programmatically changing the values of a filter group ```js mixer.setFilterGroupSelectors('color', ['.green', '.blue']); mixer.parseFilterGroups(); ```

setFilterGroupSelectors()

*Version added: 3.2.0* `.setFilterGroupSelectors(groupName, selectors)` Programmatically sets one or more active selectors for a specific filter group and updates the group's UI. Because MixItUp has no way of knowing how to break down a provided compound selector into its component groups, we can not use the standard `.filter()` or `toggleOn()/toggleOff()` API methods when using the MultiFilter extension. Instead, this method allows us to perform multi-dimensional filtering via the API by setting the active selectors of individual groups and then triggering the `.parseFilterGroups()` method. If setting multiple active selectors, do not pass a compound selector. Instead, pass an array with each item containing a single selector string as in example 2. | |Type | Name | Description |---|--- | --- | --- |Param |`string` | `groupName` | The name of the filter group as defined in the markup via the `data-filter-group` attribute. |Param |`string, Array.` | `selectors` | A single selector string, or multiple selector strings as an array. |Returns |`void` | ###### Example 1: Setting a single active selector for a "color" group ```js mixer.setFilterGroupSelectors('color', '.green'); mixer.parseFilterGroups(); ``` ###### Example 2: Setting multiple active selectors for a "size" group ```js mixer.setFilterGroupSelectors('size', ['.small', '.large']); mixer.parseFilterGroups(); ```

getFilterGroupSelectors()

*Version added: 3.2.0* `.getFilterGroupSelectors(groupName)` Returns an array of active selectors for a specific filter group. | |Type | Name | Description |---|--- | --- | --- |Param |`string` | `groupName` | The name of the filter group as defined in the markup via the `data-filter-group` attribute. |Returns |`void` | ###### Example: Retrieving the active selectors for a "size" group ```js mixer.getFilterGroupSelectors('size'); // ['.small', '.large'] ```