@fluid-topics/ft-search-bar 2.0.7 → 2.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -92,7 +92,7 @@ export declare class FtSearchBar extends FtLitElement implements FtSearchBarProp
92
92
  private dispatchStateChangeEvent;
93
93
  private updateLocalesDebouncer;
94
94
  private initSearchData;
95
- private facetsLoaded;
95
+ facetsLoaded: boolean;
96
96
  private updateFacetsDebouncer;
97
97
  private updateFacets;
98
98
  protected contentAvailableCallback(props: PropertyValues): void;
@@ -4,29 +4,29 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { html, nothing } from "lit";
8
- import { property, query, state } from "lit/decorators.js";
7
+ import { html, nothing, } from "lit";
8
+ import { property, query, state, } from "lit/decorators.js";
9
9
  import { repeat } from "lit/directives/repeat.js";
10
- import { Debouncer, flatDeep, FtLitElement, isTouchScreen, jsonProperty, noTextInputDefaultClearButton, ParametrizedLabelResolver, screenReaderStyles, SearchPlaceConverter, waitFor } from "@fluid-topics/ft-wc-utils";
11
- import { FtSizeCategory, FtSizeWatcher } from "@fluid-topics/ft-size-watcher";
12
- import { FtTypography, FtTypographyBody2 } from "@fluid-topics/ft-typography";
13
- import { facetToFilter, selectedValues, unquote } from "./converters";
14
- import { FtFilter, FtFilterOption } from "@fluid-topics/ft-filter";
10
+ import { Debouncer, flatDeep, FtLitElement, isTouchScreen, jsonProperty, noTextInputDefaultClearButton, ParametrizedLabelResolver, screenReaderStyles, SearchPlaceConverter, waitFor, } from "@fluid-topics/ft-wc-utils";
11
+ import { FtSizeCategory, FtSizeWatcher, } from "@fluid-topics/ft-size-watcher";
12
+ import { FtTypography, FtTypographyBody2, } from "@fluid-topics/ft-typography";
13
+ import { facetToFilter, selectedValues, unquote, } from "./converters";
14
+ import { FtFilter, FtFilterOption, } from "@fluid-topics/ft-filter";
15
15
  import { FtIcon } from "@fluid-topics/ft-icon";
16
- import { FtAccordion, FtAccordionItem } from "@fluid-topics/ft-accordion";
16
+ import { FtAccordion, FtAccordionItem, } from "@fluid-topics/ft-accordion";
17
17
  import { FtButton } from "@fluid-topics/ft-button";
18
18
  import { FtChip } from "@fluid-topics/ft-chip";
19
- import { FtSelect, FtSelectOption } from "@fluid-topics/ft-select";
19
+ import { FtSelect, FtSelectOption, } from "@fluid-topics/ft-select";
20
20
  import { FtSnapScroll } from "@fluid-topics/ft-snap-scroll";
21
21
  import { FtTooltip } from "@fluid-topics/ft-tooltip";
22
22
  import { FtRipple } from "@fluid-topics/ft-ripple";
23
- import { facetsCss, searchBarCss } from "./ft-search-bar.styles";
23
+ import { facetsCss, searchBarCss, } from "./ft-search-bar.styles";
24
24
  import { FtSkeleton } from "@fluid-topics/ft-skeleton";
25
25
  import { SuggestManager } from "./managers/SuggestManager";
26
26
  import { FacetsChipsManager } from "./managers/FacetsChipsManager";
27
27
  import { MobileSearchBarManager } from "./managers/MobileSearchBarManager";
28
28
  import { DesktopSearchBarManager } from "./managers/DesktopSearchBarManager";
29
- import { FtRadio, FtRadioGroup } from "@fluid-topics/ft-radio";
29
+ import { FtRadio, FtRadioGroup, } from "@fluid-topics/ft-radio";
30
30
  import { ftAppInfoStore } from "@fluid-topics/ft-app-context";
31
31
  if (window.fluidtopics == null) {
32
32
  console.warn("Fluid Topics public API was not found. You can find it here: https://www.npmjs.com/package/@fluid-topics/public-api");
@@ -102,13 +102,7 @@ class FtSearchBar extends FtLitElement {
102
102
  this.availableContentLocalesInitialized = true;
103
103
  });
104
104
  });
105
- this.updateFacetsDebouncer.run(() => {
106
- this.retrieveFacetsFromSearch()
107
- .then(() => {
108
- this.facetsLoaded = true;
109
- this.facetsInitialized = true;
110
- });
111
- }, this.facetsInitialized ? 500 : 10);
105
+ this.updateFacets();
112
106
  };
113
107
  this.facetsLoaded = false;
114
108
  this.updateFacetsDebouncer = new Debouncer(500);
@@ -488,18 +482,18 @@ class FtSearchBar extends FtLitElement {
488
482
  this.stateChangeEventDebouncer.run(() => this.dispatchEvent(new SearchStateChangeEvent(this.request)));
489
483
  }
490
484
  updateFacets() {
491
- if (this.api) {
492
- if (this.facetsRequest.length > 0) {
493
- this.facetsLoaded = false;
494
- this.updateFacetsDebouncer.run(async () => {
495
- await this.retrieveFacetsFromSearch();
496
- this.facetsLoaded = true;
497
- this.facetsInitialized = true;
498
- }, this.facetsInitialized ? 500 : 10);
499
- }
500
- else {
501
- this.facets = [];
502
- }
485
+ if (this.facetsRequest.length > 0) {
486
+ this.facetsLoaded = false;
487
+ this.updateFacetsDebouncer.run(async () => {
488
+ await this.retrieveFacetsFromSearch();
489
+ this.facetsLoaded = true;
490
+ this.facetsInitialized = true;
491
+ }, this.facetsInitialized ? 500 : 10);
492
+ }
493
+ else {
494
+ this.facets = [];
495
+ this.facetsLoaded = true;
496
+ this.facetsInitialized = true;
503
497
  }
504
498
  }
505
499
  contentAvailableCallback(props) {
@@ -527,6 +521,11 @@ class FtSearchBar extends FtLitElement {
527
521
  }
528
522
  async retrieveFacetsFromSearch() {
529
523
  var _a;
524
+ // Safeguard if facetsRequest is modified during a Debouncer period
525
+ if (this.facetsRequest.length == 0) {
526
+ this.facets = [];
527
+ return;
528
+ }
530
529
  const retrievedFacets = new Map();
531
530
  await ((_a = this.api) === null || _a === void 0 ? void 0 : _a.search({ ...this.request, query: "" }).then((r) => r.facets.forEach((f) => {
532
531
  this.knownFacetLabels.set(f.key, f.label);
@@ -4731,7 +4731,7 @@ svg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {
4731
4731
  </div>
4732
4732
  `}onSearchBarKeyDown(e){var r;switch(["Escape","Tab","Shift"].includes(e.key)||(this.searchBar.displaySuggestListbox=!0),e.key){case"Tab":this.searchBar.displaySuggestListbox=!1,this.searchBar.selectedSuggestOptionId=void 0;break;case"Escape":this.suggestManager.shouldDisplaySuggestions&&(e.stopPropagation(),e.preventDefault(),this.searchBar.displaySuggestListbox=!1,this.searchBar.selectedSuggestOptionId=void 0),this.searchBar.mobileMenuOpen=!1;break;case"ArrowDown":e.stopPropagation(),e.preventDefault(),this.suggestManager.focusNextSuggestion();break;case"ArrowUp":e.stopPropagation(),e.preventDefault(),this.suggestManager.focusPreviousSuggestion();break;case"ArrowLeft":this.searchBar.selectedSuggestOptionId&&(e.stopPropagation(),e.preventDefault(),this.suggestManager.focusArrowLeft());break;case"ArrowRight":this.searchBar.selectedSuggestOptionId&&(e.stopPropagation(),e.preventDefault(),this.suggestManager.focusArrowRight());break;case"Enter":if(this.searchBar.selectedSuggestRemoveRecent)(r=this.suggestManager.selectedSuggestRemoveRecentButton)===null||r===void 0||r.click();else{let o=this.suggestManager.selectedSuggestOptionLink||this.searchBar.launchSearchButton;o?.click()}break}}onInput(e){let r=e.composedPath()[0];this.searchBar.query=r.value}onClick(){this.onFocus()}onFocus(){this.searchBar.reactToFocus&&(this.searchBar.displaySuggestListbox=!0)}};Ia.styles=xt.css`
4733
4733
 
4734
- `;var ee=function(t,e,r,o){var a=arguments.length,i=a<3?e:o===null?o=Object.getOwnPropertyDescriptor(e,r):o,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(t,e,r,o);else for(var l=t.length-1;l>=0;l--)(s=t[l])&&(i=(a<3?s(i):a>3?s(e,r,i):s(e,r))||i);return a>3&&i&&Object.defineProperty(e,r,i),i};window.fluidtopics==null&&console.warn("Fluid Topics public API was not found. You can find it here: https://www.npmjs.com/package/@fluid-topics/public-api");var ch={filtersButton:"Filters",inputPlaceHolder:"Search",filterInputPlaceHolder:"Filter {0}",clearInputButton:"Clear",clearFilterButton:"Clear",displayMoreFilterValuesButton:"More",noFilterValuesAvailable:"No values available",searchButton:"Search",clearFilters:"Clear filters",contentLocaleSelector:"Lang",presetsSelector:"Quick filters",removeRecentSearch:"Remove {0}",back:"Back",selectLocale:"Select a language"},Yc=class extends CustomEvent{constructor(e){super("change",{detail:e})}},B5=()=>{},W=class extends ue.FtLitElement{constructor(){super(...arguments),this.dense=!1,this.mode="auto",this.forceMobileMenuOpen=!1,this.forceMenuOpen=!1,this.baseUrl="",this.apiIntegrationIdentifier="ft-search-bar",this.availableContentLocales=[],this.availableContentLocalesInitialized=!1,this.labels={},this.labelResolver=new ue.ParametrizedLabelResolver(ch,{}),this.displayedFilters=[],this.presets=[],this.priors=[],this.searchRequestSerializer=e=>new ue.SearchPlaceConverter(this.baseUrl).serialize(e),this.focusOnDisplay=!1,this.metadataFilters=[],this.sizeCategory=Bt.M,this.displayFacets=!1,this.mobileMenuOpen=!1,this.facets=[],this.facetsInitialized=!1,this.knownFacetLabels=new Map,this.query="",this.suggestions=[],this.recentSearches=[],this.reactToFocus=!0,this.displaySuggestListbox=!1,this.selectedSuggestRemoveRecent=!1,this.suggestManager=new wr(this),this.selectedFacetsManager=new Rr(this),this.desktopSearchBarManager=new Ia(this),this.mobileSearchBarManager=new Pa(this,this.selectedFacetsManager,this.suggestManager),this.stateChangeEventDebouncer=new ue.Debouncer(10),this.updateLocalesDebouncer=new ue.Debouncer(10),this.initSearchData=()=>{this.availableContentLocalesInitialized=!1,this.facetsLoaded=!1,this.facetsInitialized=!1,this.updateLocalesDebouncer.run(()=>{var e;(e=this.api)===null||e===void 0||e.getAvailableSearchLocales().then(r=>r.contentLocales).catch(()=>[]).then(r=>{this.availableContentLocales=r,this.availableContentLocalesInitialized=!0})}),this.updateFacetsDebouncer.run(()=>{this.retrieveFacetsFromSearch().then(()=>{this.facetsLoaded=!0,this.facetsInitialized=!0})},this.facetsInitialized?500:10)},this.facetsLoaded=!1,this.updateFacetsDebouncer=new ue.Debouncer(500),this.closeFloatingContainer=e=>{this.isMobile()||(this.displayFacets=this.displayFacets&&e.composedPath().some(r=>r===this.floatingContainer))},this.closeSuggestListbox=e=>{e.composedPath().some(a=>a===this||a===this.shadowRoot)||(this.displaySuggestListbox=!1,this.selectedSuggestOptionId=void 0)},this.compareUnknownFilters=(e,r)=>e.valueFilter&&r.valueFilter?this.compareValueFilters(e.valueFilter,r.valueFilter):e.dateFilter&&r.dateFilter?this.compareDateFilters(e.dateFilter,r.dateFilter):e.rangeFilter&&r.rangeFilter?this.compareRangeFilters(e.rangeFilter,r.rangeFilter):!1,this.compareValueFilters=(e,r)=>e.negative==r.negative&&e.values.length===r.values.length&&e.values.every(o=>r.values.includes(o)),this.compareDateFilters=(e,r)=>e.type===r.type,this.compareRangeFilters=(e,r)=>e.from===r.from&&e.to===r.to,this.compareFilters=(e,r)=>e.key===r.key&&this.compareUnknownFilters(e,r),this.compareRequests=(e,r)=>(e.contentLocale==null||r.contentLocale==null||e.contentLocale===r.contentLocale)&&e.metadataFilters.length===r.metadataFilters.length&&e.metadataFilters.every(o=>r.metadataFilters.some(a=>this.compareFilters(o,a)))}isMobileMenuOpen(){return this.isMobile()&&(this.forceMobileMenuOpen||this.forceMenuOpen||this.mobileMenuOpen)}get request(){return{uiLocale:this.uiLocale,contentLocale:this.contentLocale,query:this.query,facets:this.facetsRequest,priors:this.hasPriors?this.priors:void 0,metadataFilters:this.metadataFilters,paging:{perPage:0,page:1},sort:[]}}get facetsRequest(){let e=this.metadataFilters.filter(r=>{var o,a;return((a=(o=r.valueFilter)===null||o===void 0?void 0:o.values.length)!==null&&a!==void 0?a:0)>0&&!this.displayedFilters.includes(r.key)}).map(r=>({id:r.key}));return[...this.displayedFilters.map(r=>({id:r})),...e]}get suggestRequest(){return{contentLocale:this.contentLocale,input:this.query,metadataFilters:this.metadataFilters,sort:[]}}isMobile(){switch(this.mode){case"mobile":return!0;case"desktop":return!1;default:return this.sizeCategory===Bt.S}}hasFacets(){return this.facetsRequest.length>0}get hasPresets(){return this.presets!=null&&this.presets.length>0}get hasPriors(){return this.priors!=null&&this.priors.length>0}hasLocaleSelector(){return this.availableContentLocales.length>1}focus(){var e;(e=this.container)===null||e===void 0||e.focus()}async focusInput(e=!1){this.reactToFocus=e,await(0,ue.waitFor)(()=>this.input,50),this.input.focus(),this.reactToFocus=!0}clear(){this.query="",this.metadataFilters=[],this.input&&(this.input.value=""),this.mobileMenuOpen=!1,this.displayFacets=!1}render(){return se.html`
4734
+ `;var ee=function(t,e,r,o){var a=arguments.length,i=a<3?e:o===null?o=Object.getOwnPropertyDescriptor(e,r):o,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(t,e,r,o);else for(var l=t.length-1;l>=0;l--)(s=t[l])&&(i=(a<3?s(i):a>3?s(e,r,i):s(e,r))||i);return a>3&&i&&Object.defineProperty(e,r,i),i};window.fluidtopics==null&&console.warn("Fluid Topics public API was not found. You can find it here: https://www.npmjs.com/package/@fluid-topics/public-api");var ch={filtersButton:"Filters",inputPlaceHolder:"Search",filterInputPlaceHolder:"Filter {0}",clearInputButton:"Clear",clearFilterButton:"Clear",displayMoreFilterValuesButton:"More",noFilterValuesAvailable:"No values available",searchButton:"Search",clearFilters:"Clear filters",contentLocaleSelector:"Lang",presetsSelector:"Quick filters",removeRecentSearch:"Remove {0}",back:"Back",selectLocale:"Select a language"},Yc=class extends CustomEvent{constructor(e){super("change",{detail:e})}},B5=()=>{},W=class extends ue.FtLitElement{constructor(){super(...arguments),this.dense=!1,this.mode="auto",this.forceMobileMenuOpen=!1,this.forceMenuOpen=!1,this.baseUrl="",this.apiIntegrationIdentifier="ft-search-bar",this.availableContentLocales=[],this.availableContentLocalesInitialized=!1,this.labels={},this.labelResolver=new ue.ParametrizedLabelResolver(ch,{}),this.displayedFilters=[],this.presets=[],this.priors=[],this.searchRequestSerializer=e=>new ue.SearchPlaceConverter(this.baseUrl).serialize(e),this.focusOnDisplay=!1,this.metadataFilters=[],this.sizeCategory=Bt.M,this.displayFacets=!1,this.mobileMenuOpen=!1,this.facets=[],this.facetsInitialized=!1,this.knownFacetLabels=new Map,this.query="",this.suggestions=[],this.recentSearches=[],this.reactToFocus=!0,this.displaySuggestListbox=!1,this.selectedSuggestRemoveRecent=!1,this.suggestManager=new wr(this),this.selectedFacetsManager=new Rr(this),this.desktopSearchBarManager=new Ia(this),this.mobileSearchBarManager=new Pa(this,this.selectedFacetsManager,this.suggestManager),this.stateChangeEventDebouncer=new ue.Debouncer(10),this.updateLocalesDebouncer=new ue.Debouncer(10),this.initSearchData=()=>{this.availableContentLocalesInitialized=!1,this.facetsLoaded=!1,this.facetsInitialized=!1,this.updateLocalesDebouncer.run(()=>{var e;(e=this.api)===null||e===void 0||e.getAvailableSearchLocales().then(r=>r.contentLocales).catch(()=>[]).then(r=>{this.availableContentLocales=r,this.availableContentLocalesInitialized=!0})}),this.updateFacets()},this.facetsLoaded=!1,this.updateFacetsDebouncer=new ue.Debouncer(500),this.closeFloatingContainer=e=>{this.isMobile()||(this.displayFacets=this.displayFacets&&e.composedPath().some(r=>r===this.floatingContainer))},this.closeSuggestListbox=e=>{e.composedPath().some(a=>a===this||a===this.shadowRoot)||(this.displaySuggestListbox=!1,this.selectedSuggestOptionId=void 0)},this.compareUnknownFilters=(e,r)=>e.valueFilter&&r.valueFilter?this.compareValueFilters(e.valueFilter,r.valueFilter):e.dateFilter&&r.dateFilter?this.compareDateFilters(e.dateFilter,r.dateFilter):e.rangeFilter&&r.rangeFilter?this.compareRangeFilters(e.rangeFilter,r.rangeFilter):!1,this.compareValueFilters=(e,r)=>e.negative==r.negative&&e.values.length===r.values.length&&e.values.every(o=>r.values.includes(o)),this.compareDateFilters=(e,r)=>e.type===r.type,this.compareRangeFilters=(e,r)=>e.from===r.from&&e.to===r.to,this.compareFilters=(e,r)=>e.key===r.key&&this.compareUnknownFilters(e,r),this.compareRequests=(e,r)=>(e.contentLocale==null||r.contentLocale==null||e.contentLocale===r.contentLocale)&&e.metadataFilters.length===r.metadataFilters.length&&e.metadataFilters.every(o=>r.metadataFilters.some(a=>this.compareFilters(o,a)))}isMobileMenuOpen(){return this.isMobile()&&(this.forceMobileMenuOpen||this.forceMenuOpen||this.mobileMenuOpen)}get request(){return{uiLocale:this.uiLocale,contentLocale:this.contentLocale,query:this.query,facets:this.facetsRequest,priors:this.hasPriors?this.priors:void 0,metadataFilters:this.metadataFilters,paging:{perPage:0,page:1},sort:[]}}get facetsRequest(){let e=this.metadataFilters.filter(r=>{var o,a;return((a=(o=r.valueFilter)===null||o===void 0?void 0:o.values.length)!==null&&a!==void 0?a:0)>0&&!this.displayedFilters.includes(r.key)}).map(r=>({id:r.key}));return[...this.displayedFilters.map(r=>({id:r})),...e]}get suggestRequest(){return{contentLocale:this.contentLocale,input:this.query,metadataFilters:this.metadataFilters,sort:[]}}isMobile(){switch(this.mode){case"mobile":return!0;case"desktop":return!1;default:return this.sizeCategory===Bt.S}}hasFacets(){return this.facetsRequest.length>0}get hasPresets(){return this.presets!=null&&this.presets.length>0}get hasPriors(){return this.priors!=null&&this.priors.length>0}hasLocaleSelector(){return this.availableContentLocales.length>1}focus(){var e;(e=this.container)===null||e===void 0||e.focus()}async focusInput(e=!1){this.reactToFocus=e,await(0,ue.waitFor)(()=>this.input,50),this.input.focus(),this.reactToFocus=!0}clear(){this.query="",this.metadataFilters=[],this.input&&(this.input.value=""),this.mobileMenuOpen=!1,this.displayFacets=!1}render(){return se.html`
4735
4735
  <ft-size-watcher @change=${this.updateSize}></ft-size-watcher>
4736
4736
  <div class="sr-only" aria-live="polite" aria-atomic="true">
4737
4737
  ${this.renderLiveText()}
@@ -4871,7 +4871,7 @@ svg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {
4871
4871
  ></ft-filter>
4872
4872
  `})}
4873
4873
  </ft-snap-scroll>
4874
- `:se.nothing}async firstUpdated(e){super.firstUpdated(e),this.initApi(),window.addEventListener("storage",r=>{r.key===this.recentSearchesStorageKey&&this.initRecentSearches()})}update(e){var r,o,a,i,s;if(e.has("labels")&&(this.labelResolver=new ue.ParametrizedLabelResolver(ch,this.labels)),e.has("sizeCategory")&&(this.mobileMenuOpen=!1,this.displayFacets=this.displayFacets&&!this.isMobile()),super.update(e),(e.has("availableContentLocales")||e.has("contentLocale"))&&this.availableContentLocales.length>0){let l=f=>this.availableContentLocales.some(p=>p.lang==f);l(this.contentLocale)||(this.contentLocale=e.has("contentLocale")&&l(e.get("contentLocale"))?e.get("contentLocale"):(r=this.availableContentLocales[0])===null||r===void 0?void 0:r.lang)}if(e.has("baseUrl")&&this.baseUrl&&(this.baseUrl.endsWith("/")&&(this.baseUrl=this.baseUrl.replace(/\/$/,"")),this.initRecentSearches()),e.has("presets")&&((o=this.presets)!==null&&o!==void 0?o:[]).forEach(l=>l.metadataFilters.forEach(f=>{f.valueFilter&&(f.valueFilter.values=f.valueFilter.values.map(p=>Ga(p)))})),e.has("presets")||e.has("selectedPreset")){let l=((a=this.presets)!==null&&a!==void 0?a:[]).find(f=>f.name===this.selectedPreset);l&&!this.compareRequests(this.request,l)&&this.setFiltersFromPreset(l)}e.has("contentLocale")&&this.contentLocale!=null&&(this.knownFacetLabels=new Map),["contentLocale","metadataFilters"].some(l=>e.has(l))&&(this.selectedPreset=(s=((i=this.presets)!==null&&i!==void 0?i:[]).find(l=>this.compareRequests(l,this.request)))===null||s===void 0?void 0:s.name),["baseUrl","apiIntegrationIdentifier"].some(l=>e.has(l))&&(this.api=void 0,this.initApi()),e.has("api")&&this.api&&this.initSearchData(),["uiLocale","contentLocale","metadataFilters","displayedFilters"].some(l=>e.has(l))&&this.updateFacets(),["query","uiLocale","contentLocale","metadataFilters","displayedFilters","api"].some(l=>e.has(l))&&this.suggestManager.update(),["query","uiLocale","contentLocale","metadataFilters"].some(l=>e.has(l))&&this.dispatchStateChangeEvent()}dispatchStateChangeEvent(){this.stateChangeEventDebouncer.run(()=>this.dispatchEvent(new Yc(this.request)))}updateFacets(){this.api&&(this.facetsRequest.length>0?(this.facetsLoaded=!1,this.updateFacetsDebouncer.run(async()=>{await this.retrieveFacetsFromSearch(),this.facetsLoaded=!0,this.facetsInitialized=!0},this.facetsInitialized?500:10)):this.facets=[])}contentAvailableCallback(e){var r,o,a;if(super.contentAvailableCallback(e),e.has("displayFacets")&&this.displayFacets&&((r=this.floatingContainer)===null||r===void 0||r.focus()),this.scrollToFacet!=null&&this.facetsLoaded){(o=this.scrollingFiltersContainer)===null||o===void 0||o.scrollIndexIntoView(this.facets.findIndex(s=>s.key===this.scrollToFacet));let i=(a=this.shadowRoot)===null||a===void 0?void 0:a.querySelector(`ft-accordion-item[data-facet-key="${this.scrollToFacet}"]`);i&&(i.active=!0),this.scrollToFacet=void 0}}initApi(){this.api==null&&(this.api=window.fluidtopics?new window.fluidtopics.FluidTopicsApi(this.baseUrl,this.apiIntegrationIdentifier,!0):void 0,setTimeout(()=>this.initApi(),10))}async retrieveFacetsFromSearch(){var e;let r=new Map;await((e=this.api)===null||e===void 0?void 0:e.search({...this.request,query:""}).then(o=>o.facets.forEach(a=>{this.knownFacetLabels.set(a.key,a.label),r.set(a.key,a)})).catch(B5)),this.facets=[];for(let o of this.facetsRequest)r.has(o.id)?this.facets.push(r.get(o.id)):this.knownFacetLabels.has(o.id)&&this.facets.push({key:o.id,label:this.knownFacetLabels.get(o.id),rootNodes:[],multiSelectionable:!0,hierarchical:!1})}onFloatingContainerKeyUp(e){var r;e.key==="Escape"&&(this.displayFacets=!1,(r=this.filtersOpener)===null||r===void 0||r.focus())}setQuery(e){this.input&&(this.input.value=e),this.query=e}onLaunchSearch(){if(this.query){let e=this.recentSearches.filter(r=>r.toLowerCase()!==this.query.toLowerCase()).filter((r,o)=>o<20);this.recentSearches=[this.query,...e],this.saveRecentSearches()}this.mobileMenuOpen=!1,this.displayFacets=!1,this.focus()}get recentSearchesStorageKey(){return this.baseUrl+":ft:recent-search-queries"}initRecentSearches(){var e;this.recentSearches=JSON.parse((e=window.localStorage.getItem(this.recentSearchesStorageKey))!==null&&e!==void 0?e:"[]")}saveRecentSearches(){let e=JSON.stringify(this.recentSearches);window.localStorage.setItem(this.recentSearchesStorageKey,e),window.dispatchEvent(new StorageEvent("storage",{key:this.recentSearchesStorageKey,newValue:e,storageArea:window.localStorage,url:window.location.href}))}async connectedCallback(){super.connectedCallback(),document.addEventListener("pointerdown",this.closeSuggestListbox),document.addEventListener("focusin",this.closeFloatingContainer),document.addEventListener("click",this.closeFloatingContainer),this.focusOnDisplay&&!ue.isTouchScreen&&this.focusInput(),I.addEventListener("authentication-change",this.initSearchData),this.initSearchData()}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("pointerdown",this.closeSuggestListbox),document.removeEventListener("focusin",this.closeFloatingContainer),document.removeEventListener("click",this.closeFloatingContainer),I.removeEventListener("authentication-change",this.initSearchData)}updateSize(e){this.sizeCategory=e.detail.category}setFilter(e,r){let o=this.metadataFilters.filter(a=>!a.valueFilter||a.key!==e);this.facets.forEach(a=>{a.key===e&&(0,ue.flatDeep)(a.rootNodes,i=>i.childNodes).forEach(i=>i.selected=r.includes(i.value))}),r.length&&o.push({key:e,valueFilter:{negative:!1,values:r}}),this.metadataFilters=o,this.scrollToFacet=e}setFiltersFromPreset(e){e!=null&&(e.contentLocale!=null&&(this.contentLocale=e.contentLocale),this.metadataFilters=e.metadataFilters)}clearFilters(){this.facets.forEach(r=>(0,ue.flatDeep)(r.rootNodes,o=>o.childNodes).forEach(o=>o.selected=!1)),this.metadataFilters=[];let e=this.facets[0];this.scrollToFacet=e?.key}querySelector(e){return this.shadowRoot.querySelector(e)}querySelectorAll(e){return this.shadowRoot.querySelectorAll(e)}renderDesktopFloatingMenu(){return this.forceMenuOpen?se.nothing:se.html`
4874
+ `:se.nothing}async firstUpdated(e){super.firstUpdated(e),this.initApi(),window.addEventListener("storage",r=>{r.key===this.recentSearchesStorageKey&&this.initRecentSearches()})}update(e){var r,o,a,i,s;if(e.has("labels")&&(this.labelResolver=new ue.ParametrizedLabelResolver(ch,this.labels)),e.has("sizeCategory")&&(this.mobileMenuOpen=!1,this.displayFacets=this.displayFacets&&!this.isMobile()),super.update(e),(e.has("availableContentLocales")||e.has("contentLocale"))&&this.availableContentLocales.length>0){let l=f=>this.availableContentLocales.some(p=>p.lang==f);l(this.contentLocale)||(this.contentLocale=e.has("contentLocale")&&l(e.get("contentLocale"))?e.get("contentLocale"):(r=this.availableContentLocales[0])===null||r===void 0?void 0:r.lang)}if(e.has("baseUrl")&&this.baseUrl&&(this.baseUrl.endsWith("/")&&(this.baseUrl=this.baseUrl.replace(/\/$/,"")),this.initRecentSearches()),e.has("presets")&&((o=this.presets)!==null&&o!==void 0?o:[]).forEach(l=>l.metadataFilters.forEach(f=>{f.valueFilter&&(f.valueFilter.values=f.valueFilter.values.map(p=>Ga(p)))})),e.has("presets")||e.has("selectedPreset")){let l=((a=this.presets)!==null&&a!==void 0?a:[]).find(f=>f.name===this.selectedPreset);l&&!this.compareRequests(this.request,l)&&this.setFiltersFromPreset(l)}e.has("contentLocale")&&this.contentLocale!=null&&(this.knownFacetLabels=new Map),["contentLocale","metadataFilters"].some(l=>e.has(l))&&(this.selectedPreset=(s=((i=this.presets)!==null&&i!==void 0?i:[]).find(l=>this.compareRequests(l,this.request)))===null||s===void 0?void 0:s.name),["baseUrl","apiIntegrationIdentifier"].some(l=>e.has(l))&&(this.api=void 0,this.initApi()),e.has("api")&&this.api&&this.initSearchData(),["uiLocale","contentLocale","metadataFilters","displayedFilters"].some(l=>e.has(l))&&this.updateFacets(),["query","uiLocale","contentLocale","metadataFilters","displayedFilters","api"].some(l=>e.has(l))&&this.suggestManager.update(),["query","uiLocale","contentLocale","metadataFilters"].some(l=>e.has(l))&&this.dispatchStateChangeEvent()}dispatchStateChangeEvent(){this.stateChangeEventDebouncer.run(()=>this.dispatchEvent(new Yc(this.request)))}updateFacets(){this.facetsRequest.length>0?(this.facetsLoaded=!1,this.updateFacetsDebouncer.run(async()=>{await this.retrieveFacetsFromSearch(),this.facetsLoaded=!0,this.facetsInitialized=!0},this.facetsInitialized?500:10)):(this.facets=[],this.facetsLoaded=!0,this.facetsInitialized=!0)}contentAvailableCallback(e){var r,o,a;if(super.contentAvailableCallback(e),e.has("displayFacets")&&this.displayFacets&&((r=this.floatingContainer)===null||r===void 0||r.focus()),this.scrollToFacet!=null&&this.facetsLoaded){(o=this.scrollingFiltersContainer)===null||o===void 0||o.scrollIndexIntoView(this.facets.findIndex(s=>s.key===this.scrollToFacet));let i=(a=this.shadowRoot)===null||a===void 0?void 0:a.querySelector(`ft-accordion-item[data-facet-key="${this.scrollToFacet}"]`);i&&(i.active=!0),this.scrollToFacet=void 0}}initApi(){this.api==null&&(this.api=window.fluidtopics?new window.fluidtopics.FluidTopicsApi(this.baseUrl,this.apiIntegrationIdentifier,!0):void 0,setTimeout(()=>this.initApi(),10))}async retrieveFacetsFromSearch(){var e;if(this.facetsRequest.length==0){this.facets=[];return}let r=new Map;await((e=this.api)===null||e===void 0?void 0:e.search({...this.request,query:""}).then(o=>o.facets.forEach(a=>{this.knownFacetLabels.set(a.key,a.label),r.set(a.key,a)})).catch(B5)),this.facets=[];for(let o of this.facetsRequest)r.has(o.id)?this.facets.push(r.get(o.id)):this.knownFacetLabels.has(o.id)&&this.facets.push({key:o.id,label:this.knownFacetLabels.get(o.id),rootNodes:[],multiSelectionable:!0,hierarchical:!1})}onFloatingContainerKeyUp(e){var r;e.key==="Escape"&&(this.displayFacets=!1,(r=this.filtersOpener)===null||r===void 0||r.focus())}setQuery(e){this.input&&(this.input.value=e),this.query=e}onLaunchSearch(){if(this.query){let e=this.recentSearches.filter(r=>r.toLowerCase()!==this.query.toLowerCase()).filter((r,o)=>o<20);this.recentSearches=[this.query,...e],this.saveRecentSearches()}this.mobileMenuOpen=!1,this.displayFacets=!1,this.focus()}get recentSearchesStorageKey(){return this.baseUrl+":ft:recent-search-queries"}initRecentSearches(){var e;this.recentSearches=JSON.parse((e=window.localStorage.getItem(this.recentSearchesStorageKey))!==null&&e!==void 0?e:"[]")}saveRecentSearches(){let e=JSON.stringify(this.recentSearches);window.localStorage.setItem(this.recentSearchesStorageKey,e),window.dispatchEvent(new StorageEvent("storage",{key:this.recentSearchesStorageKey,newValue:e,storageArea:window.localStorage,url:window.location.href}))}async connectedCallback(){super.connectedCallback(),document.addEventListener("pointerdown",this.closeSuggestListbox),document.addEventListener("focusin",this.closeFloatingContainer),document.addEventListener("click",this.closeFloatingContainer),this.focusOnDisplay&&!ue.isTouchScreen&&this.focusInput(),I.addEventListener("authentication-change",this.initSearchData),this.initSearchData()}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("pointerdown",this.closeSuggestListbox),document.removeEventListener("focusin",this.closeFloatingContainer),document.removeEventListener("click",this.closeFloatingContainer),I.removeEventListener("authentication-change",this.initSearchData)}updateSize(e){this.sizeCategory=e.detail.category}setFilter(e,r){let o=this.metadataFilters.filter(a=>!a.valueFilter||a.key!==e);this.facets.forEach(a=>{a.key===e&&(0,ue.flatDeep)(a.rootNodes,i=>i.childNodes).forEach(i=>i.selected=r.includes(i.value))}),r.length&&o.push({key:e,valueFilter:{negative:!1,values:r}}),this.metadataFilters=o,this.scrollToFacet=e}setFiltersFromPreset(e){e!=null&&(e.contentLocale!=null&&(this.contentLocale=e.contentLocale),this.metadataFilters=e.metadataFilters)}clearFilters(){this.facets.forEach(r=>(0,ue.flatDeep)(r.rootNodes,o=>o.childNodes).forEach(o=>o.selected=!1)),this.metadataFilters=[];let e=this.facets[0];this.scrollToFacet=e?.key}querySelector(e){return this.shadowRoot.querySelector(e)}querySelectorAll(e){return this.shadowRoot.querySelectorAll(e)}renderDesktopFloatingMenu(){return this.forceMenuOpen?se.nothing:se.html`
4875
4875
  <div class="ft-search-bar--floating-panel"
4876
4876
  id="ft-search-bar-floating-panel"
4877
4877
  @keyup=${this.onFloatingContainerKeyUp}
@@ -4811,7 +4811,7 @@ svg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {
4811
4811
  </div>
4812
4812
  `}onSearchBarKeyDown(e){var r;switch(["Escape","Tab","Shift"].includes(e.key)||(this.searchBar.displaySuggestListbox=!0),e.key){case"Tab":this.searchBar.displaySuggestListbox=!1,this.searchBar.selectedSuggestOptionId=void 0;break;case"Escape":this.suggestManager.shouldDisplaySuggestions&&(e.stopPropagation(),e.preventDefault(),this.searchBar.displaySuggestListbox=!1,this.searchBar.selectedSuggestOptionId=void 0),this.searchBar.mobileMenuOpen=!1;break;case"ArrowDown":e.stopPropagation(),e.preventDefault(),this.suggestManager.focusNextSuggestion();break;case"ArrowUp":e.stopPropagation(),e.preventDefault(),this.suggestManager.focusPreviousSuggestion();break;case"ArrowLeft":this.searchBar.selectedSuggestOptionId&&(e.stopPropagation(),e.preventDefault(),this.suggestManager.focusArrowLeft());break;case"ArrowRight":this.searchBar.selectedSuggestOptionId&&(e.stopPropagation(),e.preventDefault(),this.suggestManager.focusArrowRight());break;case"Enter":if(this.searchBar.selectedSuggestRemoveRecent)(r=this.suggestManager.selectedSuggestRemoveRecentButton)===null||r===void 0||r.click();else{let o=this.suggestManager.selectedSuggestOptionLink||this.searchBar.launchSearchButton;o?.click()}break}}onInput(e){let r=e.composedPath()[0];this.searchBar.query=r.value}onClick(){this.onFocus()}onFocus(){this.searchBar.reactToFocus&&(this.searchBar.displaySuggestListbox=!0)}};vn.styles=T`
4813
4813
 
4814
- `;var oe=function(t,e,r,o){var n=arguments.length,a=n<3?e:o===null?o=Object.getOwnPropertyDescriptor(e,r):o,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(t,e,r,o);else for(var l=t.length-1;l>=0;l--)(s=t[l])&&(a=(n<3?s(a):n>3?s(e,r,a):s(e,r))||a);return n>3&&a&&Object.defineProperty(e,r,a),a};window.fluidtopics==null&&console.warn("Fluid Topics public API was not found. You can find it here: https://www.npmjs.com/package/@fluid-topics/public-api");var F0={filtersButton:"Filters",inputPlaceHolder:"Search",filterInputPlaceHolder:"Filter {0}",clearInputButton:"Clear",clearFilterButton:"Clear",displayMoreFilterValuesButton:"More",noFilterValuesAvailable:"No values available",searchButton:"Search",clearFilters:"Clear filters",contentLocaleSelector:"Lang",presetsSelector:"Quick filters",removeRecentSearch:"Remove {0}",back:"Back",selectLocale:"Select a language"},Sd=class extends CustomEvent{constructor(e){super("change",{detail:e})}},N5=()=>{},J=class extends F{constructor(){super(...arguments),this.dense=!1,this.mode="auto",this.forceMobileMenuOpen=!1,this.forceMenuOpen=!1,this.baseUrl="",this.apiIntegrationIdentifier="ft-search-bar",this.availableContentLocales=[],this.availableContentLocalesInitialized=!1,this.labels={},this.labelResolver=new Nr(F0,{}),this.displayedFilters=[],this.presets=[],this.priors=[],this.searchRequestSerializer=e=>new Fr(this.baseUrl).serialize(e),this.focusOnDisplay=!1,this.metadataFilters=[],this.sizeCategory=Nt.M,this.displayFacets=!1,this.mobileMenuOpen=!1,this.facets=[],this.facetsInitialized=!1,this.knownFacetLabels=new Map,this.query="",this.suggestions=[],this.recentSearches=[],this.reactToFocus=!0,this.displaySuggestListbox=!1,this.selectedSuggestRemoveRecent=!1,this.suggestManager=new pr(this),this.selectedFacetsManager=new ur(this),this.desktopSearchBarManager=new vn(this),this.mobileSearchBarManager=new bn(this,this.selectedFacetsManager,this.suggestManager),this.stateChangeEventDebouncer=new me(10),this.updateLocalesDebouncer=new me(10),this.initSearchData=()=>{this.availableContentLocalesInitialized=!1,this.facetsLoaded=!1,this.facetsInitialized=!1,this.updateLocalesDebouncer.run(()=>{var e;(e=this.api)===null||e===void 0||e.getAvailableSearchLocales().then(r=>r.contentLocales).catch(()=>[]).then(r=>{this.availableContentLocales=r,this.availableContentLocalesInitialized=!0})}),this.updateFacetsDebouncer.run(()=>{this.retrieveFacetsFromSearch().then(()=>{this.facetsLoaded=!0,this.facetsInitialized=!0})},this.facetsInitialized?500:10)},this.facetsLoaded=!1,this.updateFacetsDebouncer=new me(500),this.closeFloatingContainer=e=>{this.isMobile()||(this.displayFacets=this.displayFacets&&e.composedPath().some(r=>r===this.floatingContainer))},this.closeSuggestListbox=e=>{e.composedPath().some(n=>n===this||n===this.shadowRoot)||(this.displaySuggestListbox=!1,this.selectedSuggestOptionId=void 0)},this.compareUnknownFilters=(e,r)=>e.valueFilter&&r.valueFilter?this.compareValueFilters(e.valueFilter,r.valueFilter):e.dateFilter&&r.dateFilter?this.compareDateFilters(e.dateFilter,r.dateFilter):e.rangeFilter&&r.rangeFilter?this.compareRangeFilters(e.rangeFilter,r.rangeFilter):!1,this.compareValueFilters=(e,r)=>e.negative==r.negative&&e.values.length===r.values.length&&e.values.every(o=>r.values.includes(o)),this.compareDateFilters=(e,r)=>e.type===r.type,this.compareRangeFilters=(e,r)=>e.from===r.from&&e.to===r.to,this.compareFilters=(e,r)=>e.key===r.key&&this.compareUnknownFilters(e,r),this.compareRequests=(e,r)=>(e.contentLocale==null||r.contentLocale==null||e.contentLocale===r.contentLocale)&&e.metadataFilters.length===r.metadataFilters.length&&e.metadataFilters.every(o=>r.metadataFilters.some(n=>this.compareFilters(o,n)))}isMobileMenuOpen(){return this.isMobile()&&(this.forceMobileMenuOpen||this.forceMenuOpen||this.mobileMenuOpen)}get request(){return{uiLocale:this.uiLocale,contentLocale:this.contentLocale,query:this.query,facets:this.facetsRequest,priors:this.hasPriors?this.priors:void 0,metadataFilters:this.metadataFilters,paging:{perPage:0,page:1},sort:[]}}get facetsRequest(){let e=this.metadataFilters.filter(r=>{var o,n;return((n=(o=r.valueFilter)===null||o===void 0?void 0:o.values.length)!==null&&n!==void 0?n:0)>0&&!this.displayedFilters.includes(r.key)}).map(r=>({id:r.key}));return[...this.displayedFilters.map(r=>({id:r})),...e]}get suggestRequest(){return{contentLocale:this.contentLocale,input:this.query,metadataFilters:this.metadataFilters,sort:[]}}isMobile(){switch(this.mode){case"mobile":return!0;case"desktop":return!1;default:return this.sizeCategory===Nt.S}}hasFacets(){return this.facetsRequest.length>0}get hasPresets(){return this.presets!=null&&this.presets.length>0}get hasPriors(){return this.priors!=null&&this.priors.length>0}hasLocaleSelector(){return this.availableContentLocales.length>1}focus(){var e;(e=this.container)===null||e===void 0||e.focus()}async focusInput(e=!1){this.reactToFocus=e,await Nn(()=>this.input,50),this.input.focus(),this.reactToFocus=!0}clear(){this.query="",this.metadataFilters=[],this.input&&(this.input.value=""),this.mobileMenuOpen=!1,this.displayFacets=!1}render(){return O`
4814
+ `;var oe=function(t,e,r,o){var n=arguments.length,a=n<3?e:o===null?o=Object.getOwnPropertyDescriptor(e,r):o,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(t,e,r,o);else for(var l=t.length-1;l>=0;l--)(s=t[l])&&(a=(n<3?s(a):n>3?s(e,r,a):s(e,r))||a);return n>3&&a&&Object.defineProperty(e,r,a),a};window.fluidtopics==null&&console.warn("Fluid Topics public API was not found. You can find it here: https://www.npmjs.com/package/@fluid-topics/public-api");var F0={filtersButton:"Filters",inputPlaceHolder:"Search",filterInputPlaceHolder:"Filter {0}",clearInputButton:"Clear",clearFilterButton:"Clear",displayMoreFilterValuesButton:"More",noFilterValuesAvailable:"No values available",searchButton:"Search",clearFilters:"Clear filters",contentLocaleSelector:"Lang",presetsSelector:"Quick filters",removeRecentSearch:"Remove {0}",back:"Back",selectLocale:"Select a language"},Sd=class extends CustomEvent{constructor(e){super("change",{detail:e})}},N5=()=>{},J=class extends F{constructor(){super(...arguments),this.dense=!1,this.mode="auto",this.forceMobileMenuOpen=!1,this.forceMenuOpen=!1,this.baseUrl="",this.apiIntegrationIdentifier="ft-search-bar",this.availableContentLocales=[],this.availableContentLocalesInitialized=!1,this.labels={},this.labelResolver=new Nr(F0,{}),this.displayedFilters=[],this.presets=[],this.priors=[],this.searchRequestSerializer=e=>new Fr(this.baseUrl).serialize(e),this.focusOnDisplay=!1,this.metadataFilters=[],this.sizeCategory=Nt.M,this.displayFacets=!1,this.mobileMenuOpen=!1,this.facets=[],this.facetsInitialized=!1,this.knownFacetLabels=new Map,this.query="",this.suggestions=[],this.recentSearches=[],this.reactToFocus=!0,this.displaySuggestListbox=!1,this.selectedSuggestRemoveRecent=!1,this.suggestManager=new pr(this),this.selectedFacetsManager=new ur(this),this.desktopSearchBarManager=new vn(this),this.mobileSearchBarManager=new bn(this,this.selectedFacetsManager,this.suggestManager),this.stateChangeEventDebouncer=new me(10),this.updateLocalesDebouncer=new me(10),this.initSearchData=()=>{this.availableContentLocalesInitialized=!1,this.facetsLoaded=!1,this.facetsInitialized=!1,this.updateLocalesDebouncer.run(()=>{var e;(e=this.api)===null||e===void 0||e.getAvailableSearchLocales().then(r=>r.contentLocales).catch(()=>[]).then(r=>{this.availableContentLocales=r,this.availableContentLocalesInitialized=!0})}),this.updateFacets()},this.facetsLoaded=!1,this.updateFacetsDebouncer=new me(500),this.closeFloatingContainer=e=>{this.isMobile()||(this.displayFacets=this.displayFacets&&e.composedPath().some(r=>r===this.floatingContainer))},this.closeSuggestListbox=e=>{e.composedPath().some(n=>n===this||n===this.shadowRoot)||(this.displaySuggestListbox=!1,this.selectedSuggestOptionId=void 0)},this.compareUnknownFilters=(e,r)=>e.valueFilter&&r.valueFilter?this.compareValueFilters(e.valueFilter,r.valueFilter):e.dateFilter&&r.dateFilter?this.compareDateFilters(e.dateFilter,r.dateFilter):e.rangeFilter&&r.rangeFilter?this.compareRangeFilters(e.rangeFilter,r.rangeFilter):!1,this.compareValueFilters=(e,r)=>e.negative==r.negative&&e.values.length===r.values.length&&e.values.every(o=>r.values.includes(o)),this.compareDateFilters=(e,r)=>e.type===r.type,this.compareRangeFilters=(e,r)=>e.from===r.from&&e.to===r.to,this.compareFilters=(e,r)=>e.key===r.key&&this.compareUnknownFilters(e,r),this.compareRequests=(e,r)=>(e.contentLocale==null||r.contentLocale==null||e.contentLocale===r.contentLocale)&&e.metadataFilters.length===r.metadataFilters.length&&e.metadataFilters.every(o=>r.metadataFilters.some(n=>this.compareFilters(o,n)))}isMobileMenuOpen(){return this.isMobile()&&(this.forceMobileMenuOpen||this.forceMenuOpen||this.mobileMenuOpen)}get request(){return{uiLocale:this.uiLocale,contentLocale:this.contentLocale,query:this.query,facets:this.facetsRequest,priors:this.hasPriors?this.priors:void 0,metadataFilters:this.metadataFilters,paging:{perPage:0,page:1},sort:[]}}get facetsRequest(){let e=this.metadataFilters.filter(r=>{var o,n;return((n=(o=r.valueFilter)===null||o===void 0?void 0:o.values.length)!==null&&n!==void 0?n:0)>0&&!this.displayedFilters.includes(r.key)}).map(r=>({id:r.key}));return[...this.displayedFilters.map(r=>({id:r})),...e]}get suggestRequest(){return{contentLocale:this.contentLocale,input:this.query,metadataFilters:this.metadataFilters,sort:[]}}isMobile(){switch(this.mode){case"mobile":return!0;case"desktop":return!1;default:return this.sizeCategory===Nt.S}}hasFacets(){return this.facetsRequest.length>0}get hasPresets(){return this.presets!=null&&this.presets.length>0}get hasPriors(){return this.priors!=null&&this.priors.length>0}hasLocaleSelector(){return this.availableContentLocales.length>1}focus(){var e;(e=this.container)===null||e===void 0||e.focus()}async focusInput(e=!1){this.reactToFocus=e,await Nn(()=>this.input,50),this.input.focus(),this.reactToFocus=!0}clear(){this.query="",this.metadataFilters=[],this.input&&(this.input.value=""),this.mobileMenuOpen=!1,this.displayFacets=!1}render(){return O`
4815
4815
  <ft-size-watcher @change=${this.updateSize}></ft-size-watcher>
4816
4816
  <div class="sr-only" aria-live="polite" aria-atomic="true">
4817
4817
  ${this.renderLiveText()}
@@ -4951,7 +4951,7 @@ svg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {
4951
4951
  ></ft-filter>
4952
4952
  `})}
4953
4953
  </ft-snap-scroll>
4954
- `:z}async firstUpdated(e){super.firstUpdated(e),this.initApi(),window.addEventListener("storage",r=>{r.key===this.recentSearchesStorageKey&&this.initRecentSearches()})}update(e){var r,o,n,a,s;if(e.has("labels")&&(this.labelResolver=new Nr(F0,this.labels)),e.has("sizeCategory")&&(this.mobileMenuOpen=!1,this.displayFacets=this.displayFacets&&!this.isMobile()),super.update(e),(e.has("availableContentLocales")||e.has("contentLocale"))&&this.availableContentLocales.length>0){let l=d=>this.availableContentLocales.some(f=>f.lang==d);l(this.contentLocale)||(this.contentLocale=e.has("contentLocale")&&l(e.get("contentLocale"))?e.get("contentLocale"):(r=this.availableContentLocales[0])===null||r===void 0?void 0:r.lang)}if(e.has("baseUrl")&&this.baseUrl&&(this.baseUrl.endsWith("/")&&(this.baseUrl=this.baseUrl.replace(/\/$/,"")),this.initRecentSearches()),e.has("presets")&&((o=this.presets)!==null&&o!==void 0?o:[]).forEach(l=>l.metadataFilters.forEach(d=>{d.valueFilter&&(d.valueFilter.values=d.valueFilter.values.map(f=>ta(f)))})),e.has("presets")||e.has("selectedPreset")){let l=((n=this.presets)!==null&&n!==void 0?n:[]).find(d=>d.name===this.selectedPreset);l&&!this.compareRequests(this.request,l)&&this.setFiltersFromPreset(l)}e.has("contentLocale")&&this.contentLocale!=null&&(this.knownFacetLabels=new Map),["contentLocale","metadataFilters"].some(l=>e.has(l))&&(this.selectedPreset=(s=((a=this.presets)!==null&&a!==void 0?a:[]).find(l=>this.compareRequests(l,this.request)))===null||s===void 0?void 0:s.name),["baseUrl","apiIntegrationIdentifier"].some(l=>e.has(l))&&(this.api=void 0,this.initApi()),e.has("api")&&this.api&&this.initSearchData(),["uiLocale","contentLocale","metadataFilters","displayedFilters"].some(l=>e.has(l))&&this.updateFacets(),["query","uiLocale","contentLocale","metadataFilters","displayedFilters","api"].some(l=>e.has(l))&&this.suggestManager.update(),["query","uiLocale","contentLocale","metadataFilters"].some(l=>e.has(l))&&this.dispatchStateChangeEvent()}dispatchStateChangeEvent(){this.stateChangeEventDebouncer.run(()=>this.dispatchEvent(new Sd(this.request)))}updateFacets(){this.api&&(this.facetsRequest.length>0?(this.facetsLoaded=!1,this.updateFacetsDebouncer.run(async()=>{await this.retrieveFacetsFromSearch(),this.facetsLoaded=!0,this.facetsInitialized=!0},this.facetsInitialized?500:10)):this.facets=[])}contentAvailableCallback(e){var r,o,n;if(super.contentAvailableCallback(e),e.has("displayFacets")&&this.displayFacets&&((r=this.floatingContainer)===null||r===void 0||r.focus()),this.scrollToFacet!=null&&this.facetsLoaded){(o=this.scrollingFiltersContainer)===null||o===void 0||o.scrollIndexIntoView(this.facets.findIndex(s=>s.key===this.scrollToFacet));let a=(n=this.shadowRoot)===null||n===void 0?void 0:n.querySelector(`ft-accordion-item[data-facet-key="${this.scrollToFacet}"]`);a&&(a.active=!0),this.scrollToFacet=void 0}}initApi(){this.api==null&&(this.api=window.fluidtopics?new window.fluidtopics.FluidTopicsApi(this.baseUrl,this.apiIntegrationIdentifier,!0):void 0,setTimeout(()=>this.initApi(),10))}async retrieveFacetsFromSearch(){var e;let r=new Map;await((e=this.api)===null||e===void 0?void 0:e.search({...this.request,query:""}).then(o=>o.facets.forEach(n=>{this.knownFacetLabels.set(n.key,n.label),r.set(n.key,n)})).catch(N5)),this.facets=[];for(let o of this.facetsRequest)r.has(o.id)?this.facets.push(r.get(o.id)):this.knownFacetLabels.has(o.id)&&this.facets.push({key:o.id,label:this.knownFacetLabels.get(o.id),rootNodes:[],multiSelectionable:!0,hierarchical:!1})}onFloatingContainerKeyUp(e){var r;e.key==="Escape"&&(this.displayFacets=!1,(r=this.filtersOpener)===null||r===void 0||r.focus())}setQuery(e){this.input&&(this.input.value=e),this.query=e}onLaunchSearch(){if(this.query){let e=this.recentSearches.filter(r=>r.toLowerCase()!==this.query.toLowerCase()).filter((r,o)=>o<20);this.recentSearches=[this.query,...e],this.saveRecentSearches()}this.mobileMenuOpen=!1,this.displayFacets=!1,this.focus()}get recentSearchesStorageKey(){return this.baseUrl+":ft:recent-search-queries"}initRecentSearches(){var e;this.recentSearches=JSON.parse((e=window.localStorage.getItem(this.recentSearchesStorageKey))!==null&&e!==void 0?e:"[]")}saveRecentSearches(){let e=JSON.stringify(this.recentSearches);window.localStorage.setItem(this.recentSearchesStorageKey,e),window.dispatchEvent(new StorageEvent("storage",{key:this.recentSearchesStorageKey,newValue:e,storageArea:window.localStorage,url:window.location.href}))}async connectedCallback(){super.connectedCallback(),document.addEventListener("pointerdown",this.closeSuggestListbox),document.addEventListener("focusin",this.closeFloatingContainer),document.addEventListener("click",this.closeFloatingContainer),this.focusOnDisplay&&!rc&&this.focusInput(),W.addEventListener("authentication-change",this.initSearchData),this.initSearchData()}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("pointerdown",this.closeSuggestListbox),document.removeEventListener("focusin",this.closeFloatingContainer),document.removeEventListener("click",this.closeFloatingContainer),W.removeEventListener("authentication-change",this.initSearchData)}updateSize(e){this.sizeCategory=e.detail.category}setFilter(e,r){let o=this.metadataFilters.filter(n=>!n.valueFilter||n.key!==e);this.facets.forEach(n=>{n.key===e&&yt(n.rootNodes,a=>a.childNodes).forEach(a=>a.selected=r.includes(a.value))}),r.length&&o.push({key:e,valueFilter:{negative:!1,values:r}}),this.metadataFilters=o,this.scrollToFacet=e}setFiltersFromPreset(e){e!=null&&(e.contentLocale!=null&&(this.contentLocale=e.contentLocale),this.metadataFilters=e.metadataFilters)}clearFilters(){this.facets.forEach(r=>yt(r.rootNodes,o=>o.childNodes).forEach(o=>o.selected=!1)),this.metadataFilters=[];let e=this.facets[0];this.scrollToFacet=e?.key}querySelector(e){return this.shadowRoot.querySelector(e)}querySelectorAll(e){return this.shadowRoot.querySelectorAll(e)}renderDesktopFloatingMenu(){return this.forceMenuOpen?z:O`
4954
+ `:z}async firstUpdated(e){super.firstUpdated(e),this.initApi(),window.addEventListener("storage",r=>{r.key===this.recentSearchesStorageKey&&this.initRecentSearches()})}update(e){var r,o,n,a,s;if(e.has("labels")&&(this.labelResolver=new Nr(F0,this.labels)),e.has("sizeCategory")&&(this.mobileMenuOpen=!1,this.displayFacets=this.displayFacets&&!this.isMobile()),super.update(e),(e.has("availableContentLocales")||e.has("contentLocale"))&&this.availableContentLocales.length>0){let l=d=>this.availableContentLocales.some(f=>f.lang==d);l(this.contentLocale)||(this.contentLocale=e.has("contentLocale")&&l(e.get("contentLocale"))?e.get("contentLocale"):(r=this.availableContentLocales[0])===null||r===void 0?void 0:r.lang)}if(e.has("baseUrl")&&this.baseUrl&&(this.baseUrl.endsWith("/")&&(this.baseUrl=this.baseUrl.replace(/\/$/,"")),this.initRecentSearches()),e.has("presets")&&((o=this.presets)!==null&&o!==void 0?o:[]).forEach(l=>l.metadataFilters.forEach(d=>{d.valueFilter&&(d.valueFilter.values=d.valueFilter.values.map(f=>ta(f)))})),e.has("presets")||e.has("selectedPreset")){let l=((n=this.presets)!==null&&n!==void 0?n:[]).find(d=>d.name===this.selectedPreset);l&&!this.compareRequests(this.request,l)&&this.setFiltersFromPreset(l)}e.has("contentLocale")&&this.contentLocale!=null&&(this.knownFacetLabels=new Map),["contentLocale","metadataFilters"].some(l=>e.has(l))&&(this.selectedPreset=(s=((a=this.presets)!==null&&a!==void 0?a:[]).find(l=>this.compareRequests(l,this.request)))===null||s===void 0?void 0:s.name),["baseUrl","apiIntegrationIdentifier"].some(l=>e.has(l))&&(this.api=void 0,this.initApi()),e.has("api")&&this.api&&this.initSearchData(),["uiLocale","contentLocale","metadataFilters","displayedFilters"].some(l=>e.has(l))&&this.updateFacets(),["query","uiLocale","contentLocale","metadataFilters","displayedFilters","api"].some(l=>e.has(l))&&this.suggestManager.update(),["query","uiLocale","contentLocale","metadataFilters"].some(l=>e.has(l))&&this.dispatchStateChangeEvent()}dispatchStateChangeEvent(){this.stateChangeEventDebouncer.run(()=>this.dispatchEvent(new Sd(this.request)))}updateFacets(){this.facetsRequest.length>0?(this.facetsLoaded=!1,this.updateFacetsDebouncer.run(async()=>{await this.retrieveFacetsFromSearch(),this.facetsLoaded=!0,this.facetsInitialized=!0},this.facetsInitialized?500:10)):(this.facets=[],this.facetsLoaded=!0,this.facetsInitialized=!0)}contentAvailableCallback(e){var r,o,n;if(super.contentAvailableCallback(e),e.has("displayFacets")&&this.displayFacets&&((r=this.floatingContainer)===null||r===void 0||r.focus()),this.scrollToFacet!=null&&this.facetsLoaded){(o=this.scrollingFiltersContainer)===null||o===void 0||o.scrollIndexIntoView(this.facets.findIndex(s=>s.key===this.scrollToFacet));let a=(n=this.shadowRoot)===null||n===void 0?void 0:n.querySelector(`ft-accordion-item[data-facet-key="${this.scrollToFacet}"]`);a&&(a.active=!0),this.scrollToFacet=void 0}}initApi(){this.api==null&&(this.api=window.fluidtopics?new window.fluidtopics.FluidTopicsApi(this.baseUrl,this.apiIntegrationIdentifier,!0):void 0,setTimeout(()=>this.initApi(),10))}async retrieveFacetsFromSearch(){var e;if(this.facetsRequest.length==0){this.facets=[];return}let r=new Map;await((e=this.api)===null||e===void 0?void 0:e.search({...this.request,query:""}).then(o=>o.facets.forEach(n=>{this.knownFacetLabels.set(n.key,n.label),r.set(n.key,n)})).catch(N5)),this.facets=[];for(let o of this.facetsRequest)r.has(o.id)?this.facets.push(r.get(o.id)):this.knownFacetLabels.has(o.id)&&this.facets.push({key:o.id,label:this.knownFacetLabels.get(o.id),rootNodes:[],multiSelectionable:!0,hierarchical:!1})}onFloatingContainerKeyUp(e){var r;e.key==="Escape"&&(this.displayFacets=!1,(r=this.filtersOpener)===null||r===void 0||r.focus())}setQuery(e){this.input&&(this.input.value=e),this.query=e}onLaunchSearch(){if(this.query){let e=this.recentSearches.filter(r=>r.toLowerCase()!==this.query.toLowerCase()).filter((r,o)=>o<20);this.recentSearches=[this.query,...e],this.saveRecentSearches()}this.mobileMenuOpen=!1,this.displayFacets=!1,this.focus()}get recentSearchesStorageKey(){return this.baseUrl+":ft:recent-search-queries"}initRecentSearches(){var e;this.recentSearches=JSON.parse((e=window.localStorage.getItem(this.recentSearchesStorageKey))!==null&&e!==void 0?e:"[]")}saveRecentSearches(){let e=JSON.stringify(this.recentSearches);window.localStorage.setItem(this.recentSearchesStorageKey,e),window.dispatchEvent(new StorageEvent("storage",{key:this.recentSearchesStorageKey,newValue:e,storageArea:window.localStorage,url:window.location.href}))}async connectedCallback(){super.connectedCallback(),document.addEventListener("pointerdown",this.closeSuggestListbox),document.addEventListener("focusin",this.closeFloatingContainer),document.addEventListener("click",this.closeFloatingContainer),this.focusOnDisplay&&!rc&&this.focusInput(),W.addEventListener("authentication-change",this.initSearchData),this.initSearchData()}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("pointerdown",this.closeSuggestListbox),document.removeEventListener("focusin",this.closeFloatingContainer),document.removeEventListener("click",this.closeFloatingContainer),W.removeEventListener("authentication-change",this.initSearchData)}updateSize(e){this.sizeCategory=e.detail.category}setFilter(e,r){let o=this.metadataFilters.filter(n=>!n.valueFilter||n.key!==e);this.facets.forEach(n=>{n.key===e&&yt(n.rootNodes,a=>a.childNodes).forEach(a=>a.selected=r.includes(a.value))}),r.length&&o.push({key:e,valueFilter:{negative:!1,values:r}}),this.metadataFilters=o,this.scrollToFacet=e}setFiltersFromPreset(e){e!=null&&(e.contentLocale!=null&&(this.contentLocale=e.contentLocale),this.metadataFilters=e.metadataFilters)}clearFilters(){this.facets.forEach(r=>yt(r.rootNodes,o=>o.childNodes).forEach(o=>o.selected=!1)),this.metadataFilters=[];let e=this.facets[0];this.scrollToFacet=e?.key}querySelector(e){return this.shadowRoot.querySelector(e)}querySelectorAll(e){return this.shadowRoot.querySelectorAll(e)}renderDesktopFloatingMenu(){return this.forceMenuOpen?z:O`
4955
4955
  <div class="ft-search-bar--floating-panel"
4956
4956
  id="ft-search-bar-floating-panel"
4957
4957
  @keyup=${this.onFloatingContainerKeyUp}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluid-topics/ft-search-bar",
3
- "version": "2.0.7",
3
+ "version": "2.0.8",
4
4
  "description": "Search bar component using Fluid Topics public API",
5
5
  "keywords": [
6
6
  "Lit"
@@ -19,23 +19,23 @@
19
19
  "url": "ssh://git@scm.mrs.antidot.net:2222/fluidtopics/ft-web-components.git"
20
20
  },
21
21
  "dependencies": {
22
- "@fluid-topics/ft-accordion": "2.0.7",
23
- "@fluid-topics/ft-app-context": "2.0.7",
24
- "@fluid-topics/ft-button": "2.0.7",
25
- "@fluid-topics/ft-chip": "2.0.7",
26
- "@fluid-topics/ft-filter": "2.0.7",
27
- "@fluid-topics/ft-icon": "2.0.7",
28
- "@fluid-topics/ft-select": "2.0.7",
29
- "@fluid-topics/ft-size-watcher": "2.0.7",
30
- "@fluid-topics/ft-skeleton": "2.0.7",
31
- "@fluid-topics/ft-snap-scroll": "2.0.7",
32
- "@fluid-topics/ft-tooltip": "2.0.7",
33
- "@fluid-topics/ft-typography": "2.0.7",
34
- "@fluid-topics/ft-wc-utils": "2.0.7",
22
+ "@fluid-topics/ft-accordion": "2.0.8",
23
+ "@fluid-topics/ft-app-context": "2.0.8",
24
+ "@fluid-topics/ft-button": "2.0.8",
25
+ "@fluid-topics/ft-chip": "2.0.8",
26
+ "@fluid-topics/ft-filter": "2.0.8",
27
+ "@fluid-topics/ft-icon": "2.0.8",
28
+ "@fluid-topics/ft-select": "2.0.8",
29
+ "@fluid-topics/ft-size-watcher": "2.0.8",
30
+ "@fluid-topics/ft-skeleton": "2.0.8",
31
+ "@fluid-topics/ft-snap-scroll": "2.0.8",
32
+ "@fluid-topics/ft-tooltip": "2.0.8",
33
+ "@fluid-topics/ft-typography": "2.0.8",
34
+ "@fluid-topics/ft-wc-utils": "2.0.8",
35
35
  "lit": "3.1.0"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@fluid-topics/public-api": "1.0.116"
39
39
  },
40
- "gitHead": "8555f88ae4858c380daee8311a887142043c46a9"
40
+ "gitHead": "784751f48d2d71e0f4e87cbaa8ca3600c1ed5a9f"
41
41
  }