addsearch-search-ui
Version:
JavaScript library to develop Search UIs for the web
2 lines • 282 kB
JavaScript
/*! addsearch-search-ui 0.9.7 */
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.AddSearchUI=t():e.AddSearchUI=t()}(this,(function(){return function(){var e={2987:function(e,t,n){"use strict";e.exports=n(9770).default,e.exports.AUTOCOMPLETE_TYPE=n(6510).AUTOCOMPLETE_TYPE,e.exports.FILTER_TYPE=n(9369).FILTER_TYPE,e.exports.SORTBY_TYPE=n(8909).SORTBY_TYPE,e.exports.LOAD_MORE_TYPE=n(3816).LOAD_MORE_TYPE,e.exports.RECOMMENDATION_TYPE=n(4128).RECOMMENDATION_TYPE,e.exports.RANGE_FACETS_TYPE=n(1990).RANGE_FACETS_TYPE,e.exports.Handlebars_runtime=n(261)},1543:function(e,t,n){"use strict";n.d(t,{FW:function(){return i},mQ:function(){return s},Lt:function(){return r},Rn:function(){return a},jK:function(){return l},wF:function(){return o},On:function(){return c},bz:function(){return u}});const r="IS_LOADING_AI_ANSWERS",i="AI_ANSWERS_RESULT",s="AI_ANSWERS_RESULT_ERROR",o="SET_AI_ANSWERS_SENTIMENT",a="SET_AI_ANSWERS_ANSWER_EXPANDED",l="SET_AI_ANSWERS_HIDDEN";function c(e,t){return n=>{n({type:s,payload:!1}),n({type:r,payload:!0}),e.aiAnswers(t,(e=>{if(e.error)n({type:s,payload:!0});else{const r={id:(t=e).conversation_id,answerText:t.answer||"",sources:(null===(a=t.sources)||void 0===a?void 0:a.map((e=>({id:e.id,url:e.url,title:e.title}))))||[]};n({type:o,payload:"neutral"}),n({type:i,payload:r})}var t,a;n({type:r,payload:!1})}))}}function u(e,t,n){return r=>{r({type:o,payload:n}),e.putSentimentClick(t,n).then().catch((e=>{console.error(e)}))}}},6148:function(e,t,n){"use strict";n.d(t,{Ah:function(){return A},B5:function(){return p},C0:function(){return _},FJ:function(){return d},GA:function(){return C},GB:function(){return h},Jd:function(){return m},KR:function(){return i},Km:function(){return c},MO:function(){return S},OA:function(){return k},Pf:function(){return v},VW:function(){return r},XD:function(){return P},Xr:function(){return x},d5:function(){return y},dC:function(){return O},h$:function(){return u},hR:function(){return b},hx:function(){return f},il:function(){return g},kw:function(){return s},nl:function(){return E},nn:function(){return a},p3:function(){return l},vT:function(){return o}});const r="AUTOCOMPLETE_FETCH_START",i="AUTOCOMPLETE_SUGGESTIONS_RESULTS",s="AUTOCOMPLETE_CUSTOM_FIELDS_RESULTS",o="AUTOCOMPLETE_SUGGESTIONS_CLEAR",a="AUTOCOMPLETE_CUSTOM_FIELDS_CLEAR",l="AUTOCOMPLETE_SEARCH_RESULTS",c="AUTOCOMPLETE_SEARCH_CLEAR",u="AUTOCOMPLETE_SHOW",h="AUTOCOMPLETE_HIDE",p="AUTOCOMPLETE_HIDE_AND_DROP_RENDERING",d="HIDE_AUTOMATICALLY",f="KEYBOARD_EVENT",g="ARROW_UP",m="ARROW_DOWN",y="SET_ACTIVE_SUGGESTION",v="suggestions",x="custom_fields";function S(e,t){return t&&""!==t?(n,r)=>{const s=r().keyword.minLengthRequiredToFetch;t.length<s||(n(w(v)),e.suggestions(t,(e=>{""!==r().keyword.value&&n(function(e,t){return{type:i,keyword:e,results:t}}(t,e))})))}:{type:o}}function b(e,t,n){return t&&""!==t?(r,i)=>{const o=i().keyword.minLengthRequiredToFetch;t.length<o||(r(w(x)),e.autocomplete(n,t,(e=>{""!==i().keyword.value&&r({type:s,results:e})})))}:{type:a}}function k(e,t,n,r){return n&&""!==n?(i,s)=>{const o=s().keyword.minLengthRequiredToFetch;n.length<o||(i(w(t)),e.search(n,(e=>{""!==s().keyword.value&&i(function(e,t,n,r){return{type:l,keyword:e,results:t,jsonKey:n,appendResults:r}}(n,e,t,r))})))}:{type:c}}function w(e){return{type:r,jsonKey:e}}function C(){return{type:u}}function E(){return{type:h}}function O(){return{type:p}}function _(e){return{type:f,direction:e}}function P(e,t){return{type:y,index:e,setSuggestionToSearchField:t}}function A(e){return{type:d,hideAutomatically:e}}},2024:function(e,t,n){"use strict";n.d(t,{bi:function(){return i},lW:function(){return o},qH:function(){return s},xD:function(){return r}});const r="SET_HAS_AI_ANSWERS",i="PAUSE_SEGMENTED_SEARCH";function s(e){return{type:r,hasAiAnswers:e}}function o(e){return{type:i,pauseSegmentedSearch:e}}},6843:function(e,t,n){"use strict";n.d(t,{IJ:function(){return r},Ow:function(){return s},nb:function(){return i},np:function(){return o}});const r="SET_FIELD_STATS",i="CLEAR_FIELD_STATS";function s(e,t){return{type:r,fieldStats:e,callBy:t}}function o(){return{type:i}}},549:function(e,t,n){"use strict";n.d(t,{CY:function(){return r},Gc:function(){return w},II:function(){return S},IS:function(){return h},JS:function(){return l},Ni:function(){return b},QW:function(){return u},Tv:function(){return d},Uj:function(){return i},VH:function(){return g},VN:function(){return a},XI:function(){return s},Xh:function(){return v},cl:function(){return c},eu:function(){return y},hx:function(){return C},jU:function(){return k},ks:function(){return x},u3:function(){return m},uR:function(){return o},ul:function(){return f},vj:function(){return p}});const r="TOGGLE_FILTER",i="SET_RANGE_FILTER",s="REGISTER_FILTER",o="SET_ACTIVE_FILTERS",a="SET_ACTIVE_FACETS",l="SET_ACTIVE_RANGE_FACETS",c="TOGGLE_FACET_FILTER",u="TOGGLE_HIERARCHICAL_FACET_FILTER",h="TOGGLE_RANGE_FACET_FILTER",p="CLEAR_SELECTED_FILTERS_AND_FACETS",d="CLEAR_SELECTED_RANGE_FACETS";function f(e){return{type:s,filterObj:e}}function g(e,t,n){return{type:r,filterName:e,value:t,refreshSearch:n}}function m(e,t,n){return{type:i,field:e,from:t,to:n}}function y(e){return{type:o,json:e}}function v(e){return{type:a,json:e}}function x(e,t,n){return{type:l,json:e,refreshSearch:t,field:n}}function S(e,t,n){return{type:c,field:e,value:t,refreshSearch:n}}function b(e,t,n,r,i){return{type:u,field:e,container:t,confFields:n,value:r,refreshSearch:i}}function k(e,t,n,r,i){return{type:h,field:e,values:t,key:n,refreshSearch:r,byActiveFilterComponent:i}}function w(e,t){return{type:d,refreshSearch:e,setHistory:t}}function C(e,t){return{type:p,refreshSearch:e,byActiveFilterComponent:t}}},6993:function(e,t,n){"use strict";n.d(t,{Ai:function(){return s},Le:function(){return i},QR:function(){return r},_T:function(){return o}});const r="KEYWORD",i="KEYWORD_MIN_LENGTH_REQUIRED_TO_FETCH";function s(e,t,n,i){return{type:r,value:e,skipAutocomplete:t,searchFieldContainerId:n||null,setSearchFieldValue:i||!1}}function o(e){return{type:i,minLengthRequiredToFetch:e.minLengthRequiredToFetch}}},5756:function(e,t,n){"use strict";n.d(t,{I:function(){return s},N:function(){return i}});var r=n(4903);const i="SET_PAGE";function s(e,t,n,s){!1===n||e.getSettings().paging.page===t&&1!==t||(0,r.Dh)(r.sh.PAGE,t+"",null,s);const o=e.getSettings().paging;return e.setPaging(t,o.pageSize,o.sortBy,o.sortOrder),{type:i,page:t}}},878:function(e,t,n){"use strict";n.d(t,{KE:function(){return o},OU:function(){return s},T7:function(){return l},iM:function(){return i},vh:function(){return a}});n(9770),n(4903);var r=n(3007);const i="FETCH_RECO_FBT",s="FETCH_RELATED_ITEMS",o="CLEAR_RECOMMENDATION";function a(e,t){return n=>{switch(t.type){case r.Qc:e.recommendations(t,(e=>{var r;n((r=t.container,{type:i,container:r,recommendType:"frequently-bought-together",results:e}))}));break;case r.uH:e.recommendations(t,(e=>{var r;n((r=t.container,{type:s,container:r,recommendType:"related-items",results:e}))}))}}}function l(){return{type:o}}},1944:function(e,t,n){"use strict";n.d(t,{AX:function(){return p},EF:function(){return h},d3:function(){return o},j2:function(){return a},lq:function(){return d},mY:function(){return c},xE:function(){return l},y$:function(){return u}});var r=n(9770),i=n(4903),s=n(6351);const o="START",a="SET_SEARCH_RESULTS_PAGE_URL",l="SEARCH_FETCH_START",c="SEARCH_RESULTS",u="CLEAR_SEARCH_RESULTS";function h(e,t,n,o,a,h,p,d,f){return(0,i.Dh)(i.sh.SEARCH,t,a,h),t&&""!==t?(i,u)=>{const h=u().keyword.minLengthRequiredToFetch;a&&t.length<h||(i({type:l}),e.search(t,(l=>{if((f||p)&&l&&l.hits&&l.hits.length){var u=(f||p).replace("custom_fields.",""),h=function(e,t,n){return t.find((t=>{if(!t.custom_fields||!t.custom_fields[n])return!1;if("string"==typeof t.custom_fields[n])return e.toLowerCase()===t.custom_fields[n].toLowerCase();if("object"==typeof t.custom_fields[n]&&t.custom_fields[n].length){const r=t.custom_fields[n].map((e=>e.toLowerCase())),i=e.toLowerCase();return r.indexOf(i)>-1}return!1}))}(t,l.hits,u);if(h&&!a)return void window.location.replace(h.url)}i(function(e,t,n,i,o,a){if(/top-delay-\d*$/.test(i)){var l=parseInt(i.replace("top-delay-",""),10);window.setTimeout((function(){window.scrollTo(0,0)}),l)}else"top"===i&&window.scrollTo(0,0);if(t&&-1===t.indexOf(r.H)){const r=n?n.total_hits:0,i=n?n.processing_time_ms:0;(0,s.mh)(e,t,r,i)}return{type:c,keyword:t,results:n,appendResults:o,requestBy:a}}(e,t,l,n,o,d))})))}:{type:u}}function p(e){return"top"===e&&window.scrollTo(0,0),{type:u}}function d(e){return{type:a,url:e}}},4826:function(e,t,n){"use strict";n.d(t,{JK:function(){return o},VD:function(){return a},l$:function(){return l},lD:function(){return s}});var r=n(6351),i=n(9770);const s="SEGMENTED_SEARCH_START",o="SEGMENTED_SEARCH_RESULTS",a="CLEAR_SEGMENTED_SEARCH_RESULTS";function l(e,t,n){return n&&""!==n?a=>{a(function(e){return{type:s,jsonKey:e}}(t)),e.search(n,(s=>{if(-1===n.indexOf(i.H))return a(function(e,t,n,i){return(0,r.mh)(i,t,n.total_hits,n.processing_time_ms),{type:o,jsonKey:e,keyword:t,results:n}}(t,n,s,e))}))}:{type:a}}},6353:function(e,t,n){"use strict";n.d(t,{ER:function(){return s},O0:function(){return i},Ul:function(){return o}});var r=n(4903);const i="SORTBY",s="desc";function o(e,t,n,s){s&&(0,r.Dh)(r.sh.SORTBY,JSON.stringify({field:t,order:n}),null,s);const o=e.getSettings().paging;return e.setPaging(o.page,o.pageSize,t,n),{type:i,field:t,order:n}}},6510:function(e,t,n){"use strict";n.d(t,{AUTOCOMPLETE_TYPE:function(){return v},A:function(){return y}});var r=n(2334),i=n.n(r),s=n(6148),o=n(1944),a=n(6993),l=n(8394),c=n(4379),u=n(6351),h=n(4903),p=n(3923),d=n(209),f=n.n(d),g=n(1543);function m(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class y{constructor(e,t,n,r){m(this,"clearRenderedHtml",(()=>{document.getElementById(this.conf.containerId).innerHTML="",this.renderedHtml=""})),this.client=e,this.reduxStore=t,this.hasAiAnswers=n,this.conf=r,this.lastOnmouseOver=null,this.minLengthRequired=this.reduxStore.getState().keyword.minLengthRequiredToFetch,!1===this.conf.hideAutomatically&&this.reduxStore.dispatch((0,s.Ah)(!1));const i=this.conf.categorySelectionFunction||p.GK;(0,p.g3)("selectSearchResultCategory",(e=>i(e,this.conf.categoryAliases))),(0,c.A)(r.containerId)&&((0,l.G)(this.reduxStore,"autocomplete",(e=>this.autocompleteResultsChanged(e))),(0,l.G)(this.reduxStore,"keyword",(e=>this.keywordChanged(e)))),r.infiniteScrollElement&&this.conf.infiniteScrollElement.addEventListener("scroll",(()=>this.onScroll())),r.sources&&r.sources.length&&r.sources.forEach((e=>{e.client&&e.client.setCollectAnalytics(!1)}))}autocompleteResultsChanged(e){if(e.dropRendering)return void this.clearRenderedHtml();const t=this.reduxStore.getState().keyword.value;e.pendingRequests.length>0||t.length<this.minLengthRequired||(e.keyword&&""!==e.keyword&&this.sendSearchAnalytics(e),this.render(e))}sendSearchAnalytics(e){let t=[];this.conf.sources.forEach((n=>{if(n.type===v.SEARCH&&n.collectSearchAnalytics){const r=n.client||this.client,i=e.searchResultsStats[n.jsonKey]?e.searchResultsStats[n.jsonKey].total_hits:0;t.push({client:r,numberOfResults:i})}})),(0,u.ME)(e.keyword,t)}keywordChanged(e){if(e.skipAutocomplete)return;const t=e.value;this.conf.sources.forEach((e=>{const n=e.client||this.client;if(e.type===v.SUGGESTIONS)this.reduxStore.dispatch((0,s.MO)(n,t));else if(e.type===v.CUSTOM_FIELDS)this.reduxStore.dispatch((0,s.hR)(n,t,e.field));else if(e.type===v.SEARCH){const r=n.getSettings().paging;n.setPaging(1,r.pageSize,r.sortBy,r.sortOrder),this.reduxStore.dispatch((0,s.OA)(n,e.jsonKey,t))}}))}loadMore(e){this.conf.sources.forEach((t=>{const n=t.client;n&&t.type===v.SEARCH&&(n.nextPage(),this.reduxStore.dispatch((0,s.OA)(n,t.jsonKey,e,!0)))}))}render(e){if(!1===e.visible)return void this.clearRenderedHtml();const{suggestions:t,customFields:n,searchResults:r,activeSuggestionIndex:s}=e,o={activeSuggestionIndex:s,suggestions:t,customFields:n,searchResults:r};let a;if(a=this.conf.precompiledTemplate?this.conf.precompiledTemplate(o):this.conf.template?i().compile(this.conf.template)(o):f()(o),this.renderedHtml===a)return;const l=document.getElementById(this.conf.containerId);l.innerHTML=a,this.renderedHtml=a,this.conf.renderCompleteCallback&&"function"==typeof this.conf.renderCompleteCallback&&this.conf.renderCompleteCallback();const c=l.querySelector(".suggestions")?l.querySelectorAll(".suggestions > li"):[],h=l.querySelectorAll(".suggestions");for(let e=0;e<c.length;e++)c[e].onmousedown=e=>this.suggestionMouseDown(e),h.length<=1&&(c[e].onmouseenter=e=>this.suggestionMouseEnter(e));if(r[Object.keys(r)[0]]){const e=l.querySelectorAll("[data-analytics-click]");let t=null;this.conf.sources.forEach((e=>{e.type===v.SEARCH&&(t||(t=e.client))})),t||(t=this.client),(0,u.$P)(t,e,{hits:r[Object.keys(r)[0]]})}this.conf.infiniteScrollElement&&!e.appendResults&&(this.conf.infiniteScrollElement.scrollTop=0),this.conf.onShow&&this.conf.onShow(l)}suggestionMouseDown(e){const t=e.target.getAttribute("data-keyword"),n=this.reduxStore;n.dispatch((0,s.dC)()),n.dispatch((0,a.Ai)(t,!0,null,!0));const r=n.getState().search.searchResultsPageUrl,i=n.getState().configuration.searchPersistence;r?(0,h.lG)(r,t,i):(n.dispatch((0,o.EF)(this.client,t,null,null,null,n)),this.hasAiAnswers&&n.dispatch((0,g.On)(this.client,t)))}suggestionMouseEnter(e){const t=parseInt(e.target.getAttribute("data-index"),10);null!==t&&t!==this.lastOnmouseOver&&(this.lastOnmouseOver=t,this.reduxStore.dispatch((0,s.XD)(t,!1)))}onScroll(){if(0===this.reduxStore.getState().autocomplete.pendingRequests.length){const e=this.conf.infiniteScrollElement;if(e.scrollHeight>0&&Math.ceil(e.offsetHeight+e.scrollTop)>=e.scrollHeight){const e=this.reduxStore.getState().keyword.value;this.loadMore(e)}}}}const v={SEARCH:"SEARCH",SUGGESTIONS:"SUGGESTIONS",CUSTOM_FIELDS:"CUSTOM_FIELDS"}},8526:function(e,t,n){"use strict";n.d(t,{A:function(){return c},a:function(){return l}});var r=n(1944),i=n(5756),s=n(8394),o=n(4903),a=n(4826);function l(e,t,n){let r={and:[]};t&&r.and.push(t);let i={};e.allAvailableFilters.forEach((t=>{let n={or:[]};for(let r in t)e.activeFilters[r]&&!i[r]&&(n.or.push(t[r].filter),i[r]=!0);n.or.length>0&&r.and.push(n)}));for(let t in e.activeRangeFilters)r.and.push({range:{[t]:Object.assign({},e.activeRangeFilters[t])}});for(let t in e.activeFacets){let i={or:[]};for(let r in e.activeFacets[t])if(t!==n){const e={};e[t]=r,i.or.push(e)}i.or.length>0&&r.and.push(i)}for(let t in e.activeHierarchicalFacets){let i={or:[]};for(let r in e.activeHierarchicalFacets[t])for(let s in e.activeHierarchicalFacets[t][r])if(!n||-1===n.indexOf(r)){const e={};e[r]=s,i.or.push(e)}i.or.length>0&&r.and.push(i)}for(let t in e.activeRangeFacets){let i={or:[]};for(let r in e.activeRangeFacets[t])if(t!==n){const n={range:{[t]:e.activeRangeFacets[t][r]}};i.or.push(n)}i.or.length>0&&r.and.push(i)}return r.and.length>0?r:{}}class c{constructor(e,t,n,r,i,o,a){this.client=e,this.reduxStore=t,this.createFilterObjectFunction=n,this.onFilterChange=r,this.onFilteredSearchRefresh=a,this.segmentedSearchClients=o,(0,s.G)(this.reduxStore,"filters",(e=>this.onFilterStateChange(e,i)))}onFilterStateChange(e,t){if(e.refreshSearch){(0,o.Dh)(o.sh.FILTERS,(0,o.IR)(e.activeFilters),null,this.reduxStore),(0,o.Dh)(o.sh.FACETS,(0,o.IR)(e.activeFacets),null,this.reduxStore),(0,o.Dh)(o.sh.RANGE_FACETS,(0,o.IR)(e.activeRangeFacets),null,this.reduxStore);const n=this.createFilterObjectFunction(e,t);this.client.setFilterObject(n);const s=this.reduxStore.getState().keyword.value;this.reduxStore.dispatch((0,i.I)(this.client,1,null,this.reduxStore)),this.reduxStore.dispatch((0,r.EF)(this.client,s,null,null,null,this.reduxStore,null,e.targetFacetGroup));for(let t in this.segmentedSearchClients){const n=this.createFilterObjectFunction(e,this.segmentedSearchClients[t].originalFilters);this.segmentedSearchClients[t].client.setFilterObject(n),this.reduxStore.dispatch((0,a.l$)(this.segmentedSearchClients[t].client,t,s))}this.onFilteredSearchRefresh&&this.onFilteredSearchRefresh()}else if(e.setHistory){const n=this.createFilterObjectFunction(e,t);this.client.setFilterObject(n),(0,o.Dh)(o.sh.RANGE_FACETS,(0,o.IR)(e.activeRangeFacets),null,this.reduxStore)}this.onFilterChange&&this.onFilterChange(e.activeFilters)}}},9369:function(e,t,n){"use strict";n.d(t,{FILTER_TYPE:function(){return w},A:function(){return k}});var r=n(2334),i=n.n(r),s=n(8394),o=n(549),a=n(6353),l=n(4379),c=n(3668),u=n.n(c),h=n(8810),p=n.n(h),d=n(5509),f=n.n(d),g=n(1572),m=n.n(g),y=n(948),v=n.n(y),x=n(3329),S=n.n(x);const b="nofilter";class k{constructor(e,t,n){this.client=e,this.reduxStore=t,this.conf=n,this.activeFilter=null,(0,l.A)(n.containerId)&&(this.reduxStore.dispatch((0,o.ul)(this.conf)),(0,s.G)(this.reduxStore,"filters",(e=>this.render(e))),this.conf.type===w.RANGE&&(0,s.G)(this.reduxStore,"search",(e=>this.searchResultsChanged(e))))}searchResultsChanged(e){!e.loading&&e.results.fieldStats&&e.results.fieldStats[this.conf.field]&&this.render(this.reduxStore.getState().filters)}render(e){let t=Object.assign({},this.conf);this.activeFilter=null;let n=!1;for(let r in t.options)e.activeFilters[r]?(t.options[r].active=!0,this.activeFilter=r,n=!0):t.options[r].active=!1;!n&&t.options&&t.options[b]&&(t.options[b].active=!0);let r,s=null;if(this.conf.type===w.TABS)s=m();else if(this.conf.type===w.TAGS)s=f();else if(this.conf.type===w.CHECKBOX_GROUP)s=u();else if(this.conf.type===w.RADIO_GROUP)s=p();else if(this.conf.type===w.RANGE){e.activeRangeFilters[this.conf.field]&&(t.from=e.activeRangeFilters[this.conf.field].gte,t.to=e.activeRangeFilters[this.conf.field].lte);const n=this.reduxStore.getState().search.results;if(n&&n.fieldStats&&n.fieldStats[this.conf.field]){const{min:e,max:r}=n.fieldStats[this.conf.field];t.fromPlaceholder="Infinity"===e?"":e,t.toPlaceholder="-Infinity"===r?"":r}s=S()}else s=v();if(r=this.conf.precompiledTemplate?this.conf.precompiledTemplate(t):this.conf.template?i().compile(this.conf.template)(t):s(t),this.renderedHtml===r)return;const a=document.getElementById(this.conf.containerId);if(a.innerHTML=r,this.renderedHtml=r,this.conf.type===w.SELECT_LIST)a.querySelector("select").addEventListener("change",(e=>this.singleActiveChangeEvent(e.target.value)));else if(this.conf.type===w.TABS){const e=a.querySelectorAll("[data-filter]");for(let t=0;t<e.length;t++)e[t].addEventListener("click",(e=>this.singleActiveChangeEvent(e.target.getAttribute("data-filter"))))}else if(this.conf.type===w.RADIO_GROUP){const e=a.querySelectorAll("input");for(let t=0;t<e.length;t++)e[t].addEventListener("click",(e=>this.singleActiveChangeEvent(e.target.value)))}else this.conf.type===w.RANGE?this.attachRangeFilterEvents(a):(0,l.h)(a,"data-filter","click",(e=>{this.reduxStore.dispatch((0,o.VH)(e,1))}))}singleActiveChangeEvent(e){const t=e===b,n=this.reduxStore;e!==this.activeFilter&&(this.conf.setSorting&&n.dispatch((0,a.Ul)(this.client,this.conf.setSorting.field,this.conf.setSorting.order,this.reduxStore)),!0===this.conf.clearOtherFilters?n.dispatch((0,o.hx)(t)):this.activeFilter&&n.dispatch((0,o.VH)(this.activeFilter,1,t)),t?this.activeFilter=null:(this.activeFilter=e,n.dispatch((0,o.VH)(e,1,!0))))}attachRangeFilterEvents(e){const t=e.querySelectorAll("input");for(let n=0;n<t.length;n++)t[n].addEventListener("change",(t=>{this.conf.validator&&!new RegExp(this.conf.validator).test(t.target.value)?t.target.setAttribute("data-valid","false"):(t.target.setAttribute("data-valid","true"),this.rangeChangeEvent(this.conf.field,e.querySelector('input[name="from"]').value,e.querySelector('input[name="to"]').value))}));const n=e.querySelector("button");n&&n.addEventListener("click",(e=>this.reduxStore.dispatch((0,o.u3)(this.conf.field,null,null))))}rangeChangeEvent(e,t,n){const r=""!==t?t:null,i=""!==n?n:null;this.reduxStore.dispatch((0,o.u3)(e,r,i))}}const w={CHECKBOX_GROUP:"CHECKBOX_GROUP",RADIO_GROUP:"RADIO_GROUP",SELECT_LIST:"SELECT_LIST",RANGE:"RANGE",TABS:"TABS",TAGS:"TAGS"}},3816:function(e,t,n){"use strict";n.d(t,{LOAD_MORE_TYPE:function(){return p},A:function(){return h}});var r=n(2334),i=n.n(r),s=n(5756),o=n(1944),a=n(8394),l=n(4379),c=n(8905),u=n.n(c);class h{constructor(e,t,n){this.client=e,this.reduxStore=t,this.conf=n,(0,l.A)(n.containerId)&&(0,a.G)(this.reduxStore,"search",(e=>this.render(e))),n.type===p.INFINITE_SCROLL&&this.conf.infiniteScrollElement.addEventListener("scroll",(()=>this.onScroll()))}render(e){const t=e.results.page||1,n=this.client.getSettings().paging.pageSize,r=e.results.total_hits||0,s=Math.ceil(r/n),o={type:this.conf.type,hasMorePages:t<s,isLoading:e.loading,totalHits:r};let a;if(a=this.conf.precompiledTemplate?this.conf.precompiledTemplate(o):this.conf.template?i().compile(this.conf.template)(o):u()(o),this.renderedHtml===a)return;const l=document.getElementById(this.conf.containerId);if(l.innerHTML=a,this.renderedHtml=a,this.conf.type===p.BUTTON){const e=l.querySelector("button");e&&(e.onclick=e=>this.loadMore())}else this.conf.type===p.INFINITE_SCROLL&&this.conf.infiniteScrollElement.tagName&&1===e.results.page&&!e.loading&&(this.conf.infiniteScrollElement.scrollTop=0)}loadMore(){const e=(this.reduxStore.getState().pagination.page||1)+1;this.reduxStore.dispatch((0,s.I)(this.client,e,!1,this.reduxStore));const t=this.reduxStore.getState().keyword.value;this.reduxStore.dispatch((0,o.EF)(this.client,t,null,!0,null,this.reduxStore,null,"component.loadMore"))}onScroll(){const e=this.reduxStore.getState().search.loading,t=document.querySelector("#"+this.conf.containerId+" .loadmore-infinite-scroll");if(!e&&t)if(this.conf.infiniteScrollElement.tagName){const e=this.conf.infiniteScrollElement;Math.ceil(e.offsetHeight+e.scrollTop)>=e.scrollHeight&&this.loadMore()}else{const e=window.innerHeight,n=t.getBoundingClientRect().top;n>0&&n<e&&this.loadMore()}}}const p={BUTTON:"BUTTON",INFINITE_SCROLL:"INFINITE_SCROLL"}},1990:function(e,t,n){"use strict";n.d(t,{RANGE_FACETS_TYPE:function(){return S},A:function(){return x}});var r=n(2334),i=n.n(r),s=n(549),o=n(8394),a=n(4379),l=n(8526),c=n(6843);function u(e){var t=Math.ceil(Math.log10(e+1));if(1===t)return 0;var n=Math.pow(10,t-1);return Math.floor(e/n)*n}function h(e){var t=Math.ceil(Math.log10(e+1)),n=Math.pow(10,t-1);return Math.ceil(e/n)*n}var p=n(7435),d=n(6427),f=n.n(d),g=n(1204),m=n.n(g);function y(){let e,t;function n(e,t){e&&(e.textContent=t)}function r(t,n){const[r,s]=i(t,n);"function"==typeof e&&e({activeRange:[r,s]})}function i(e,t){return[parseFloat(e.value),parseFloat(t.value)]}function s(e,t,n,r,i){const s=t.max-t.min,o=e.value-t.min,a=t.value-t.min;i.style.background="linear-gradient(\n to right,\n ".concat(n," 0%,\n ").concat(n," ").concat(o/s*100,"%,\n ").concat(r," ").concat(o/s*100,"%,\n ").concat(r," ").concat(a/s*100,"%, \n ").concat(n," ").concat(a/s*100,"%, \n ").concat(n," 100%)")}function o(e){const n=document.querySelector("#"+t+" [data-id=adds-slider-control-from]"),r=document.querySelector("#"+t+" [data-id=adds-slider-control-to]");Number(e.value)<=n.value?r.style.zIndex="2":r.style.zIndex="0"}this.initialize=function(a,l,c){e=l,t=a;const[u,h,p,d]=function(){const e=document.querySelector("#"+t+" .adds-range-slider-container");return[e.getAttribute("data-slider-min"),e.getAttribute("data-slider-max"),e.getAttribute("data-slider-start"),e.getAttribute("data-slider-end")]}(),f=Math.ceil(parseFloat(h));!function(e,n){const r=document.querySelector("#"+t+" .adds-range-slider-container"),[i,s,o,a]=e,l='\n <div class="adds-range-slider-control">\n <input data-id="adds-slider-control-from" type="range" value="'.concat(o||i,'" min="').concat(i,'" max="').concat(s,'" step="').concat(n,'" />\n <input data-id="adds-slider-control-to" type="range" value="').concat(a||s,'" min="').concat(i,'" max="').concat(s,'" step="').concat(n,'" />\n </div>\n ');r.innerHTML=l}([Math.floor(parseFloat(u)),f,p,d],c.step);const g=c.styles,m=document.querySelector("#"+a+" [data-id=adds-slider-control-from]"),y=document.querySelector("#"+a+" [data-id=adds-slider-control-to]"),v=document.querySelector("#"+a+" [data-id=adds-slider-display-start]"),x=document.querySelector("#"+a+" [data-id=adds-slider-display-end]");s(m,y,g.trackColor,g.progressColor,y),o(y),n(v,p||u),n(x,d||h),m.oninput=()=>function(e,t,r,o){const[a,l]=i(e,t);s(e,t,o.trackColor,o.progressColor,t),a>l?(e.value=l,n(r,l)):n(r,a)}(m,y,v,g),y.oninput=()=>function(e,t,r,a){const[l,c]=i(e,t);s(e,t,a.trackColor,a.progressColor,t),o(t),l<=c?(t.value=c,n(r,c)):(t.value=l,n(r,l))}(m,y,x,g),m.onchange=()=>r(m,y),y.onchange=()=>r(m,y)}}y.init=function(e,t,n){(new y).initialize(e,t,n)};var v=y;class x{constructor(e,t,n){this.client=e,this.reduxStore=t,this.conf=n,this.maxNumberOfRangeBuckets=this.conf.maxNumberOfRangeBuckets||5,this.ranges=[];var r=["component.loadMore","component.pagination","component.sortby"];function i(){var e=t.getState().filters.activeRangeFacets[n.field];return!!e&&!(0,p.I)(e)}this.conf.type===S.SLIDER?(this.maxNumberOfRangeBuckets=1,this.conf.styles=this.conf.styles||{trackColor:"#C6C6C6",progressColor:"#25daa5"}):this.conf.type=S.CHECKBOX,(0,a.A)(n.containerId)&&((0,o.G)(this.reduxStore,"search",(e=>{const t=i();if(!(!e.started||e.loading||e.callBy===this.conf.field&&t||r.indexOf(e.callBy)>-1))if(e.results.hits&&e.results.hits.length){if(t&&this.conf.type===S.SLIDER){var n=this.getActiveRangeFacets(this.conf.field)[0];this.reduxStore.dispatch((0,c.Ow)({[this.conf.field]:{min:n.gte,max:n.lte}},this.conf.field))}else if(t&&this.conf.type===S.CHECKBOX){const e=(0,l.a)(this.reduxStore.getState().filters,this.reduxStore.getState().configuration.baseFilters,this.conf.field);this.client.fetchCustomApi(this.conf.field,e,(e=>{this.reduxStore.dispatch((0,c.Ow)(e.fieldStats,this.conf.field))}))}else"component.activeFilters"===e.callBy?(this.reduxStore.dispatch((0,c.np)()),this.reduxStore.dispatch((0,c.Ow)(e.results.fieldStats,this.conf.field))):this.reduxStore.dispatch((0,c.Ow)(e.results.fieldStats,this.conf.field));this.handleCheckboxStates(!1)}else this.renderClear()})),(0,o.G)(this.reduxStore,"fieldstats",(e=>{var t=e.fieldStats[this.conf.field];if(e.callBy!==this.conf.field||void 0===t)return;if(null===t)return void this.renderRangeSlider();if(i()?this.ranges=function(e){const t=[];for(const n in e)t.push({from:e[n].gte,to:e[n].lt});return t}(this.reduxStore.getState().filters.activeRangeFacets[this.conf.field]):this.ranges=function(e,t,n){const r=e>=0?u(e):-1*h(-1*e),i=t>=0?h(t):-1*u(-1*t),s=[];let o=r;const a=h((i-r)/n);for(var l=0;l<n;l++)s.push({from:o,to:o+a}),o+=a;return s}(t.min,t.max,this.maxNumberOfRangeBuckets),this.conf.type===S.SLIDER)return void this.renderRangeSlider(e);var n={field:this.conf.field,ranges:this.ranges};const r=(0,l.a)(this.reduxStore.getState().filters,this.reduxStore.getState().configuration.baseFilters,this.conf.field);this.client.fetchRangeFacets(n,r,(e=>{this.render(e)}))})))}setRangeFilter(e,t,n){const r={min:t,max:n};this.reduxStore.dispatch((0,s.jU)(this.conf.field,r,e,!0))}setRangeSlider(e){this.reduxStore.dispatch((0,s.ks)(function(e,t,n){const r="".concat(t,"-").concat(n);return{[e]:{[r]:{gte:t,lte:n}}}}(this.conf.field,e[0],e[1]),!0,this.conf.field))}render(e){const t=document.getElementById(this.conf.containerId);if(e){const n={conf:this.conf,rangeFacets:e.rangeFacets[this.conf.field]};let r;r=this.conf.precompiledTemplate?this.conf.precompiledTemplate(n):this.conf.template?i().compile(this.conf.template)(n):f()(n),t.innerHTML=r}else t.innerHTML="";this.handleCheckboxStates(!0)}renderClear(){this.reduxStore.dispatch((0,c.np)());document.getElementById(this.conf.containerId).innerHTML=""}renderRangeSlider(e){const t=this,n=document.getElementById(this.conf.containerId),r={conf:this.conf};if(!e)return void(n.innerHTML="");const s=this.getActiveRangeFacets(this.conf.field);let o;r.sliderConfig=Object.assign({},function(e,t){if(!e.fieldStats&&!e.fieldStats[t])return{min:null,max:null};return{min:e.fieldStats[t].min,max:e.fieldStats[t].max}}(e,this.conf.field),function(e){let t,n;return e.forEach((e=>{const r=e.gte,i=e.lte;(void 0===t||r<t)&&(t=r),(void 0===n||i>n)&&(n=i)})),{start:t,end:n}}(s)),o=this.conf.precompiledTemplate?this.conf.precompiledTemplate(r):this.conf.template?i().compile(this.conf.template)(r):m()(r),n.innerHTML=o,v.init(this.conf.containerId,(function(e){e.activeRange.length&&t.setRangeSlider(e.activeRange)}),{styles:{trackColor:this.conf.styles.trackColor,progressColor:this.conf.styles.progressColor},step:this.conf.step||1})}handleCheckboxStates(e){const t=document.getElementById(this.conf.containerId),n=this.getActiveRangeFacets(this.conf.field),r=t.getElementsByTagName("input");for(let t=0;t<r.length;t++){let i=r[t];i.checked=!!n.find((e=>e.key===i.value)),e&&(i.onchange=e=>{this.setRangeFilter(e.target.value,e.target.getAttribute("data-value-min"),e.target.getAttribute("data-value-max"))})}}getActiveRangeFacets(e){let t=[];const n=this.reduxStore.getState().filters.activeRangeFacets;if(n[e])for(let r in n[e])t.push(n[e][r]);return t}}const S={CHECKBOX:"CHECKBOX",SLIDER:"SLIDER"}},4128:function(e,t,n){"use strict";n.d(t,{A:function(){return r.Ay},RECOMMENDATION_TYPE:function(){return i}});var r=n(3007);const i={FREQUENTLY_BOUGHT_TOGETHER:"FREQUENTLY_BOUGHT_TOGETHER",RELATED_ITEMS:"RELATED_ITEMS"}},3007:function(e,t,n){"use strict";n.d(t,{Qc:function(){return u},uH:function(){return h},Ay:function(){return p}});const r='\n <div class="addsearch-recommendations">\n {{#each hits}}\n <div class="hit">\n <div class="hit-top"> \n <span class="main-image" style="background-image: url(data:image/jpeg;base64,{{images.main_b64}})">\n <a href="{{url}}">\n <img src="{{images.main}}" alt="{{title}}" />\n </a> \n </span> \n <h3>\n <a href="{{url}}">{{title}}</a>\n </h3>\n </div>\n <div class="hit-bottom">\n <div class="highlight-content">\n {{{highlight}}}\n </div> \n \n </div>\n </div>\n {{/each}}\n </div>\n';var i=n(2334),s=n.n(i),o=n(8394),a=n(4379),l=n(878),c=n(4128);const u=c.RECOMMENDATION_TYPE.FREQUENTLY_BOUGHT_TOGETHER,h=c.RECOMMENDATION_TYPE.RELATED_ITEMS;class p{constructor(e,t,n,r){this.client=e,this.conf=n,this.reduxStore=t,r.push(n),(0,a.A)(n.containerId)&&(0,o.G)(this.reduxStore,"recommendation",(e=>{e.container===n.containerId&&this.render(e)}))}render(e){const t=e.results||{};t.blockId=this.conf.blockId;let n,i=this.conf.template||r;if(this.conf.precompiledTemplate?n=this.conf.precompiledTemplate(t):(i=this.conf.template||r,n=s().compile(i)(t)),this.renderedHtml===n)return;document.getElementById(this.conf.containerId).innerHTML=n,this.renderedHtml=n,this.reduxStore.dispatch((0,l.T7)())}}},8909:function(e,t,n){"use strict";n.d(t,{SORTBY_TYPE:function(){return g},A:function(){return f}});var r=n(2334),i=n.n(r),s=n(6353),o=n(1944),a=n(5756),l=n(8394),c=n(4379),u=n(6868),h=n.n(u),p=n(9462),d=n.n(p);class f{constructor(e,t,n){this.client=e,this.conf=n,this.reduxStore=t,this.conf.options.forEach((e=>{e.sortBy="string"==typeof e.sortBy?e.sortBy.split(","):e.sortBy,e.order="string"==typeof e.order?e.order.split(","):e.order})),(0,c.A)(n.containerId)&&(0,l.G)(this.reduxStore,"sortby",(e=>this.render(e)))}onChangeSelect(e){const t=e.options[e.selectedIndex],n=t.getAttribute("data-field"),r=t.getAttribute("data-order");this.dispatchAndRefresh(n,r)}onChangeRadio(e){const t=e.target.getAttribute("data-field"),n=e.target.getAttribute("data-order");this.dispatchAndRefresh(t,n)}dispatchAndRefresh(e,t){const n=e.split(","),r=t.split(",");this.reduxStore.dispatch((0,s.Ul)(this.client,n,r,this.reduxStore)),this.reduxStore.dispatch((0,a.I)(this.client,1,null,this.reduxStore));const i=this.reduxStore.getState().keyword.value;this.reduxStore.dispatch((0,o.EF)(this.client,i,null,null,null,this.reduxStore,null,"component.sortby"))}arraysMatch(e,t){return e.length===t.length&&e.every(((e,n)=>e===t[n]))}render(e){const{field:t,order:n}=e;let r=null;r=this.conf.type===g.RADIO_GROUP?h():d();let s,o=Object.assign({},this.conf);if(o.options.forEach((e=>{this.arraysMatch(e.sortBy,t)&&this.arraysMatch(e.order,n)?e.active=!0:e.active=!1})),s=this.conf.precompiledTemplate?this.conf.precompiledTemplate(o):this.conf.template?i().compile(this.conf.template)(o):r(o),this.renderedHtml===s)return;const a=document.getElementById(this.conf.containerId);if(a.innerHTML=s,this.renderedHtml=s,this.conf.type===g.RADIO_GROUP){const e=a.querySelectorAll("input");for(let t=0;t<e.length;t++)e[t].onclick=e=>this.onChangeRadio(e)}else if(a.querySelector("select").onchange=e=>this.onChangeSelect(e.target),e){const e=a.getElementsByTagName("option");for(let r=0;r<e.length;r++)if(e[r].getAttribute("data-field")===t&&e[r].getAttribute("data-order")===n){a.querySelector("select").value=e[r].text;break}}}}const g={SELECT_LIST:"SELECT_LIST",RADIO_GROUP:"RADIO_GROUP"}},9770:function(e,t,n){"use strict";n.d(t,{Z:function(){return wt},H:function(){return kt},default:function(){return Ct}});var r=n(9491),i=n.n(r),s=n(2334),o=n.n(s),a=n(549),l=n(4379),c=n(8394),u=n(3787),h=n.n(u);const p="FILTER",d="RANGE_FILTER",f="FACET",g="RANGE_FACET",m="HIERARCHICAL_FACET";class y{constructor(e,t,n){this.client=e,this.conf=n,this.reduxStore=t,(0,l.A)(n.containerId)&&(0,c.G)(this.reduxStore,"filters",(e=>this.render(e)))}getFilterLabel(e,t){for(let n=0;n<t.length;n++)if(t[n][e])return t[n][e].label}emptyIfNull(e){return null==e?"":e}render(e){let t=[];for(let n in e.activeFilters)t.push({type:p,name:n,value:e.activeFilters[n],label:this.getFilterLabel(n,e.allAvailableFilters)});for(let n in e.activeRangeFilters){const r=e.activeRangeFilters[n];t.push({type:d,name:n,label:this.getFilterLabel(n,e.allAvailableFilters)+": "+this.emptyIfNull(r.gte)+"-"+this.emptyIfNull(r.lte)})}for(let r in e.activeFacets)if("category"===r||0===r.indexOf("custom_fields."))for(var n in e.activeFacets[r])t.push({name:r,type:f,value:n,label:n.replace(/^[0-9]+[x]{1}/,"")});for(let n in e.activeHierarchicalFacets)for(let r in e.activeHierarchicalFacets[n])for(let i in e.activeHierarchicalFacets[n][r])t.push({name:r,type:m,container:n,value:i,label:i});for(let n in e.activeRangeFacets)if(e.activeRangeFacets.hasOwnProperty(n))for(let r in e.activeRangeFacets[n])e.activeRangeFacets[n].hasOwnProperty(r)&&t.push({name:n,type:g,value:r,label:r,rangeMin:e.activeRangeFacets[n][r].gte,rangeMax:e.activeRangeFacets[n][r].lte});const r={active:t,clearAll:!1!==this.conf.clearAll};let i;if(i=this.conf.precompiledTemplate?this.conf.precompiledTemplate(r):this.conf.template?o().compile(this.conf.template)(r):h()(r),this.renderedHtml===i)return;const s=document.getElementById(this.conf.containerId);s.innerHTML=i,this.renderedHtml=i;const l=s.querySelectorAll("[data-type]");for(let e=0;e<l.length;e++)l[e].addEventListener("click",(e=>this.handleFilterClick(e)));const c=s.querySelector("[data-clearall]");c&&c.addEventListener("click",(e=>this.reduxStore.dispatch((0,a.hx)(!0,!0))))}handleFilterClick(e){const t=e.target.getAttribute("data-type"),n=e.target.getAttribute("data-name"),r=e.target.getAttribute("data-value"),i=e.target.getAttribute("data-container"),s=e.target.getAttribute("data-conf-fields")?e.target.getAttribute("data-conf-fields").split(","):[],o=e.target.getAttribute("data-range-min"),l=e.target.getAttribute("data-range-max");if(t===p)this.reduxStore.dispatch((0,a.VH)(n,r,!0));else if(t===d)this.reduxStore.dispatch((0,a.u3)(n,null,null));else if(t===f)this.reduxStore.dispatch((0,a.II)(n,r));else if(t===m)this.reduxStore.dispatch((0,a.Ni)(n,i,s,r,!0));else if(t===g){const e={min:o,max:l};this.reduxStore.dispatch((0,a.jU)(n,e,r,!0,!0))}}}var v=n(6510),x=n(8526),S=n(1353),b=n.n(S);class k{constructor(e,t,n,r){this.client=e,this.reduxStore=t,this.conf=n;var i=["component.loadMore","component.pagination","component.sortby"];(0,l.A)(n.containerId)&&(0,c.G)(this.reduxStore,"search",(t=>{var n,s=this.reduxStore.getState().filters.activeFacets;if(!(t.loading||i.indexOf(t.callBy)>-1))if((n=s[this.conf.field])&&0!==Object.keys(n).length&&this.conf.advancedSticky){var o=(0,x.a)(this.reduxStore.getState().filters,r,this.conf.field);if(t.callBy!==this.conf.field)e.fetchCustomApi(this.conf.field,o,(e=>{this.render(e,!0)}));else{const e=this.getActiveFacets(this.conf.field);this.updateCheckboxStates(e)}}else this.render(t)}))}setFilter(e){this.reduxStore.dispatch((0,a.II)(this.conf.field,e,!0))}render(e,t){if(e.loading)return;const n=this.conf.field,r=t?e:e.results;let i=[];r&&r.facets&&r.facets[n]&&(i=r.facets[n]);const s=this.getActiveFacets(n);!0!==this.conf.sticky||this.conf.advancedSticky||(this.keyword===e.keyword&&this.stickyFacets&&0!==s.length?i=this.stickyFacets:(this.keyword=e.keyword,this.stickyFacets=i)),this.conf.facetsFilter&&(i=this.conf.facetsFilter(i));const a={conf:this.conf,facets:i};let l;if(l=this.conf.precompiledTemplate?this.conf.precompiledTemplate(a):this.conf.template?o().compile(this.conf.template)(a):b()(a),this.renderedHtml===l&&s===this.renderedActiveFacets)return;this.renderedActiveFacets=s;const c=document.getElementById(this.conf.containerId);c.innerHTML=l,this.renderedHtml=l;const u=c.getElementsByTagName("input");for(let e=0;e<u.length;e++){let t=u[e];t.checked=-1!==s.indexOf(t.value),t.onchange=e=>{this.setFilter(e.target.value,e.target.checked)}}}getActiveFacets(e){let t=[];const n=this.reduxStore.getState().filters.activeFacets;if(n[e])for(let r in n[e])t.push(r);return t}updateCheckboxStates(e){const t=document.getElementById(this.conf.containerId).getElementsByTagName("input");for(let n=0;n<t.length;n++){let r=t[n];r.checked=-1!==e.indexOf(r.value)}}}var w=n(4278),C=n.n(w),E=n(3923),O=n(2009),_=n.n(O);class P{constructor(e,t,n,r){function i(e,t){let n=!0;return e?(t.forEach((t=>{var r;(r=e[t])&&0!==Object.keys(r).length&&(n=!1)})),n):n}this.client=e,this.reduxStore=t,this.conf=n;var s=["component.loadMore","component.pagination","component.sortby"];const o=this.conf.template_subHierarchicalFacetsTemplate||_();(0,E.bp)("subHierarchicalFacetsTemplate",o),(0,E.g3)("validateOpenState",(function(e){return-1===t.getState().filters.openedHierarchicalFacetGroups.indexOf(e)})),(0,l.A)(n.containerId)&&(0,c.G)(this.reduxStore,"search",(t=>{var n=this.reduxStore.getState().filters.activeHierarchicalFacets[this.conf.containerId];if(!(t.loading||s.indexOf(t.callBy)>-1))if(i(n,this.conf.fields)||!t.results.hits.length)this.render(t);else{var o=(0,x.a)(this.reduxStore.getState().filters,r,this.conf.fields);if(-1===this.conf.fields.indexOf(t.callBy))e.fetchCustomApi(this.conf.field,o,(e=>{this.render(e,!0)}));else{var a=document.getElementById(this.conf.containerId);this._updateCheckBoxes(a,this.getActiveFacets(this.conf.fields,this.conf.containerId),!1,this.reduxStore.getState().filters.indeterminateHierarchicalFacets)}}}))}setFilter(e,t){this.reduxStore.dispatch((0,a.Ni)(t,this.conf.containerId,this.conf.fields,e,!0))}render(e,t){if(e.loading)return;const n=this.conf.fields,r=t?e:e.results;let i=[];r&&r.hierarchicalFacets&&r.hierarchicalFacets[n[0]]&&(i=r.hierarchicalFacets[n[0]],i=i.map((e=>(e.field=e.field.replace("hierarchical_facet.",""),e))));const s=this.getActiveFacets(n,this.conf.containerId);this.conf.facetsFilter&&(i=this.conf.facetsFilter(i));const a={conf:this.conf,facets:i};let l;if(l=this.conf.precompiledTemplate?this.conf.precompiledTemplate(a):this.conf.template?o().compile(this.conf.template)(a):C()(a),this.renderedHtml===l&&s===this.renderedActiveFacets)return;this.renderedActiveFacets=s;const c=document.getElementById(this.conf.containerId);c.innerHTML=l,this.renderedHtml=l,this._updateCheckBoxes(c,s,!0,this.reduxStore.getState().filters.indeterminateHierarchicalFacets);const u=c.getElementsByClassName("addsearch-facet-group-expansion-arrow");for(let e=0;e<u.length;e++)u[e].addEventListener("click",(()=>{u[e].parentNode.parentNode.classList.toggle("shrink"),this._toggleFacetGroupOpenState(u[e].parentNode.parentNode.getAttribute("data-facet"))}))}getActiveFacets(e,t){let n=[];const r=this.reduxStore.getState().filters.activeHierarchicalFacets;return e.forEach((function(e){if(r[t]&&r[t][e])for(let i in r[t][e])n.push(i)})),n}_toggleFacetGroupOpenState(e){const t=this.reduxStore.getState().filters.openedHierarchicalFacetGroups,n=t.indexOf(e);-1===n?t.push(e):t.splice(n,1)}_updateCheckBoxes(e,t,n,r){const i=e.getElementsByTagName("input");for(let e=0;e<i.length;e++){let s=i[e];s.checked=-1!==t.indexOf(s.value),s.indeterminate=r.indexOf(s.value)>-1,n&&(s.onchange=e=>{this.setFilter(e.target.value,e.target.getAttribute("data-field"))})}}}var A=n(1990),R=n(9369),T=n(3816);var I=n(5756),F=n(1944),L=n(4245),H=n.n(L);class M{constructor(e,t,n){this.client=e,this.conf=n,this.reduxStore=t,(0,l.A)(n.containerId)&&(0,c.G)(this.reduxStore,"search",(()=>this.render()))}render(){const e=this.reduxStore.getState(),t=e.search.results.page||1,n=this.client.getSettings().paging.pageSize,r=e.search.results.total_hits||0,i=Math.ceil(r/n),s=function(e,t){if(!t||t<2||!e||e>t)return null;for(var n=[],r=0;r<t;r++)n.push(r+1);if(t<=9)return n;if(t>9&&e<7)return n.slice(0,9);if(t>9&&e>=t-3)return n.slice(t-9);var i=n.indexOf(e);return i-4>=0&&i+5<=n.length?n.slice(i-4,i+5):null}(t,i),a={currentPage:t,lastPage:s?s[s.length-1]:0,totalPages:i,pages:s};let l;if(l=this.conf.precompiledTemplate?this.conf.precompiledTemplate(a):this.conf.template?o().compile(this.conf.template)(a):H()(a),this.renderedHtml===l)return;const c=document.getElementById(this.conf.containerId);c.innerHTML=l,this.renderedHtml=l;const u=c.getElementsByTagName("button");for(let e=0;e<u.length;e++){u[e].onclick=e=>this.handleOnclick(e)}}handleOnclick(e){const t=e.target;let n=null;if("previous"===t.getAttribute("data-page")){n=this.reduxStore.getState().pagination.page-1}else if("next"===t.getAttribute("data-page")){n=(this.reduxStore.getState().pagination.page||1)+1}else n=parseInt(t.getAttribute("data-page"),10);this.reduxStore.dispatch((0,I.I)(this.client,n,null,this.reduxStore));const r=this.reduxStore.getState().keyword.value,i=this.conf.onResultsScrollTo||"top";this.reduxStore.dispatch((0,F.EF)(this.client,r,i,null,null,this.reduxStore,null,"component.pagination"))}}var j=n(8505),N=n.n(j),B=n(6148),D=n(6993),$=n(4903);const q=40,G=38,U=13,V=8,z=46;class K{constructor(e,t,n,r,i){this.client=e,this.reduxStore=t,this.conf=n,this.matchAllQuery=r,this.minLengthToShowResults=n.minLengthToShowResults||1,this.firstRenderDone=!1,this.onSearch=i;const s=n.minLengthToShowResults||0;this.reduxStore.dispatch((0,D._T)({minLengthRequiredToFetch:s})),n.selectorToBind?(this.bindContainer(),(0,c.G)(this.reduxStore,"keyword",(e=>{e.setSearchFieldValue&&this.updateValueOnAllBoundFields(e.value)})),(0,c.G)(this.reduxStore,"autocomplete",(e=>this.onAutocompleteUpdateBoundField(e)))):(0,l.A)(n.containerId)&&((0,c.G)(this.reduxStore,"keyword",(e=>{e.searchFieldContainerId!==this.conf.containerId&&null!==e.searchFieldContainerId||this.render(e.value)})),(0,c.G)(this.reduxStore,"autocomplete",(e=>this.onAutocompleteUpdate(e))))}updateValueOnAllBoundFields(e){for(var t=0;t<this.boundFields.length;t++)this.boundFields[t].value=e}onAutocompleteUpdate(e){if((e.suggestions.length>0||e.customFields.length>0)&&e.setSuggestionToSearchField)if(null!==e.activeSuggestionIndex&&e.setSuggestionToSearchField){const t=(e.suggestions[e.activeSuggestionIndex]||e.customFields[e.activeSuggestionIndex]).value;this.render(t)}else null===e.activeSuggestionIndex&&this.render(this.reduxStore.getState().keyword.value)}onAutocompleteUpdateBoundField(e){if(e.setSuggestionToSearchField)if(null!==e.activeSuggestionIndex){const t=e.suggestions[e.activeSuggestionIndex]||e.customFields[e.activeSuggestionIndex];if(!t)return;const n=t.value;this.updateValueOnAllBoundFields(n)}else this.updateValueOnAllBoundFields(this.reduxStore.getState().keyword.value)}executeSearch(e,t,n){n||this.reduxStore.dispatch((0,B.dC)());let r=t;""===r&&this.matchAllQuery&&(r=wt),0!==r.indexOf(kt)&&this.reduxStore.dispatch((0,I.I)(e,1,null,this.reduxStore)),this.reduxStore.dispatch((0,a.Gc)(!1,!0)),this.onSearch(r,!1,n,this.conf.fieldForInstantRedirect,this.reduxStore.getState().configuration.fieldForInstantRedirect,this.conf.disableSearch)}redirectOrSearch(e){const t=this.reduxStore.getState().search.searchResultsPageUrl,n=this.reduxStore.getState().configuration.searchPersistence;t&&!0!==this.conf.ignoreSearchResultsPageUrl&&e&&e.length>0?(0,$.lG)(t,e,n):this.executeSearch(this.client,e,!1)}addEventListenersToField(e){e.oninput=e=>this.oninput(e),e.onkeypress=e=>this.onkeypress(e),e.onkeyup=e=>this.onkeyup(e),e.onfocus=e=>this.onfocus(e),e.onblur=e=>setTimeout((()=>this.onblur()),200)}handleAutoFocus(e){!1!==this.conf.autofocus&&!1===this.firstRenderDone&&(e.focus(),this.firstRenderDone=!0)}handleSubmitKeyword(e){const t=this.reduxStore;""===e&&this.matchAllQuery&&(e=wt),t.dispatch((0,B.dC)()),t.dispatch((0,D.Ai)(e,!0,null,!1)),this.redirectOrSearch(e)}render(e){const t=document.getElementById(this.conf.containerId);t.querySelector("input")?null!==e&&e!==wt&&t.querySelector("input").value!==e&&(t.querySelector("input").value=e):(this.conf.precompiledTemplate?t.innerHTML=this.conf.precompiledTemplate(this.conf):this.conf.template?t.innerHTML=o().compile(this.conf.template)(this.conf):t.innerHTML=N()(this.conf),this.field=t.querySelector("input"),e!==wt&&(this.field.value=e),this.addEventListenersToField(this.field),t.querySelector("button")&&(t.querySelector("button").onclick=()=>{let e=this.field.value;this.handleSubmitKeyword(e)}),t.querySelector("form")&&(t.querySelector("form").onsubmit=e=>e.preventDefault()),this.handleAutoFocus(this.field))}bindContainer(){this.boundFields=document.querySelectorAll(this.conf.selectorToBind);for(var e=0;e<this.boundFields.length;e++)this.addEventListenersToField(this.boundFields[e]),this.boundFields[e].form&&(this.boundFields[e].form.onsubmit=e=>{e.preventDefault()});if(this.conf.buttonSelector&&document.querySelector(this.conf.buttonSelector)){const e=document.querySelector(this.conf.buttonSelector);"submit"===e.type&&(e.type="button"),e.onclick=()=>{let e=this.boundFields[0].value;this.handleSubmitKeyword(e)}}1===this.boundFields.length&&this.handleAutoFocus(this.boundFields[0])}oninput(e){const t=this.reduxStore;let n=e.target.value;""===n&&this.matchAllQuery&&(n=wt),e.keyCode!==V&&e.keyCode!==z||t.dispatch((0,B.XD)(null,!1));const r=!0===this.conf.ignoreAutocomplete;t.dispatch((0,D.Ai)(n,r,this.conf.containerId)),t.dispatch((0,B.GA)()),!0===this.conf.searchAsYouType&&this.executeSearch(this.client,n,!0)}onkeyup(e){const t=this.reduxStore;e.keyCode===q?t.dispatch((0,B.C0)(B.Jd)):e.keyCode===G&&t.dispatch((0,B.C0)(B.il))}onkeypress(e){if(e.keyCode===U){const t=e.target.value;this.handleSubmitKeyword(t)}}onfocus(e){""===e.target.value&&(this.conf.onfocusAutocompleteMatchAllQuery?this.reduxStore.dispatch((0,D.Ai)(wt,!1)):this.warmupQueryCompleted||this.matchAllQuery||(this.executeSearch(this.client,kt+Math.random(),!1),this.warmupQueryCompleted=!0)),this.reduxStore.dispatch((0,B.GA)())}onblur(){this.reduxStore.getState().autocomplete.hideAutomatically&&this.reduxStore.dispatch((0,B.dC)())}}var Z=n(6351),Q=n(6873),Y=n.n(Q),W=n(303),J=n.n(W),X=n(2123),ee=n.n(X),te=n(4111),ne=n.n(te);class re{constructor(e,t,n){this.client=e,this.conf=n,this.reduxStore=t;const r=this.conf.template_resultcount||ee(),i=this.conf.template_image||ne();(0,E.bp)("numberOfResultsTemplate",r),(0,E.bp)("searchResultImageTemplate",i),(0,E.g3)("removeTrailingQueriesFromUrl",(e=>{if(e)return e.replace(/\?.*$/,"")}));const s=this.conf.categorySelectionFunction||E.GK;(0,E.g3)("selectCategory",(e=>s(e,this.conf.categoryAliases))),(0,l.A)(n.containerId)&&(0,c.G)(this.reduxStore,"search",(()=>this.render()))}render(){const e=this.reduxStore.getState().search,t=e.results||{};let n;if(t.resultcount=t.hits&&!1!==this.conf.showNumberOfResults,t.keyword=e.keyword,n=t.hits&&0===t.hits.length?this.conf.precompiledTemplateNoResults?this.conf.precompiledTemplateNoResults(t):this.conf.template_noresults?o().compile(this.conf.template_noresults)(t):J()(t):this.conf.precompiledTemplate?this.conf.precompiledTemplate(t):this.conf.template?o().compile(this.conf.template)(t):Y()(t),this.renderedHtml===n)return;const r=document.getElementById(this.conf.containerId);r.innerHTML=n,this.renderedHtml=n,this.conf.renderCompleteCallback&&"function"==typeof this.conf.renderCompleteCallback&&this.conf.renderCompleteCallback();const i=r.querySelectorAll("[data-analytics-click]");(0,Z.$P)(this.client,i,t)}}function ie(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}let se={async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null};function oe(e){se=e}const ae=/[&<>"']/,le=new RegExp(ae.source,"g"),ce=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,ue=new RegExp(ce.source,"g"),he={"&":"&","<":"<",">":">",'"':""","'":"'"},pe=e=>he[e];function de(e,t){if(t){if(ae.test(e))return e.replace(le,pe)}else if(ce.test(e))return e.replace(ue,pe);return e}const fe=/(^|[^\[])\^/g;function ge(e,t){let n="string"==typeof e?e:e.source;t=t||"";const r={replace:(e,t)=>{let i="string"==typeof t?t:t.source;return i=i.replace(fe,"$1"),n=n.replace(e,i),r},getRegex:()=>new RegExp(n,t)};retur