April 2020 Release (v2.8864)

This page summarizes the improvements, new features, and bug fixes introduced in the April 2020 Release (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:
Resource1 Script to include
CSS (minified)

With SRI:

<link rel="stylesheet" href="https://static.cloud.coveo.com/searchui/v2.8864/13/css/CoveoFullSearch.min.css" integrity="sha512-Bp92vKWM7qh7Jnb8+z6OKiqA83ywiY9yWXZcnFxCA6wHzfOosK+sMLkxZZT+wY8oXm9rnZoNSw0JW5OKKcHHNg==" crossorigin="anonymous" />

Without SRI:

<link rel="stylesheet" href="https://static.cloud.coveo.com/searchui/v2.8864/css/CoveoFullSearch.min.css" />
Framework (lazy loading, minified)

With SRI:2

<script class="coveo-script" src="https://static.cloud.coveo.com/searchui/v2.8864/13/js/CoveoJsSearch.Lazy.min.js" integrity="sha512-wbG9GKkhmCdvXgH7REqkfiH/kUjsFBNztLhpPE3aoZmV5CwZbTuPux5Xoi/3srYZQBkHowTnboIQ5DMJh3Phjg==" crossorigin="anonymous"></script>

Without SRI:

<script class="coveo-script" src="https://static.cloud.coveo.com/searchui/v2.8864/js/CoveoJsSearch.Lazy.min.js"></script>
Templates

With SRI:

<script src="https://static.cloud.coveo.com/searchui/v2.8864/13/js/templates/templates.js" integrity="sha512-ZgIQSDNRu+VIrdbswpYOc58ynhtjoWm+2xwQByD2Tdo8zby5AJ/B2P1PdFHoiMNS3/DLyKnAveFDVuDuq5tzYQ==" crossorigin="anonymous"></script>

Without SRI:

<script src="https://static.cloud.coveo.com/searchui/v2.8864/js/templates/templates.js"></script>

1: For additional resources, see CDN Links.

2: See Subresource Integrity.

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>

DynamicHierarchicalFacet basePath demo

New DynamicFacet Option: dependsOnCondition

Issue number: JSUI-2902

When you want a facet to only appear when another facet is a certain state (e.g., 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.

New Analytics endpoint

Other Changes

Issue number Enhancement
JSUI-2900 [ResultList] The 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] 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] Fixed issue where facet search result counts were not all displayed.
JSUI-2909 00059237 Fixed issue where the format options of the number template helper didn’t work when specified in the markup configuration.
JSUI-2929 N/A [Breadcrumb] Fixed issue where the component would output a clas-name attribute instead of class attribute for facet slider captions.
JSUI-2938 00059299 [FieldTable] 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] 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.
Recommended Articles