@fluid-topics/ft-search-type 1.3.27 → 1.3.28

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.
@@ -1923,7 +1923,7 @@ Also for action icons.`,l.colorGray200),contentGlobalSubtle:r.extend("--ft-conte
1923
1923
  <span class="ft-i18n">
1924
1924
  ${this.i18n({context:this.context,key:this.key,args:Array.isArray(this.args)?this.args:[]})}
1925
1925
  </span>
1926
- `}update(e){var o;super.update(e),["context","key","defaultMessage"].some(n=>e.has(n))&&this.context&&this.key&&this.addI18nContext(this.context,{[this.key]:(o=this.defaultMessage)!==null&&o!==void 0?o:""})}};rt.elementDefinitions={};rt.styles=Vl;bo([(0,Sn.redux)()],rt.prototype,"editorMode",void 0);bo([(0,vn.property)()],rt.prototype,"context",void 0);bo([(0,vn.property)()],rt.prototype,"key",void 0);bo([(0,Sn.jsonProperty)([])],rt.prototype,"args",void 0);bo([(0,vn.property)()],rt.prototype,"defaultMessage",void 0);var On=class t{static build(e){return new t(e)}static buildCustom(e){return new t(e,!0)}static fromGwt(e){return new t(e)}get service(){return this.custom?Vo:_r}constructor(e,o=!1){this.name=e,this.custom=o,this.properties=new Proxy({},{get:(n,a)=>{let i=a;return s=>({context:this.name,key:i,custom:this.custom,args:typeof s=="function"?void 0:s,argsProvider:typeof s=="function"?s:void 0})}}),this.messages=new Proxy({},{get:(n,a)=>(...i)=>this.service.resolveMessage(this.name,a,...i)}),this.rawMessages=new Proxy({},{get:(n,a)=>this.service.resolveRawMessage(this.name,a)}),this.keys=new Proxy({},{get:(n,a)=>()=>a})}};(0,wd.customElement)("ft-i18n")(rt);var Rn=g(R()),Ld=g(K());var We=g(R());var Cn=g(R()),mp={setRequest:(t,e)=>{t.request=e.payload},setRequestQuery:(t,e)=>{t.request.query=e.payload},setRequestContentLocale:(t,e)=>{t.request.contentLocale=e.payload},setPageSize:(t,e)=>{var o;let n=+((o=e.payload)!==null&&o!==void 0?o:20);t.request.paging.perPage=isNaN(n)?20:(0,Cn.minmax)(1,n,1e3)},setPageNumber:(t,e)=>{t.request.paging.page=isNaN(e.payload)?1:Math.max(1,e.payload)},setRequestSort:(t,e)=>{t.request.sort=e.payload},setRequestSortId:(t,e)=>{t.request.sortId=e.payload},setRequestFilters:(t,e)=>{t.request.metadataFilters=e.payload},setRequestFacets:(t,e)=>{t.request.facets=e.payload},setRequestVirtualField:(t,e)=>{t.request.virtualField=e.payload},setRequestScope:(t,e)=>{t.request.scope=e.payload},setOtherQueryParams:(t,e)=>{t.request.otherQueryParams=e.payload},setRequestClusterSortCriterion:(t,e)=>{var o;t.request.clusterSortCriterions=(o=e.payload)!==null&&o!==void 0?o:[]}},Rd=t=>Cn.FtReduxStore.get({name:"ft-search-"+t,initialState:{request:{query:"",clusterSortCriterions:[],metadataFilters:[],facets:[],sort:[],sortId:void 0,paging:{page:1,perPage:20}},liveQuery:"",paging:void 0,facets:void 0,spellcheck:void 0,locales:[],results:void 0,announcements:void 0,suggestResults:void 0,configuration:void 0},reducers:mp});var En=class extends Oe{constructor(e){super(!0,e),this.cache.registerFinal("search-configuration",async()=>(await this.awaitApi).getSearchConfiguration())}async launchSearch(e){let o={...e,metadataFilters:this.sortFilters(e.metadataFilters),facets:[...e.facets].sort((n,a)=>n.id.localeCompare(a.id))};return this.cache.get("search-"+this.hash(o),async()=>(await this.awaitApi).search(e),2*60*1e3)}async launchSuggest(e){let o={...e,metadataFilters:this.sortFilters(e.metadataFilters)};return this.cache.get("suggest-"+this.hash(o),async()=>(await this.awaitApi).getSuggestions(e),2*60*1e3)}async getAvailableSearchLocales(){return this.cache.get("available-locales",async()=>(await this.awaitApi).getAvailableSearchLocales())}async getConfiguration(){return this.cache.get("search-configuration")}sortFilters(e){return e.map(o=>o.valueFilter==null?o:{...o,valueFilter:{...o.valueFilter,values:[...o.valueFilter.values].sort((n,a)=>n.localeCompare(a))}}).sort((o,n)=>o.key.localeCompare(n.key))}};var Wa=t=>t.request.virtualField===Dr.TITLE_ONLY&&t.request.scope===Br.DOCUMENTS,An=class t extends Event{constructor(){super(t.eventName)}};An.eventName="search-context-clear-all-filters";var xo=class t{static build(e,o){return new t(Rd(e.trim()||"context"),o)}constructor(e,o){this.store=e,this.ignoreEmptyQuery=!1,this.openExternalDocumentInNewTab=!1,this.localesDebouncer=new We.Debouncer(10),this.searchDebouncer=new We.Debouncer(100),this.launchSearch=n=>this.searchDebouncer.run(()=>this.fetchSearchData(n??this.buildSearchRequest(this.store.getState()))),this.buildSearchRequest=n=>({...n.request,facets:this.facetIds.map(a=>({id:a}))}),this.suggestDebouncer=new We.Debouncer(300),this.launchSuggest=n=>this.suggestDebouncer.run(()=>this.fetchSuggestData(n??this.buildSuggestRequest(this.store.getState()))),this.buildSuggestRequest=n=>{var a;return{input:n.liveQuery,metadataFilters:n.request.metadataFilters,sort:(a=n.request.sort)!==null&&a!==void 0?a:[],sortId:n.request.sortId,contentLocale:n.request.contentLocale,scope:n.request.scope}},this.service=o??new En,this.service.cache.addEventListener("clear-cache",n=>{n.detail.clearedKeys.includes("available-locales")&&this.updateLocales()}),this.searchWatcher=(0,We.watch)(e,this.buildSearchRequest,this.launchSearch),this.suggestWatcher=(0,We.watch)(e,this.buildSuggestRequest,this.launchSuggest)}async initService(){return this.updateLocales(),this.service.getConfiguration().then(e=>this.store.actions.configuration(e)),this.launchSearch()}setQuery(e){this.store.actions.setRequestQuery(e),this.store.actions.liveQuery(e),this.store.actions.setPageNumber(1)}setContentLocale(e){var o;let n=(o=this.store.getState().locales)!==null&&o!==void 0?o:[],a=this.store.getState().request.contentLocale;if(e!=a){if(n.length>0){let i=s=>n.some(c=>c.lang==s);i(e)||(e=i(a)?a:n[0].lang)}this.store.actions.setRequestContentLocale(e),this.store.actions.setPageNumber(1),this.store.actions.setRequestFilters([])}return e}forceContentLocale(e){this.store.actions.setRequestContentLocale(e)}setPageSize(e){this.store.actions.setPageSize(e)}setPageNumber(e){this.store.actions.setPageNumber(e)}get sortOptions(){var e,o;return(o=(e=this.store.getState().configuration)===null||e===void 0?void 0:e.sortOptions)!==null&&o!==void 0?o:[]}setSort(e){this.store.actions.setRequestSort(e),this.store.actions.setPageNumber(1)}setSortId(e){var o;if(this.store.actions.setPageNumber(1),e==null||this.sortOptions.length==0)return this.store.actions.setRequestSortId(e),e;let n=(o=this.sortOptions.find(a=>a.id==e))!==null&&o!==void 0?o:this.sortOptions[0];return this.store.actions.setRequestSortId(n.id),n.id}setFilters(e){let o=e.filter(n=>!n.valueFilter||n.valueFilter.values.length>0);this.store.actions.setRequestFilters(o),this.store.actions.setPageNumber(1)}setClusterSortCriterion(e){this.store.actions.setRequestClusterSortCriterion(e)}setSearchInDocumentTitlesOnly(e){e?(this.store.actions.setRequestVirtualField(Dr.TITLE_ONLY),this.store.actions.setRequestScope(Br.DOCUMENTS)):(this.store.actions.setRequestVirtualField(Dr.EVERYWHERE),this.store.actions.setRequestScope(Br.DEFAULT))}setVirtualField(e){this.store.actions.setRequestVirtualField(e)}get searchInDocumentTitlesOnly(){return Wa(this.store.getState())}clearAllFilters(){this.setFilters([]),this.store.dispatchEvent(new An)}addFacet(e){this.facetIds=[...this.facetIds,e]}replaceFacet(e,o){let n=this.facetIds.filter(a=>a!=e);o&&n.push(o),this.facetIds=n}get facetIds(){var e;let o=this.store.getState().request;return[...new Set([...o.facets.map(n=>n.id),...((e=o.metadataFilters)!==null&&e!==void 0?e:[]).map(n=>n.key)])]}set facetIds(e){let n=[...new Set(e)].map(a=>({id:a}));this.store.actions.setRequestFacets(n)}setFilter(e,o){this.setValueFilter(e,o)}setValueFilter(e,o){let n=this.store.getState().request.metadataFilters,a={key:e,valueFilter:{values:o,negative:!1}},i=[...n.filter(s=>!s.valueFilter),...n.filter(s=>s.valueFilter&&s.key!==a.key),a];this.setFilters(i)}setDateFilter(e,o){let n=this.store.getState().request.metadataFilters,a={key:e,dateFilter:{type:o}},i=[...n.filter(s=>!s.dateFilter),...n.filter(s=>s.dateFilter&&s.key!==a.key),a];this.setFilters(i)}removeDateFilter(e){let o=this.store.getState().request.metadataFilters,n=[...o.filter(a=>!a.dateFilter),...o.filter(a=>a.dateFilter&&a.key!==e)];this.setFilters(n)}setRangeFilter(e,o,n){let a=this.store.getState().request.metadataFilters,i={key:e,rangeFilter:{from:o,to:n}},s=[...a.filter(c=>!c.rangeFilter),...a.filter(c=>c.rangeFilter&&c.key!==i.key),i];this.setFilters(s)}removeRangeFilter(e){let o=this.store.getState().request.metadataFilters,n=[...o.filter(a=>!a.rangeFilter),...o.filter(a=>a.rangeFilter&&a.key!==e)];this.setFilters(n)}setLiveQuery(e){this.store.actions.liveQuery(e)}setRequest(e){this.store.actions.setRequest({...e,facets:this.store.getState().request.facets}),this.store.actions.liveQuery(e.query),this.store.actions.setPageNumber(1)}setScope(e){this.store.actions.setRequestScope(e)}setOtherQueryParams(e){this.store.actions.setOtherQueryParams(e)}setIgnoreEmptyQuery(e){this.ignoreEmptyQuery=e}setOpenExternalDocumentInNewTab(e){this.openExternalDocumentInNewTab=e}updateLocales(){return this.localesDebouncer.run(async()=>this.store.actions.locales((await this.service.getAvailableSearchLocales()).contentLocales))}async fetchSearchData(e){var o,n,a,i;try{if((o=this.cancelableSearch)===null||o===void 0||o.cancel(),this.store.actions.paging(void 0),this.ignoreEmptyQuery&&e.query.length==0)this.store.actions.results(void 0),this.store.actions.announcements(void 0),this.store.actions.facets(void 0),this.store.actions.spellcheck(void 0);else{this.cancelableSearch=(0,We.cancelable)(this.service.launchSearch(e));let s=await this.cancelableSearch;if(this.store.actions.announcements(s.announcements),s.paging.currentPage<=1)this.store.actions.results(s.results),this.store.actions.facets(s.facets),this.store.actions.spellcheck(s.spellcheck);else{let c=((n=this.store.getState().results)!==null&&n!==void 0?n:[]).concat(s.results);this.store.actions.results(c),this.store.commands.clear(/^focus-result-/),this.store.commands.add({type:`focus-result-${(s.paging.currentPage-1)*((a=e.paging.perPage)!==null&&a!==void 0?a:20)+1}`})}this.store.actions.paging(s.paging)}}catch(s){s instanceof We.CanceledPromiseError||(console.error(s),(i=this.errorHandler)===null||i===void 0||i.call(this,s))}}async fetchSuggestData(e){var o;try{(o=this.cancelableSuggest)===null||o===void 0||o.cancel(),this.cancelableSuggest=(0,We.cancelable)(this.service.launchSuggest(e));let n=await this.cancelableSuggest;this.store.actions.suggestResults(n.suggestions)}catch(n){!(n instanceof We.CanceledPromiseError)&&this.errorHandler&&this.errorHandler(n)}}clear(){this.store.clear()}clearResults(){this.store.actions.paging(void 0),this.store.actions.results(void 0),this.store.actions.announcements(void 0),this.store.actions.facets(void 0),this.store.actions.spellcheck(void 0)}};var gp=function(t,e,o,n){var a=arguments.length,i=a<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,o):n,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(t,e,o,n);else for(var c=t.length-1;c>=0;c--)(s=t[c])&&(i=(a<3?s(i):a>3?s(e,o,i):s(e,o))||i);return a>3&&i&&Object.defineProperty(e,o,i),i},Va=class extends Event{constructor(){super("register-ft-search-component",{bubbles:!0,composed:!0})}},Td=Symbol("registerInterval"),Ga=Symbol("registerAttempts"),bp=40,xp=(0,Rn.applyMixinOnce)(Symbol("toFtSearchComponent"),function(t){class e extends t{setSearchStateManager(n){this.clearStateManager(),this.stateManager=n,this.addStore(n.store,"search")}clearStateManager(){this.stateManager&&(this.removeStore(this.stateManager.store),this.stateManager=void 0)}connectedCallback(){super.connectedCallback(),this[Ga]=0,this[Td]=window.setInterval(()=>this.tryToRegisterToContext(),50)}tryToRegisterToContext(){this.stateManager!=null||this[Ga]>bp?window.clearInterval(this[Td]):(this[Ga]++,this.dispatchEvent(new Va))}disconnectedCallback(){super.disconnectedCallback(),this.clearStateManager()}}return gp([(0,Ld.state)()],e.prototype,"stateManager",void 0),e}),wn=class extends xp(Rn.FtLitElementRedux){};var Tn=On.build("designedSearchType"),Nd={label:"Search scope",documentTitlesOnly:"Search in document titles only"};var Fd=g(K());var Dd=g(R());var Pd=g(B()),ft=g(K()),qe=g(R());var Id=g(B());var _d=Id.css`
1926
+ `}update(e){var o;super.update(e),["context","key","defaultMessage"].some(n=>e.has(n))&&this.context&&this.key&&this.addI18nContext(this.context,{[this.key]:(o=this.defaultMessage)!==null&&o!==void 0?o:""})}};rt.elementDefinitions={};rt.styles=Vl;bo([(0,Sn.redux)()],rt.prototype,"editorMode",void 0);bo([(0,vn.property)()],rt.prototype,"context",void 0);bo([(0,vn.property)()],rt.prototype,"key",void 0);bo([(0,Sn.jsonProperty)([])],rt.prototype,"args",void 0);bo([(0,vn.property)()],rt.prototype,"defaultMessage",void 0);var On=class t{static build(e){return new t(e)}static buildCustom(e){return new t(e,!0)}static fromGwt(e){return new t(e)}get service(){return this.custom?Vo:_r}constructor(e,o=!1){this.name=e,this.custom=o,this.properties=new Proxy({},{get:(n,a)=>{let i=a;return s=>({context:this.name,key:i,custom:this.custom,args:typeof s=="function"?void 0:s,argsProvider:typeof s=="function"?s:void 0})}}),this.messages=new Proxy({},{get:(n,a)=>(...i)=>this.service.resolveMessage(this.name,a,...i)}),this.rawMessages=new Proxy({},{get:(n,a)=>this.service.resolveRawMessage(this.name,a)}),this.keys=new Proxy({},{get:(n,a)=>()=>a})}};(0,wd.customElement)("ft-i18n")(rt);var Rn=g(R()),Ld=g(K());var We=g(R());var Cn=g(R()),mp={setRequest:(t,e)=>{t.request=e.payload},setRequestQuery:(t,e)=>{t.request.query=e.payload},setRequestContentLocale:(t,e)=>{t.request.contentLocale=e.payload},setPageSize:(t,e)=>{var o;let n=+((o=e.payload)!==null&&o!==void 0?o:20);t.request.paging.perPage=isNaN(n)?20:(0,Cn.minmax)(1,n,1e3)},setPageNumber:(t,e)=>{t.request.paging.page=isNaN(e.payload)?1:Math.max(1,e.payload)},setRequestSort:(t,e)=>{t.request.sort=e.payload},setRequestSortId:(t,e)=>{t.request.sortId=e.payload},setRequestFilters:(t,e)=>{t.request.metadataFilters=e.payload},setRequestFacets:(t,e)=>{t.request.facets=e.payload},setRequestVirtualField:(t,e)=>{t.request.virtualField=e.payload},setRequestScope:(t,e)=>{t.request.scope=e.payload},setOtherQueryParams:(t,e)=>{t.request.otherQueryParams=e.payload},setRequestClusterSortCriterion:(t,e)=>{var o;t.request.clusterSortCriterions=(o=e.payload)!==null&&o!==void 0?o:[]}},Rd=t=>Cn.FtReduxStore.get({name:"ft-search-"+t,initialState:{request:{query:"",clusterSortCriterions:[],metadataFilters:[],facets:[],sort:[],sortId:void 0,paging:{page:1,perPage:20}},liveQuery:"",paging:void 0,facets:void 0,spellcheck:void 0,locales:[],results:void 0,announcements:void 0,suggestResults:void 0,configuration:void 0},reducers:mp});var En=class extends Oe{constructor(e){super(!0,e),this.cache.registerFinal("search-configuration",async()=>(await this.awaitApi).getSearchConfiguration())}async launchSearch(e){let o={...e,metadataFilters:this.sortFilters(e.metadataFilters),facets:[...e.facets].sort((n,a)=>n.id.localeCompare(a.id))};return this.cache.get("search-"+this.hash(o),async()=>(await this.awaitApi).search(e),2*60*1e3)}async launchSuggest(e){let o={...e,metadataFilters:this.sortFilters(e.metadataFilters)};return this.cache.get("suggest-"+this.hash(o),async()=>(await this.awaitApi).getSuggestions(e),2*60*1e3)}async getAvailableSearchLocales(){return this.cache.get("available-locales",async()=>(await this.awaitApi).getAvailableSearchLocales())}async getConfiguration(){return this.cache.get("search-configuration")}sortFilters(e){return e.map(o=>o.valueFilter==null?o:{...o,valueFilter:{...o.valueFilter,values:[...o.valueFilter.values].sort((n,a)=>n.localeCompare(a))}}).sort((o,n)=>o.key.localeCompare(n.key))}};var Wa=t=>t.request.virtualField===Dr.TITLE_ONLY&&t.request.scope===Br.DOCUMENTS,An=class t extends Event{constructor(){super(t.eventName)}};An.eventName="search-context-clear-all-filters";var xo=class t{static build(e,o){return new t(Rd(e.trim()||"context"),o)}constructor(e,o){this.store=e,this.ignoreEmptyQuery=!1,this.openExternalDocumentInNewTab=!1,this.localesDebouncer=new We.Debouncer(10),this.searchDebouncer=new We.Debouncer(100),this.launchSearch=n=>this.searchDebouncer.run(()=>this.fetchSearchData(n??this.buildSearchRequest(this.store.getState()))),this.buildSearchRequest=n=>({...n.request,facets:this.facetIds.map(a=>({id:a}))}),this.suggestDebouncer=new We.Debouncer(300),this.launchSuggest=n=>this.suggestDebouncer.run(()=>this.fetchSuggestData(n??this.buildSuggestRequest(this.store.getState()))),this.buildSuggestRequest=n=>{var a;return{input:n.liveQuery,metadataFilters:n.request.metadataFilters,sort:(a=n.request.sort)!==null&&a!==void 0?a:[],sortId:n.request.sortId,contentLocale:n.request.contentLocale,scope:n.request.scope}},this.service=o??new En,this.service.cache.addEventListener("clear-cache",n=>{n.detail.clearedKeys.includes("available-locales")&&this.updateLocales()}),this.searchWatcher=(0,We.watch)(e,this.buildSearchRequest,this.launchSearch),this.suggestWatcher=(0,We.watch)(e,this.buildSuggestRequest,this.launchSuggest)}async initService(){return this.updateLocales(),this.service.getConfiguration().then(e=>{this.store.actions.configuration(e),this.setSortId(this.store.getState().request.sortId)}),this.launchSearch()}setQuery(e){this.store.actions.setRequestQuery(e),this.store.actions.liveQuery(e),this.store.actions.setPageNumber(1)}setContentLocale(e){var o;let n=(o=this.store.getState().locales)!==null&&o!==void 0?o:[],a=this.store.getState().request.contentLocale;if(e!=a){if(n.length>0){let i=s=>n.some(c=>c.lang==s);i(e)||(e=i(a)?a:n[0].lang)}this.store.actions.setRequestContentLocale(e),this.store.actions.setPageNumber(1),this.store.actions.setRequestFilters([])}return e}forceContentLocale(e){this.store.actions.setRequestContentLocale(e)}setPageSize(e){this.store.actions.setPageSize(e)}setPageNumber(e){this.store.actions.setPageNumber(e)}get sortOptions(){var e,o;return(o=(e=this.store.getState().configuration)===null||e===void 0?void 0:e.sortOptions)!==null&&o!==void 0?o:[]}setSort(e){this.store.actions.setRequestSort(e),this.store.actions.setPageNumber(1)}setSortId(e){var o;if(this.store.actions.setPageNumber(1),e==null||this.sortOptions.length==0)return this.store.actions.setRequestSortId(e),e;let n=(o=this.sortOptions.find(a=>a.id==e))!==null&&o!==void 0?o:this.sortOptions[0];return this.store.actions.setRequestSortId(n.id),n.id}setFilters(e){let o=e.filter(n=>!n.valueFilter||n.valueFilter.values.length>0);this.store.actions.setRequestFilters(o),this.store.actions.setPageNumber(1)}setClusterSortCriterion(e){this.store.actions.setRequestClusterSortCriterion(e)}setSearchInDocumentTitlesOnly(e){e?(this.store.actions.setRequestVirtualField(Dr.TITLE_ONLY),this.store.actions.setRequestScope(Br.DOCUMENTS)):(this.store.actions.setRequestVirtualField(Dr.EVERYWHERE),this.store.actions.setRequestScope(Br.DEFAULT))}setVirtualField(e){this.store.actions.setRequestVirtualField(e)}get searchInDocumentTitlesOnly(){return Wa(this.store.getState())}clearAllFilters(){this.setFilters([]),this.store.dispatchEvent(new An)}addFacet(e){this.facetIds=[...this.facetIds,e]}replaceFacet(e,o){let n=this.facetIds.filter(a=>a!=e);o&&n.push(o),this.facetIds=n}get facetIds(){var e;let o=this.store.getState().request;return[...new Set([...o.facets.map(n=>n.id),...((e=o.metadataFilters)!==null&&e!==void 0?e:[]).map(n=>n.key)])]}set facetIds(e){let n=[...new Set(e)].map(a=>({id:a}));this.store.actions.setRequestFacets(n)}setFilter(e,o){this.setValueFilter(e,o)}setValueFilter(e,o){let n=this.store.getState().request.metadataFilters,a={key:e,valueFilter:{values:o,negative:!1}},i=[...n.filter(s=>!s.valueFilter),...n.filter(s=>s.valueFilter&&s.key!==a.key),a];this.setFilters(i)}setDateFilter(e,o){let n=this.store.getState().request.metadataFilters,a={key:e,dateFilter:{type:o}},i=[...n.filter(s=>!s.dateFilter),...n.filter(s=>s.dateFilter&&s.key!==a.key),a];this.setFilters(i)}removeDateFilter(e){let o=this.store.getState().request.metadataFilters,n=[...o.filter(a=>!a.dateFilter),...o.filter(a=>a.dateFilter&&a.key!==e)];this.setFilters(n)}setRangeFilter(e,o,n){let a=this.store.getState().request.metadataFilters,i={key:e,rangeFilter:{from:o,to:n}},s=[...a.filter(c=>!c.rangeFilter),...a.filter(c=>c.rangeFilter&&c.key!==i.key),i];this.setFilters(s)}removeRangeFilter(e){let o=this.store.getState().request.metadataFilters,n=[...o.filter(a=>!a.rangeFilter),...o.filter(a=>a.rangeFilter&&a.key!==e)];this.setFilters(n)}setLiveQuery(e){this.store.actions.liveQuery(e)}setRequest(e){this.store.actions.setRequest({...e,facets:this.store.getState().request.facets}),this.store.actions.liveQuery(e.query),this.store.actions.setPageNumber(1)}setScope(e){this.store.actions.setRequestScope(e)}setOtherQueryParams(e){this.store.actions.setOtherQueryParams(e)}setIgnoreEmptyQuery(e){this.ignoreEmptyQuery=e}setOpenExternalDocumentInNewTab(e){this.openExternalDocumentInNewTab=e}updateLocales(){return this.localesDebouncer.run(async()=>this.store.actions.locales((await this.service.getAvailableSearchLocales()).contentLocales))}async fetchSearchData(e){var o,n,a,i;try{if((o=this.cancelableSearch)===null||o===void 0||o.cancel(),this.store.actions.paging(void 0),this.ignoreEmptyQuery&&e.query.length==0)this.store.actions.results(void 0),this.store.actions.announcements(void 0),this.store.actions.facets(void 0),this.store.actions.spellcheck(void 0);else{this.cancelableSearch=(0,We.cancelable)(this.service.launchSearch(e));let s=await this.cancelableSearch;if(this.store.actions.announcements(s.announcements),s.paging.currentPage<=1)this.store.actions.results(s.results),this.store.actions.facets(s.facets),this.store.actions.spellcheck(s.spellcheck);else{let c=((n=this.store.getState().results)!==null&&n!==void 0?n:[]).concat(s.results);this.store.actions.results(c),this.store.commands.clear(/^focus-result-/),this.store.commands.add({type:`focus-result-${(s.paging.currentPage-1)*((a=e.paging.perPage)!==null&&a!==void 0?a:20)+1}`})}this.store.actions.paging(s.paging)}}catch(s){s instanceof We.CanceledPromiseError||(console.error(s),(i=this.errorHandler)===null||i===void 0||i.call(this,s))}}async fetchSuggestData(e){var o;try{(o=this.cancelableSuggest)===null||o===void 0||o.cancel(),this.cancelableSuggest=(0,We.cancelable)(this.service.launchSuggest(e));let n=await this.cancelableSuggest;this.store.actions.suggestResults(n.suggestions)}catch(n){!(n instanceof We.CanceledPromiseError)&&this.errorHandler&&this.errorHandler(n)}}clear(){this.store.clear()}clearResults(){this.store.actions.paging(void 0),this.store.actions.results(void 0),this.store.actions.announcements(void 0),this.store.actions.facets(void 0),this.store.actions.spellcheck(void 0)}};var gp=function(t,e,o,n){var a=arguments.length,i=a<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,o):n,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(t,e,o,n);else for(var c=t.length-1;c>=0;c--)(s=t[c])&&(i=(a<3?s(i):a>3?s(e,o,i):s(e,o))||i);return a>3&&i&&Object.defineProperty(e,o,i),i},Va=class extends Event{constructor(){super("register-ft-search-component",{bubbles:!0,composed:!0})}},Td=Symbol("registerInterval"),Ga=Symbol("registerAttempts"),bp=40,xp=(0,Rn.applyMixinOnce)(Symbol("toFtSearchComponent"),function(t){class e extends t{setSearchStateManager(n){this.clearStateManager(),this.stateManager=n,this.addStore(n.store,"search")}clearStateManager(){this.stateManager&&(this.removeStore(this.stateManager.store),this.stateManager=void 0)}connectedCallback(){super.connectedCallback(),this[Ga]=0,this[Td]=window.setInterval(()=>this.tryToRegisterToContext(),50)}tryToRegisterToContext(){this.stateManager!=null||this[Ga]>bp?window.clearInterval(this[Td]):(this[Ga]++,this.dispatchEvent(new Va))}disconnectedCallback(){super.disconnectedCallback(),this.clearStateManager()}}return gp([(0,Ld.state)()],e.prototype,"stateManager",void 0),e}),wn=class extends xp(Rn.FtLitElementRedux){};var Tn=On.build("designedSearchType"),Nd={label:"Search scope",documentTitlesOnly:"Search in document titles only"};var Fd=g(K());var Dd=g(R());var Pd=g(B()),ft=g(K()),qe=g(R());var Id=g(B());var _d=Id.css`
1927
1927
  `;var kd=g(R());function Ln(t){return t.filter(e=>e.key==="ft:lastEdition").filter(e=>!e.valueFilter).map(e=>e.dateFilter?e.dateFilter.type:"CUSTOM").shift()}function Nn(t){var e;return t.dateFilter?{key:t.key,type:"DATE",dateValue:t.dateFilter.type}:t.rangeFilter?{key:t.key,type:"RANGE",from:t.rangeFilter.from,to:t.rangeFilter.to}:{key:t.key,values:(e=t.valueFilter)===null||e===void 0?void 0:e.values}}var In=class{constructor(e,o){this.store=e,this.ignoreEmptyQuery=!1,this.openExternalDocumentInNewTab=!1,this.enableAnalyticsEvents=!0,this.appName=void 0,this.appVersion=void 0,this.document=void 0,this.sendEvent=n=>{if(!this.canSendEvent()||!n)return;let a=this.store.getState().request;this.document==null?this.sendKhubSearchEvent(a,n):this.sendDocumentSearchEvent(a,n)},this.eventsService=o??new qo,this.resultsWatcher=(0,kd.watch)(e,n=>n.results,this.sendEvent)}setEnableAnalyticsEvents(e){this.enableAnalyticsEvents=e}setAppName(e){this.appName=e}setAppVersion(e){this.appVersion=e}setDocumentSearch(e){this.document=e}setDocumentSearchFromMap(e){this.setDocumentSearch(this.convertToAnalyticsMap(e))}initAppInfo(){let{apiIntegrationIdentifier:e,apiIntegrationAppVersion:o}=T.getState();this.setAppName(e??"unknown"),this.setAppVersion(o??"unknown")}convertToAnalyticsMap(e){let o;switch(e.editorialType){case"BOOK":o="STRUCTURED_DOCUMENT";break;case"SHARED_BOOK":o="SHARED_PERSONAL_BOOK";break;case"ARTICLE":o="RESOURCE";break;case"HTML_PACKAGE":o="HTML_PACKAGE";break}return{id:e.id,title:e.title,type:o,metadata:e.metadata}}canSendEvent(){if(this.appName==null||this.appVersion==null)return console.debug("ft-search-context.eventManager is not initialized. No events will be sent!"),!1;let{editorMode:e}=T.getState();return this.enableAnalyticsEvents&&!e}sendKhubSearchEvent(e,o){let n={offline:!1,appVersion:this.appVersion,appName:this.appName,name:ar.KHUB__SEARCH,searchResponse:{autocorrect:this.store.getState().spellcheck!=null,nbResults:o.length},searchQuery:{terms:e.query,searchType:e.virtualField,lastUpdate:Ln(e.metadataFilters),facets:e.metadataFilters.map(a=>Nn(a))}};this.eventsService.sendKhubSearchEvent(n)}sendDocumentSearchEvent(e,o){if(e.metadataFilters.find(a=>{var i;return a.key==="ft:publicationId"&&((i=a.valueFilter)===null||i===void 0?void 0:i.values[0])===this.document.id})!==void 0){let a={offline:!1,appVersion:this.appVersion,appName:this.appName,name:ar.DOCUMENT__SEARCH,searchResponse:{autocorrect:this.store.getState().spellcheck!=null,nbResults:o.length},searchQuery:{terms:e.query},document:this.document};this.eventsService.sendDocumentSearchEvent(a)}}sendResultClickedEvent(e,o){if(!this.canSendEvent())return;let n=this.store.getState().request,a;e.type==Mt.TOPIC&&(a={tocId:e.topic.tocId,title:e.topic.title});let i={offline:!1,appVersion:this.appVersion,appName:this.appName,name:ar.SEARCH_PAGE__SELECT,searchQuery:{terms:n.query,searchType:n.virtualField,lastUpdate:Ln(n.metadataFilters),facets:n.metadataFilters.map(s=>Nn(s))},searchResult:{rank:o,type:e.type,document:this.convertDocument(e),topic:a},externalLink:this.convertExternalLink(e)};this.eventsService.sendSearchPageSelectEvent(i)}sendResultContextMenuOpenedEvent(e,o){if(!this.canSendEvent())return;let n=this.store.getState().request,a;e.type==Mt.TOPIC&&(a={tocId:e.topic.tocId,title:e.topic.title});let i={offline:!1,appVersion:this.appVersion,appName:this.appName,name:ar.SEARCH_RESULT__OPEN_BROWSER_CONTEXT_MENU,searchQuery:{terms:n.query,searchType:n.virtualField,lastUpdate:Ln(n.metadataFilters),facets:n.metadataFilters.map(s=>Nn(s))},searchResult:{rank:o,type:e.type,document:this.convertDocument(e),topic:a},externalLink:this.convertExternalLink(e)};this.eventsService.sendSearchResultOpenContextMenuEvent(i)}convertDocument(e){switch(e.type){case Mt.MAP:return{id:e.map.mapId,title:e.map.title,type:Pr.STRUCTURED_DOCUMENT,metadata:e.map.metadata};case Mt.TOPIC:return{id:e.topic.mapId,title:e.topic.mapTitle,type:Pr.STRUCTURED_DOCUMENT,metadata:e.topic.metadata};case Mt.DOCUMENT:return{id:e.document.documentId,title:e.document.title,type:Pr.UNSTRUCTURED_DOCUMENT,metadata:e.document.metadata,mimeType:e.document.mimeType};default:throw new TypeError("Unknown type "+e.type)}}convertExternalLink(e){var o,n,a,i,s;return(i=(n=(o=e.map)===null||o===void 0?void 0:o.originUrl)!==null&&n!==void 0?n:(a=e.topic)===null||a===void 0?void 0:a.originUrl)!==null&&i!==void 0?i:(s=e.document)===null||s===void 0?void 0:s.originUrl}};var xe=function(t,e,o,n){var a=arguments.length,i=a<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,o):n,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(t,e,o,n);else for(var c=t.length-1;c>=0;c--)(s=t[c])&&(i=(a<3?s(i):a>3?s(e,o,i):s(e,o))||i);return a>3&&i&&Object.defineProperty(e,o,i),i},ja=class extends CustomEvent{constructor(e){super("ft-search-load-error",{detail:e})}},Ka=class extends CustomEvent{constructor(e){super("ft-search-request-change",{detail:e})}},Za=class extends CustomEvent{constructor(e,o,n){super("ft-search-results-change",{detail:{request:e,paging:o,spellcheck:n}})}},te=class extends qe.FtLitElementRedux{get stateManager(){if(this._stateManager==null){let e=this.searchServiceProvider?this.searchServiceProvider():void 0;this._stateManager=xo.build(this.id||(""+Math.round(Math.random()*999e3)).padStart(6,"0"),e),this._stateManager.errorHandler=o=>this.handleLoadError(o),this.addStore(this.stateManager.store,"search")}return this._stateManager}get eventManager(){return this._eventManager==null&&(this._eventManager=new In(this.stateManager.store)),this._eventManager}constructor(){super(),this.query="",this.pageSize=20,this.searchInDocumentTitlesOnly=!1,this.ignoreEmptyQuery=!1,this.openExternalDocumentInNewTab=!1,this.filters=[],this.sort=[],this.otherQueryParams={},this.addStore(T)}render(){return Pd.html`
1928
1928
  <slot @register-ft-search-component="${this.registerComponent}" @ft-search-result-click="${this.onResultClicked}"
1929
1929
  @ft-search-result-open-context-menu="${this.onResultContextMenuOpened}"></slot>
@@ -2003,7 +2003,7 @@ Also for action icons.`,c.colorGray200),contentGlobalSubtle:o.extend("--ft-conte
2003
2003
  <span class="ft-i18n">
2004
2004
  ${this.i18n({context:this.context,key:this.key,args:Array.isArray(this.args)?this.args:[]})}
2005
2005
  </span>
2006
- `}update(e){var r;super.update(e),["context","key","defaultMessage"].some(n=>e.has(n))&&this.context&&this.key&&this.addI18nContext(this.context,{[this.key]:(r=this.defaultMessage)!==null&&r!==void 0?r:""})}};Je.elementDefinitions={};Je.styles=Fd;$o([Pe()],Je.prototype,"editorMode",void 0);$o([b()],Je.prototype,"context",void 0);$o([b()],Je.prototype,"key",void 0);$o([ye([])],Je.prototype,"args",void 0);$o([b()],Je.prototype,"defaultMessage",void 0);var $n=class t{static build(e){return new t(e)}static buildCustom(e){return new t(e,!0)}static fromGwt(e){return new t(e)}get service(){return this.custom?Rn:eo}constructor(e,r=!1){this.name=e,this.custom=r,this.properties=new Proxy({},{get:(n,i)=>{let a=i;return s=>({context:this.name,key:a,custom:this.custom,args:typeof s=="function"?void 0:s,argsProvider:typeof s=="function"?s:void 0})}}),this.messages=new Proxy({},{get:(n,i)=>(...a)=>this.service.resolveMessage(this.name,i,...a)}),this.rawMessages=new Proxy({},{get:(n,i)=>this.service.resolveRawMessage(this.name,i)}),this.keys=new Proxy({},{get:(n,i)=>()=>i})}};K("ft-i18n")(Je);var jf={setRequest:(t,e)=>{t.request=e.payload},setRequestQuery:(t,e)=>{t.request.query=e.payload},setRequestContentLocale:(t,e)=>{t.request.contentLocale=e.payload},setPageSize:(t,e)=>{var r;let n=+((r=e.payload)!==null&&r!==void 0?r:20);t.request.paging.perPage=isNaN(n)?20:Yt(1,n,1e3)},setPageNumber:(t,e)=>{t.request.paging.page=isNaN(e.payload)?1:Math.max(1,e.payload)},setRequestSort:(t,e)=>{t.request.sort=e.payload},setRequestSortId:(t,e)=>{t.request.sortId=e.payload},setRequestFilters:(t,e)=>{t.request.metadataFilters=e.payload},setRequestFacets:(t,e)=>{t.request.facets=e.payload},setRequestVirtualField:(t,e)=>{t.request.virtualField=e.payload},setRequestScope:(t,e)=>{t.request.scope=e.payload},setOtherQueryParams:(t,e)=>{t.request.otherQueryParams=e.payload},setRequestClusterSortCriterion:(t,e)=>{var r;t.request.clusterSortCriterions=(r=e.payload)!==null&&r!==void 0?r:[]}},Kd=t=>St.get({name:"ft-search-"+t,initialState:{request:{query:"",clusterSortCriterions:[],metadataFilters:[],facets:[],sort:[],sortId:void 0,paging:{page:1,perPage:20}},liveQuery:"",paging:void 0,facets:void 0,spellcheck:void 0,locales:[],results:void 0,announcements:void 0,suggestResults:void 0,configuration:void 0},reducers:jf});var Fn=class extends we{constructor(e){super(!0,e),this.cache.registerFinal("search-configuration",async()=>(await this.awaitApi).getSearchConfiguration())}async launchSearch(e){let r={...e,metadataFilters:this.sortFilters(e.metadataFilters),facets:[...e.facets].sort((n,i)=>n.id.localeCompare(i.id))};return this.cache.get("search-"+this.hash(r),async()=>(await this.awaitApi).search(e),2*60*1e3)}async launchSuggest(e){let r={...e,metadataFilters:this.sortFilters(e.metadataFilters)};return this.cache.get("suggest-"+this.hash(r),async()=>(await this.awaitApi).getSuggestions(e),2*60*1e3)}async getAvailableSearchLocales(){return this.cache.get("available-locales",async()=>(await this.awaitApi).getAvailableSearchLocales())}async getConfiguration(){return this.cache.get("search-configuration")}sortFilters(e){return e.map(r=>r.valueFilter==null?r:{...r,valueFilter:{...r.valueFilter,values:[...r.valueFilter.values].sort((n,i)=>n.localeCompare(i))}}).sort((r,n)=>r.key.localeCompare(n.key))}};var Is=t=>t.request.virtualField===ir.TITLE_ONLY&&t.request.scope===Br.DOCUMENTS,Bn=class t extends Event{constructor(){super(t.eventName)}};Bn.eventName="search-context-clear-all-filters";var Fo=class t{static build(e,r){return new t(Kd(e.trim()||"context"),r)}constructor(e,r){this.store=e,this.ignoreEmptyQuery=!1,this.openExternalDocumentInNewTab=!1,this.localesDebouncer=new le(10),this.searchDebouncer=new le(100),this.launchSearch=n=>this.searchDebouncer.run(()=>this.fetchSearchData(n??this.buildSearchRequest(this.store.getState()))),this.buildSearchRequest=n=>({...n.request,facets:this.facetIds.map(i=>({id:i}))}),this.suggestDebouncer=new le(300),this.launchSuggest=n=>this.suggestDebouncer.run(()=>this.fetchSuggestData(n??this.buildSuggestRequest(this.store.getState()))),this.buildSuggestRequest=n=>{var i;return{input:n.liveQuery,metadataFilters:n.request.metadataFilters,sort:(i=n.request.sort)!==null&&i!==void 0?i:[],sortId:n.request.sortId,contentLocale:n.request.contentLocale,scope:n.request.scope}},this.service=r??new Fn,this.service.cache.addEventListener("clear-cache",n=>{n.detail.clearedKeys.includes("available-locales")&&this.updateLocales()}),this.searchWatcher=Dr(e,this.buildSearchRequest,this.launchSearch),this.suggestWatcher=Dr(e,this.buildSuggestRequest,this.launchSuggest)}async initService(){return this.updateLocales(),this.service.getConfiguration().then(e=>this.store.actions.configuration(e)),this.launchSearch()}setQuery(e){this.store.actions.setRequestQuery(e),this.store.actions.liveQuery(e),this.store.actions.setPageNumber(1)}setContentLocale(e){var r;let n=(r=this.store.getState().locales)!==null&&r!==void 0?r:[],i=this.store.getState().request.contentLocale;if(e!=i){if(n.length>0){let a=s=>n.some(l=>l.lang==s);a(e)||(e=a(i)?i:n[0].lang)}this.store.actions.setRequestContentLocale(e),this.store.actions.setPageNumber(1),this.store.actions.setRequestFilters([])}return e}forceContentLocale(e){this.store.actions.setRequestContentLocale(e)}setPageSize(e){this.store.actions.setPageSize(e)}setPageNumber(e){this.store.actions.setPageNumber(e)}get sortOptions(){var e,r;return(r=(e=this.store.getState().configuration)===null||e===void 0?void 0:e.sortOptions)!==null&&r!==void 0?r:[]}setSort(e){this.store.actions.setRequestSort(e),this.store.actions.setPageNumber(1)}setSortId(e){var r;if(this.store.actions.setPageNumber(1),e==null||this.sortOptions.length==0)return this.store.actions.setRequestSortId(e),e;let n=(r=this.sortOptions.find(i=>i.id==e))!==null&&r!==void 0?r:this.sortOptions[0];return this.store.actions.setRequestSortId(n.id),n.id}setFilters(e){let r=e.filter(n=>!n.valueFilter||n.valueFilter.values.length>0);this.store.actions.setRequestFilters(r),this.store.actions.setPageNumber(1)}setClusterSortCriterion(e){this.store.actions.setRequestClusterSortCriterion(e)}setSearchInDocumentTitlesOnly(e){e?(this.store.actions.setRequestVirtualField(ir.TITLE_ONLY),this.store.actions.setRequestScope(Br.DOCUMENTS)):(this.store.actions.setRequestVirtualField(ir.EVERYWHERE),this.store.actions.setRequestScope(Br.DEFAULT))}setVirtualField(e){this.store.actions.setRequestVirtualField(e)}get searchInDocumentTitlesOnly(){return Is(this.store.getState())}clearAllFilters(){this.setFilters([]),this.store.dispatchEvent(new Bn)}addFacet(e){this.facetIds=[...this.facetIds,e]}replaceFacet(e,r){let n=this.facetIds.filter(i=>i!=e);r&&n.push(r),this.facetIds=n}get facetIds(){var e;let r=this.store.getState().request;return[...new Set([...r.facets.map(n=>n.id),...((e=r.metadataFilters)!==null&&e!==void 0?e:[]).map(n=>n.key)])]}set facetIds(e){let n=[...new Set(e)].map(i=>({id:i}));this.store.actions.setRequestFacets(n)}setFilter(e,r){this.setValueFilter(e,r)}setValueFilter(e,r){let n=this.store.getState().request.metadataFilters,i={key:e,valueFilter:{values:r,negative:!1}},a=[...n.filter(s=>!s.valueFilter),...n.filter(s=>s.valueFilter&&s.key!==i.key),i];this.setFilters(a)}setDateFilter(e,r){let n=this.store.getState().request.metadataFilters,i={key:e,dateFilter:{type:r}},a=[...n.filter(s=>!s.dateFilter),...n.filter(s=>s.dateFilter&&s.key!==i.key),i];this.setFilters(a)}removeDateFilter(e){let r=this.store.getState().request.metadataFilters,n=[...r.filter(i=>!i.dateFilter),...r.filter(i=>i.dateFilter&&i.key!==e)];this.setFilters(n)}setRangeFilter(e,r,n){let i=this.store.getState().request.metadataFilters,a={key:e,rangeFilter:{from:r,to:n}},s=[...i.filter(l=>!l.rangeFilter),...i.filter(l=>l.rangeFilter&&l.key!==a.key),a];this.setFilters(s)}removeRangeFilter(e){let r=this.store.getState().request.metadataFilters,n=[...r.filter(i=>!i.rangeFilter),...r.filter(i=>i.rangeFilter&&i.key!==e)];this.setFilters(n)}setLiveQuery(e){this.store.actions.liveQuery(e)}setRequest(e){this.store.actions.setRequest({...e,facets:this.store.getState().request.facets}),this.store.actions.liveQuery(e.query),this.store.actions.setPageNumber(1)}setScope(e){this.store.actions.setRequestScope(e)}setOtherQueryParams(e){this.store.actions.setOtherQueryParams(e)}setIgnoreEmptyQuery(e){this.ignoreEmptyQuery=e}setOpenExternalDocumentInNewTab(e){this.openExternalDocumentInNewTab=e}updateLocales(){return this.localesDebouncer.run(async()=>this.store.actions.locales((await this.service.getAvailableSearchLocales()).contentLocales))}async fetchSearchData(e){var r,n,i,a;try{if((r=this.cancelableSearch)===null||r===void 0||r.cancel(),this.store.actions.paging(void 0),this.ignoreEmptyQuery&&e.query.length==0)this.store.actions.results(void 0),this.store.actions.announcements(void 0),this.store.actions.facets(void 0),this.store.actions.spellcheck(void 0);else{this.cancelableSearch=Or(this.service.launchSearch(e));let s=await this.cancelableSearch;if(this.store.actions.announcements(s.announcements),s.paging.currentPage<=1)this.store.actions.results(s.results),this.store.actions.facets(s.facets),this.store.actions.spellcheck(s.spellcheck);else{let l=((n=this.store.getState().results)!==null&&n!==void 0?n:[]).concat(s.results);this.store.actions.results(l),this.store.commands.clear(/^focus-result-/),this.store.commands.add({type:`focus-result-${(s.paging.currentPage-1)*((i=e.paging.perPage)!==null&&i!==void 0?i:20)+1}`})}this.store.actions.paging(s.paging)}}catch(s){s instanceof rt||(console.error(s),(a=this.errorHandler)===null||a===void 0||a.call(this,s))}}async fetchSuggestData(e){var r;try{(r=this.cancelableSuggest)===null||r===void 0||r.cancel(),this.cancelableSuggest=Or(this.service.launchSuggest(e));let n=await this.cancelableSuggest;this.store.actions.suggestResults(n.suggestions)}catch(n){!(n instanceof rt)&&this.errorHandler&&this.errorHandler(n)}}clear(){this.store.clear()}clearResults(){this.store.actions.paging(void 0),this.store.actions.results(void 0),this.store.actions.announcements(void 0),this.store.actions.facets(void 0),this.store.actions.spellcheck(void 0)}};var Gf=function(t,e,r,n){var i=arguments.length,a=i<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,r):n,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(t,e,r,n);else for(var l=t.length-1;l>=0;l--)(s=t[l])&&(a=(i<3?s(a):i>3?s(e,r,a):s(e,r))||a);return i>3&&a&&Object.defineProperty(e,r,a),a},ks=class extends Event{constructor(){super("register-ft-search-component",{bubbles:!0,composed:!0})}},Zd=Symbol("registerInterval"),Ps=Symbol("registerAttempts"),Kf=40,Zf=pe(Symbol("toFtSearchComponent"),function(t){class e extends t{setSearchStateManager(n){this.clearStateManager(),this.stateManager=n,this.addStore(n.store,"search")}clearStateManager(){this.stateManager&&(this.removeStore(this.stateManager.store),this.stateManager=void 0)}connectedCallback(){super.connectedCallback(),this[Ps]=0,this[Zd]=window.setInterval(()=>this.tryToRegisterToContext(),50)}tryToRegisterToContext(){this.stateManager!=null||this[Ps]>Kf?window.clearInterval(this[Zd]):(this[Ps]++,this.dispatchEvent(new ks))}disconnectedCallback(){super.disconnectedCallback(),this.clearStateManager()}}return Gf([U()],e.prototype,"stateManager",void 0),e}),Un=class extends Zf(xt){};var zn=$n.build("designedSearchType"),qd={label:"Search scope",documentTitlesOnly:"Search in document titles only"};var Yd=N`
2006
+ `}update(e){var r;super.update(e),["context","key","defaultMessage"].some(n=>e.has(n))&&this.context&&this.key&&this.addI18nContext(this.context,{[this.key]:(r=this.defaultMessage)!==null&&r!==void 0?r:""})}};Je.elementDefinitions={};Je.styles=Fd;$o([Pe()],Je.prototype,"editorMode",void 0);$o([b()],Je.prototype,"context",void 0);$o([b()],Je.prototype,"key",void 0);$o([ye([])],Je.prototype,"args",void 0);$o([b()],Je.prototype,"defaultMessage",void 0);var $n=class t{static build(e){return new t(e)}static buildCustom(e){return new t(e,!0)}static fromGwt(e){return new t(e)}get service(){return this.custom?Rn:eo}constructor(e,r=!1){this.name=e,this.custom=r,this.properties=new Proxy({},{get:(n,i)=>{let a=i;return s=>({context:this.name,key:a,custom:this.custom,args:typeof s=="function"?void 0:s,argsProvider:typeof s=="function"?s:void 0})}}),this.messages=new Proxy({},{get:(n,i)=>(...a)=>this.service.resolveMessage(this.name,i,...a)}),this.rawMessages=new Proxy({},{get:(n,i)=>this.service.resolveRawMessage(this.name,i)}),this.keys=new Proxy({},{get:(n,i)=>()=>i})}};K("ft-i18n")(Je);var jf={setRequest:(t,e)=>{t.request=e.payload},setRequestQuery:(t,e)=>{t.request.query=e.payload},setRequestContentLocale:(t,e)=>{t.request.contentLocale=e.payload},setPageSize:(t,e)=>{var r;let n=+((r=e.payload)!==null&&r!==void 0?r:20);t.request.paging.perPage=isNaN(n)?20:Yt(1,n,1e3)},setPageNumber:(t,e)=>{t.request.paging.page=isNaN(e.payload)?1:Math.max(1,e.payload)},setRequestSort:(t,e)=>{t.request.sort=e.payload},setRequestSortId:(t,e)=>{t.request.sortId=e.payload},setRequestFilters:(t,e)=>{t.request.metadataFilters=e.payload},setRequestFacets:(t,e)=>{t.request.facets=e.payload},setRequestVirtualField:(t,e)=>{t.request.virtualField=e.payload},setRequestScope:(t,e)=>{t.request.scope=e.payload},setOtherQueryParams:(t,e)=>{t.request.otherQueryParams=e.payload},setRequestClusterSortCriterion:(t,e)=>{var r;t.request.clusterSortCriterions=(r=e.payload)!==null&&r!==void 0?r:[]}},Kd=t=>St.get({name:"ft-search-"+t,initialState:{request:{query:"",clusterSortCriterions:[],metadataFilters:[],facets:[],sort:[],sortId:void 0,paging:{page:1,perPage:20}},liveQuery:"",paging:void 0,facets:void 0,spellcheck:void 0,locales:[],results:void 0,announcements:void 0,suggestResults:void 0,configuration:void 0},reducers:jf});var Fn=class extends we{constructor(e){super(!0,e),this.cache.registerFinal("search-configuration",async()=>(await this.awaitApi).getSearchConfiguration())}async launchSearch(e){let r={...e,metadataFilters:this.sortFilters(e.metadataFilters),facets:[...e.facets].sort((n,i)=>n.id.localeCompare(i.id))};return this.cache.get("search-"+this.hash(r),async()=>(await this.awaitApi).search(e),2*60*1e3)}async launchSuggest(e){let r={...e,metadataFilters:this.sortFilters(e.metadataFilters)};return this.cache.get("suggest-"+this.hash(r),async()=>(await this.awaitApi).getSuggestions(e),2*60*1e3)}async getAvailableSearchLocales(){return this.cache.get("available-locales",async()=>(await this.awaitApi).getAvailableSearchLocales())}async getConfiguration(){return this.cache.get("search-configuration")}sortFilters(e){return e.map(r=>r.valueFilter==null?r:{...r,valueFilter:{...r.valueFilter,values:[...r.valueFilter.values].sort((n,i)=>n.localeCompare(i))}}).sort((r,n)=>r.key.localeCompare(n.key))}};var Is=t=>t.request.virtualField===ir.TITLE_ONLY&&t.request.scope===Br.DOCUMENTS,Bn=class t extends Event{constructor(){super(t.eventName)}};Bn.eventName="search-context-clear-all-filters";var Fo=class t{static build(e,r){return new t(Kd(e.trim()||"context"),r)}constructor(e,r){this.store=e,this.ignoreEmptyQuery=!1,this.openExternalDocumentInNewTab=!1,this.localesDebouncer=new le(10),this.searchDebouncer=new le(100),this.launchSearch=n=>this.searchDebouncer.run(()=>this.fetchSearchData(n??this.buildSearchRequest(this.store.getState()))),this.buildSearchRequest=n=>({...n.request,facets:this.facetIds.map(i=>({id:i}))}),this.suggestDebouncer=new le(300),this.launchSuggest=n=>this.suggestDebouncer.run(()=>this.fetchSuggestData(n??this.buildSuggestRequest(this.store.getState()))),this.buildSuggestRequest=n=>{var i;return{input:n.liveQuery,metadataFilters:n.request.metadataFilters,sort:(i=n.request.sort)!==null&&i!==void 0?i:[],sortId:n.request.sortId,contentLocale:n.request.contentLocale,scope:n.request.scope}},this.service=r??new Fn,this.service.cache.addEventListener("clear-cache",n=>{n.detail.clearedKeys.includes("available-locales")&&this.updateLocales()}),this.searchWatcher=Dr(e,this.buildSearchRequest,this.launchSearch),this.suggestWatcher=Dr(e,this.buildSuggestRequest,this.launchSuggest)}async initService(){return this.updateLocales(),this.service.getConfiguration().then(e=>{this.store.actions.configuration(e),this.setSortId(this.store.getState().request.sortId)}),this.launchSearch()}setQuery(e){this.store.actions.setRequestQuery(e),this.store.actions.liveQuery(e),this.store.actions.setPageNumber(1)}setContentLocale(e){var r;let n=(r=this.store.getState().locales)!==null&&r!==void 0?r:[],i=this.store.getState().request.contentLocale;if(e!=i){if(n.length>0){let a=s=>n.some(l=>l.lang==s);a(e)||(e=a(i)?i:n[0].lang)}this.store.actions.setRequestContentLocale(e),this.store.actions.setPageNumber(1),this.store.actions.setRequestFilters([])}return e}forceContentLocale(e){this.store.actions.setRequestContentLocale(e)}setPageSize(e){this.store.actions.setPageSize(e)}setPageNumber(e){this.store.actions.setPageNumber(e)}get sortOptions(){var e,r;return(r=(e=this.store.getState().configuration)===null||e===void 0?void 0:e.sortOptions)!==null&&r!==void 0?r:[]}setSort(e){this.store.actions.setRequestSort(e),this.store.actions.setPageNumber(1)}setSortId(e){var r;if(this.store.actions.setPageNumber(1),e==null||this.sortOptions.length==0)return this.store.actions.setRequestSortId(e),e;let n=(r=this.sortOptions.find(i=>i.id==e))!==null&&r!==void 0?r:this.sortOptions[0];return this.store.actions.setRequestSortId(n.id),n.id}setFilters(e){let r=e.filter(n=>!n.valueFilter||n.valueFilter.values.length>0);this.store.actions.setRequestFilters(r),this.store.actions.setPageNumber(1)}setClusterSortCriterion(e){this.store.actions.setRequestClusterSortCriterion(e)}setSearchInDocumentTitlesOnly(e){e?(this.store.actions.setRequestVirtualField(ir.TITLE_ONLY),this.store.actions.setRequestScope(Br.DOCUMENTS)):(this.store.actions.setRequestVirtualField(ir.EVERYWHERE),this.store.actions.setRequestScope(Br.DEFAULT))}setVirtualField(e){this.store.actions.setRequestVirtualField(e)}get searchInDocumentTitlesOnly(){return Is(this.store.getState())}clearAllFilters(){this.setFilters([]),this.store.dispatchEvent(new Bn)}addFacet(e){this.facetIds=[...this.facetIds,e]}replaceFacet(e,r){let n=this.facetIds.filter(i=>i!=e);r&&n.push(r),this.facetIds=n}get facetIds(){var e;let r=this.store.getState().request;return[...new Set([...r.facets.map(n=>n.id),...((e=r.metadataFilters)!==null&&e!==void 0?e:[]).map(n=>n.key)])]}set facetIds(e){let n=[...new Set(e)].map(i=>({id:i}));this.store.actions.setRequestFacets(n)}setFilter(e,r){this.setValueFilter(e,r)}setValueFilter(e,r){let n=this.store.getState().request.metadataFilters,i={key:e,valueFilter:{values:r,negative:!1}},a=[...n.filter(s=>!s.valueFilter),...n.filter(s=>s.valueFilter&&s.key!==i.key),i];this.setFilters(a)}setDateFilter(e,r){let n=this.store.getState().request.metadataFilters,i={key:e,dateFilter:{type:r}},a=[...n.filter(s=>!s.dateFilter),...n.filter(s=>s.dateFilter&&s.key!==i.key),i];this.setFilters(a)}removeDateFilter(e){let r=this.store.getState().request.metadataFilters,n=[...r.filter(i=>!i.dateFilter),...r.filter(i=>i.dateFilter&&i.key!==e)];this.setFilters(n)}setRangeFilter(e,r,n){let i=this.store.getState().request.metadataFilters,a={key:e,rangeFilter:{from:r,to:n}},s=[...i.filter(l=>!l.rangeFilter),...i.filter(l=>l.rangeFilter&&l.key!==a.key),a];this.setFilters(s)}removeRangeFilter(e){let r=this.store.getState().request.metadataFilters,n=[...r.filter(i=>!i.rangeFilter),...r.filter(i=>i.rangeFilter&&i.key!==e)];this.setFilters(n)}setLiveQuery(e){this.store.actions.liveQuery(e)}setRequest(e){this.store.actions.setRequest({...e,facets:this.store.getState().request.facets}),this.store.actions.liveQuery(e.query),this.store.actions.setPageNumber(1)}setScope(e){this.store.actions.setRequestScope(e)}setOtherQueryParams(e){this.store.actions.setOtherQueryParams(e)}setIgnoreEmptyQuery(e){this.ignoreEmptyQuery=e}setOpenExternalDocumentInNewTab(e){this.openExternalDocumentInNewTab=e}updateLocales(){return this.localesDebouncer.run(async()=>this.store.actions.locales((await this.service.getAvailableSearchLocales()).contentLocales))}async fetchSearchData(e){var r,n,i,a;try{if((r=this.cancelableSearch)===null||r===void 0||r.cancel(),this.store.actions.paging(void 0),this.ignoreEmptyQuery&&e.query.length==0)this.store.actions.results(void 0),this.store.actions.announcements(void 0),this.store.actions.facets(void 0),this.store.actions.spellcheck(void 0);else{this.cancelableSearch=Or(this.service.launchSearch(e));let s=await this.cancelableSearch;if(this.store.actions.announcements(s.announcements),s.paging.currentPage<=1)this.store.actions.results(s.results),this.store.actions.facets(s.facets),this.store.actions.spellcheck(s.spellcheck);else{let l=((n=this.store.getState().results)!==null&&n!==void 0?n:[]).concat(s.results);this.store.actions.results(l),this.store.commands.clear(/^focus-result-/),this.store.commands.add({type:`focus-result-${(s.paging.currentPage-1)*((i=e.paging.perPage)!==null&&i!==void 0?i:20)+1}`})}this.store.actions.paging(s.paging)}}catch(s){s instanceof rt||(console.error(s),(a=this.errorHandler)===null||a===void 0||a.call(this,s))}}async fetchSuggestData(e){var r;try{(r=this.cancelableSuggest)===null||r===void 0||r.cancel(),this.cancelableSuggest=Or(this.service.launchSuggest(e));let n=await this.cancelableSuggest;this.store.actions.suggestResults(n.suggestions)}catch(n){!(n instanceof rt)&&this.errorHandler&&this.errorHandler(n)}}clear(){this.store.clear()}clearResults(){this.store.actions.paging(void 0),this.store.actions.results(void 0),this.store.actions.announcements(void 0),this.store.actions.facets(void 0),this.store.actions.spellcheck(void 0)}};var Gf=function(t,e,r,n){var i=arguments.length,a=i<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,r):n,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(t,e,r,n);else for(var l=t.length-1;l>=0;l--)(s=t[l])&&(a=(i<3?s(a):i>3?s(e,r,a):s(e,r))||a);return i>3&&a&&Object.defineProperty(e,r,a),a},ks=class extends Event{constructor(){super("register-ft-search-component",{bubbles:!0,composed:!0})}},Zd=Symbol("registerInterval"),Ps=Symbol("registerAttempts"),Kf=40,Zf=pe(Symbol("toFtSearchComponent"),function(t){class e extends t{setSearchStateManager(n){this.clearStateManager(),this.stateManager=n,this.addStore(n.store,"search")}clearStateManager(){this.stateManager&&(this.removeStore(this.stateManager.store),this.stateManager=void 0)}connectedCallback(){super.connectedCallback(),this[Ps]=0,this[Zd]=window.setInterval(()=>this.tryToRegisterToContext(),50)}tryToRegisterToContext(){this.stateManager!=null||this[Ps]>Kf?window.clearInterval(this[Zd]):(this[Ps]++,this.dispatchEvent(new ks))}disconnectedCallback(){super.disconnectedCallback(),this.clearStateManager()}}return Gf([U()],e.prototype,"stateManager",void 0),e}),Un=class extends Zf(xt){};var zn=$n.build("designedSearchType"),qd={label:"Search scope",documentTitlesOnly:"Search in document titles only"};var Yd=N`
2007
2007
  `;function Hn(t){return t.filter(e=>e.key==="ft:lastEdition").filter(e=>!e.valueFilter).map(e=>e.dateFilter?e.dateFilter.type:"CUSTOM").shift()}function Wn(t){var e;return t.dateFilter?{key:t.key,type:"DATE",dateValue:t.dateFilter.type}:t.rangeFilter?{key:t.key,type:"RANGE",from:t.rangeFilter.from,to:t.rangeFilter.to}:{key:t.key,values:(e=t.valueFilter)===null||e===void 0?void 0:e.values}}var Vn=class{constructor(e,r){this.store=e,this.ignoreEmptyQuery=!1,this.openExternalDocumentInNewTab=!1,this.enableAnalyticsEvents=!0,this.appName=void 0,this.appVersion=void 0,this.document=void 0,this.sendEvent=n=>{if(!this.canSendEvent()||!n)return;let i=this.store.getState().request;this.document==null?this.sendKhubSearchEvent(i,n):this.sendDocumentSearchEvent(i,n)},this.eventsService=r??new _n,this.resultsWatcher=Dr(e,n=>n.results,this.sendEvent)}setEnableAnalyticsEvents(e){this.enableAnalyticsEvents=e}setAppName(e){this.appName=e}setAppVersion(e){this.appVersion=e}setDocumentSearch(e){this.document=e}setDocumentSearchFromMap(e){this.setDocumentSearch(this.convertToAnalyticsMap(e))}initAppInfo(){let{apiIntegrationIdentifier:e,apiIntegrationAppVersion:r}=P.getState();this.setAppName(e??"unknown"),this.setAppVersion(r??"unknown")}convertToAnalyticsMap(e){let r;switch(e.editorialType){case"BOOK":r="STRUCTURED_DOCUMENT";break;case"SHARED_BOOK":r="SHARED_PERSONAL_BOOK";break;case"ARTICLE":r="RESOURCE";break;case"HTML_PACKAGE":r="HTML_PACKAGE";break}return{id:e.id,title:e.title,type:r,metadata:e.metadata}}canSendEvent(){if(this.appName==null||this.appVersion==null)return console.debug("ft-search-context.eventManager is not initialized. No events will be sent!"),!1;let{editorMode:e}=P.getState();return this.enableAnalyticsEvents&&!e}sendKhubSearchEvent(e,r){let n={offline:!1,appVersion:this.appVersion,appName:this.appName,name:nr.KHUB__SEARCH,searchResponse:{autocorrect:this.store.getState().spellcheck!=null,nbResults:r.length},searchQuery:{terms:e.query,searchType:e.virtualField,lastUpdate:Hn(e.metadataFilters),facets:e.metadataFilters.map(i=>Wn(i))}};this.eventsService.sendKhubSearchEvent(n)}sendDocumentSearchEvent(e,r){if(e.metadataFilters.find(i=>{var a;return i.key==="ft:publicationId"&&((a=i.valueFilter)===null||a===void 0?void 0:a.values[0])===this.document.id})!==void 0){let i={offline:!1,appVersion:this.appVersion,appName:this.appName,name:nr.DOCUMENT__SEARCH,searchResponse:{autocorrect:this.store.getState().spellcheck!=null,nbResults:r.length},searchQuery:{terms:e.query},document:this.document};this.eventsService.sendDocumentSearchEvent(i)}}sendResultClickedEvent(e,r){if(!this.canSendEvent())return;let n=this.store.getState().request,i;e.type==Mt.TOPIC&&(i={tocId:e.topic.tocId,title:e.topic.title});let a={offline:!1,appVersion:this.appVersion,appName:this.appName,name:nr.SEARCH_PAGE__SELECT,searchQuery:{terms:n.query,searchType:n.virtualField,lastUpdate:Hn(n.metadataFilters),facets:n.metadataFilters.map(s=>Wn(s))},searchResult:{rank:r,type:e.type,document:this.convertDocument(e),topic:i},externalLink:this.convertExternalLink(e)};this.eventsService.sendSearchPageSelectEvent(a)}sendResultContextMenuOpenedEvent(e,r){if(!this.canSendEvent())return;let n=this.store.getState().request,i;e.type==Mt.TOPIC&&(i={tocId:e.topic.tocId,title:e.topic.title});let a={offline:!1,appVersion:this.appVersion,appName:this.appName,name:nr.SEARCH_RESULT__OPEN_BROWSER_CONTEXT_MENU,searchQuery:{terms:n.query,searchType:n.virtualField,lastUpdate:Hn(n.metadataFilters),facets:n.metadataFilters.map(s=>Wn(s))},searchResult:{rank:r,type:e.type,document:this.convertDocument(e),topic:i},externalLink:this.convertExternalLink(e)};this.eventsService.sendSearchResultOpenContextMenuEvent(a)}convertDocument(e){switch(e.type){case Mt.MAP:return{id:e.map.mapId,title:e.map.title,type:$r.STRUCTURED_DOCUMENT,metadata:e.map.metadata};case Mt.TOPIC:return{id:e.topic.mapId,title:e.topic.mapTitle,type:$r.STRUCTURED_DOCUMENT,metadata:e.topic.metadata};case Mt.DOCUMENT:return{id:e.document.documentId,title:e.document.title,type:$r.UNSTRUCTURED_DOCUMENT,metadata:e.document.metadata,mimeType:e.document.mimeType};default:throw new TypeError("Unknown type "+e.type)}}convertExternalLink(e){var r,n,i,a,s;return(a=(n=(r=e.map)===null||r===void 0?void 0:r.originUrl)!==null&&n!==void 0?n:(i=e.topic)===null||i===void 0?void 0:i.originUrl)!==null&&a!==void 0?a:(s=e.document)===null||s===void 0?void 0:s.originUrl}};var Se=function(t,e,r,n){var i=arguments.length,a=i<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,r):n,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(t,e,r,n);else for(var l=t.length-1;l>=0;l--)(s=t[l])&&(a=(i<3?s(a):i>3?s(e,r,a):s(e,r))||a);return i>3&&a&&Object.defineProperty(e,r,a),a},Ds=class extends CustomEvent{constructor(e){super("ft-search-load-error",{detail:e})}},Ms=class extends CustomEvent{constructor(e){super("ft-search-request-change",{detail:e})}},$s=class extends CustomEvent{constructor(e,r,n){super("ft-search-results-change",{detail:{request:e,paging:r,spellcheck:n}})}},ce=class extends xt{get stateManager(){if(this._stateManager==null){let e=this.searchServiceProvider?this.searchServiceProvider():void 0;this._stateManager=Fo.build(this.id||(""+Math.round(Math.random()*999e3)).padStart(6,"0"),e),this._stateManager.errorHandler=r=>this.handleLoadError(r),this.addStore(this.stateManager.store,"search")}return this._stateManager}get eventManager(){return this._eventManager==null&&(this._eventManager=new Vn(this.stateManager.store)),this._eventManager}constructor(){super(),this.query="",this.pageSize=20,this.searchInDocumentTitlesOnly=!1,this.ignoreEmptyQuery=!1,this.openExternalDocumentInNewTab=!1,this.filters=[],this.sort=[],this.otherQueryParams={},this.addStore(P)}render(){return M`
2008
2008
  <slot @register-ft-search-component="${this.registerComponent}" @ft-search-result-click="${this.onResultClicked}"
2009
2009
  @ft-search-result-open-context-menu="${this.onResultContextMenuOpened}"></slot>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluid-topics/ft-search-type",
3
- "version": "1.3.27",
3
+ "version": "1.3.28",
4
4
  "description": "Search",
5
5
  "keywords": [
6
6
  "Lit"
@@ -19,8 +19,8 @@
19
19
  "url": "ssh://git@scm.mrs.antidot.net:2222/fluidtopics/ft-web-components.git"
20
20
  },
21
21
  "dependencies": {
22
- "@fluid-topics/ft-wc-utils": "1.3.27",
22
+ "@fluid-topics/ft-wc-utils": "1.3.28",
23
23
  "lit": "3.1.0"
24
24
  },
25
- "gitHead": "51aa199a231fa71dee36bf98dfde51007100da86"
25
+ "gitHead": "face2509aeead24e78a16af4ffd2123ef281dac2"
26
26
  }