V2 2020 releases
V2 2020 releases
This page summarizes the new features and bug fixes introduced throughout 2020.
|
|
Note
The latest changes are available in Release notes. |
October 2020 release (v2.10081)
The October 2020 package was initially released as v2.10081.2.
You can get the latest version of this release (v2.10081.5):
-
From GitHub (2.10081.5)
-
From npm (
npm install coveo-search-ui@2.10081.5) -
From the Coveo CDN:
| Resource [1] | Script to include |
|---|---|
CSS (minified) |
With SRI:
Without SRI:
|
Framework (lazy loading, minified) |
With SRI: [2]
Without SRI:
2. See Subresource Integrity.
|
Templates |
With SRI:
Without SRI:
|
Changes
| Issue number | Enhancement |
|---|---|
JSUI-2979 |
[ |
JSUI-2998 |
Add a |
JSUI-3035 |
[ |
JSUI-3056 |
[Accessibility] Link |
| Issue number | Case | Maintenance case |
|---|---|---|
JSUI-3110 |
N/A |
Fixed issue where responsive components stopped being responsive when a |
JSUI-3113 |
00063369 |
[ |
JSUI-3121 |
00063492 |
[Accessibility] Fixed issue where suggestion box element sometimes didn’t have a unique ID. |
JSUI-3126 |
00063556 |
[ |
| Issue number | Bug fix |
|---|---|
JSUI-2878 |
Fixed issue where the |
JSUI-3048 |
[ |
JSUI-3135 |
[ |
Additional changes in maintenance versions
2.10081.5
| Issue number | Bug fix |
|---|---|
JSUI-3148 |
[ |
JSUI-3149 |
[ |
September 2020 release (v2.9856)
The September 2020 package was initially released as v2.9856.8.
You can get the latest version of this release (v2.9856.8):
-
From GitHub (2.9856.8)
-
From npm (
npm install coveo-search-ui@2.9856.8) -
From the Coveo CDN:
| Resource [1] | Script to include |
|---|---|
CSS (minified) |
With SRI:
Without SRI:
|
Framework (lazy loading, minified) |
With SRI: [3]
Without SRI:
3. See Subresource Integrity.
|
Templates |
With SRI:
Without SRI:
|
Changes
| Issue number | Enhancement |
|---|---|
JSUI-2907 |
[ |
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 |
JSUI-3058 |
Replace |
JSUI-3059 |
Improve label for |
JSUI-3064 |
Use static label for |
JSUI-3067 |
Reorder facet value captions and counts. |
JSUI-3071 |
Make buttons in |
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 |
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 |
JSUI-3090 |
Make breadcrumb stand out in Windows high contrast mode. |
JSUI-3098 |
Add |
JSUI-3101 |
Modify breadcrumb aria labels to match facet values labels. |
| Issue number | Case | Maintenance case |
|---|---|---|
JSUI-3111 |
00063313 |
[ |
| Issue number | Bug fix |
|---|---|
JSUI-3062 |
[ |
JSUI-3069 |
[Accessibility] Fixed issue where the focus state of the |
August 2020 release (v2.9659)
The August 2020 package was initially released as v2.9659.2.
You can get the latest version of this release (v2.9659.2):
-
From GitHub (2.9659.2)
-
From npm (
npm install coveo-search-ui@2.9659.2) -
From the Coveo CDN:
| Resource [1] | Script to include |
|---|---|
CSS (minified) |
With SRI:
Without SRI:
|
Framework (lazy loading, minified) |
With SRI: [4]
Without SRI:
4. See Subresource Integrity.
|
Templates |
With SRI:
Without SRI:
|
Changes
| Issue number | Enhancement |
|---|---|
JSUI-2655 |
[DynamicFacetRange] Generate automatic facet ranges when the |
JSUI-3020 |
[DynamicFacet] 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 |
JSUI-3031 |
00062311 |
Fixed issue where opening and closing the Quickview would cause glitches in card layout. |
JSUI-3034 |
00062278 |
Fixed issue where the |
JSUI-3043 |
00062331 |
[ |
JSUI-3049 |
N/A |
[ |
JSUI-3051 |
00062406 |
[ |
| Issue number | Bug fix |
|---|---|
JSUI-3022 |
Fixed issue where the |
July 2020 release (v2.9373)
The July 2020 package was initially released as v2.9373.6.
You can get the latest version of this release (v2.9373.14):
-
From GitHub (2.9373.14)
-
From npm (
npm install coveo-search-ui@2.9373.14) -
From the Coveo CDN:
| Resource [1] | Script to include |
|---|---|
CSS (minified) |
With SRI:
Without SRI:
|
Framework (lazy loading, minified) |
With SRI: [5]
Without SRI:
5. See Subresource Integrity.
|
Templates |
With SRI:
Without SRI:
|
Changes
| Issue number | Enhancement |
|---|---|
JSUI-2993 |
The constant query expression is now included in queries made by the |
JSUI-3002 |
The duration of the visitor cookie has been reduced to one year. |
JSUI-3011 |
The |
| Issue number | Case | Maintenance case |
|---|---|---|
JSUI-2990 |
00060908 |
Fixed issue where opening a link in a new tab in a |
JSUI-2991 |
00060602 |
Fixed issue where the |
| Issue number | Bug fix |
|---|---|
JSUI-2994 |
Fixed issue where |
JSUI-2997 |
[ |
JSUI-3000 |
Fixed issue where the |
JSUI-3008 |
[ |
Additional changes in maintenance versions
v2.9373.8
| Issue number | Bug fix |
|---|---|
JSUI-3028 |
[ |
v2.9373.14
| Issue number | Case | Maintenance case |
|---|---|---|
JSUI-2990 |
N/A |
[ |
JSUI-2991 |
00062512 |
Fixed issue where action history was still tracked after disabling analytics. |
June 2020 release (v2.9159)
The June 2020 package was initially released as v2.9159.6.
You can get the latest version of this release (v2.9159.13):
-
From GitHub (2.9159.13)
-
From npm (
npm install coveo-search-ui@2.9159.13) -
From the Coveo CDN:
| Resource [1] | Script to include |
|---|---|
CSS (minified) |
With SRI:
Without SRI:
|
Framework (lazy loading, minified) |
With SRI: [6]
Without SRI:
6. See Subresource Integrity.
|
Templates |
With SRI:
Without SRI:
|
Release highlights
New component: FacetsMobileMode
Issue number: JSUI-2957
The new FacetsMobileMode component lets you customize the mobile responsive behavior of facets in your search interface.
<div class="CoveoSearchInterface">
<div class="CoveoFacetsMobileMode"
data-is-modal="true"></div>
</div>
New Facet / DynamicFacet method: hasSelectedValue
Issue number: JSUI-2964
The Facet and DynamicFacet components now expose a hasSelectedValue method that simplifies the use of the 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:
document.addEventListener("DOMContentLoaded", () => {
const root = document.getElementById("search");
Coveo.init(root, {
book_genre_facet: {
dependsOn: "@producttype",
dependsOnCondition: (parentFacet) => {
return parentFacet.hasSelectedValue("Book");
}
}
});
// ...
});
<div id="search" class="CoveoSearchInterface">
<!-- ... -->
<div class="coveo-facet-column">
<div class="CoveoDynamicFacet"
data-title="Product type"
data-field="@producttype"></div>
<div id="book_genre_facet"
class="CoveoDynamicFacet"
data-title="Book genre"
data-field="@bookgenre"></div>
</div>
<!-- ... -->
</div>
Prior to this release, the dependsOnCondition function would have had to be more complex:
// ...
Coveo.init(root, {
book_genre_facet: {
dependsOn: "@producttype",
dependsOnCondition: (parentFacet) => {
const id = parentFacet.options.id;
const selected = parentFacet.queryStateModel.get(`f:${id}`)
return selected.includes("Book");
}
}
});
// ...
For additional explanations and examples, see Define dependent facets.
Dynamic hierarchical facets now support facet search
Issue number: JSUI-2735
You can set the enableFacetSearch option to true on a DynamicHierarchicalFacet component to allow your end users to search for hierarchical values in that facet.
<div class="CoveoDynamicHierarchicalFacet"
data-field="atlgeographicalhierarchy"
data-title="Geographical Location"
data-enable-facet-search="true">
Other changes
| Issue number | Bug fix |
|---|---|
JSUI-2758 |
[ |
JSUI-2942 |
[ |
JSUI-2960 |
Fixed issue where facet |
JSUI-2961 |
[ |
JSUI-2966 |
Fixed issue where page scrolled back to the top when clearing the last query state in the URL. |
JSUI-2971 |
[ |
Additional changes in maintenance versions
v2.9159.8
| Issue number | Bug fix |
|---|---|
JSUI-2995 |
[ |
2.9159.10
| Issue number | Bug fix |
|---|---|
JSUI-3006 |
[ |
2.9159.13
| Issue number | Bug fix |
|---|---|
JSUI-3028 |
[ |
May 2020 release (v2.8959)
The May 2020 package was initially released as v2.8959.6.
You can get the latest version of this release (v2.8959.14):
-
From GitHub (2.8959.14)
-
From npm (
npm install coveo-search-ui@2.8959.14) -
From the Coveo CDN:
| Resource [1] | Script to include |
|---|---|
CSS (minified) |
With SRI:
Without SRI:
|
Framework (lazy loading, minified) |
With SRI: [7]
Without SRI:
7. See Subresource Integrity.
|
Templates |
With SRI:
Without SRI:
|
Changes
| Issue number | Case | Maintenance case |
|---|---|---|
JSUI-2948 |
00060149 |
[ |
JSUI-2950 |
00060280 |
Uniformize the way |
JSUI-2951 |
00059821 |
[ |
| Issue number | Bug fix |
|---|---|
JSUI-2945 |
[ |
Additional changes in maintenance versions
v2.8959.8
| Issue number | Bug fix |
|---|---|
JSUI-2959 |
[ |
JSUI-2963 |
[ |
v2.8959.10
| Issue number | Bug fix |
|---|---|
JSUI-2815 |
[ |
JSUI-2964 |
[ |
v2.8959.14
| Issue number | Bug fix |
|---|---|
JSUI-2977 |
[ |
April 2020 release (v2.8864)
The April 2020 package was initially released as v2.8864.5.
You can get the latest version of this release (v2.8864.13):
-
From GitHub (2.8864.13)
-
From npm (
npm install coveo-search-ui@2.8864.13) -
From the Coveo CDN:
| Resource [1] | Script to include |
|---|---|
CSS (minified) |
With SRI:
Without SRI:
|
Framework (lazy loading, minified) |
With SRI: [8]
Without SRI:
8. See Subresource Integrity.
|
Templates |
With SRI:
Without SRI:
|
Release highlights
New DynamicHierarchicalFacet option: basePath
Issue number: JSUI-2736
The new basePath option lets you display only values that share a common root ancestor in a DynamicHierarchicalFacet.
<div class="CoveoDynamicHierarchicalFacet"
data-id="location_facet"
data-title="Location"
data-field="@atlgeographicalhierarchy"></div>
<div class="CoveoDynamicHierarchicalFacet"
data-id="location_europe_facet"
data-title="Location (Europe)"
data-field="@atlgeographicalhierarchy"
data-base-path="Europe"></div>
<div class="CoveoDynamicHierarchicalFacet"
data-id="location_north_america_facet"
data-title="Location (North America)"
data-field="@atlgeographicalhierarchy"
data-base-path="North America"></div>
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 option along with the new 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.
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);
}
}
});
// ...
});
<div id="search" class="CoveoSearchInterface">
<!-- ... -->
<div class="coveo-facet-column">
<div class="CoveoDynamicFacet"
data-title="Product type"
data-field="@producttype"></div>
<div id="book_genre_facet"
class="CoveoDynamicFacet"
data-title="Book genre"
data-field="@bookgenre"></div>
</div>
<!-- ... -->
</div>
For additional explanations and examples, see Define dependent facets.
Change default analytics endpoint
Issue number: JSUI-2923
The Analytics component now uses https://platform.cloud.coveo.com/rest/ua as a default 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 |
[ |
JSUI-2915 |
The basic query expression ( |
JSUI-2933 |
[ |
| Issue number | Case | Maintenance case |
|---|---|---|
JSUI-2882 |
00058787 |
[ |
JSUI-2909 |
00059237 |
Fixed issue where the |
JSUI-2929 |
N/A |
[ |
JSUI-2938 |
00059299 |
[ |
| 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 |
[ |
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. |
March 2020 release (v2.8521)
The March 2020 package was initially released as v2.8521.7.
You can get the latest version of this release (v2.8521.7):
-
From GitHub (2.8521.7)
-
From npm (
npm install coveo-search-ui@2.8521.7) -
From the Coveo CDN:
| Resource [1] | Script to include |
|---|---|
CSS (minified) |
With SRI:
Without SRI:
|
Framework (lazy loading, minified) |
With SRI: [9]
Without SRI:
9. See Subresource Integrity.
|
Templates |
With SRI:
Without SRI:
|
Release highlights
New component: SortDropdown
The new SortDropdown component provides an alternative way to render result sorting options in a search interface.
Issue number: JSUI-2478
<div class="CoveoSortDropdown">
<span class="CoveoSort" data-sort-criteria="relevancy"
data-caption="Relevance"></span>
<span class="CoveoSort" data-sort-criteria="date descending"
data-caption="Newest"></span>
<span class="CoveoSort" data-sort-criteria="date ascending"
data-caption="Oldest"></span>
</div>
New component: CommerceQuery
Issue number: JSUI-2718
The new CommerceQuery component will eventually provide a set of commerce-specific options.
For now, this component only exposes the 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.
<div class="CoveoSearchInterface">
<div class="CoveoAnalytics"></div>
<div class="CoveoCommerceQuery" data-listing="ACME Jewelry"></div>
</div>
Among other things, this is important to allow the Coveo Machine Learning (Coveo ML) Automatic Relevance Tuning (ART) feature to work in your product listing pages.
QuerySuggestPreview now supports FacetValueSuggestions
Issue number: JSUI-2763
The QuerySuggestPreview component has been improved to support suggestions generated by FacetValueSuggestions components in addition to standard Coveo ML query suggestions.
<div class="CoveoQuerySuggestPreview">
<script class="result-template" type="text/html"
data-filetype="YouTubeVideo">
<!-- ... -->
</script>
</div>
<div class="CoveoFacetValueSuggestions" data-field="@author"></div>
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 option of the SearchInterface component allows you to enable this behavior.
<div class="CoveoSearchInterface" data-enable-scroll-restoration="true">
<!-- ... -->
</div>
|
|
Note
The |
New SimpleFilter option: enableClearButton
The SimpleFilter component now exposes a enableClearButton option allowing end users to quickly unselect all filters.
Issue number: JSUI-2686
<div class="CoveoSimpleFilter" data-title="Type" data-field="@objecttype"
data-enable-clear-button="true"></div>
New DynamicHierarchicalFacet option: sortCriteria
The DynamicHierarchicalFacet component now exposes a sortCriteria option allowing you to sort values alphanumerically rather than by number of occurrences.
Issue number: JSUI-2787
<div class="CoveoDyanmicHierarchicalFacet"
data-field="atlgeographicalhierarchy" data-title="Geographical Location"
data-sort-criteria="alphanumeric"></div>
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 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 |
[ |
JSUI-2784 |
[ |
JSUI-2785 |
[ |
JSUI-2823 |
[Default result templates] Unique |
JSUI-2829 |
[ |
JSUI-2832 |
[ |
JSUI-2839 |
|
JSUI-2855 |
The facet column padding was slightly modified. |
| Issue number | Case | Maintenance case |
|---|---|---|
JSUI-2830 |
00058438 |
[ |
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 |
| Issue number | Bug fix |
|---|---|
JSUI-2627 |
[ |
JSUI-2768 |
[ |
JSUI-2799 |
Fixed issue where the |
JSUI-2822 |
[ |
JSUI-2843 |
Fixed issue where facet state position was sent as |
JSUI-2844 |
Fixed a console error on Chrome/Chromium when selecting a dynamic facet search result. |
JSUI-2875 |
[ |
January 2020 release (v2.7968)
The January 2020 package was initially released as v2.7968.7.
You can get the latest version of this release (v2.7968.18):
-
From GitHub (2.7968.18)
-
From npm (
npm install coveo-search-ui@2.7968.18) -
From the Coveo CDN:
| Resource [1] | Script to include |
|---|---|
CSS (minified) |
With SRI:
Without SRI:
|
Framework (lazy loading, minified) |
With SRI: [10]
Without SRI:
10. See Subresource Integrity.
|
Templates |
With SRI:
Without SRI:
|
Release highlights
New component: DynamicHierarchicalFacet
Issue numbers: JSUI-2519, JSUI-2807
The new DynamicHierarchicalFacet component works in a similar fashion to the CategoryFacet component, but also supports the Coveo Machine Learning (Coveo ML) Dynamic Navigation Experience (DNE) feature.
New component: StarRating
Issue number: SFINT-2649
The new StarRating result template component renders a five-star widget for use in commerce result templates.
<div class="CoveoResultList">
<script class="result-template" type="text/html">
<div class="coveo-result-frame">
<div class="coveo-result-row">
<div class="coveo-result-cell">
<a class="CoveoResultLink"></a>
</div>
<div class="coveo-result-cell">
<div class="CoveoFieldValue" data-field="@ccpricesale"></div>
</div>
</div>
<div class="coveo-result-row">
<div class="coveo-result-cell">
<div class="CoveoImageFieldValue" data-field="@ccimage"
data-height="75px">
</div>
</div>
<div class="coveo-result-row">
<div class="coveo-result-cell">
<div class="CoveoFieldValue" data-field="@ccdescription"></div>
</div>
</div>
<div class="coveo-result-row">
<div class="coveo-result-cell">
<div class="CoveoStarRating"
data-rating-field="@ccratingaverage"></div>
</div>
</div>
</div>
</script>
</div>
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 (SRI) security feature.
CDN links without hotfix folders nor SRI will remain available.
New DynamicFacet option: injectionDepth
Issue number: JSUI-2752
The DynamicFacet, DynamicFacetRange, and DynamicHierarchicalFacet components now have an injectionDepth option, allowing you to specify the number of items to scan for facet values.
See Use dynamic facets.
DynamicFacetRange: Support currency value format
Issue number: JSUI-2656
The valueFormat option of the DynamicFacetRange component now supports the 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 if needed.
Other changes
| Issue number | Enhancement |
|---|---|
JSUI-2359 |
[ |
JSUI-2724 |
Use dynamic facets in default JavaScript Search Framework pages. |
JSUI-2777 |
|
JSUI-2781 |
[ |
| 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 |
[ |
| Issue number | Bug fix |
|---|---|
JSUI-2742 |
[ |
JSUI-2788 |
[ |
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. |