---
title: V2 2020 releases
slug: m54e5269
canonical_url: https://docs.coveo.com/en/m54e5269/
collection: javascript-search-framework
source_format: adoc
---
# V2 2020 releases
This page summarizes the new features and bug fixes introduced throughout 2020.
> **Note**
>
> The latest changes are available in [Release notes](https://docs.coveo.com/en/328/).
[#2-10081]
## October 2020 release (v2.10081)
The October 2020 package was initially released as v2.10081.2.
**CDN links for JavaScript Search Framework v2.10081.5**
- [GitHub release](https://github.com/coveo/search-ui/releases/tag/v2.10081.5)
- npm: `npm install coveo-search-ui@2.10081.5`
- CDN resources:
- JavaScript (lazy, minified): `https://static.cloud.coveo.com/searchui/v2.10081.5/js/CoveoJsSearch.Lazy.min.js`
- Stylesheet (minified): `https://static.cloud.coveo.com/searchui/v2.10081.5/css/CoveoFullSearch.min.css`
- Templates: `https://static.cloud.coveo.com/searchui/v2.10081.5/js/templates/templates.js`
### Changes
|===
| Issue number | Enhancement
| JSUI-2979
| [[`DynamicFacet`](https://coveo.github.io/search-ui/components/dynamicfacet.html) / [`DynamicHierarchicalFacet`](https://coveo.github.io/search-ui/components/dynamichierarchicalfacet.html)] Support text highlighting in dynamic facet search.
| JSUI-2998
| Add a `buildingResultPreviewsQuery` event.
| JSUI-3035
| [`DynamicFacet`] Improve dynamic facet header accessibility.
| JSUI-3056
| [Accessibility] Link [`Sort`](https://coveo.github.io/search-ui/components/sort.html) component to [`ResultList`](https://coveo.github.io/search-ui/components/resultlist.html) with `aria-controls`.
|===
|===
| Issue number | Case | Maintenance case
| JSUI-3110
| N/A
| Fixed issue where responsive components stopped being responsive when a `Tab` component had its `enableResponsiveMode` option set to `false`.
| JSUI-3113
| 00063369
| [[`ExportToExcel`](https://coveo.github.io/search-ui/components/exporttoexcel.html)] Fixed issue where filters applied through dynamic facets were not taken into consideration when exporting results to Excel.
| JSUI-3121
| 00063492
| [Accessibility] Fixed issue where suggestion box element sometimes didn't have a unique ID.
| JSUI-3126
| 00063556
| [[`ResultLink`](https://coveo.github.io/search-ui/components/resultlink.html)] Fixed issue where raw HTML highlights were displayed in the title.
|===
|===
| Issue number | Bug fix
| JSUI-2878
| Fixed issue where the `FollowItem` component was still included in the default YouTube card result template.
| JSUI-3048
| [[`Facet`](https://coveo.github.io/search-ui/components/facet.html)] Fixed issue where un-excluding a facet value through the facet search results didn't update its appearance.
| JSUI-3135
| [`Facet`] Fixed issue where the size of facet checkboxes would shrink before responsive breakpoints.
|===
### Additional changes in maintenance versions
#### 2.10081.5
|===
| Issue number | Bug fix
| JSUI-3148
| [[`QuerySummary`](https://coveo.github.io/search-ui/components/querysummary.html)] Fixed issue where the default "No results" message was displayed even when a [`noResultsFoundMessage`](https://coveo.github.io/search-ui/components/querysummary.html#options.noresultsfoundmessage) was specified.
| JSUI-3149
| [[`Facet`](https://coveo.github.io/search-ui/components/facet.html)] Removed the vertical padding of facet title inside responsive mode.
|===
[#2-9856]
## September 2020 release (v2.9856)
The September 2020 package was initially released as v2.9856.8.
**CDN links for JavaScript Search Framework v2.9856.8**
- [GitHub release](https://github.com/coveo/search-ui/releases/tag/v2.9856.8)
- npm: `npm install coveo-search-ui@2.9856.8`
- CDN resources:
- JavaScript (lazy, minified): `https://static.cloud.coveo.com/searchui/v2.9856.8/js/CoveoJsSearch.Lazy.min.js`
- Stylesheet (minified): `https://static.cloud.coveo.com/searchui/v2.9856.8/css/CoveoFullSearch.min.css`
- Templates: `https://static.cloud.coveo.com/searchui/v2.9856.8/js/templates/templates.js`
### Changes
|===
| Issue number | Enhancement
| JSUI-2907
| [[`DynamicHierarchicalFacet`](https://coveo.github.io/search-ui/components/dynamichierarchicalfacet.html)] Render a chevron (`>`) next to values that have children.
| JSUI-3092
| Add a scrollbar in facet search results.
| JSUI-3107
| Prevent clearing cookies when initializing history.
|===
|===
| Issue number | Accessibility improvement
| JSUI-3057
| Remove "Select/Unselect" from `aria-label` of facet value checkboxes.
| JSUI-3058
| Replace `alt` attributes with `title` (or `desc`) for SVG images.
| JSUI-3059
| Improve label for `Sort` component.
| JSUI-3064
| Use static label for `FacetValue` and `DynamicFacetValue`.
| JSUI-3067
| Reorder facet value captions and counts.
| JSUI-3071
| Make buttons in `FacetSettings` menu toggleable.
| JSUI-3074
| Hide facet value SVGs from the accessibility tree.
| JSUI-3076
| Add aria landmark to facet breadcrumbs.
| JSUI-3077
| Represent facet breadcrumbs as lists in accessibility tree.
| JSUI-3078
| Manage keyboard focus in facet breadcrumbs.
| JSUI-3079
| Improve visibility of field values in Windows high contrast mode.
| JSUI-3082
| Improve border contrast for `Pager` and `ResultsPerPage` components.
| JSUI-3084
| Make accessibility tools announce facet search results.
| JSUI-3087
| Make facet search convey lack of results to accessibility tools.
| JSUI-3088
| Improve contrast ratios in facet search.
| JSUI-3089
| Remove `aria-label` from field values.
| JSUI-3090
| Make breadcrumb stand out in Windows high contrast mode.
| JSUI-3098
| Add `mixed` state to facet values.
| JSUI-3101
| Modify breadcrumb aria labels to match facet values labels.
|===
|===
| Issue number | Case | Maintenance case
| JSUI-3111
| 00063313
| [[`Triggers`](https://coveo.github.io/search-ui/components/triggers.html)] Fixed issue where notifications were not displayed as expected.
|===
|===
| Issue number | Bug fix
| JSUI-3062
| [[`QuerySummary`](https://coveo.github.io/search-ui/components/querysummary.html)] Fixed issue where the default [`noResultsFoundMessage`](https://coveo.github.io/search-ui/components/querysummary.html#options.noresultsfoundmessage) looked incomplete when the query was empty.
| JSUI-3069
| [Accessibility] Fixed issue where the focus state of the `Facet` expand and collapse buttons wasn't visible in Windows high contrast mode.
|===
[#2-9659]
## August 2020 release (v2.9659)
The August 2020 package was initially released as v2.9659.2.
**CDN links for JavaScript Search Framework v2.9659.2**
- [GitHub release](https://github.com/coveo/search-ui/releases/tag/v2.9659.2)
- npm: `npm install coveo-search-ui@2.9659.2`
- CDN resources:
- JavaScript (lazy, minified): `https://static.cloud.coveo.com/searchui/v2.9659.2/js/CoveoJsSearch.Lazy.min.js`
- Stylesheet (minified): `https://static.cloud.coveo.com/searchui/v2.9659.2/css/CoveoFullSearch.min.css`
- Templates: `https://static.cloud.coveo.com/searchui/v2.9659.2/js/templates/templates.js`
### Changes
|===
| Issue number | Enhancement
| JSUI-2655
| [[DynamicFacetRange](https://coveo.github.io/search-ui/components/dynamicfacetrange.html)] Generate automatic facet ranges when the [`ranges`](https://coveo.github.io/search-ui/components/dynamicfacetrange.html#options.ranges) option is not defined.
| JSUI-3020
| [[DynamicFacet](https://coveo.github.io/search-ui/components/dynamicfacet.html)] Allow currently displayed deselected facet values to appear in facet search results.
|===
|===
| Issue number | Case | Maintenance case
| JSUI-3027
| 00060676
| Fixed issue that caused undesired queries to be triggered when `debug=1` was set in the hash portion of the URL.
| JSUI-3031
| 00062311
| Fixed issue where opening and closing the Quickview would cause glitches in card layout.
| JSUI-3034
| 00062278
| Fixed issue where the `UTF-8` key was sent between double quotes in the `charset` attribute of the `Content-Type` HTTP header.
| JSUI-3043
| 00062331
| [[`Facet`](https://coveo.github.io/search-ui/components/facet.html) / `DynamicFacet`] Fixed issue where facets were completely hidden when their `numberOfValues` option was set to `0`.
| JSUI-3049
| N/A
| [`Facet`] Fixed issue that could cause extra padding to appear at the bottom of facets.
| JSUI-3051
| 00062406
| [`Facet`] Fixed display issues when selecting and deselecting facet values in facet search.
|===
|===
| Issue number | Bug fix
| JSUI-3022
| Fixed issue where the `[` and `]` characters were not recognized as field value delimiters, which caused some nested queries to be flagged as invalid query syntax.
|===
[#2-9373]
## July 2020 release (v2.9373)
The July 2020 package was initially released as v2.9373.6.
**CDN links for JavaScript Search Framework v2.9373.14**
- [GitHub release](https://github.com/coveo/search-ui/releases/tag/v2.9373.14)
- npm: `npm install coveo-search-ui@2.9373.14`
- CDN resources:
- JavaScript (lazy, minified): `https://static.cloud.coveo.com/searchui/v2.9373.14/js/CoveoJsSearch.Lazy.min.js`
- Stylesheet (minified): `https://static.cloud.coveo.com/searchui/v2.9373.14/css/CoveoFullSearch.min.css`
- Templates: `https://static.cloud.coveo.com/searchui/v2.9373.14/js/templates/templates.js`
### Changes
|===
| Issue number | Enhancement
| JSUI-2993
| The constant query expression is now included in queries made by the [`QuerySuggestPreview`](https://coveo.github.io/search-ui/components/querysuggestpreview.html) component.
| JSUI-3002
| The duration of the visitor cookie has been reduced to one year.
| JSUI-3011
| The [`displaySearchOnTop`](https://coveo.github.io/search-ui/components/categoryfacet.html#options.displaysearchontop) and [`displaySearchButton`](https://coveo.github.io/search-ui/components/categoryfacet.html#options.displaysearchbutton) options have been added to the [`CategoryFacet`](https://coveo.github.io/search-ui/components/categoryfacet.html) component.
|===
|===
| Issue number | Case | Maintenance case
| JSUI-2990
| 00060908
| Fixed issue where opening a link in a new tab in a [`Quickview`](https://coveo.github.io/search-ui/components/quickview.html) didn't work on Edge.
| JSUI-2991
| 00060602
| Fixed issue where the [`FieldSuggestions`](https://coveo.github.io/search-ui/components/fieldsuggestions.html) component didn't sort its suggestions correctly.
|===
|===
| Issue number | Bug fix
| JSUI-2994
| Fixed issue where `autocomplete="off"` wasn't set on the [`DynamicFacet`](file:///Users/fbeaudoin/Projects/search-ui-fork/search-ui/docgen/components/dynamicfacet.html) search input.
| JSUI-2997
| [[`FacetsMobileMode`](file:///Users/fbeaudoin/Projects/search-ui-fork/search-ui/docgen/components/facetsmobilemode.html)] Fixed issue where repeatedly resizing the mobile facet modal would render superfluous close and filter buttons.
| JSUI-3000
| Fixed issue where the [`FieldValue`](https://coveo.github.io/search-ui/components/fieldvalue.html) component didn't use the custom captions defined on the corresponding `Facet`/`DynamicFacet`.
| JSUI-3008
| [[`FacetSlider`](https://coveo.github.io/search-ui/components/facetslider.html)] Fixed issue where the Edge/IE11 slider touch would interact incorrectly with browser history navigation.
|===
### Additional changes in maintenance versions
#### v2.9373.8
|===
| Issue number | Bug fix
| JSUI-3028
| [[`ResultLink`](https://coveo.github.io/search-ui/components/resultlink.html)] Fixed issue that caused some click URIs to break.
|===
#### v2.9373.14
|===
| Issue number | Case | Maintenance case
| JSUI-2990
| N/A
| [[`ResultList`](https://coveo.github.io/search-ui/components/resultlist.html)] Fixed issue where setting the [`data-result-container-selector`](https://coveo.github.io/search-ui/components/resultlist.html#options.resultscontainer) option didn't work.
| JSUI-2991
| 00062512
| Fixed issue where action history was still tracked after disabling analytics.
|===
[#2-9159]
## June 2020 release (v2.9159)
The June 2020 package was initially released as v2.9159.6.
**CDN links for JavaScript Search Framework v2.9159.13**
- [GitHub release](https://github.com/coveo/search-ui/releases/tag/v2.9159.13)
- npm: `npm install coveo-search-ui@2.9159.13`
- CDN resources:
- JavaScript (lazy, minified): `https://static.cloud.coveo.com/searchui/v2.9159.13/js/CoveoJsSearch.Lazy.min.js`
- Stylesheet (minified): `https://static.cloud.coveo.com/searchui/v2.9159.13/css/CoveoFullSearch.min.css`
- Templates: `https://static.cloud.coveo.com/searchui/v2.9159.13/js/templates/templates.js`
### Release highlights
#### New component: `FacetsMobileMode`
_Issue number: JSUI-2957_
The new [`FacetsMobileMode`](https://coveo.github.io/search-ui/components/facetsmobilemode.html) component lets you customize the mobile responsive behavior of facets in your search interface.
```html
```
### Other changes
|===
| Issue number | Bug fix
| JSUI-2758
| [[`Omnibox`](https://coveo.github.io/search-ui/components/omnibox.html)] Fixed issue where no trending query suggestions were displayed after clearing the search box.
| JSUI-2942
| [[`Quickview`](https://coveo.github.io/search-ui/components/quickview.html)] Fixed issue where the component created a modal box on the document body instead of on the search interface element.
| JSUI-2960
| Fixed issue where facet `dependsOnCondition` was verified before external Omnibox filter was cleared.
| JSUI-2961
| [[`FacetRange`](https://coveo.github.io/search-ui/components/facetrange.html)] Fixed issue where the component was not displaying generated ranges in the proper format.
| JSUI-2966
| Fixed issue where page scrolled back to the top when clearing the last query state in the URL.
| JSUI-2971
| [[`Analytics`](https://coveo.github.io/search-ui/components/analytics.html)] Fixed issue where manually defined [`endpoint`](https://coveo.github.io/search-ui/components/analytics.html#options.endpoint) value that didn't end with `/rest` was not automatically corrected.
|===
### Additional changes in maintenance versions
#### v2.9159.8
|===
| Issue number | Bug fix
| JSUI-2995
| [[`FacetsMobileMode`](https://coveo.github.io/search-ui/components/facetsmobilemode.html)] Fixed button styling on iOS Safari.
|===
#### 2.9159.10
|===
| Issue number | Bug fix
| JSUI-3006
| [[`FacetRange`](https://coveo.github.io/search-ui/components/facetrange.html)] Fixed issue where component was not displaying specified labels for ranges.
|===
#### 2.9159.13
|===
| Issue number | Bug fix
| JSUI-3028
| [[`ResultLink`](https://coveo.github.io/search-ui/components/resultlink.html)] Fixed issue that caused some click URIs to break.
|===
[#2-8959]
## May 2020 release (v2.8959)
The May 2020 package was initially released as v2.8959.6.
**CDN links for JavaScript Search Framework v2.8959.14**
- [GitHub release](https://github.com/coveo/search-ui/releases/tag/v2.8959.14)
- npm: `npm install coveo-search-ui@2.8959.14`
- CDN resources:
- JavaScript (lazy, minified): `https://static.cloud.coveo.com/searchui/v2.8959.14/js/CoveoJsSearch.Lazy.min.js`
- Stylesheet (minified): `https://static.cloud.coveo.com/searchui/v2.8959.14/css/CoveoFullSearch.min.css`
- Templates: `https://static.cloud.coveo.com/searchui/v2.8959.14/js/templates/templates.js`
### Changes
|===
| Issue number | Case | Maintenance case
| JSUI-2948
| 00060149
| [[`Facet`](https://coveo.github.io/search-ui/components/facet.html)] Fixed issue where un-selecting/un-excluding a facet value would hide the last selected/excluded value when the number of selected/excluded values exceeded the specified [`numberOfValues`](https://coveo.github.io/search-ui/components/facet.html#options.numberofvalues).
| JSUI-2950
| 00060280
| Uniformize the way [`ComponentEvents`](https://coveo.github.io/search-ui/classes/componentevents.html) class methods determine whether to use jQuery for event propagation.
| JSUI-2951
| 00059821
| [[`FacetValueSuggestions`](https://coveo.github.io/search-ui/components/facetvaluesuggestions.html)] Fixed issue where selecting a facet value suggestion not did select the corresponding value in a facet initialized as an external component.
|===
|===
| Issue number | Bug fix
| JSUI-2945
| [[`Tab`](https://coveo.github.io/search-ui/components/tab.html)] Fixed issue where the responsive tab's **More** button was not clickable in Coveo for Salesforce.
|===
### Additional changes in maintenance versions
#### v2.8959.8
|===
| Issue number | Bug fix
| JSUI-2959
| [[`FieldTable`](https://coveo.github.io/search-ui/components/fieldtable.html)] Fixed issue where no toggle icon was displayed, and the **Details** button had to be clicked twice to re-expand a field table that was initially expanded by default.
| JSUI-2963
| [[`MissingTerms`](https://coveo.github.io/search-ui/components/missingterms.html)] Fixed issue where the component would only detect absent terms when they were typed in lower case in the query.
|===
#### v2.8959.10
|===
| Issue number | Bug fix
| JSUI-2815
| [[`FieldValue`](https://coveo.github.io/search-ui/components/fieldvalue.html)] Fixed issue where rendered field value was not clickable if an [`id`](https://coveo.github.io/search-ui/components/dynamicfacet.html#options.id-1) option value was specified on the corresponding facet.
| JSUI-2964
| [`FieldValue`] Removed superfluous component dependencies.
|===
#### v2.8959.14
|===
| Issue number | Bug fix
| JSUI-2977
| [[`FieldValue`](https://coveo.github.io/search-ui/components/fieldvalue.html)] Fixed issue where the component was accepting range values.
|===
[#2-8864]
## April 2020 release (v2.8864)
The April 2020 package was initially released as v2.8864.5.
**CDN links for JavaScript Search Framework v2.8864.13**
- [GitHub release](https://github.com/coveo/search-ui/releases/tag/v2.8864.13)
- npm: `npm install coveo-search-ui@2.8864.13`
- CDN resources:
- JavaScript (lazy, minified): `https://static.cloud.coveo.com/searchui/v2.8864.13/js/CoveoJsSearch.Lazy.min.js`
- Stylesheet (minified): `https://static.cloud.coveo.com/searchui/v2.8864.13/css/CoveoFullSearch.min.css`
- Templates: `https://static.cloud.coveo.com/searchui/v2.8864.13/js/templates/templates.js`
### Release highlights
#### New `DynamicHierarchicalFacet` option: `basePath`
_Issue number: JSUI-2736_
The new [`basePath`](https://coveo.github.io/search-ui/components/dynamichierarchicalfacet.html#options.basepath) option lets you display only values that share a common root ancestor in a [`DynamicHierarchicalFacet`](https://coveo.github.io/search-ui/components/dynamichierarchicalfacet.html).
```html
```
#### New `DynamicFacet` option: `dependsOnCondition`
_Issue number: JSUI-2902_
When you want a facet to only appear when another facet is a certain state (for example, when a specific value is selected), you can use the [`dependsOn`](https://coveo.github.io/search-ui/components/dynamicfacet.html#options.dependson) option along with the new [`dependsOnCondition`](https://coveo.github.io/search-ui/components/dynamicfacet.html#options.dependsoncondition) option.
For example, with the following configuration, the **Book genre** facet will only appear when the **Book** value is selected in the **Product type** facet.
```javascript
document.addEventListener("DOMContentLoaded", () => {
const root = document.getElementById("search");
Coveo.init(root, {
book_genre_facet: {
dependsOn: "@producttype",
dependsOnCondition: (parentFacet) => {
const id = parentFacet.options.id;
const value = "Book";
const selected = parentFacet.queryStateModel.get(`f:${id}`)
return selected.includes(value);
}
}
});
// ...
});
```
```html
```
For additional explanations and examples, see [Define dependent facets](https://docs.coveo.com/en/3210/).
#### Change default analytics endpoint
_Issue number: JSUI-2923_
The [`Analytics`](https://coveo.github.io/search-ui/components/analytics.html) component now uses `+https://platform.cloud.coveo.com/rest/ua+` as a default [`endpoint`](https://coveo.github.io/search-ui/components/analytics.html#options.endpoint) value (it was `+https://usageanalytics.coveo.com/+` before).
The new endpoint behaves exactly like the old one.
However, this change implies that, in most deployments, usage analytics network calls will have a different name when you inspect them with using your browser developer tools.
### Other changes
|===
| Issue number | Enhancement
| JSUI-2900
| [[`ResultList`](https://coveo.github.io/search-ui/components/resultlist.html)] The [`enableScrollToTop`](https://coveo.github.io/search-ui/components/resultlist.html#options.enablescrolltotop) option is now only effective when the top isn't already in the viewport.
| JSUI-2915
| The basic query expression (`q`) is now included in the usage analytics event that gets logged when a redirect trigger is executed.
| JSUI-2933
| [[`DynamicFacetRange`](https://coveo.github.io/search-ui/components/dynamicfacetrange.html)] The component will now be able to reappear after it has been hidden because no results were found.
|===
|===
| Issue number | Case | Maintenance case
| JSUI-2882
| 00058787
| [[`Facet`](https://coveo.github.io/search-ui/components/facet.html)] Fixed issue where facet search result counts were not all displayed.
| JSUI-2909
| 00059237
| Fixed issue where the `format` options of the [`number`](https://coveo.github.io/search-ui/interfaces/icorehelpers.html#number) template helper didn't work when specified in the markup configuration.
| JSUI-2929
| N/A
| [[`Breadcrumb`](https://coveo.github.io/search-ui/components/breadcrumb.html)] Fixed issue where the component would output a `clas-name` attribute instead of `class` attribute for facet slider captions.
| JSUI-2938
| 00059299
| [[`FieldTable`](https://coveo.github.io/search-ui/components/fieldtable.html)] Fixed issue where the **Details** section would sometimes not expand.
|===
|===
| Issue number | Bug fix
| JSUI-2911
| Fixed issue where an external styling dependency could cause conflicts.
|===
### Additional changes in maintenance versions
#### v2.8864.7
|===
| Issue number | Case | Maintenance case
| JSUI-2944
| 00059928
| [[`Facet`](https://coveo.github.io/search-ui/components/facet.html)] Fixed inconsistent behavior when selecting values in a facet using an alphabetical sort criterion.
|===
#### v2.8864.13
|===
| Issue number | Case | Maintenance case
| JSUI-3054
| 00062229
| Fixed issue where Popper.js event listeners were being fired too often, which would sometimes impact performance, notably in IE11.
|===
[#2-8521]
## March 2020 release (v2.8521)
The March 2020 package was initially released as v2.8521.7.
**CDN links for JavaScript Search Framework v2.8521.7**
- [GitHub release](https://github.com/coveo/search-ui/releases/tag/v2.8521.7)
- npm: `npm install coveo-search-ui@2.8521.7`
- CDN resources:
- JavaScript (lazy, minified): `https://static.cloud.coveo.com/searchui/v2.8521.7/js/CoveoJsSearch.Lazy.min.js`
- Stylesheet (minified): `https://static.cloud.coveo.com/searchui/v2.8521.7/css/CoveoFullSearch.min.css`
- Templates: `https://static.cloud.coveo.com/searchui/v2.8521.7/js/templates/templates.js`
### Release highlights
#### New component: `SortDropdown`
The new [`SortDropdown`](https://coveo.github.io/search-ui/components/sortdropdown.html) component provides an alternative way to render result sorting options in a search interface.
_Issue number: JSUI-2478_
```html
```
### New component: `CommerceQuery`
_Issue number: JSUI-2718_
The new [`CommerceQuery`](https://coveo.github.io/search-ui/components/commercequery.html) component will eventually provide a set of commerce-specific options.
For now, this component only exposes the [`listing`](https://coveo.github.io/search-ui/components/commercequery.html#options.listing) option.
In a Coveo-powered commerce solution, each product listing page should include a `CommerceQuery` component and set its `listing` option to a unique value.
```html
```
Among other things, this is important to allow the [Coveo Machine Learning (Coveo ML)](https://docs.coveo.com/en/188/) [Automatic Relevance Tuning (ART)](https://docs.coveo.com/en/1013/) feature to work in your product listing pages.
#### `QuerySuggestPreview` now supports `FacetValueSuggestions`
_Issue number: JSUI-2763_
The [`QuerySuggestPreview`](https://coveo.github.io/search-ui/components/querysuggestpreview.html) component has been improved to support suggestions generated by [`FacetValueSuggestions`](https://coveo.github.io/search-ui/components/facetvaluesuggestions.html) components in addition to standard Coveo ML query suggestions.
```html
```
#### New `SearchInterface` option: `enableScrollRestoration`
_Issue number: JSUI-2784_
In a commerce search interface, when an end user clicks a product to access its detailed view, and then navigates back to the search interface, it's considered good UX practice to automatically scroll back to the clicked product in the result list.
The new [`enableScrollRestoration`](https://coveo.github.io/search-ui/components/searchinterface.html#options.enablescrollrestoration) option of the [`SearchInterface`](https://coveo.github.io/search-ui/components/searchinterface.html) component allows you to enable this behavior.
```html
```
> **Note**
>
> The `enableScrollRestoration` feature doesn't currently work with [`ResultList`](https://coveo.github.io/search-ui/components/resultlist.html) components whose [`enableInfiniteScroll`](https://coveo.github.io/search-ui/components/resultlist.html#options.enableinfinitescroll) option is set to `true`.
#### New `SimpleFilter` option: `enableClearButton`
The [`SimpleFilter`](https://coveo.github.io/search-ui/components/simplefilter.html) component now exposes a [`enableClearButton`](https://coveo.github.io/search-ui/components/simplefilter.html#options.enableclearbutton) option allowing end users to quickly unselect all filters.
_Issue number: JSUI-2686_
```html
```
#### New `DynamicHierarchicalFacet` option: `sortCriteria`
The [`DynamicHierarchicalFacet`](https://coveo.github.io/search-ui/components/dynamichierarchicalfacet.html) component now exposes a [`sortCriteria`](https://coveo.github.io/search-ui/components/dynamichierarchicalfacet.html#options.sortcriteria) option allowing you to sort values alphanumerically rather than by number of occurrences.
_Issue number: JSUI-2787_
```html
```
#### Redirect triggers no longer redirect twice
_Issue numbers: JSUI-2847, JSUI-2849_
When a query is submitted from a standalone search box, it will now be pre-processed by the Search API before anything else happens.
If the returned pre-processing information indicates that the query would fire a `redirect` trigger rule in the query pipeline, that rule will be executed immediately.
Otherwise, the query will be normally forwarded to the full search page specified in the `initSearchbox` call.
Concretely, this means that standalone search boxes will now automatically handle `redirect` trigger rules on their own, instead of letting a [`Trigggers`](https://coveo.github.io/search-ui/components/triggers.html) component in the full search page handle them.
This behavior will feel more natural to the end-user, because they won't be redirected twice (that is, to the search page, and then to the `redirect` trigger's URL).
### Other changes
|===
| Issue number | Enhancement
| JSUI-2772
| [[`StarRating`](https://coveo.github.io/search-ui/components/starrating.html)] Values are now rounded to the nearest integer.
| JSUI-2784
| [[`DynamicFacetRange`](https://coveo.github.io/search-ui/components/dynamicfacetrange.html)] The [`valueFormat`](https://coveo.github.io/search-ui/components/dynamicfacetrange.html#options.valueformat) option is now automatically set to `date` by default when the specified [`field`](https://coveo.github.io/search-ui/components/dynamicfacet.html#options.field) name contains `date`.
| JSUI-2785
| [`DynamicFacet`] The `filterFacetCount` option was added.
| JSUI-2823
| [Default result templates] Unique [`id`](https://coveo.github.io/search-ui/components/dynamicfacet.html#options.id-1) option values are now used to distinguish potentially redundant dynamic facets.
| JSUI-2829
| [`DynamicFacet`] Selected values are now displayed as a comma-separated list under the title of a collapsed dynamic facet.
| JSUI-2832
| [`DynamicFacet`] The Coveo ML Dynamic Navigation Experience (DNE) autoselection feature is now prevented when the end user triggers a query by interacting with one or more dynamic facets.
| JSUI-2839
| `SameSite=Lax` is now added when setting cookies to remove console warnings.
| JSUI-2855
| The facet column padding was slightly modified.
|===
|===
| Issue number | Case | Maintenance case
| JSUI-2830
| 00058438
| [[`Facet`](https://coveo.github.io/search-ui/components/facet.html)] Fixed issue where the [`allowedValues`](https://coveo.github.io/search-ui/components/facet.html#options.allowedvalues) option didn't allow parentheses.
| JSUI-2842
| 00058328
| Fixed issue where the first usage analytics event was not sent after renewing the search token.
| JSUI-2863
| 00058762
| Fixed issue where configuring history and using local storage was impossible in a standalone search interface.
| JSUI-2896
| 00059117
| Fixed issue where a page would break if folding was enabled and the page contained a [`Tab`](https://coveo.github.io/search-ui/components/tab.html) whose [`id`](https://coveo.github.io/search-ui/components/tab.html#options.id-1) option value was exactly two characters long.
|===
|===
| Issue number | Bug fix
| JSUI-2627
| [`FacetValueSuggestions`] Fixed issue where the component didn't allow setting an [`expression`](https://coveo.github.io/search-ui/components/facetvaluesuggestions.html#options.expression), resulting in invalid suggestions for filtered search interfaces.
| JSUI-2768
| [`QuerySuggestPreview`] Fixed issue where the default template didn't work in Firefox.
| JSUI-2799
| Fixed issue where the `highlightStreamHtml` result template helper didn't properly merge options.
| JSUI-2822
| [[`DynamicFacetManager`](https://coveo.github.io/search-ui/components/dynamicfacetmanager.html)] Fixed issue where facets didn't collapse properly in search interfaces containing multiple tabs.
| JSUI-2843
| Fixed issue where facet state position was sent as `null` rather than `undefined` by default in usage analytics events.
| JSUI-2844
| Fixed a console error on Chrome/Chromium when selecting a dynamic facet search result.
| JSUI-2875
| [`DynamicHierarchicalFacet`] Fixed issue where there was no arrow next to the **All Categories** text.
|===
[#2-7968]
## January 2020 release (v2.7968)
The January 2020 package was initially released as v2.7968.7.
**CDN links for JavaScript Search Framework v2.7968.18**
- [GitHub release](https://github.com/coveo/search-ui/releases/tag/v2.7968.18)
- npm: `npm install coveo-search-ui@2.7968.18`
- CDN resources:
- JavaScript (lazy, minified): `https://static.cloud.coveo.com/searchui/v2.7968.18/js/CoveoJsSearch.Lazy.min.js`
- Stylesheet (minified): `https://static.cloud.coveo.com/searchui/v2.7968.18/css/CoveoFullSearch.min.css`
- Templates: `https://static.cloud.coveo.com/searchui/v2.7968.18/js/templates/templates.js`
### Release highlights
#### New component: `DynamicHierarchicalFacet`
_Issue numbers: JSUI-2519, JSUI-2807_
The new [`DynamicHierarchicalFacet`](https://coveo.github.io/search-ui/components/dynamichierarchicalfacet.html) component works in a similar fashion to the [`CategoryFacet`](https://coveo.github.io/search-ui/components/categoryfacet.html) component, but also supports the [Coveo Machine Learning (Coveo ML)](https://docs.coveo.com/en/188/) [Dynamic Navigation Experience (DNE)](https://docs.coveo.com/en/2907/) feature.
See [Use hierarchical facets](https://docs.coveo.com/en/2667/).
#### New component: `StarRating`
_Issue number: SFINT-2649_
The new [`StarRating`](https://coveo.github.io/search-ui/components/starrating.html) result template component renders a five-star widget for use in commerce [result templates](https://docs.coveo.com/en/413/).
```html
```
#### CDN: Support Subresource Integrity
_Issue number: JSUI-2783_
From this version on, each hotfix release will be uploaded to a distinct CDN folder, and links to those resources will include the `integrity` and `crossorigin` attributes to support the [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity) (SRI) security feature.
CDN links without hotfix folders nor SRI will remain available.
See [JavaScript Search Framework CDN links](https://docs.coveo.com/en/2075/).
#### New `DynamicFacet` option: `injectionDepth`
_Issue number: JSUI-2752_
The [`DynamicFacet`](https://coveo.github.io/search-ui/components/dynamicfacet.html), [`DynamicFacetRange`](https://coveo.github.io/search-ui/components/dynamicfacetrange.html), and [`DynamicHierarchicalFacet`](https://coveo.github.io/search-ui/components/dynamichierarchicalfacet.html) components now have an [`injectionDepth`](https://coveo.github.io/search-ui/components/dynamicfacet.html#options.injectiondepth) option, allowing you to specify the number of items to scan for facet values.
See [Use dynamic facets](https://docs.coveo.com/en/2917/).
#### `DynamicFacetRange`: Support currency value format
_Issue number: JSUI-2656_
The [`valueFormat`](https://coveo.github.io/search-ui/components/dynamicfacetrange.html#options.valueformat) option of the [`DynamicFacetRange`](https://coveo.github.io/search-ui/components/dynamicfacetrange.html) component now supports the [`currency`](https://coveo.github.io/search-ui/enums/dynamicfacetrangevalueformat.html#currency) value, allowing you to display price ranges in commerce search interfaces.
By default, the component renders currency range values using the currency symbol associated with the currently loaded culture file.
You can also specify the desired [`currencySymbol`](https://coveo.github.io/search-ui/components/dynamicfacetrange.html#options.currencysymbol) if needed.
### Other changes
|===
| Issue number | Enhancement
| JSUI-2359
| [[`Analytics`](https://coveo.github.io/search-ui/components/analytics.html)] Updated [`logCustomEvent`](https://coveo.github.io/search-ui/components/analytics.html#logcustomevent) method signature to support optional [`result`](https://coveo.github.io/search-ui/interfaces/iqueryresult.html) parameter.
| JSUI-2724
| Use dynamic facets in default JavaScript Search Framework pages.
| JSUI-2777
| [[`Logo`](https://coveo.github.io/search-ui/components/logo.html)] Add [`target`](https://coveo.github.io/search-ui/components/logo.html#options.target) option.
| JSUI-2781
| [[`DynamicFacetManager`](https://coveo.github.io/search-ui/components/dynamicfacetmanager.html)] Take [`collapsedByDefault`](https://coveo.github.io/search-ui/components/dynamicfacet.html#options.collapsedbydefault) dynamic facet option into account.
|===
|===
| Issue number | Case | Maintenance case
| JSUI-2710
| 00057245
| Fixed issue where "No Results" string localization was not applied when using eager component loading.
| JSUI-2776
| 00057774
| [[`Pager`](https://coveo.github.io/search-ui/components/pager.html)] Fixed issue where component would request more results than maximum allowed by index.
|===
|===
| Issue number | Bug fix
| JSUI-2742
| [`DynamicFacetManager`] Fixed issue where component would interact with incompatible embedded components.
| JSUI-2788
| [`DynamicFacetManager`] Fixed issue where component would consider values of non-embedded facets.
|===
### Additional changes in maintenance versions
#### v2.7968.18
|===
| Issue number | Case | Maintenance case
| JSUI-2863
| 00058762
| Fixed issue where configuring history and using local storage was impossible in a standalone search interface.
|===