diff --git a/static/css/full-search.css b/static/css/full-search.css new file mode 100644 index 0000000..23a8d3d --- /dev/null +++ b/static/css/full-search.css @@ -0,0 +1,418 @@ +.search-dashboard { + margin: 0px; + padding: 0px; + display: flex; + flex-direction: column; +} + +.refinements-panel h2, +.refinements-panel p { + padding: 0px; + margin: 0px; +} +.refinements-panel p { + color : silver; + font-size: 12px; +} + +#clear-refinements { + margin-bottom: 20px; +} + +.ais-ClearRefinements-button { + font-size: 16px; + height: 40px; + width: 100%; + margin: 0px; + font-family: 'main', sans-serif; + color: white; + background-color: #0094ff; + box-shadow: 2px 2px 1px black; + border-radius: 4px; + padding: 10px; + cursor: pointer; + text-transform: uppercase; + border: none; +} + +.ais-ClearRefinements-button:hover { + background: lightblue; + color: #0094ff; + text-decoration: none; + box-shadow: none; +} + +.ais-ClearRefinements-button--disabled { + text-align: center; + padding: 10px; + border: 2px solid silver; + border-radius: 4px; + text-transform: uppercase; + color: silver; + background: transparent; + box-shadow: none; +} + +.ais-ClearRefinements-button--disabled:hover { + background: transparent; + color: silver; +} + +.search-refinement-list { + margin: 20px 0px; + border-bottom: 2px solid black; +} + +#searchbox { + width: 100%; + margin-top: 20px; + margin-bottom: 20px; + margin-left: auto; + margin-right: auto; +} + +.ais-SearchBox, +.ais-ClearRefinements-button { + max-width: 600px; +} + +.search-results-container { + display: flex; + flex-direction: column; +} + +.ais-SearchBox-form { + display: flex; + flex-wrap: nowrap; + justify-content: center; + align-items: center; +} + +.ais-SearchBox-input { + width: 100%; + height: 40px; + padding: 10px; + border: 2px solid #0094ff; + border-radius: 4px; + font-family: 'main', sans-serif; + font-size: 16px; +} + +.ais-SearchBox-input::placeholder { + font-family: 'main', sans-serif; + font-size: 16px; +} + +.ais-SearchBox-form input:focus-visible { + outline: none; +} + +.ais-SearchBox-submitIcon, +.ais-SearchBox-submit, +.ais-SearchBox-reset { + display: none; +} + +.ais-RefinementList-list { + list-style: none; + padding: 0px; + margin: 0px 0px 40px 0px; + display: flex; + flex-direction: row; + width: 100%; + overflow: scroll; +} + +.ais-RefinementList-label { + display: flex; + align-items: center ; + width: max-content; + margin-right: 6px; +} + +.ais-RefinementList-label > span { + padding: 0px 2px; +} + +.ais-RefinementList-checkbox { + width: 30px; + height: 30px; + margin: 0px; +} + +.search-hits-panel { + width: -webkit-fill-available; +} + +#hits { + width: 100%; + min-width: 350px; + display: flex; + flex-direction: column; +} + +.ais-Hits-list { + padding: 0px; + margin: 0px; + display: flex; + flex-direction: column; + list-style: none; +} + +.ais-Hits-item { + margin: 12px 0px 12px 0px; + max-height: 400px; + border: 2px #0094ff solid; + border-radius: 4px; + overflow: hidden; + display: flex; + flex-direction: column; + box-shadow: 3px 3px 3px black; +} + +.ais-Hits-item:hover { + border-color: lightblue; + box-shadow: none; +} + +#pagination { + display: block; + margin: 40px 0px 40px 0px; + overflow: auto; + width: 100%; +} + +.ais-Pagination-list { + list-style: none; + padding: 0px; + margin: 0px; + display: flex; + justify-content: center; + align-items: center; +} + +.ais-Pagination-item { + margin: 0px; + display: flex; + justify-content: center; + align-items: center; + max-width: 64px; + height: 50px; +} + +/* Hack to change content of pagination links +================================================================================ +https://stackoverflow.com/questions/48907242/how-can-i-remove-and-replace-content-in-a-html-tag-using-css + +Because Meilsearch adds the pagination stuff via JavaScript, I can't set the +contents of the various HTML elements via the djula templates. This means I have +to update the content after it's loaded. I didn't want to do this via JavaScript +because I want to keep the JavaScript to a minimum. So, to fix the problem, I +came across a hack (see Stack Overflow URL above). You need to change the +visibility (to hidden) of the element(s) you want to change and then use the +'content' property to set the new text value. When that is done, you adjust the +element's visibility back to 'visible'. + +I ACKNOWLEDGE THIS IS JACKY BUT IT WORKS. +*/ + +.ais-Pagination-item--firstPage a, +.ais-Pagination-item--previousPage a, +.ais-Pagination-item--nextPage a { + visibility: hidden; +} + +/* Meilisearch not designed for extended pagination use (disabled 'Last' link) +================================================================================ +https://github.com/meilisearch/documentation/issues/561 +Meilisearch adds a 'Last Page' link with its built-in pagination features. With +that said, the people developing the project acknowledge Meilisearch's +pagination features are limited. They recommend on not using or relying on it +too much. See the URL above for more information. + +Whilst developing this part of the site, I found the 'Last Page' link was +behaving inconsistently. You would click the link and it would jump ahead +(I.E. more than one page) but it took several clicks to get to the 'final/last +page'. Because of that, I've just turned it off by hiding it with the +style-rule below. Again, see URL above for more info. on this behaviour. +*/ + +.ais-Pagination-item.ais-Pagination-item--lastPage { + display: none; +} + +.ais-Pagination-item--firstPage.ais-Pagination-item--disabled span, +.ais-Pagination-item--previousPage.ais-Pagination-item--disabled span, +.ais-Pagination-item--nextPage.ais-Pagination-item--disabled span { + visibility: hidden; +} + +/* The new text is set here: See 'Hack to change content of pagination links' + note above for more information. */ +.ais-Pagination-item--firstPage.ais-Pagination-item--disabled span:before { + content: "First"; + visibility: visible; +} + +.ais-Pagination-item--previousPage.ais-Pagination-item--disabled span:before { + content: "Prev."; + visibility: visible; +} +.ais-Pagination-item--nextPage.ais-Pagination-item--disabled span:before { + content: "Next"; + visibility: visible; + margin-left: 8px; +} + +.ais-Pagination-item--firstPage.ais-Pagination-item--disabled span:before, +.ais-Pagination-item--previousPage.ais-Pagination-item--disabled span:before, +.ais-Pagination-item--nextPage.ais-Pagination-item--disabled span:before { + width: 70px; + height: 39px; + text-transform: uppercase; + border: 2px solid silver; + border-radius: 4px; + text-align: center; + padding: 8px; + color: silver; +} + +.ais-Pagination-item--firstPage a:before { + content: "First"; + visibility: visible; +} + +.ais-Pagination-item--previousPage a:before { + content: "Prev."; + visibility: visible; +} + +.ais-Pagination-item--nextPage a:before { + content: "Next"; + visibility: visible; + margin-left: 8px; +} + +.ais-Pagination-item--firstPage a:link::before, +.ais-Pagination-item--previousPage a:link::before, +.ais-Pagination-item--nextPage a:link::before { + width: 100%; + height: 39px; + text-transform: uppercase; + background: #0094ff; + color: white; + border: 2px solid #0094ff; + border-radius: 4px; + text-align: center; + padding: 8px; + text-decoration: none; + box-shadow: 2px 2px 3px black; +} + +.ais-Pagination-item--page a:link { + background: #0094ff; + color: white; + padding: 10px; + border-radius: 4px; + text-transform: uppercase; + text-decoration: none; + margin: 0px 2px; + box-shadow: 2px 2px 3px black; +} + +.ais-Pagination-item--selected a:link, +.ais-Pagination-item--selected a:hover { + background: silver !important; + color: white; + box-shadow: none; +} + +.ais-Pagination-item--page a:hover { + background: lightblue; + text-decoration: none; + box-shadow: none; +} + +.ais-Pagination-item--firstPage a:hover::before, +.ais-Pagination-item--previousPage a:hover::before, +.ais-Pagination-item--nextPage a:hover::before { + background: lightblue; + border: 2px solid lightblue; + border-radius: 4px; + text-align: center; + color: #0094ff; + box-shadow: none; +} + +.ais-Pagination-item--firstPage a:hover, +.ais-Pagination-item--previousPage a:hover, +.ais-Pagination-item--nextPage a:hover { + text-decoration: none !important; +} + +@media (min-width:600px) { + .ais-ClearRefinements-button { + max-width: 200px; + } +} + +@media (min-width:961px) { + .search-results-container { + flex-direction: row; + } + + .refinements-panel { + max-width: 300px; + width: 100%; + margin-right: 20px; + } + + .ais-RefinementList-list { + font-size: 12px; + flex-direction: column; + overflow: auto; + } + + .ais-RefinementList-item { + margin: 2px 0px; + } + + .ais-RefinementList-checkbox { + width: 20px; + margin-right: 4px; + } + + #hits { + flex-direction: row; + flex-wrap: wrap; + } + + .ais-Hits-list { + padding: 0px; + margin: 0px; + display: flex; + flex-direction: row; + flex-wrap: wrap; + list-style: none; + } + + .ais-Hits-item { + width: 200px; + height: 280px; + margin: 12px; + height: 100%; + display: flex; + flex-direction: column; + } + + .ais-Hits-item .ui-link-card .ui-card-text { + height: 75px; + /* white-space: nowrap; */ + text-overflow: ellipsis; + } + + .ais-Hits-item .ui-link-card .ui-card-text .ui-card-secondary { + text-overflow: ellipsis; + } + +} diff --git a/static/css/search.css b/static/css/search.css new file mode 100644 index 0000000..ba2ebde --- /dev/null +++ b/static/css/search.css @@ -0,0 +1,121 @@ +.ui-search-container { + margin: 0px; + display: flex; + position: abosolute; + flex-direction: column; + align-items: center; + height: 120px; + border-bottom: 2px solid black; +} + +#searchbox { + position: relative; + top: 40px; + width: 100%; + max-width: 600px; +} + +.ais-SearchBox-form { + display: flex; + flex-wrap: nowrap; + justify-content: center; + align-items: center; +} + +.ais-SearchBox-input { + width: 100%; + height: 40px; + padding: 10px; + border: 2px solid #0094ff; + border-radius: 4px 4px 0px 0px; + font-family: 'main', sans-serif; + font-size: 16px; +} + +.ais-SearchBox-input::placeholder { + font-family: 'main', sans-serif; + font-size: 16px; +} + +.ais-SearchBox-form input:focus-visible { + outline: none; +} + +.ais-SearchBox-submit { + font-size: 16px; + height: 40px; + margin: 0px; + font-family: 'main', sans-serif; + color: white; + background-color: #0094ff; + border-radius: 4px; + padding: 10px; + cursor: pointer; + text-transform: uppercase; + border: none; +} + +.ais-SearchBox-submitIcon, +.ais-SearchBox-submit, +.ais-SearchBox-reset, +#hits { + display: none; +} + +#hits { + position: relative; + top:40px; + background: white; + width: calc(100% - 4px); + max-width: calc(600px - 4px); + border-right: 2px solid #0094ff; + border-bottom: 2px solid #0094ff; + border-left: 2px solid #0094ff; + border-radius: 0px 0px 4px 4px; +} + +.ais-Hits-list { + list-style: none; + padding: 0px 2px; + margin: 0px; +} + +.ais-Hits-list:first-child { + display: flex; + flex-wrap: nowrap; + flex-direction: column; + justify-content: flex-start; +} + + +.ais-Hits-item { + margin: 4px 0px 0px 0px; +} + +.ui-link-search-card { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + width: 100%; +} + +.ui-link-search-card:link { + text-decoration: none; + float: left; + border-radius: 0px; + padding: 4px 0px; +} + +.ui-link-search-card img { + width: 30px; + height: 30px; + display: inline; + float: left; + padding: 0px 6px; +} + +.ui-link-search-card span { + vertical-align: middle; +} + + diff --git a/static/js/full-search.js b/static/js/full-search.js new file mode 100644 index 0000000..76e1abf --- /dev/null +++ b/static/js/full-search.js @@ -0,0 +1,97 @@ +/** +Full Search +================================================================================ +This file's main focus in providing the Meilisearch features to the +search/index.html template. + +For more information on Meilisearch, use: + +- https://docs.meilisearch.com/ +- https://github.com/meilisearch/instant-meilisearch + +Meilisearch provides an 'InstantSearch' add-on (plug-in?) which +links the Meilisearch instance you have running to this website (link above for +more information). +*/ + +let server = ""; +let apiKey = ""; + +if (location.hostname === "localhost" + || location.hostname === "127.0.0.1" + || location.hostname === "beta.nera.com") { + server = "http://localhost:7700"; + apiKey= "meilisearch-beta-key"; +} else { + server = "https://www.nera.net"; + apiKey = "meilisearch-production-key-nera"; +} + +const search = instantsearch({ + indexName: "nera", + searchClient: instantMeiliSearch( + server, + apiKey, + { + primaryKey: 'id', + } + ) +}); + +search.addWidgets([ + instantsearch.widgets.searchBox({ + container: "#searchbox", + placeholder: "Search...", + }), + instantsearch.widgets.clearRefinements({ + container: "#clear-refinements" + }), + instantsearch.widgets.refinementList({ + container: "#year-list", + attribute: "year" + }), + instantsearch.widgets.refinementList({ + container: "#month-list", + attribute: "month" + }), + instantsearch.widgets.refinementList({ + container: "#keywords-list", + attribute: "keywords" + }), + instantsearch.widgets.configure({ + hitsPerPage: 30, + snippetEllipsisText: "...", + attributesToSnippet: ["title:100"] + }), + instantsearch.widgets.hits({ + container: "#hits", + templates: { + item: ` + +
+ +
+ +{{#helpers.highlight}}{"attribute": "title"}{{/helpers.highlight}} + + +{{#helpers.highlight}}{"attribute": "year"}{{/helpers.highlight}} + + +{{#helpers.highlight}}{"attribute": "month"}{{/helpers.highlight}} + + +{{keywords}} + +
+
+
+ ` + } + }), + instantsearch.widgets.pagination({ + container: "#pagination" + }) +]); + +search.start(); diff --git a/static/js/instant-meilisearch-0.8.0.js b/static/js/instant-meilisearch-0.8.0.js new file mode 100644 index 0000000..1e03c00 --- /dev/null +++ b/static/js/instant-meilisearch-0.8.0.js @@ -0,0 +1,29 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).window=t.window||{})}(this,(function(t){"use strict"; +/*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */var e=function(){return(e=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]-1};function c(t){if("string"!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(t))throw new TypeError("Invalid character in header field name");return t.toLowerCase()}function h(t){return"string"!=typeof t&&(t=String(t)),t}function l(t){var e={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return r&&(e[Symbol.iterator]=function(){return e}),e}function d(t){this.map={},t instanceof d?t.forEach((function(t,e){this.append(e,t)}),this):Array.isArray(t)?t.forEach((function(t){this.append(t[0],t[1])}),this):t&&Object.getOwnPropertyNames(t).forEach((function(e){this.append(e,t[e])}),this)}function f(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function p(t){return new Promise((function(e,n){t.onload=function(){e(t.result)},t.onerror=function(){n(t.error)}}))}function v(t){var e=new FileReader,n=p(e);return e.readAsArrayBuffer(t),n}function y(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function b(){return this.bodyUsed=!1,this._initBody=function(t){var e;this._bodyInit=t,t?"string"==typeof t?this._bodyText=t:i&&Blob.prototype.isPrototypeOf(t)?this._bodyBlob=t:o&&FormData.prototype.isPrototypeOf(t)?this._bodyFormData=t:n&&URLSearchParams.prototype.isPrototypeOf(t)?this._bodyText=t.toString():s&&i&&((e=t)&&DataView.prototype.isPrototypeOf(e))?(this._bodyArrayBuffer=y(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):s&&(ArrayBuffer.prototype.isPrototypeOf(t)||a(t))?this._bodyArrayBuffer=y(t):this._bodyText=t=Object.prototype.toString.call(t):this._bodyText="",this.headers.get("content-type")||("string"==typeof t?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):n&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},i&&(this.blob=function(){var t=f(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?f(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(v)}),this.text=function(){var t,e,n,r=f(this);if(r)return r;if(this._bodyBlob)return t=this._bodyBlob,e=new FileReader,n=p(e),e.readAsText(t),n;if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),n=new Array(e.length),r=0;r-1?r:n),this.mode=e.mode||this.mode||null,this.signal=e.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&i)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(i)}function m(t){var e=new FormData;return t.trim().split("&").forEach((function(t){if(t){var n=t.split("="),r=n.shift().replace(/\+/g," "),i=n.join("=").replace(/\+/g," ");e.append(decodeURIComponent(r),decodeURIComponent(i))}})),e}function x(t,e){e||(e={}),this.type="default",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in e?e.statusText:"OK",this.headers=new d(e.headers),this.url=e.url||"",this._initBody(t)}w.prototype.clone=function(){return new w(this,{body:this._bodyInit})},b.call(w.prototype),b.call(x.prototype),x.prototype.clone=function(){return new x(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new d(this.headers),url:this.url})},x.error=function(){var t=new x(null,{status:0,statusText:""});return t.type="error",t};var T=[301,302,303,307,308];x.redirect=function(t,e){if(-1===T.indexOf(e))throw new RangeError("Invalid status code");return new x(null,{status:e,headers:{location:t}})},e.DOMException=t.DOMException;try{new e.DOMException}catch(t){e.DOMException=function(t,e){this.message=t,this.name=e;var n=Error(t);this.stack=n.stack},e.DOMException.prototype=Object.create(Error.prototype),e.DOMException.prototype.constructor=e.DOMException}function R(t,n){return new Promise((function(r,o){var s=new w(t,n);if(s.signal&&s.signal.aborted)return o(new e.DOMException("Aborted","AbortError"));var u=new XMLHttpRequest;function a(){u.abort()}u.onload=function(){var t,e,n={status:u.status,statusText:u.statusText,headers:(t=u.getAllResponseHeaders()||"",e=new d,t.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach((function(t){var n=t.split(":"),r=n.shift().trim();if(r){var i=n.join(":").trim();e.append(r,i)}})),e)};n.url="responseURL"in u?u.responseURL:n.headers.get("X-Request-URL");var i="response"in u?u.response:u.responseText;r(new x(i,n))},u.onerror=function(){o(new TypeError("Network request failed"))},u.ontimeout=function(){o(new TypeError("Network request failed"))},u.onabort=function(){o(new e.DOMException("Aborted","AbortError"))},u.open(s.method,s.url,!0),"include"===s.credentials?u.withCredentials=!0:"omit"===s.credentials&&(u.withCredentials=!1),"responseType"in u&&i&&(u.responseType="blob"),s.headers.forEach((function(t,e){u.setRequestHeader(e,t)})),s.signal&&(s.signal.addEventListener("abort",a),u.onreadystatechange=function(){4===u.readyState&&s.signal.removeEventListener("abort",a)}),u.send(void 0===s._bodyInit?null:s._bodyInit)}))}R.polyfill=!0,t.fetch||(t.fetch=R,t.Headers=d,t.Request=w,t.Response=x),e.Headers=d,e.Request=w,e.Response=x,e.fetch=R,Object.defineProperty(e,"__esModule",{value:!0})}({})}("undefined"!=typeof self?self:o)}));var u=s((function(t,e){!function(t){ +/*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ +var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])})(t,n)};function n(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}var r=function(){return(r=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0)for(var n in t){e[n]||(e[n]={});for(var r=0,i=t[n];rr&&e>Math.PI&&r<-Math.PI?(d+=Math.PI,l+=Math.PI):(d=p(d),l=p(l)),Math.abs(u)l.paginationTotalHits?e.limit=l.paginationTotalHits:e.limit=d}var f=t.sort;(null==f?void 0:f.length)&&(e.sort=[f]);var p=y(function(t){var e={},n=t.aroundLatLng,r=t.aroundLatLngViaIP,i=t.aroundRadius,o=t.aroundPrecision,s=t.minimumAroundRadius,u=t.insideBoundingBox,a=t.insidePolygon;return n&&(e.aroundLatLng=n),r&&console.warn("instant-meilisearch: `aroundLatLngViaIP` is not supported."),i&&(e.aroundRadius=i),o&&console.warn("instant-meilisearch: `aroundPrecision` is not supported.\n See this discussion to track its implementation https://github.com/meilisearch/product/discussions/264"),s&&(e.minimumAroundRadius=s),u&&(e.insideBoundingBox=u),a&&console.warn("instant-meilisearch: `insidePolygon` is not implented in instant-meilisearch."),e}(t));return(null==p?void 0:p.filter)&&(e.filter?e.filter.unshift(p.filter):e.filter=[p.filter]),e}function x(t){return"string"==typeof t?t:void 0===t?JSON.stringify(null):JSON.stringify(t)}function T(t){return Array.isArray(t)?t.map((function(t){return T(t)})):"object"!=typeof(e=t)||Array.isArray(e)||null===e?{value:x(t)}:Object.keys(t).reduce((function(e,n){return e[n]=T(t[n]),e}),{});var e}function R(t,e,n){var r=e.primaryKey,i=n.hitsPerPage,o=function(t,e,n){if(n<0)throw new TypeError('Value too small for "hitsPerPage" parameter, expected integer between 0 and 9223372036854775807');var r=e*n;return t.slice(r,r+n)}(t,n.page,i).map((function(t){if(Object.keys(t).length>0){var e=t._formatted;t._matchesPosition;var n=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(t);i0?Math.ceil(r/i):0),a=R(t.hits,n,s),c=t.estimatedTotalHits,h=t.processingTimeMs,l=t.query,d=s.hitsPerPage,f=s.page;return{results:[e({index:n.indexUid,hitsPerPage:d,page:f,facets:o,nbPages:u,nbHits:c,processingTimeMS:h,query:l,hits:a,params:"",exhaustiveNbHits:!1},{})]}}function k(t){void 0===t&&(t={});var e=t;return{getEntry:function(t){if(e[t])try{return JSON.parse(e[t])}catch(n){return e[t]}},formatKey:function(t){return t.reduce((function(t,e){return t+JSON.stringify(e)}),"")},setEntry:function(t,n){e[t]=JSON.stringify(n)}}}t.instantMeiliSearch=function(t,i,o){void 0===i&&(i=""),void 0===o&&(o={});var s=f(k()),a={},c=function(t){void 0===t&&(t=[]);var e="Meilisearch instant-meilisearch (v".concat("0.8.0",")");return t.concat(e)}(o.clientAgents),h=new u.MeiliSearch({host:t,apiKey:i,clientAgents:c});return{search:function(t){return n(this,void 0,void 0,(function(){var n,i,u,c,l;return r(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),n=t[0],i=function(t,n,r){var i=t.indexName.split(":"),o=i[0],s=i.slice(1),u=t.params,a=function(t){var e=t.paginationTotalHits,n=t.hitsPerPage;return{paginationTotalHits:null!=e?e:200,hitsPerPage:void 0===n?20:n,page:t.page||0}}({paginationTotalHits:n.paginationTotalHits,hitsPerPage:null==u?void 0:u.hitsPerPage,page:null==u?void 0:u.page});return e(e(e({},n),u),{sort:s.join(":")||"",indexUid:o,pagination:a,defaultFacetDistribution:r,placeholderSearch:!1!==n.placeholderSearch,keepZeroFacets:!!n.keepZeroFacets,finitePagination:!!n.finitePagination})}(n,o,a),u=m(i),[4,s.searchResponse(i,u,h)];case 1:return c=r.sent(),a=function(t,e){return""===e.query&&0===Object.keys(t).length?e.facetDistribution:t}(a,c),[2,A(c,i)];case 2:throw l=r.sent(),console.error(l),new Error(l);case 3:return[2]}}))}))},searchForFacetValues:function(t){return n(this,void 0,void 0,(function(){return r(this,(function(t){switch(t.label){case 0:return[4,new Promise((function(t,e){e(new Error("SearchForFacetValues is not compatible with Meilisearch")),t([])}))];case 1:return[2,t.sent()]}}))}))}}},Object.defineProperty(t,"__esModule",{value:!0})})); +//# sourceMappingURL=instant-meilisearch.umd.min.js.map diff --git a/static/js/instantsearch-4.43.1.js b/static/js/instantsearch-4.43.1.js new file mode 100644 index 0000000..6205bad --- /dev/null +++ b/static/js/instantsearch-4.43.1.js @@ -0,0 +1,3 @@ +/*! InstantSearch.js 4.43.1 | © Algolia, Inc. and contributors; MIT License | https://github.com/algolia/instantsearch.js */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).instantsearch=t()}(this,function(){"use strict";function f(e){return(f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function C(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n "},_getHierarchicalRootPath:function(e){return e.rootPath||null},_getHierarchicalShowParentLevel:function(e){return"boolean"!=typeof e.showParentLevel||e.showParentLevel},getHierarchicalFacetByName:function(t){return g(this.hierarchicalFacets,function(e){return e.name===t})},getHierarchicalFacetBreadcrumb:function(e){if(!this.isHierarchicalFacet(e))return[];var t=this.getHierarchicalRefinement(e)[0];if(!t)return[];var n=this._getHierarchicalFacetSeparator(this.getHierarchicalFacetByName(e));return t.split(n).map(function(e){return e.trim()})},toString:function(){return JSON.stringify(this,null,2)}};var _=w;function x(e,t){if(e!==t){var n=void 0!==e,r=null===e,i=void 0!==t,a=null===t;if(!a&&t=i.length?r:"desc"===i[n]?-r:r}return e.index-t.index}),t.map(function(e){return e.value})};var e=function(e){return"string"!=typeof e?e:String(e).replace(/^-/,"\\-")},A=function(e){return"string"!=typeof e?e:e.replace(/^\\-/,"-")},H=function(d){return function(e,t){var n=d.hierarchicalFacets[t],r=d.hierarchicalFacetsRefinements[n.name]&&d.hierarchicalFacetsRefinements[n.name][0]||"",i=d._getHierarchicalFacetSeparator(n),a=d._getHierarchicalRootPath(n),s=d._getHierarchicalShowParentLevel(n),o=F(d._getHierarchicalFacetSortBy(n)),c=e.every(function(e){return e.exhaustive}),u=function(o,c,u,l,d){return function(e,n,t){var r=e;if(0n&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},X.prototype.once=function(e,t){if(!Z(t))throw TypeError("listener must be a function");var n=!1;function r(){this.removeListener(e,r),n||(n=!0,t.apply(this,arguments))}return r.listener=t,this.on(e,r),this},X.prototype.removeListener=function(e,t){var n,r,i,a;if(!Z(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(i=(n=this._events[e]).length,r=-1,n===t||Z(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(ee(n)){for(a=i;0":7,"=":8,_v:9,"{":10,"&":11,_t:12},S.scan=function(e,t){var n,r,i,a,s,o=e.length,c=0,u=null,l=null,d="",h=[],f=!1,m=0,p=0,g="{{",v="}}";function y(){0"==n.tag&&(n.indent=h[r].text.toString()),h.splice(r,1));else t||h.push({tag:"\n"});f=!1,p=h.length}for(t&&(t=t.split(" "),g=t[0],v=t[1]),m=0;m":m,"<":function(e,t){var n={partials:{},code:"",subs:{},inPartial:!0};S.walk(e.nodes,n);var r=t.partials[m(e,t)];r.subs=n.subs,r.partials=n.partials},$:function(e,t){var n={subs:{},code:"",partials:t.partials,prefix:e.n};S.walk(e.nodes,n),t.subs[e.n]=n.code,t.inPartial||(t.code+='t.sub("'+h(e.n)+'",c,p,i);')},"\n":function(e,t){t.code+=p('"\\n"'+(e.last?"":" + i"))},_v:function(e,t){t.code+="t.b(t.v(t."+f(e.n)+'("'+h(e.n)+'",c,p,0)));'},_t:function(e,t){t.code+=p('"'+h(e.text)+'"')},"{":e,"&":e},S.walk=function(e,t){for(var n,r=0,i=e.length;r/g,i=/\'/g,a=/\"/g,s=/[&<>\"\']/;function o(e){return String(null==e?"":e)}var d=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}}(t)});_e.Template=Pe.Template,_e.template=_e.Template;var xe=_e;function Ne(e){var t=e.templates,n=e.templateKey,r=e.compileOptions,i=e.helpers,a=e.data,s=e.bindEvent,o=t[n];if("string"!=typeof o&&"function"!=typeof o)throw new Error("Template must be 'string' or 'function', was '".concat(f(o),"' (key: ").concat(n,")"));if("function"==typeof o)return o(a,s);var c=function(e,t,n){var r=0":">",'"':""","'":"'"},Ue=/[&<>"']/g,qe=RegExp(Ue.source);var Qe={"&":"&","<":"<",">":">",""":'"',"'":"'"},Ve=/&(amp|quot|lt|gt|#39);/g,$e=RegExp(Ve.source);var Ke={highlightPreTag:"__ais-highlight__",highlightPostTag:"__/ais-highlight__"},ze={highlightPreTag:"",highlightPostTag:""};function Je(e){return function(e){return e&&qe.test(e)?e.replace(Ue,function(e){return Be[e]}):e}(e).replace(new RegExp(Ke.highlightPreTag,"g"),ze.highlightPreTag).replace(new RegExp(Ke.highlightPostTag,"g"),ze.highlightPostTag)}function Ye(n){return Ae(n)&&"string"!=typeof n.value?Object.keys(n).reduce(function(e,t){return W(W({},e),{},k({},t,Ye(n[t])))},{}):Array.isArray(n)?n.map(Ye):W(W({},n),{},{value:Je(n.value)})}function Xe(e){return void 0===e.__escaped&&((e=e.map(function(e){var t=h({},e);return t._highlightResult&&(t._highlightResult=Ye(t._highlightResult)),t._snippetResult&&(t._snippetResult=Ye(t._snippetResult)),t})).__escaped=!0),e}function Ge(e){var t=ze.highlightPreTag,n=ze.highlightPostTag;return e.map(function(e){return e.isHighlighted?t+e.value+n:e.value}).join("")}function Ze(e){var n=ze.highlightPostTag,t=ze.highlightPreTag,r=e.split(t),i=r.shift(),a=i?[{value:i,isHighlighted:!1}]:[];return r.forEach(function(e){var t=e.split(n);a.push({value:t[0],isHighlighted:!0}),""!==t[1]&&a.push({value:t[1],isHighlighted:!1})}),a}var et=new RegExp(/\w/i);function tt(e,t){var n,r,i=e[t],a=(null===(n=e[t+1])||void 0===n?void 0:n.isHighlighted)||!0,s=(null===(r=e[t-1])||void 0===r?void 0:r.isHighlighted)||!0;return et.test(function(e){return e&&$e.test(e)?e.replace(Ve,function(e){return Qe[e]}):e}(i.value))||s!==a?i.isHighlighted:s}function nt(n){return n.some(function(e){return e.isHighlighted})?n.map(function(e,t){return W(W({},e),{},{isHighlighted:!tt(n,t)})}):n.map(function(e){return W(W({},e),{},{isHighlighted:!1})})}function rt(e,t){return e.setQueryParameters({hierarchicalFacets:t.hierarchicalFacets.reduce(function(e,t){var n=function(e,t){if(!Array.isArray(e))return-1;for(var n=0;n')).replace(new RegExp(ze.highlightPostTag,"g"),""))}var Et=Ft("ReverseHighlight");function kt(e){var t=e.attribute,n=e.highlightedTagName,r=void 0===n?"mark":n,i=e.hit,a=e.cssClasses,s=void 0===a?{}:a,o=(Me(i._highlightResult,t)||{}).value,c=void 0===o?"":o,u=Et({descendantName:"highlighted"})+(s.highlighted?" ".concat(s.highlighted):"");return Ge(nt(Ze(c))).replace(new RegExp(ze.highlightPreTag,"g"),"<".concat(r,' class="').concat(u,'">')).replace(new RegExp(ze.highlightPostTag,"g"),""))}var Lt=Ft("Snippet");function jt(e){var t=e.attribute,n=e.highlightedTagName,r=void 0===n?"mark":n,i=e.hit,a=e.cssClasses,s=void 0===a?{}:a,o=(Me(i._snippetResult,t)||{}).value,c=void 0===o?"":o,u=Lt({descendantName:"highlighted"})+(s.highlighted?" ".concat(s.highlighted):"");return c.replace(new RegExp(ze.highlightPreTag,"g"),"<".concat(r,' class="').concat(u,'">')).replace(new RegExp(ze.highlightPostTag,"g"),""))}var Mt=Ft("ReverseSnippet");function Ot(e){var t=e.attribute,n=e.highlightedTagName,r=void 0===n?"mark":n,i=e.hit,a=e.cssClasses,s=void 0===a?{}:a,o=(Me(i._snippetResult,t)||{}).value,c=void 0===o?"":o,u=Mt({descendantName:"highlighted"})+(s.highlighted?" ".concat(s.highlighted):"");return Ge(nt(Ze(c))).replace(new RegExp(ze.highlightPreTag,"g"),"<".concat(r,' class="').concat(u,'">')).replace(new RegExp(ze.highlightPostTag,"g"),""))}function At(e,t){return function(e){var t,n=e.method,r=e.payload;if("object"!==f(r))throw new Error("The insights helper expects the payload to be an object.");try{t=ht(r)}catch(e){throw new Error("Could not JSON serialize the payload object.")}return'data-insights-method="'.concat(n,'" data-insights-payload="').concat(t,'"')}({method:e,payload:t})}function Ht(){return function(e){for(var t="".concat(e,"="),n=document.cookie.split(";"),r=0;r>6]+Zt[128|63&c]:c<55296||57344<=c?s+=Zt[224|c>>12]+Zt[128|c>>6&63]+Zt[128|63&c]:(o+=1,c=65536+((1023&c)<<10|1023&a.charCodeAt(o)),s+=Zt[240|c>>18]+Zt[128|c>>12&63]+Zt[128|c>>6&63]+Zt[128|63&c])}return s},isBuffer:function(e){return!(!e||"object"!=typeof e)&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},maybeMap:function(e,t){if(Gt(e)){for(var n=[],r=0;r=":return"≥";case"<=":return"≤";default:return e}}(e.operator)," ").concat(e.name):e.name,r={attribute:e.attribute,type:e.type,value:t,label:n};return void 0!==e.operator&&(r.operator=e.operator),void 0!==e.count&&(r.count=e.count),void 0!==e.exhaustive&&(r.exhaustive=e.exhaustive),r}function Tn(N,e){var I=1 ":t,n=e.rootPath,l=void 0===n?null:n,r=e.showParentLevel,h=void 0===r||r,i=e.limit,f=void 0===i?10:i,a=e.showMore,m=void 0!==a&&a,s=e.showMoreLimit,p=void 0===s?20:s,o=e.sortBy,g=void 0===o?Ln:o,v=e.transformItems,y=void 0===v?function(e){return e}:v;if(!c||!Array.isArray(c)||0===c.length)throw new Error(kn("The `attributes` option expects an array of strings."));if(!0===m&&p<=f)throw new Error(kn("The `showMoreLimit` option must be greater than `limit`."));var b,S,R=D(c,1)[0],w=function(){};function _(){w()}var P=!1;function x(){return P?p:f}return{$$type:"ais.hierarchicalMenu",init:function(e){var t=e.instantSearchInstance;N(W(W({},this.getWidgetRenderState(e)),{},{instantSearchInstance:t}),!0)},render:function(e){var t=e.instantSearchInstance;w=function(e,t){return function(){P=!P,t.render(e)}}(e,this),N(W(W({},this.getWidgetRenderState(e)),{},{instantSearchInstance:t}),!1)},dispose:function(e){var t=e.state;return I(),t.removeHierarchicalFacet(R).setQueryParameter("maxValuesPerFacet",void 0)},getRenderState:function(e,t){return W(W({},e),{},{hierarchicalMenu:W(W({},e.hierarchicalMenu),{},k({},R,this.getWidgetRenderState(t)))})},getWidgetRenderState:function(e){var t=e.results,n=e.state,r=e.createURL,i=e.instantSearchInstance,a=e.helper,s=[],o=!1;if(b=b||dt({instantSearchInstance:i,helper:a,attribute:R,widgetType:this.$$type}),S=S||function(e){b("click",e),a.toggleFacetRefinement(R,e).search()},t){var c=t.getFacetValues(R,{sortBy:g,facetOrdering:g===Ln}),u=c&&!Array.isArray(c)&&c.data?c.data:[],l=(n.maxValuesPerFacet||0)>x()?u.length<=x():u.lengthR()),a=v(c.slice(0,R()).map(function(e){var t=e.name,n=e.escapedValue;e.path;return W(W({},j(e,["name","escapedValue","path"])),{},{label:t,value:n})}),{results:t})}return{items:a,createURL:d,refine:h,sendEvent:l,canRefine:0="]&&n[">="][0]||"",a=n["<="]&&n["<="][0]||"";return""===i&&""===a?e:W(W({},e),{},{numericMenu:W(W({},e.numericMenu),{},k({},u,"".concat(i,":").concat(a)))})},getWidgetSearchParameters:function(e,t){var n=t.uiState,r=n.numericMenu&&n.numericMenu[u],i=e.clearRefinements(u);if(!r)return i.setQueryParameters({numericRefinements:W(W({},i.numericRefinements),{},k({},u,{}))});if(-1===r.indexOf(":"))return i.addNumericRefinement(u,"=",Number(r));var a=D(r.split(":").map(parseFloat),2),s=a[0],o=a[1],c=Oe(s)?i.addNumericRefinement(u,">=",s):i;return Oe(o)?c.addNumericRefinement(u,"<=",o):c},getRenderState:function(e,t){return W(W({},e),{},{numericMenu:W(W({},e.numericMenu),{},k({},u,this.getWidgetRenderState(t)))})},getWidgetRenderState:function(e){var t=e.results,n=e.state,r=e.instantSearchInstance,i=e.helper,a=e.createURL;return l.refine||(l.refine=function(e){var t=Cr(i.state,u,e);l.sendEvent("click",e),i.setState(t).search()}),l.createURL||(l.createURL=function(t){return function(e){return a(Cr(t,u,e))}}),l.sendEvent||(l.sendEvent=function(e){var c=e.instantSearchInstance,u=e.helper,l=e.attribute;return function(){for(var e=arguments.length,t=new Array(e),n=0;n=",n.start)&&Er(r,"<=",n.end):void 0!==n.start?Er(r,">=",n.start):void 0!==n.end?Er(r,"<=",n.end):void 0===n.start&&void 0===n.end&&Object.keys(r).every(function(e){return 0===(r[e]||[]).length})}function Cr(e,t,n){var r=e,i=JSON.parse(decodeURI(n)),a=r.getNumericRefinements(t);if(void 0===i.start&&void 0===i.end)return r.removeNumericRefinement(t);if(Tr(r,t,i)||(r=r.removeNumericRefinement(t)),void 0!==i.start&&void 0!==i.end){if(i.start>i.end)throw new Error("option.start should be > to option.end");if(i.start===i.end)return r=Er(a,"=",i.start)?r.removeNumericRefinement(t,"=",i.start):r.addNumericRefinement(t,"=",i.start)}return void 0!==i.start&&(Er(a,">=",i.start)&&(r=r.removeNumericRefinement(t,">=",i.start)),r=r.addNumericRefinement(t,">=",i.start)),void 0!==i.end&&(Er(a,"<=",i.end)&&(r=r.removeNumericRefinement(t,"<=",i.end)),r=r.addNumericRefinement(t,"<=",i.end)),"number"==typeof r.page&&(r.page=0),r}function Er(e,t,n){return void 0!==e[t]&&e[t].includes(n)}function kr(n,e){var r=1=")||[],1)[0],l=D(s.getNumericRefinement(w,"<=")||[],1)[0],d=void 0===n||""===n,h=void 0===r||""===r,f=Ar({min:d?void 0:parseFloat(n),max:h?void 0:parseFloat(r),precision:x}),m=f.min,p=f.max;i=Oe(_)||o!==m?Oe(_)&&d?_:m:void 0,a=Oe(P)||c!==p?Oe(P)&&h?P:p:void 0;var g=void 0===i,v=Oe(o)&&o<=i,y=g||Oe(i)&&(!Oe(o)||v),b=void 0===a,S=Oe(a)&&a<=c,R=b||Oe(a)&&(!Oe(c)||S);return(u!==i||l!==a)&&y&&R?(s=s.removeNumericRefinement(w),Oe(i)&&(s=s.addNumericRefinement(w,">=",i)),Oe(a)&&(s=s.addNumericRefinement(w,"<=",a)),s.resetPage()):null}function m(e,t,n,r){var i=3=")||[],1)[0],n=D(e.getNumericRefinement(w,"<=")||[],1)[0];return[Oe(t)?t:-1/0,Oe(n)?n:1/0]}(n);return{refine:u(r,n,t?a:{min:void 0,max:void 0}),canRefine:a.min!==a.max,format:c,range:a,sendEvent:function(l,d,h){return function(){for(var e=arguments.length,t=new Array(e),n=0;n="],i=void 0===r?[]:r,a=n["<="],s=void 0===a?[]:a;return 0===i.length&&0===s.length?e:W(W({},e),{},{range:W(W({},e.range),{},k({},w,"".concat(i,":").concat(s)))})},getWidgetSearchParameters:function(e,t){var n=t.uiState,r=e.addDisjunctiveFacet(w).setQueryParameters({numericRefinements:W(W({},e.numericRefinements),{},k({},w,{}))});Oe(_)&&(r=r.addNumericRefinement(w,">=",_)),Oe(P)&&(r=r.addNumericRefinement(w,"<=",P));var i=n.range&&n.range[w];if(!i||-1===i.indexOf(":"))return r;var a=D(i.split(":").map(parseFloat),2),s=a[0],o=a[1];return Oe(s)&&(!Oe(_)||_=")).addNumericRefinement(w,">=",s)),Oe(o)&&(!Oe(P)||op||g&&!P;return{createURL:function(e){return r(n.resetPage().toggleFacetRefinement(m,e))},items:s,refine:R,searchForItems:d,isFromSearch:!1,canRefine:0="])&&void 0!==t&&t.length)return n[">="][0]}function r(e,t){var n=p(e)===Number(t),r=e.resetPage().removeNumericRefinement(f);return n?r:r.addNumericRefinement(f,"<=",m).addNumericRefinement(f,">=",Number(t))}var g=function(e){return function(e,t){h("click",t),e.setState(r(e.state,t)).search()}.bind(null,e)},v=function(e){var t=e.state,n=e.createURL;return function(e){return n(r(t,e))}};return{$$type:Gr,init:function(e){var t=e.instantSearchInstance;n(W(W({},this.getWidgetRenderState(e)),{},{instantSearchInstance:t}),!0)},render:function(e){var t=e.instantSearchInstance;n(W(W({},this.getWidgetRenderState(e)),{},{instantSearchInstance:t}),!1)},getRenderState:function(e,t){return W(W({},e),{},{ratingMenu:W(W({},e.ratingMenu),{},k({},f,this.getWidgetRenderState(t)))})},getWidgetRenderState:function(e){var t=e.helper,n=e.results,r=e.state,i=e.instantSearchInstance,a=e.createURL,s=[];if(h=h||function(e){var o=e.instantSearchInstance,c=e.helper,u=e.getRefinedStar,l=e.attribute;return function(){for(var e=arguments.length,t=new Array(e),n=0;n=").concat(i)]},attribute:l})}else o.sendEventToInsights(t[0])}}({instantSearchInstance:i,helper:t,getRefinedStar:function(){return p(t.state)},attribute:f}),n)for(var o=n.getFacetValues(f,{}),c=(o.length,function(e){var r=0;e.forEach(function(e){var t=D(e.name.split("."),2)[1],n=void 0===t?"":t;r=Math.max(r,n.length)})}(o),p(r)),u=function(n){var e=c===n,t=o.filter(function(e){return Number(e.name)>=n&&Number(e.name)<=m}).map(function(e){return e.count}).reduce(function(e,t){return e+t},0);if(c&&!e&&0===t)return"continue";var r=P(new Array(Math.floor(m/1))).map(function(e,t){return 1*t=",r):i.setQueryParameters({numericRefinements:W(W({},i.numericRefinements),{},k({},f,{}))})}}}}function Qr(n,e){var t=1 ":n,i=e.rootPath,a=void 0===i?null:i,o=e.transformItems,c=void 0===o?function(e){return e}:o;if(!t||!Array.isArray(t)||0===t.length)throw new Error(ni("The `attributes` option expects an array of strings."));var u=D(t,1)[0];function l(e,t){if(t)return e.resetPage().toggleFacetRefinement(u,t);var n=e.getHierarchicalFacetBreadcrumb(u);return 0===n.length?e:e.resetPage().toggleFacetRefinement(u,n[0])}return{$$type:"ais.breadcrumb",init:function(e){d(W(W({},this.getWidgetRenderState(e)),{},{instantSearchInstance:e.instantSearchInstance}),!0)},render:function(e){d(W(W({},this.getWidgetRenderState(e)),{},{instantSearchInstance:e.instantSearchInstance}),!1)},dispose:function(){h()},getRenderState:function(e,t){return W(W({},e),{},{breadcrumb:W(W({},e.breadcrumb),{},k({},u,this.getWidgetRenderState(t)))})},getWidgetRenderState:function(e){var t=e.helper,n=e.createURL,r=e.results,i=e.state;var a=function(){if(!r||0===i.hierarchicalFacets.length)return[];var e=D(i.hierarchicalFacets,1)[0].name,t=r.getFacetValues(e,{}),n=Array.isArray(t.data)?t.data:[];return c(function(n){return n.map(function(e,t){return{label:e.label,value:t+1===n.length?null:n[t+1].value}})}(function n(e){return e.reduce(function(e,t){return t.isRefined&&(e.push({label:t.name,value:t.escapedValue}),Array.isArray(t.data)&&(e=e.concat(n(t.data)))),e},[])}(n)),{results:r})}();return f.createURL||(f.createURL=function(e){return n(l(t.state,e))}),f.refine||(f.refine=function(e){t.setState(l(t.state,e)).search()}),{canRefine:0")}function pi(c,u){return function(e){var t=e||{},a=t.hit,s=t.matchingPatterns,n=t.transformSearchParameters,r=void 0===n?function(e){return e}:n;if(!a)throw new Error(fi("The `hit` option is required."));if(!s)throw new Error(fi("The `matchingPatterns` option is required."));var i=Object.keys(s).reduce(function(e,t){var n=s[t],r=Me(a,t),i=n.score;return Array.isArray(r)?[].concat(P(e),[r.map(function(e){return mi({attributeName:t,attributeValue:e,attributeScore:i})})]):"string"==typeof r?[].concat(P(e),[mi({attributeName:t,attributeValue:r,attributeScore:i})]):e},[]),o=W({},r(new pe.SearchParameters({sumOrFiltersScores:!0,facetFilters:["objectID:-".concat(a.objectID)],optionalFilters:i})));return W(W({},hi(c,u)({searchParameters:o})),{},{$$type:"ais.configureRelatedItems"})}}var gi=st({name:"autocomplete",connector:!0}),vi=st({name:"query-rules",connector:!0});function yi(e){var t=this.helper,n=this.initialRuleContexts,r=this.trackedFilters,i=this.transformRuleContexts,a=e.state,s=a.ruleContexts||[],o=function(e){var i=e.helper,a=e.sharedHelperState,s=e.trackedFilters;return Object.keys(s).reduce(function(e,t){var n=Ce(i.lastResults||{},a,!0).filter(function(e){return e.attribute===t}).map(function(e){return e.numericValue||e.name}),r=(0,s[t])(n);return[].concat(P(e),P(n.filter(function(e){return r.includes(e)}).map(function(e){return function(e){return e.replace(/[^a-z0-9-_]+/gi,"_")}("ais-".concat(t,"-").concat(e))})))},[])}({helper:t,sharedHelperState:a,trackedFilters:r}),c=i([].concat(P(n),P(o))).slice(0,10);De(s,c)||t.overrideStateWithoutTriggeringChangeEvent(W(W({},a),{},{ruleContexts:c}))}function bi(d,e){var h=1= 4.8.0 required."));m=yt(n.findAnswers,u),b(W(W({},this.getWidgetRenderState(e)),{},{instantSearchInstance:e.instantSearchInstance}),!0)},render:function(n){var r=this,e=n.state.query;if(!e)return v=!(g=[]),void b(W(W({},this.getWidgetRenderState(n)),{},{instantSearchInstance:n.instantSearchInstance}),!1);g=[],v=!0,b(W(W({},this.getWidgetRenderState(n)),{},{instantSearchInstance:n.instantSearchInstance}),!1),p(m(e,i,W(W({},f),{},{nbHits:s,attributesForPrediction:a}))).then(function(e){if(e){d&&0"},Wi=st({name:"breadcrumb"}),Di=Ft("Breadcrumb"),Bi={resetLabel:"Clear refinements"},Ui=st({name:"clear-refinements"}),qi=Ft("ClearRefinements"),Qi=st({name:"current-refinements"}),Vi=Ft("CurrentRefinements"),$i={header:"",loader:"",item:function(e){return JSON.stringify(e)}},Ki=st({name:"answers"}),zi=Ft("Answers"),Ji=st({name:"dynamic-widgets"}),Yi=Ft("DynamicWidgets");function Xi(e){var t=document.createElement("div");return t.className=Yi({descendantName:"widget"}),e.appendChild(t),t}function Gi(e){var t=e||{},n=t.container,r=t.widgets,i=t.fallbackWidget,a=j(t,["container","widgets","fallbackWidget"]);if(!n)throw new Error(Ji("The `container` option is required."));if(!(r&&Array.isArray(r)&&r.every(function(e){return"function"==typeof e})))throw new Error(Ji("The `widgets` option expects an array of callbacks."));var s=ye(n),o=document.createElement("div");o.className=Yi();var c=new Map,u=[],l=xi(function(e,t){var n=e.attributesToRender;t&&s.appendChild(o),n.forEach(function(e){if(c.has(e)){var t=c.get(e);o.appendChild(t)}})},function(){s.removeChild(o)})(W(W({},a),{},{widgets:u,fallbackWidget:"function"==typeof i?function(e){var t=e.attribute,n=Xi(o);return c.set(t,n),i({attribute:t,container:n})}:void 0}));return W(W({},l),{},{init:function(i){r.forEach(function(e){var t=Xi(o),n=e(t),r=bt(n,i);c.set(r,t),u.push(n)}),l.init(i)},$$widgetType:"ais.dynamicWidgets"})}function Zi(e){var t=e.className,n=e.disabled,r=void 0!==n&&n;return Kn("button",{className:t,onClick:e.onClick,disabled:r},e.children)}function ea(e){var t=e.classNameLabel,n=e.classNameInput,r=e.checked,i=e.onToggle,a=e.children;return Kn("label",{className:t},Kn("input",{className:n,type:"checkbox",checked:r,onChange:i}),a)}function ta(e){var t=e.cssClasses,n=e.enableRefine,r=e.enableRefineControl,i=e.enableClearMapRefinement,a=e.isRefineOnMapMove,s=e.isRefinedWithMap,o=e.hasMapMoveSinceLastRefine,c=e.onRefineToggle,u=e.onRefineClick,l=e.onClearClick,d=e.templateProps;return Kn(Jn,null,n&&Kn("div",null,r&&Kn("div",{className:t.control},a||!o?Kn(ea,{classNameLabel:Ei(t.label,k({},t.selectedLabel,a)),classNameInput:t.input,checked:a,onToggle:c},Kn(ki,h({},d,{templateKey:"toggle",rootTagName:"span"}))):Kn(Zi,{className:t.redo,disabled:!o,onClick:u},Kn(ki,h({},d,{templateKey:"redo",rootTagName:"span"})))),!r&&!a&&Kn("div",{className:t.control},Kn(Zi,{className:Ei(t.redo,k({},t.disabledRedo,!o)),disabled:!o,onClick:u},Kn(ki,h({},d,{templateKey:"redo",rootTagName:"span"})))),i&&s&&Kn(Zi,{className:t.reset,onClick:l},Kn(ki,h({},d,{templateKey:"reset",rootTagName:"span"})))))}function na(e){var t=e.refine,n=e.mapInstance;return t({northEast:n.getBounds().getNorthEast().toJSON(),southWest:n.getBounds().getSouthWest().toJSON()})}function ra(e,t){e.isUserInteraction=!1,t(),e.isUserInteraction=!0}function ia(e,t){var n=e.items,r=e.position,i=e.currentRefinement,a=e.refine,s=e.clearMapRefinement,o=e.toggleRefineOnMapMove,c=e.isRefineOnMapMove,u=e.setMapMoveSinceLastRefine,l=e.hasMapMoveSinceLastRefine,d=e.isRefinedWithMap,h=e.widgetParams,f=e.instantSearchInstance,m=h.container,p=h.googleReference,g=h.cssClasses,v=h.templates,y=h.initialZoom,b=h.initialPosition,S=h.enableRefine,R=h.enableClearMapRefinement,w=h.enableRefineControl,_=h.mapOptions,P=h.createMarker,x=h.markerOptions,N=h.renderState;if(t){N.isUserInteraction=!0,N.isPendingRefine=!1,N.markers=[];var I=document.createElement("div");I.className=g.root,m.appendChild(I);var F=document.createElement("div");F.className=g.map,I.appendChild(F);var T=document.createElement("div");T.className=g.tree,I.appendChild(T),N.mapInstance=new p.maps.Map(F,W({mapTypeControl:!1,fullscreenControl:!1,streetViewControl:!1,clickableIcons:!1,zoomControlOptions:{position:p.maps.ControlPosition.LEFT_TOP}},_));return p.maps.event.addListenerOnce(N.mapInstance,"idle",function(){function e(){N.isUserInteraction&&S&&(u(),c()&&(N.isPendingRefine=!0))}N.mapInstance.addListener("center_changed",e),N.mapInstance.addListener("zoom_changed",e),N.mapInstance.addListener("dragstart",e),N.mapInstance.addListener("idle",function(){N.isUserInteraction&&N.isPendingRefine&&(N.isPendingRefine=!1,na({mapInstance:N.mapInstance,refine:a}))})}),void(N.templateProps=Re({templatesConfig:f.templatesConfig,templates:v}))}var C=n.map(function(e){return e.objectID}),E=D(function(e,a){return e.reduce(function(e,t){var n=D(e,2),r=n[0],i=n[1];return a.includes(t.__id)?[r.concat(t),i]:[r,i.concat(t)]},[[],[]])}(N.markers,C),2),k=E[0],L=E[1],j=k.map(function(e){return e.__id}),M=n.filter(function(e){return!j.includes(e.objectID)});L.forEach(function(e){return e.setMap(null)}),N.markers=k.concat(M.map(function(n){var r=P({map:N.mapInstance,item:n});return Object.keys(x.events).forEach(function(t){r.addListener(t,function(e){x.events[t]({map:N.mapInstance,event:e,item:n,marker:r})})}),r}));var O=!l(),A=i?0:null,H=!i&&Boolean(N.markers.length)?function(e,t){var n=t.reduce(function(e,t){return e.extend(t.getPosition())},new e.maps.LatLngBounds);return{northEast:n.getNorthEast().toJSON(),southWest:n.getSouthWest().toJSON()}}(p,N.markers):i;H&&O?ra(N,function(){N.mapInstance.fitBounds(new p.maps.LatLngBounds(H.southWest,H.northEast),A)}):O&&ra(N,function(){N.mapInstance.setCenter(r||b),N.mapInstance.setZoom(y)}),fr(Kn(ta,{cssClasses:g,enableRefine:S,enableRefineControl:w,enableClearMapRefinement:R,isRefineOnMapMove:c(),isRefinedWithMap:d(),hasMapMoveSinceLastRefine:l(),onRefineToggle:o,onRefineClick:function(){return na({mapInstance:N.mapInstance,refine:a})},onClearClick:s,templateProps:N.templateProps}),m.querySelector(".".concat(g.tree)))}var aa={HTMLMarker:"

Your custom HTML Marker

",reset:"Clear the map refinement",toggle:"Search as I move the map",redo:"Redo search here"},sa=st({name:"geo-search"}),oa=Ft("GeoSearch");function ca(e){var t=e.className,n=e.handleClick,r=e.facetValueToRefine,i=e.isRefined,a=e.templateProps,s=e.templateKey,o=e.templateData,c=e.subItems;return Kn("li",{className:t,onClick:function(e){n({facetValueToRefine:r,isRefined:i,originalEvent:e})}},Kn(ki,h({},a,{templateKey:s,data:o})),c)}var ua={query:"",showSubmit:!0,showReset:!0,showLoadingIndicator:!0,autofocus:!1,searchAsYouType:!0,isSearchStalled:!1,disabled:!1,onChange:Le,onSubmit:Le,onReset:Le,refine:Le},la=function(){L(i,Yn);var r=O(i);function i(){var s;C(this,i);for(var e=arguments.length,t=new Array(e),n=0;n{{label}}{{#helpers.formatNumber}}{{count}}{{/helpers.formatNumber}}',showMoreText:"\n {{#isShowingMore}}\n Show less\n {{/isShowingMore}}\n {{^isShowingMore}}\n Show more\n {{/isShowingMore}}\n "},ma=st({name:"hierarchical-menu"}),pa=Ft("HierarchicalMenu"),ga={empty:"No results",item:function(e){return JSON.stringify(e,null,2)}},va=st({name:"hits"}),ya=Ft("Hits"),ba=pr(function(e){var t=e.results,n=e.hits,r=e.bindEvent,i=e.cssClasses,a=e.templateProps;return 0===t.hits.length?Kn(ki,h({},a,{templateKey:"empty",rootProps:{className:Ei(i.root,i.emptyRoot)},data:t})):Kn("div",{className:i.root},Kn("ol",{className:i.list},n.map(function(e,t){return Kn(ki,h({},a,{templateKey:"item",rootTagName:"li",rootProps:{className:i.item},key:e.objectID,data:W(W({},e),{},{__hitIndex:t}),bindEvent:r}))})))});function Sa(e){var t=e.currentValue,n=e.options,r=e.cssClasses,i=e.setValue;return Kn("select",{className:Ei(r.select),onChange:function(e){return i(e.target.value)},value:"".concat(t)},n.map(function(e){return Kn("option",{className:Ei(r.option),key:e.label+e.value,value:"".concat(e.value)},e.label)}))}var Ra=st({name:"hits-per-page"}),wa=Ft("HitsPerPage"),_a={empty:"No results",showPreviousText:"Show previous results",showMoreText:"Show more results",item:function(e){return JSON.stringify(e,null,2)}},Pa=st({name:"infinite-hits"}),xa=Ft("InfiniteHits"),Na=pr(function(e){var t=e.results,n=e.hits,r=e.bindEvent,i=e.hasShowPrevious,a=e.showPrevious,s=e.showMore,o=e.isFirstPage,c=e.isLastPage,u=e.cssClasses,l=e.templateProps;return 0===t.hits.length?Kn(ki,h({},l,{templateKey:"empty",rootProps:{className:Ei(u.root,u.emptyRoot)},data:t})):Kn("div",{className:u.root},i&&Kn(ki,h({},l,{templateKey:"showPreviousText",rootTagName:"button",rootProps:{className:Ei(u.loadPrevious,k({},u.disabledLoadPrevious,o)),disabled:o,onClick:a}})),Kn("ol",{className:u.list},n.map(function(e,t){return Kn(ki,h({},l,{templateKey:"item",rootTagName:"li",rootProps:{className:u.item},key:e.objectID,data:W(W({},e),{},{__hitIndex:t}),bindEvent:r}))})),Kn(ki,h({},l,{templateKey:"showMoreText",rootTagName:"button",rootProps:{className:Ei(u.loadMore,k({},u.disabledLoadMore,c)),disabled:c,onClick:s}})))}),Ia={item:'{{label}}{{#helpers.formatNumber}}{{count}}{{/helpers.formatNumber}}',showMoreText:"\n {{#isShowingMore}}\n Show less\n {{/isShowingMore}}\n {{^isShowingMore}}\n Show more\n {{/isShowingMore}}\n "},Fa=st({name:"menu"}),Ta=Ft("Menu");function Ca(e){var t=e.cssClasses,n=e.templateProps,r=e.items,i=e.refine,a=(Ie(r,function(e){return e.isRefined})||{value:""}).value;return Kn("div",{className:Ei(t.root,k({},t.noRefinementRoot,0===r.length))},Kn("select",{className:t.select,value:a,onChange:function(e){i(e.target.value)}},Kn(ki,h({},n,{templateKey:"defaultOption",rootTagName:"option",rootProps:{value:"",className:t.option}})),r.map(function(e){return Kn(ki,h({},n,{templateKey:"item",rootTagName:"option",rootProps:{value:e.value,className:t.option},key:e.value,data:e}))})))}var Ea={item:"{{label}} ({{#helpers.formatNumber}}{{count}}{{/helpers.formatNumber}})",defaultOption:"See all"},ka=st({name:"menu-select"}),La=Ft("MenuSelect"),ja={item:''},Ma=st({name:"numeric-menu"}),Oa=Ft("NumericMenu");function Aa(n){function t(t){return function(e){be(e)||(e.preventDefault(),n.setCurrentPage(t))}}return Kn("div",{className:Ei(n.cssClasses.root,k({},n.cssClasses.noRefinementRoot,n.nbPages<=1))},Kn("ul",{className:n.cssClasses.list},n.showFirst&&Kn(Ha,{ariaLabel:"First",className:n.cssClasses.firstPageItem,isDisabled:n.isFirstPage,label:n.templates.first,pageNumber:0,createURL:n.createURL,cssClasses:n.cssClasses,createClickHandler:t}),n.showPrevious&&Kn(Ha,{ariaLabel:"Previous",className:n.cssClasses.previousPageItem,isDisabled:n.isFirstPage,label:n.templates.previous,pageNumber:n.currentPage-1,createURL:n.createURL,cssClasses:n.cssClasses,createClickHandler:t}),n.pages.map(function(e){return Kn(Ha,{key:e,ariaLabel:"".concat(e+1),className:n.cssClasses.pageItem,isSelected:e===n.currentPage,label:"".concat(e+1),pageNumber:e,createURL:n.createURL,cssClasses:n.cssClasses,createClickHandler:t})}),n.showNext&&Kn(Ha,{ariaLabel:"Next",className:n.cssClasses.nextPageItem,isDisabled:n.isLastPage,label:n.templates.next,pageNumber:n.currentPage+1,createURL:n.createURL,cssClasses:n.cssClasses,createClickHandler:t}),n.showLast&&Kn(Ha,{ariaLabel:"Last",className:n.cssClasses.lastPageItem,isDisabled:n.isLastPage,label:n.templates.last,pageNumber:n.nbPages-1,createURL:n.createURL,cssClasses:n.cssClasses,createClickHandler:t})))}function Ha(e){var t=e.label,n=e.ariaLabel,r=e.pageNumber,i=e.className,a=e.isDisabled,s=void 0!==a&&a,o=e.isSelected,c=void 0!==o&&o,u=e.cssClasses,l=e.createURL,d=e.createClickHandler;return Kn("li",{className:Ei(u.item,i,s&&u.disabledItem,c&&u.selectedItem)},s?Kn("span",{className:u.link,dangerouslySetInnerHTML:{__html:t}}):Kn("a",{className:u.link,"aria-label":n,href:l(r),onClick:d(r),dangerouslySetInnerHTML:{__html:t}}))}var Wa,Da,Ba,Ua=Ft("Pagination"),qa=st({name:"pagination"}),Qa={previous:"‹",next:"›",first:"«",last:"»"},Va=0,$a=[],Ka=An.__b,za=An.__r,Ja=An.diffed,Ya=An.__c,Xa=An.unmount;function Ga(e,t){An.__h&&An.__h(Da,e,Va||t),Va=0;var n=Da.__H||(Da.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function Za(e){return Va=1,function(e,t,n){var r=Ga(Wa++,2);return r.t=e,r.__c||(r.__=[n?n(t):ss(void 0,t),function(e){var t=r.t(r.__[0],e);r.__[0]!==t&&(r.__=[t,r.__[1]],r.__c.setState({}))}],r.__c=Da),r.__}(ss,e)}function es(e){return Va=5,function(e,t){var n=Ga(Wa++,7);return as(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}(function(){return{current:e}},[])}function ts(){var t;for($a.sort(function(e,t){return e.__v.__b-t.__v.__b});t=$a.pop();)if(t.__P)try{t.__H.__h.forEach(rs),t.__H.__h.forEach(is),t.__H.__h=[]}catch(e){t.__H.__h=[],An.__e(e,t.__v)}}An.__b=function(e){Da=null,Ka&&Ka(e)},An.__r=function(e){za&&za(e),Wa=0;var t=(Da=e.__c).__H;t&&(t.__h.forEach(rs),t.__h.forEach(is),t.__h=[])},An.diffed=function(e){Ja&&Ja(e);var t=e.__c;t&&t.__H&&t.__H.__h.length&&(1!==$a.push(t)&&Ba===An.requestAnimationFrame||((Ba=An.requestAnimationFrame)||function(e){function t(){clearTimeout(r),ns&&cancelAnimationFrame(n),setTimeout(e)}var n,r=setTimeout(t,100);ns&&(n=requestAnimationFrame(t))})(ts)),Da=null},An.__c=function(e,n){n.some(function(t){try{t.__h.forEach(rs),t.__h=t.__h.filter(function(e){return!e.__||is(e)})}catch(e){n.some(function(e){e.__h&&(e.__h=[])}),n=[],An.__e(e,t.__v)}}),Ya&&Ya(e,n)},An.unmount=function(e){Xa&&Xa(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach(function(e){try{rs(e)}catch(e){t=e}}),t&&An.__e(t,n.__v))};var ns="function"==typeof requestAnimationFrame;function rs(e){var t=Da,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),Da=t}function is(e){var t=Da;e.__c=e.__(),Da=t}function as(n,e){return!n||n.length!==e.length||e.some(function(e,t){return e!==n[t]})}function ss(e,t){return"function"==typeof t?t(e):t}function os(t){var e,n=D(Za(t.isCollapsed),2),r=n[0],i=n[1],a=D(Za(!1),2),s=a[0],o=a[1],c=es(null);return function(e,t){var n=Ga(Wa++,3);!An.__s&&as(n.__H,t)&&(n.__=e,n.__H=t,Da.__H.__h.push(n))}(function(){var e=c.current;if(e)return e.appendChild(t.bodyElement),function(){e.removeChild(t.bodyElement)}},[c,t.bodyElement]),s||t.isCollapsed===r||i(t.isCollapsed),Kn("div",{className:Ei(t.cssClasses.root,(e={},k(e,t.cssClasses.noRefinementRoot,t.hidden),k(e,t.cssClasses.collapsibleRoot,t.collapsible),k(e,t.cssClasses.collapsedRoot,r),e)),hidden:t.hidden},t.templates.header&&Kn("div",{className:t.cssClasses.header},Kn(ki,{templates:t.templates,templateKey:"header",rootTagName:"span",data:t.data}),t.collapsible&&Kn("button",{className:t.cssClasses.collapseButton,"aria-expanded":!r,onClick:function(e){e.preventDefault(),o(!0),i(function(e){return!e})}},Kn(ki,{templates:t.templates,templateKey:"collapseButtonText",rootTagName:"span",data:{collapsed:r}}))),Kn("div",{className:t.cssClasses.body,ref:c}),t.templates.footer&&Kn(ki,{templates:t.templates,templateKey:"footer",rootProps:{className:t.cssClasses.footer},data:t.data}))}function cs(e){var t=e.url,n=e.theme,r=e.cssClasses;return Kn("div",{className:r.root},Kn("a",{href:t,target:"_blank",className:r.link,"aria-label":"Search by Algolia",rel:"noopener noreferrer"},Kn("svg",{height:"1.2em",className:r.logo,viewBox:"0 0 168 24",style:{width:"auto"}},Kn("path",{fill:"dark"===n?"#FFF":"#5D6494",d:"M6.97 6.68V8.3a4.47 4.47 0 00-2.42-.67 2.2 2.2 0 00-1.38.4c-.34.26-.5.6-.5 1.02 0 .43.16.77.49 1.03.33.25.83.53 1.51.83a7.04 7.04 0 011.9 1.08c.34.24.58.54.73.89.15.34.23.74.23 1.18 0 .95-.33 1.7-1 2.24a4 4 0 01-2.6.81 5.71 5.71 0 01-2.94-.68v-1.71c.84.63 1.81.94 2.92.94.58 0 1.05-.14 1.39-.4.34-.28.5-.65.5-1.13 0-.29-.1-.55-.3-.8a2.2 2.2 0 00-.65-.53 23.03 23.03 0 00-1.64-.78 13.67 13.67 0 01-1.11-.64c-.12-.1-.28-.22-.46-.4a1.72 1.72 0 01-.39-.5 4.46 4.46 0 01-.22-.6c-.07-.23-.1-.48-.1-.75 0-.91.33-1.63 1-2.17a4 4 0 012.57-.8c.97 0 1.8.18 2.47.52zm7.47 5.7v-.3a2.26 2.26 0 00-.5-1.44c-.3-.35-.74-.53-1.32-.53-.53 0-.99.2-1.37.58a2.9 2.9 0 00-.72 1.68h3.91zm1 2.79v1.4c-.6.34-1.38.51-2.36.51a4.02 4.02 0 01-3-1.13 4.04 4.04 0 01-1.11-2.97c0-1.3.34-2.32 1.02-3.06a3.38 3.38 0 012.6-1.1c1.03 0 1.85.32 2.46.96.6.64.9 1.57.9 2.78 0 .33-.03.68-.09 1.04h-5.31c.1.7.4 1.24.89 1.61.49.38 1.1.56 1.85.56.86 0 1.58-.2 2.15-.6zm6.61-1.78h-1.21c-.6 0-1.05.12-1.35.36-.3.23-.46.53-.46.89 0 .37.12.66.36.88.23.2.57.32 1.02.32.5 0 .9-.15 1.2-.43.3-.28.44-.65.44-1.1v-.92zm-4.07-2.55V9.33a4.96 4.96 0 012.5-.55c2.1 0 3.17 1.03 3.17 3.08V17H22.1v-.96c-.42.68-1.15 1.02-2.19 1.02-.76 0-1.38-.22-1.84-.66-.46-.44-.7-1-.7-1.68 0-.78.3-1.38.88-1.81.59-.43 1.4-.65 2.46-.65h1.34v-.46c0-.55-.13-.97-.4-1.25-.26-.29-.7-.43-1.32-.43-.86 0-1.65.24-2.35.72zm9.34-1.93v1.42c.39-1 1.1-1.5 2.12-1.5.15 0 .31.02.5.05v1.53c-.23-.1-.48-.14-.76-.14-.54 0-.99.24-1.34.71a2.8 2.8 0 00-.52 1.71V17h-1.57V8.91h1.57zm5 4.09a3 3 0 00.76 2.01c.47.53 1.14.8 2 .8.64 0 1.24-.18 1.8-.53v1.4c-.53.32-1.2.48-2 .48a3.98 3.98 0 01-4.17-4.18c0-1.16.38-2.15 1.14-2.98a4 4 0 013.1-1.23c.7 0 1.34.15 1.92.44v1.44a3.24 3.24 0 00-1.77-.5A2.65 2.65 0 0032.33 13zm7.92-7.28v4.58c.46-1 1.3-1.5 2.5-1.5.8 0 1.42.24 1.9.73.48.5.72 1.17.72 2.05V17H43.8v-5.1c0-.56-.14-.99-.43-1.29-.28-.3-.65-.45-1.1-.45-.54 0-1 .2-1.42.6-.4.4-.61 1.02-.61 1.85V17h-1.56V5.72h1.56zM55.2 15.74c.6 0 1.1-.25 1.5-.76.4-.5.6-1.16.6-1.95 0-.92-.2-1.62-.6-2.12-.4-.5-.92-.74-1.55-.74-.56 0-1.05.22-1.5.67-.44.45-.66 1.13-.66 2.06 0 .96.22 1.67.64 2.14.43.47.95.7 1.57.7zM53 5.72v4.42a2.74 2.74 0 012.43-1.34c1.03 0 1.86.38 2.51 1.15.65.76.97 1.78.97 3.05 0 1.13-.3 2.1-.92 2.9-.62.81-1.47 1.21-2.54 1.21s-1.9-.45-2.46-1.34V17h-1.58V5.72H53zm9.9 11.1l-3.22-7.9h1.74l1 2.62 1.26 3.42c.1-.32.48-1.46 1.15-3.42l.91-2.63h1.66l-2.92 7.87c-.78 2.07-1.96 3.1-3.56 3.1-.28 0-.53-.02-.73-.07v-1.34c.17.04.35.06.54.06 1.03 0 1.76-.57 2.17-1.7z"}),hs,fs,Kn("path",{fill:"dark"===n?"#FFF":"#5468FF",d:"M120.92 18.8c-4.38.02-4.38-3.54-4.38-4.1V1.36l2.67-.42v13.25c0 .32 0 2.36 1.71 2.37v2.24zm-10.84-2.18c.82 0 1.43-.04 1.85-.12v-2.72a5.48 5.48 0 00-1.57-.2c-.3 0-.6.02-.9.07-.3.04-.57.12-.81.24-.24.11-.44.28-.58.49a.93.93 0 00-.22.65c0 .63.22 1 .61 1.23.4.24.94.36 1.62.36zm-.23-9.7c.88 0 1.62.11 2.23.33.6.22 1.09.53 1.44.92.36.4.61.92.76 1.48.16.56.23 1.17.23 1.85v6.87a21.69 21.69 0 01-4.68.5c-.69 0-1.32-.07-1.9-.2a4 4 0 01-1.46-.63 3.3 3.3 0 01-.96-1.13 4.3 4.3 0 01-.34-1.8 3.13 3.13 0 011.43-2.63c.45-.3.95-.5 1.54-.62a8.8 8.8 0 013.79.05v-.44c0-.3-.04-.6-.11-.87a1.78 1.78 0 00-1.1-1.22 3.2 3.2 0 00-1.15-.2 9.75 9.75 0 00-2.95.46l-.33-2.19a11.43 11.43 0 013.56-.53zm52.84 9.63c.82 0 1.43-.05 1.85-.13V13.7a5.42 5.42 0 00-1.57-.2c-.3 0-.6.02-.9.07-.3.04-.57.12-.81.24-.24.12-.44.28-.58.5a.93.93 0 00-.22.65c0 .63.22.99.61 1.23.4.24.94.36 1.62.36zm-.23-9.7c.88 0 1.63.11 2.23.33.6.22 1.1.53 1.45.92.35.39.6.92.76 1.48.15.56.23 1.18.23 1.85v6.88c-.41.08-1.03.19-1.87.31-.83.12-1.77.18-2.81.18-.7 0-1.33-.06-1.9-.2a4 4 0 01-1.47-.63c-.4-.3-.72-.67-.95-1.13a4.3 4.3 0 01-.34-1.8c0-.66.13-1.08.38-1.53.26-.45.61-.82 1.05-1.1.44-.3.95-.5 1.53-.62a8.8 8.8 0 013.8.05v-.43c0-.31-.04-.6-.12-.88-.07-.28-.2-.52-.38-.73a1.78 1.78 0 00-.73-.5c-.3-.1-.68-.2-1.14-.2a9.85 9.85 0 00-2.95.47l-.32-2.19a11.63 11.63 0 013.55-.53zm-8.03-1.27a1.62 1.62 0 000-3.24 1.62 1.62 0 100 3.24zm1.35 13.22h-2.7V7.27l2.7-.42V18.8zm-4.72 0c-4.38.02-4.38-3.54-4.38-4.1l-.01-13.34 2.67-.42v13.25c0 .32 0 2.36 1.72 2.37v2.24zm-8.7-5.9a4.7 4.7 0 00-.74-2.79 2.4 2.4 0 00-2.07-1 2.4 2.4 0 00-2.06 1 4.7 4.7 0 00-.74 2.8c0 1.16.25 1.94.74 2.62a2.4 2.4 0 002.07 1.02c.88 0 1.57-.34 2.07-1.02a4.2 4.2 0 00.73-2.63zm2.74 0a6.46 6.46 0 01-1.52 4.23c-.49.53-1.07.94-1.76 1.22-.68.29-1.73.45-2.26.45a6.6 6.6 0 01-2.25-.45 5.1 5.1 0 01-2.88-3.13 7.3 7.3 0 01-.01-4.84 5.13 5.13 0 012.9-3.1 5.67 5.67 0 012.22-.42c.81 0 1.56.14 2.24.42.69.29 1.28.69 1.75 1.22.49.52.87 1.15 1.14 1.89a7 7 0 01.43 2.5zm-20.14 0c0 1.11.25 2.36.74 2.88.5.52 1.13.78 1.91.78a4.07 4.07 0 002.12-.6V9.33c-.19-.04-.99-.2-1.76-.23a2.67 2.67 0 00-2.23 1 4.73 4.73 0 00-.78 2.8zm7.44 5.27c0 1.82-.46 3.16-1.4 4-.94.85-2.37 1.27-4.3 1.27-.7 0-2.17-.13-3.34-.4l.43-2.11c.98.2 2.27.26 2.95.26 1.08 0 1.84-.22 2.3-.66.46-.43.68-1.08.68-1.94v-.44a5.2 5.2 0 01-2.54.6 5.6 5.6 0 01-2.01-.36 4.2 4.2 0 01-2.58-2.71 9.88 9.88 0 01.02-5.35 4.92 4.92 0 012.93-2.96 6.6 6.6 0 012.43-.46 19.64 19.64 0 014.43.66v10.6z"}))))}function us(e){var t=e.cssClasses,n=e.templates,r=e.items;return Kn(ki,{templateKey:"default",templates:n,rootProps:{className:t.root},data:{items:r}})}var ls=st({name:"panel"}),ds=Ft("Panel"),hs=Kn("path",{fill:"#5468FF",d:"M78.99.94h16.6a2.97 2.97 0 012.96 2.96v16.6a2.97 2.97 0 01-2.97 2.96h-16.6a2.97 2.97 0 01-2.96-2.96V3.9A2.96 2.96 0 0179 .94"}),fs=Kn("path",{fill:"#FFF",d:"M89.63 5.97v-.78a.98.98 0 00-.98-.97h-2.28a.98.98 0 00-.97.97V6c0 .09.08.15.17.13a7.13 7.13 0 013.9-.02c.08.02.16-.04.16-.13m-6.25 1L83 6.6a.98.98 0 00-1.38 0l-.46.46a.97.97 0 000 1.38l.38.39c.06.06.15.04.2-.02a7.49 7.49 0 011.63-1.62c.07-.04.08-.14.02-.2m4.16 2.45v3.34c0 .1.1.17.2.12l2.97-1.54c.06-.03.08-.12.05-.18a3.7 3.7 0 00-3.08-1.87c-.07 0-.14.06-.14.13m0 8.05a4.49 4.49 0 110-8.98 4.49 4.49 0 010 8.98m0-10.85a6.37 6.37 0 100 12.74 6.37 6.37 0 000-12.74"}),ms=Ft("PoweredBy"),ps=st({name:"powered-by"}),gs=st({name:"query-rule-context"}),vs={default:function(e){var t=e.items;return JSON.stringify(t,null,2)}},ys=st({name:"query-rule-custom-data"}),bs=Ft("QueryRuleCustomData"),Ss=function(){L(a,Yn);var i=O(a);function a(){var r;C(this,a);for(var e=arguments.length,t=new Array(e),n=0;n=this.props.max}},{key:"computeDefaultPitPoints",value:function(e){var t=e.min,n=e.max,r=(n-t)/34;return[t].concat(P(He({end:33}).map(function(e){return t+r*(e+1)})),[n])}},{key:"computeSnapPoints",value:function(e){var t=e.min,n=e.max,r=e.step;if(r)return[].concat(P(He({start:t,end:n,step:r})),[n])}},{key:"render",value:function(){var e=this.props,t=e.tooltips,n=e.step,r=e.pips,i=e.values,a=e.cssClasses,s=this.isDisabled?{min:this.props.min,max:this.props.max+.001}:this.props,o=s.min,c=s.max,u=this.computeSnapPoints({min:o,max:c,step:n}),l=!1===r?[]:this.computeDefaultPitPoints({min:o,max:c});return Kn("div",{className:Ei(a.root,k({},a.disabledRoot,this.isDisabled))},Kn(Ds,{handle:this.createHandleComponent(t),onChange:this.handleChange,min:o,max:c,pitComponent:Bs,pitPoints:l,snap:!0,snapPoints:u,values:this.isDisabled?[o,c]:i,disabled:this.isDisabled}))}}]),a}(),Ks=st({name:"range-slider"}),zs=Ft("RangeSlider"),Js={item:'{{#count}}{{/count}}{{^count}}{{/count}}'},Ys=st({name:"rating-menu"}),Xs=Ft("RatingMenu"),Gs=Kn("path",{d:"M12 .288l2.833 8.718h9.167l-7.417 5.389 2.833 8.718-7.416-5.388-7.417 5.388 2.833-8.718-7.416-5.389h9.167z"}),Zs=Kn("path",{d:"M12 6.76l1.379 4.246h4.465l-3.612 2.625 1.379 4.246-3.611-2.625-3.612 2.625 1.379-4.246-3.612-2.625h4.465l1.38-4.246zm0-6.472l-2.833 8.718h-9.167l7.416 5.389-2.833 8.718 7.417-5.388 7.416 5.388-2.833-8.718 7.417-5.389h-9.167l-2.833-8.718z"}),eo={reset:'\n\n \n\n ',submit:'\n\n \n\n ',loadingIndicator:'\n\n \n \n \n \n \n \n \n \n\n '},to={item:'',showMoreText:"\n {{#isShowingMore}}\n Show less\n {{/isShowingMore}}\n {{^isShowingMore}}\n Show more\n {{/isShowingMore}}\n ",searchableNoResults:"No results"},no=st({name:"refinement-list"}),ro=Ft("RefinementList"),io=Ft("SearchBox"),ao={text:"",button:function(e){return e.isRelevantSorted?"See all results":"See relevant results"}},so=st({name:"relevant-sort"}),oo=Ft("RelevantSort"),co=st({name:"search-box"}),uo=Ft("SearchBox"),lo=st({name:"sort-by"}),ho=Ft("SortBy"),fo=st({name:"stats"}),mo=Ft("Stats"),po={text:"\n {{#areHitsSorted}}\n {{#hasNoSortedResults}}No relevant results{{/hasNoSortedResults}}\n {{#hasOneSortedResults}}1 relevant result{{/hasOneSortedResults}}\n {{#hasManySortedResults}}{{#helpers.formatNumber}}{{nbSortedHits}}{{/helpers.formatNumber}} relevant results{{/hasManySortedResults}}\n sorted out of {{#helpers.formatNumber}}{{nbHits}}{{/helpers.formatNumber}}\n {{/areHitsSorted}}\n {{^areHitsSorted}}\n {{#hasNoResults}}No results{{/hasNoResults}}\n {{#hasOneResult}}1 result{{/hasOneResult}}\n {{#hasManyResults}}{{#helpers.formatNumber}}{{nbHits}}{{/helpers.formatNumber}} results{{/hasManyResults}}\n {{/areHitsSorted}}\n found in {{processingTimeMS}}ms"},go={labelText:"{{name}}"},vo=st({name:"toggle-refinement"}),yo=Ft("ToggleRefinement"),bo={buttonText:function(e){var t=e.status,n=e.errorCode,r=e.isListening;return'\n '.concat(function(e,t,n){return"error"===e&&"not-allowed"===t?'\n \n \n \n ':'\n \n \n \n ')}(t,n,r),"\n ")},status:"

{{transcript}}

"},So=st({name:"voice-search"}),Ro=Ft("VoiceSearch"),wo=je(Gi),_o=Object.freeze({__proto__:null,dynamicWidgets:Gi,EXPERIMENTAL_dynamicWidgets:wo,analytics:function(e){var t=e||{},s=t.pushFunction,n=t.delay,r=void 0===n?3e3:n,i=t.triggerOnUIInteraction,a=void 0!==i&&i,o=t.pushInitialSearch,c=void 0===o||o,u=t.pushPagination,l=void 0!==u&&u;if(!s)throw new Error(Ci("The `pushFunction` option is required."));function d(e){if(null!==e){var t=[],n=function(e){var t=[];for(var n in e)if(e.hasOwnProperty(n)){var r=e[n].join("+");t.push("".concat(encodeURIComponent(n),"=").concat(encodeURIComponent(n),"_").concat(encodeURIComponent(r)))}return t.join("&")}(W(W(W({},e.state.disjunctiveFacetsRefinements),e.state.facetsRefinements),e.state.hierarchicalFacetsRefinements)),r=function(e){var t=[];for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];if(r.hasOwnProperty(">=")&&r.hasOwnProperty("<="))r[">="]&&r[">="][0]===r["<="]&&r["<="][0]?t.push("".concat(n,"=").concat(n,"_").concat(r[">="])):t.push("".concat(n,"=").concat(n,"_").concat(r[">="],"to").concat(r["<="]));else if(r.hasOwnProperty(">="))t.push("".concat(n,"=").concat(n,"_from").concat(r[">="]));else if(r.hasOwnProperty("<="))t.push("".concat(n,"=").concat(n,"_to").concat(r["<="]));else if(r.hasOwnProperty("=")){var i=[];for(var a in r["="])r["="].hasOwnProperty(a)&&i.push(r["="][a]);t.push("".concat(n,"=").concat(n,"_").concat(i.join("-")))}}return t.join("&")}(e.state.numericRefinements);""!==n&&t.push(n),""!==r&&t.push(r);var i=t.join("&"),a="Query: ".concat(e.state.query||"",", ").concat(i);!0===l&&(a+=", Page: ".concat(e.state.page||0)),m!==a&&(s(i,e.state,e.results),m=a)}}var h,f=null,m="",p=!0;!0===c&&(p=!1);function g(){d(f)}function v(){d(f)}return{$$type:"ais.analytics",$$widgetType:"ais.analytics",init:function(){!0===a&&(document.addEventListener("click",g),window.addEventListener("beforeunload",v))},render:function(e){var t=e.results,n=e.state;!0!==p?(f={results:t,state:n},h&&clearTimeout(h),h=window.setTimeout(function(){return d(f)},r)):p=!1},dispose:function(){!0===a&&(document.removeEventListener("click",g),window.removeEventListener("beforeunload",v))},getRenderState:function(e,t){return W(W({},e),{},{analytics:this.getWidgetRenderState(t)})},getWidgetRenderState:function(){return{widgetParams:e}}}},breadcrumb:function(e){var t=e||{},n=t.container,r=t.attributes,i=t.separator,a=t.rootPath,s=t.transformItems,o=t.templates,c=void 0===o?{}:o,u=t.cssClasses,l=void 0===u?{}:u;if(!n)throw new Error(Wi("The `container` option is required."));var d=ye(n),h={root:Ei(Di(),l.root),noRefinementRoot:Ei(Di({modifierName:"noRefinement"}),l.noRefinementRoot),list:Ei(Di({descendantName:"list"}),l.list),item:Ei(Di({descendantName:"item"}),l.item),selectedItem:Ei(Di({descendantName:"item",modifierName:"selected"}),l.selectedItem),separator:Ei(Di({descendantName:"separator"}),l.separator),link:Ei(Di({descendantName:"link"}),l.link)},f=function(e){var o=e.containerNode,c=e.cssClasses,u=e.renderState,l=e.templates;return function(e,t){var n=e.canRefine,r=e.createURL,i=e.instantSearchInstance,a=e.items,s=e.refine;t?u.templateProps=Re({defaultTemplates:Hi,templatesConfig:i.templatesConfig,templates:l}):fr(Kn(Li,{canRefine:n,cssClasses:c,createURL:r,items:a,refine:s,templateProps:u.templateProps}),o)}}({containerNode:d,cssClasses:h,renderState:{},templates:c});return W(W({},$r(f,function(){return fr(null,d)})({attributes:r,separator:i,rootPath:a,transformItems:s})),{},{$$widgetType:"ais.breadcrumb"})},clearRefinements:function(e){var t=e||{},n=t.container,r=t.templates,i=void 0===r?{}:r,a=t.includedAttributes,s=t.excludedAttributes,o=t.transformItems,c=t.cssClasses,u=void 0===c?{}:c;if(!n)throw new Error(Ui("The `container` option is required."));var l=ye(n),d={root:Ei(qi(),u.root),button:Ei(qi({descendantName:"button"}),u.button),disabledButton:Ei(qi({descendantName:"button",modifierName:"disabled"}),u.disabledButton)},h=function(e){var a=e.containerNode,s=e.cssClasses,o=e.renderState,c=e.templates;return function(e,t){var n=e.refine,r=e.hasRefinements,i=e.instantSearchInstance;t?o.templateProps=Re({defaultTemplates:Bi,templatesConfig:i.templatesConfig,templates:c}):fr(Kn(ji,{refine:n,cssClasses:s,hasRefinements:r,templateProps:o.templateProps}),a)}}({containerNode:l,cssClasses:d,renderState:{},templates:i});return W(W({},Sn(h,function(){return fr(null,l)})({includedAttributes:a,excludedAttributes:s,transformItems:o})),{},{$$widgetType:"ais.clearRefinements"})},configure:function(e){return W(W({},hi(Le)({searchParameters:e})),{},{$$widgetType:"ais.configure"})},currentRefinements:function(e){var t=e||{},n=t.container,r=t.includedAttributes,i=t.excludedAttributes,a=t.cssClasses,s=void 0===a?{}:a,o=t.transformItems;if(!n)throw new Error(Qi("The `container` option is required."));var c=ye(n),u={root:Ei(Vi(),s.root),list:Ei(Vi({descendantName:"list"}),s.list),item:Ei(Vi({descendantName:"item"}),s.item),label:Ei(Vi({descendantName:"label"}),s.label),category:Ei(Vi({descendantName:"category"}),s.category),categoryLabel:Ei(Vi({descendantName:"categoryLabel"}),s.categoryLabel),delete:Ei(Vi({descendantName:"delete"}),s.delete)};return W(W({},_n(Oi,function(){return fr(null,c)})({container:c,cssClasses:u,includedAttributes:r,excludedAttributes:i,transformItems:o})),{},{$$widgetType:"ais.currentRefinements"})},EXPERIMENTAL_answers:function(e){var t=e||{},n=t.container,r=t.attributesForPrediction,i=t.queryLanguages,a=t.nbHits,s=t.searchDebounceTime,o=t.renderDebounceTime,c=t.escapeHTML,u=t.extraParameters,l=t.templates,d=void 0===l?{}:l,h=t.cssClasses,f=void 0===h?{}:h;if(!n)throw new Error(Ki("The `container` option is required."));var m=ye(n),p={root:Ei(zi(),f.root),emptyRoot:Ei(zi({modifierName:"empty"}),f.emptyRoot),header:Ei(zi({descendantName:"header"}),f.header),loader:Ei(zi({descendantName:"loader"}),f.loader),list:Ei(zi({descendantName:"list"}),f.list),item:Ei(zi({descendantName:"item"}),f.item)},g=function(e){var a=e.containerNode,s=e.cssClasses,o=e.renderState,c=e.templates;return function(e,t){var n=e.hits,r=e.isLoading,i=e.instantSearchInstance;t?o.templateProps=Re({defaultTemplates:$i,templatesConfig:i.templatesConfig,templates:c}):fr(Kn(Ai,{cssClasses:s,hits:n,isLoading:r,templateProps:o.templateProps}),a)}}({containerNode:m,cssClasses:p,templates:d,renderState:{}});return W(W({},_i(g,function(){return fr(null,m)})({attributesForPrediction:r,queryLanguages:i,nbHits:a,searchDebounceTime:s,renderDebounceTime:o,escapeHTML:c,extraParameters:u})),{},{$$widgetType:"ais.answers"})},EXPERIMENTAL_configureRelatedItems:function(e){return W(W({},pi(Le)(e)),{},{$$widgetType:"ais.configureRelatedItems"})},geoSearch:function(e){var t=e||{},n=t.initialZoom,r=void 0===n?1:n,i=t.initialPosition,a=void 0===i?{lat:0,lng:0}:i,s=t.templates,o=void 0===s?{}:s,c=t.cssClasses,u=void 0===c?{}:c,l=t.builtInMarker,d=void 0===l?{}:l,h=t.customHTMLMarker,f=t.enableRefine,m=void 0===f||f,p=t.enableClearMapRefinement,g=void 0===p||p,v=t.enableRefineControl,y=void 0===v||v,b=t.container,S=t.googleReference,R=j(t,["initialZoom","initialPosition","templates","cssClasses","builtInMarker","customHTMLMarker","enableRefine","enableClearMapRefinement","enableRefineControl","container","googleReference"]);if(!b)throw new Error(sa("The `container` option is required."));if(!S)throw new Error(sa("The `googleReference` option is required."));var w=ye(b),_={root:Ei(oa(),u.root),tree:oa({descendantName:"tree"}),map:Ei(oa({descendantName:"map"}),u.map),control:Ei(oa({descendantName:"control"}),u.control),label:Ei(oa({descendantName:"label"}),u.label),selectedLabel:Ei(oa({descendantName:"label",modifierName:"selected"}),u.selectedLabel),input:Ei(oa({descendantName:"input"}),u.input),redo:Ei(oa({descendantName:"redo"}),u.redo),disabledRedo:Ei(oa({descendantName:"redo",modifierName:"disabled"}),u.disabledRedo),reset:Ei(oa({descendantName:"reset"}),u.reset)},P=W(W({},aa),o),x=W(W({},{createOptions:function(){return{}},events:{}}),d),N=(Boolean(h)||Boolean(o.HTMLMarker))&&W(W({},{createOptions:function(){return{}},events:{}}),h),I=function(d){return function(){L(l,d.maps.OverlayView);var u=O(l);function l(e){var t,n=e.__id,r=e.position,i=e.map,a=e.template,s=e.className,o=e.anchor,c=void 0===o?{x:0,y:0}:o;return C(this,l),k(M(t=u.call(this)),"__id",void 0),k(M(t),"anchor",void 0),k(M(t),"offset",void 0),k(M(t),"listeners",void 0),k(M(t),"latLng",void 0),k(M(t),"element",void 0),t.__id=n,t.anchor=c,t.listeners={},t.latLng=new d.maps.LatLng(r),t.element=document.createElement("div"),t.element.className=s,t.element.style.position="absolute",t.element.innerHTML=a,t.setMap(i),t}return E(l,[{key:"onAdd",value:function(){this.getPanes().overlayMouseTarget.appendChild(this.element);var e=this.element.getBoundingClientRect();this.offset={x:this.anchor.x+e.width/2,y:this.anchor.y+e.height},this.element.style.width="".concat(e.width,"px")}},{key:"draw",value:function(){var e=this.getProjection().fromLatLngToDivPixel(this.latLng);this.element.style.left="".concat(Math.round(e.x-this.offset.x),"px"),this.element.style.top="".concat(Math.round(e.y-this.offset.y),"px"),this.element.style.zIndex=String(parseInt(this.element.style.top,10))}},{key:"onRemove",value:function(){var t=this;this.element&&(this.element.parentNode.removeChild(this.element),Object.keys(this.listeners).forEach(function(e){t.element.removeEventListener(e,t.listeners[e])}),delete this.element,delete this.listeners)}},{key:"addListener",value:function(e,t){this.listeners[e]=t;var n=this.element;return n.addEventListener(e,t),{remove:function(){return n.removeEventListener(e,t)}}}},{key:"getPosition",value:function(){return this.latLng}}]),l}()}(S),F=N?function(e){var t=e.item,n=j(e,["item"]);return new I(W(W(W({},N.createOptions(t)),n),{},{__id:t.objectID,position:t._geoloc,className:Ei(oa({descendantName:"marker"})),template:Ne({templateKey:"HTMLMarker",templates:P,data:t})}))}:function(e){var t=e.item,n=j(e,["item"]);return new S.maps.Marker(W(W(W({},x.createOptions(t)),n),{},{__id:t.objectID,position:t._geoloc}))},T=N||x;return W(W({},si(ia,function(){return fr(null,w)})(W(W({},R),{},{renderState:{},container:w,googleReference:S,initialZoom:r,initialPosition:a,templates:P,cssClasses:_,createMarker:F,markerOptions:T,enableRefine:m,enableClearMapRefinement:g,enableRefineControl:y}))),{},{$$widgetType:"ais.geoSearch"})},hierarchicalMenu:function(e){var t=e||{},n=t.container,r=t.attributes,i=t.separator,a=t.rootPath,s=t.showParentLevel,o=t.limit,c=t.showMore,u=void 0!==c&&c,l=t.showMoreLimit,d=t.sortBy,h=t.transformItems,f=t.templates,m=void 0===f?{}:f,p=t.cssClasses,g=void 0===p?{}:p;if(!n)throw new Error(ma("The `container` option is required."));var v=ye(n),y=function(e){var u=e.cssClasses,l=e.containerNode,d=e.showMore,h=e.templates,f=e.renderState;return function(e,t){var n=e.createURL,r=e.items,i=e.refine,a=e.instantSearchInstance,s=e.isShowingMore,o=e.toggleShowMore,c=e.canToggleShowMore;t?f.templateProps=Re({defaultTemplates:fa,templatesConfig:a.templatesConfig,templates:h}):fr(Kn(ha,{createURL:n,cssClasses:u,facetValues:r,templateProps:f.templateProps,toggleRefinement:i,showMore:d,toggleShowMore:o,isShowingMore:s,canToggleShowMore:c}),l)}}({cssClasses:{root:Ei(pa(),g.root),noRefinementRoot:Ei(pa({modifierName:"noRefinement"}),g.noRefinementRoot),list:Ei(pa({descendantName:"list"}),g.list),childList:Ei(pa({descendantName:"list",modifierName:"child"}),g.childList),item:Ei(pa({descendantName:"item"}),g.item),selectedItem:Ei(pa({descendantName:"item",modifierName:"selected"}),g.selectedItem),parentItem:Ei(pa({descendantName:"item",modifierName:"parent"}),g.parentItem),link:Ei(pa({descendantName:"link"}),g.link),label:Ei(pa({descendantName:"label"}),g.label),count:Ei(pa({descendantName:"count"}),g.count),showMore:Ei(pa({descendantName:"showMore"}),g.showMore),disabledShowMore:Ei(pa({descendantName:"showMore",modifierName:"disabled"}),g.disabledShowMore)},containerNode:v,templates:m,showMore:u,renderState:{}});return W(W({},Tn(y,function(){return fr(null,v)})({attributes:r,separator:i,rootPath:a,showParentLevel:s,limit:o,showMore:u,showMoreLimit:l,sortBy:d,transformItems:h})),{},{$$widgetType:"ais.hierarchicalMenu"})},hits:function(e){var t=e||{},n=t.container,r=t.escapeHTML,i=t.transformItems,a=t.templates,s=void 0===a?{}:a,o=t.cssClasses,c=void 0===o?{}:o;if(!n)throw new Error(va("The `container` option is required."));var u=ye(n),l={root:Ei(ya(),c.root),emptyRoot:Ei(ya({modifierName:"empty"}),c.emptyRoot),list:Ei(ya({descendantName:"list"}),c.list),item:Ei(ya({descendantName:"item"}),c.item)},d=function(e){var o=e.renderState,c=e.cssClasses,u=e.containerNode,l=e.templates;return function(e,t){var n=e.hits,r=e.results,i=e.instantSearchInstance,a=e.insights,s=e.bindEvent;t?o.templateProps=Re({defaultTemplates:ga,templatesConfig:i.templatesConfig,templates:l}):fr(Kn(ba,{cssClasses:c,hits:n,results:r,templateProps:o.templateProps,insights:a,sendEvent:function(e){i.sendEventToInsights(e)},bindEvent:s}),u)}}({containerNode:u,cssClasses:l,renderState:{},templates:s});return W(W({},Mn(Cn)(d,function(){return fr(null,u)})({escapeHTML:r,transformItems:i})),{},{$$widgetType:"ais.hits"})},hitsPerPage:function(e){var t=e||{},n=t.container,r=t.items,i=t.cssClasses,a=void 0===i?{}:i,s=t.transformItems;if(!n)throw new Error(Ra("The `container` option is required."));var o=ye(n),c={root:Ei(wa(),a.root),select:Ei(wa({descendantName:"select"}),a.select),option:Ei(wa({descendantName:"option"}),a.option)},u=function(e){var a=e.containerNode,s=e.cssClasses;return function(e,t){var n=e.items,r=e.refine;if(!t){var i=(Ie(n,function(e){return e.isRefined})||{}).value;fr(Kn("div",{className:s.root},Kn(Sa,{cssClasses:s,currentValue:i,options:n,setValue:r})),a)}}}({containerNode:o,cssClasses:c});return W(W({},gr(u,function(){return fr(null,o)})({items:r,transformItems:s})),{},{$$widgetType:"ais.hitsPerPage"})},index:Nt,infiniteHits:function(e){var t=e||{},n=t.container,r=t.escapeHTML,i=t.transformItems,a=t.templates,s=void 0===a?{}:a,o=t.cssClasses,c=void 0===o?{}:o,u=t.showPrevious,l=t.cache;if(!n)throw new Error(Pa("The `container` option is required."));var d=ye(n),h={root:Ei(xa(),c.root),emptyRoot:Ei(xa({modifierName:"empty"}),c.emptyRoot),item:Ei(xa({descendantName:"item"}),c.item),list:Ei(xa({descendantName:"list"}),c.list),loadPrevious:Ei(xa({descendantName:"loadPrevious"}),c.loadPrevious),disabledLoadPrevious:Ei(xa({descendantName:"loadPrevious",modifierName:"disabled"}),c.disabledLoadPrevious),loadMore:Ei(xa({descendantName:"loadMore"}),c.loadMore),disabledLoadMore:Ei(xa({descendantName:"loadMore",modifierName:"disabled"}),c.disabledLoadMore)},f=function(e){var d=e.containerNode,h=e.cssClasses,f=e.renderState,m=e.templates,p=e.showPrevious;return function(e,t){var n=e.hits,r=e.results,i=e.showMore,a=e.showPrevious,s=e.isFirstPage,o=e.isLastPage,c=e.instantSearchInstance,u=e.insights,l=e.bindEvent;t?f.templateProps=Re({defaultTemplates:_a,templatesConfig:c.templatesConfig,templates:m}):fr(Kn(Na,{cssClasses:h,hits:n,results:r,hasShowPrevious:p,showPrevious:a,showMore:i,templateProps:f.templateProps,isFirstPage:s,isLastPage:o,insights:u,sendEvent:function(e){c.sendEventToInsights(e)},bindEvent:l}),d)}}({containerNode:d,cssClasses:h,templates:s,showPrevious:u,renderState:{}});return W(W({},Mn(Rr)(f,function(){return fr(null,d)})({escapeHTML:r,transformItems:i,showPrevious:u,cache:l})),{},{$$widgetType:"ais.infiniteHits"})},menu:function(e){var t=e||{},n=t.container,r=t.attribute,i=t.sortBy,a=t.limit,s=t.showMore,o=t.showMoreLimit,c=t.cssClasses,u=void 0===c?{}:c,l=t.templates,d=void 0===l?{}:l,h=t.transformItems;if(!n)throw new Error(Fa("The `container` option is required."));var f=ye(n),m={root:Ei(Ta(),u.root),noRefinementRoot:Ei(Ta({modifierName:"noRefinement"}),u.noRefinementRoot),list:Ei(Ta({descendantName:"list"}),u.list),item:Ei(Ta({descendantName:"item"}),u.item),selectedItem:Ei(Ta({descendantName:"item",modifierName:"selected"}),u.selectedItem),link:Ei(Ta({descendantName:"link"}),u.link),label:Ei(Ta({descendantName:"label"}),u.label),count:Ei(Ta({descendantName:"count"}),u.count),showMore:Ei(Ta({descendantName:"showMore"}),u.showMore),disabledShowMore:Ei(Ta({descendantName:"showMore",modifierName:"disabled"}),u.disabledShowMore)},p=function(e){var l=e.containerNode,d=e.cssClasses,h=e.renderState,f=e.templates,m=e.showMore;return function(e,t){var n=e.refine,r=e.items,i=e.createURL,a=e.instantSearchInstance,s=e.isShowingMore,o=e.toggleShowMore,c=e.canToggleShowMore;if(t)h.templateProps=Re({defaultTemplates:Ia,templatesConfig:a.templatesConfig,templates:f});else{var u=r.map(function(e){return W(W({},e),{},{url:i(e.value)})});fr(Kn(ha,{createURL:i,cssClasses:d,facetValues:u,showMore:m,templateProps:h.templateProps,toggleRefinement:n,toggleShowMore:o,isShowingMore:s,canToggleShowMore:c}),l)}}}({containerNode:f,cssClasses:m,renderState:{},templates:d,showMore:s});return W(W({},wr(p,function(){return fr(null,f)})({attribute:r,limit:a,showMore:s,showMoreLimit:o,sortBy:i,transformItems:h})),{},{$$widgetType:"ais.menu"})},menuSelect:function(e){var t=e||{},n=t.container,r=t.attribute,i=t.sortBy,a=void 0===i?["name:asc"]:i,s=t.limit,o=void 0===s?10:s,c=t.cssClasses,u=void 0===c?{}:c,l=t.templates,d=void 0===l?{}:l,h=t.transformItems;if(!n)throw new Error(ka("The `container` option is required."));var f=ye(n),m={root:Ei(La(),u.root),noRefinementRoot:Ei(La({modifierName:"noRefinement"}),u.noRefinementRoot),select:Ei(La({descendantName:"select"}),u.select),option:Ei(La({descendantName:"option"}),u.option)},p=function(e){var a=e.containerNode,s=e.cssClasses,o=e.renderState,c=e.templates;return function(e,t){var n=e.refine,r=e.items,i=e.instantSearchInstance;t?o.templateProps=Re({defaultTemplates:Ea,templatesConfig:i.templatesConfig,templates:c}):fr(Kn(Ca,{cssClasses:s,items:r,refine:n,templateProps:o.templateProps}),a)}}({containerNode:f,cssClasses:m,renderState:{},templates:d});return W(W({},wr(p,function(){return fr(null,f)})({attribute:r,limit:o,sortBy:a,transformItems:h})),{},{$$widgetType:"ais.menuSelect"})},numericMenu:function(e){var t=e||{},n=t.container,r=t.attribute,i=t.items,a=t.cssClasses,s=void 0===a?{}:a,o=t.templates,c=void 0===o?{}:o,u=t.transformItems;if(!n)throw new Error(Ma("The `container` option is required."));var l=ye(n),d={root:Ei(Oa(),s.root),noRefinementRoot:Ei(Oa({modifierName:"noRefinement"}),s.noRefinementRoot),list:Ei(Oa({descendantName:"list"}),s.list),item:Ei(Oa({descendantName:"item"}),s.item),selectedItem:Ei(Oa({descendantName:"item",modifierName:"selected"}),s.selectedItem),label:Ei(Oa({descendantName:"label"}),s.label),radio:Ei(Oa({descendantName:"radio"}),s.radio),labelText:Ei(Oa({descendantName:"labelText"}),s.labelText)},h=function(e){var s=e.containerNode,o=e.attribute,c=e.cssClasses,u=e.renderState,l=e.templates;return function(e,t){var n=e.createURL,r=e.instantSearchInstance,i=e.refine,a=e.items;t?u.templateProps=Re({defaultTemplates:ja,templatesConfig:r.templatesConfig,templates:l}):fr(Kn(ha,{createURL:n,cssClasses:c,facetValues:a,templateProps:u.templateProps,toggleRefinement:i,attribute:o}),s)}}({containerNode:l,attribute:r,cssClasses:d,renderState:{},templates:c});return W(W({},_r(h,function(){return fr(null,l)})({attribute:r,items:i,transformItems:u})),{},{$$widgetType:"ais.numericMenu"})},pagination:function(e){var t=e||{},n=t.container,r=t.templates,i=void 0===r?{}:r,a=t.cssClasses,s=void 0===a?{}:a,o=t.totalPages,c=t.padding,u=t.showFirst,l=void 0===u||u,d=t.showLast,h=void 0===d||d,f=t.showPrevious,m=void 0===f||f,p=t.showNext,g=void 0===p||p,v=t.scrollTo,y=void 0===v?"body":v;if(!n)throw new Error(qa("The `container` option is required."));var b=ye(n),S=!0===y?"body":y,R=!1!==S&&ye(S),w={root:Ei(Ua(),s.root),noRefinementRoot:Ei(Ua({modifierName:"noRefinement"}),s.noRefinementRoot),list:Ei(Ua({descendantName:"list"}),s.list),item:Ei(Ua({descendantName:"item"}),s.item),firstPageItem:Ei(Ua({descendantName:"item",modifierName:"firstPage"}),s.firstPageItem),lastPageItem:Ei(Ua({descendantName:"item",modifierName:"lastPage"}),s.lastPageItem),previousPageItem:Ei(Ua({descendantName:"item",modifierName:"previousPage"}),s.previousPageItem),nextPageItem:Ei(Ua({descendantName:"item",modifierName:"nextPage"}),s.nextPageItem),pageItem:Ei(Ua({descendantName:"item",modifierName:"page"}),s.pageItem),selectedItem:Ei(Ua({descendantName:"item",modifierName:"selected"}),s.selectedItem),disabledItem:Ei(Ua({descendantName:"item",modifierName:"disabled"}),s.disabledItem),link:Ei(Ua({descendantName:"link"}),s.link)},_=W(W({},Qa),i),P=function(e){var u=e.containerNode,l=e.cssClasses,d=e.templates,h=e.showFirst,f=e.showLast,m=e.showPrevious,p=e.showNext,g=e.scrollToNode;return function(e,t){var n=e.createURL,r=e.currentRefinement,i=e.nbPages,a=e.pages,s=e.isFirstPage,o=e.isLastPage,c=e.refine;if(!t){fr(Kn(Aa,{createURL:n,cssClasses:l,currentPage:r,templates:d,nbPages:i,pages:a,isFirstPage:s,isLastPage:o,setCurrentPage:function(e){c(e),!1!==g&&g.scrollIntoView()},showFirst:h,showLast:f,showPrevious:m,showNext:p}),u)}}}({containerNode:b,cssClasses:w,templates:_,showFirst:l,showLast:h,showPrevious:m,showNext:g,scrollToNode:R});return W(W({},kr(P,function(){return fr(null,b)})({totalPages:o,padding:c})),{},{$$widgetType:"ais.pagination"})},panel:function(e){var t=e||{},n=t.templates,r=void 0===n?{}:n,i=t.hidden,c=void 0===i?function(){return!1}:i,a=t.collapsed,s=t.cssClasses,o=void 0===s?{}:s,u=document.createElement("div"),l=Boolean(a),d="function"==typeof a?a:function(){return!1},h={root:Ei(ds(),o.root),noRefinementRoot:Ei(ds({modifierName:"noRefinement"}),o.noRefinementRoot),collapsibleRoot:Ei(ds({modifierName:"collapsible"}),o.collapsibleRoot),collapsedRoot:Ei(ds({modifierName:"collapsed"}),o.collapsedRoot),collapseButton:Ei(ds({descendantName:"collapseButton"}),o.collapseButton),collapseIcon:Ei(ds({descendantName:"collapseIcon"}),o.collapseIcon),body:Ei(ds({descendantName:"body"}),o.body),header:Ei(ds({descendantName:"header"}),o.header),footer:Ei(ds({descendantName:"footer"}),o.footer)};return function(t){return function(e){if(!e||!e.container)throw new Error(ls("The `container` option is required in the widget within the panel."));var i=ye(e.container),s=function(e){var a=e.containerNode,s=e.bodyContainerNode,o=e.cssClasses,c=e.templates;return function(e){var t=e.options,n=e.hidden,r=e.collapsible,i=e.collapsed;fr(Kn(os,{cssClasses:o,hidden:n,collapsible:r,isCollapsed:i,templates:c,data:t,bodyElement:s}),a)}}({containerNode:i,bodyContainerNode:u,cssClasses:h,templates:W(W({},{header:"",footer:"",collapseButtonText:function(e){var t=e.collapsed;return'\n \n ')}}),r)}),o=t(W(W({},e),{},{container:u}));return W(W({},o),{},{init:function(){for(var e=arguments.length,t=new Array(e),n=0;n + +{{#helpers.highlight}}{"attribute": "title"}{{/helpers.highlight}} + + ` + } + }) +]); + +search.start(); + +const searchBox = + document.querySelector(".ais-SearchBox-input"); + +const searchResultsBox = + document.getElementById('hits'); + +const searchResultsList = + document.querySelector(".ais-Hits-list"); + +searchBox.addEventListener("keydown", showSearchResults); + +document.onmousedown = () => { + if (document.activeElement !== searchBox) { + hideSearchResults(); + } +}; + +function showSearchResults() { + document.getElementById('hits').style.display = 'block'; + document.onkeydown = (evt) => { + if (evt.keyCode === 9) { + searchResultsBox.focus(); + } + if (evt.keyCode === 27) { + searchBox.blur(); + hideSearchResults(); + } + }; + document.onkeyup = (evt) => { + if (searchBox.value.length == 0) { + hideSearchResults(); + } + }; +} + +function hideSearchResults() { + document.getElementById('hits').style.display = 'none'; +}