1"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[83839],{3839:(e,t,s)=>{s.r(t),s.d(t,{default:()=>a});var i=s(4335),n=s(4059),r=s(9068),o=s(44);class a extends i.A{static #e=this.options={searchWidgetSelector:".js-search-form",searchWidgetResultSelector:".js-search-result",searchWidgetResultItemSelector:".js-result",searchWidgetInputFieldSelector:"input[type=search]",searchWidgetButtonFieldSelector:"button[type=submit]",searchWidgetUrlDataAttribute:"data-url",searchWidgetCollapseButtonSelector:".js-search-toggle-btn",searchWidgetCollapseClass:"collapsed",searchWidgetCloseButtonSelector:".js-search-close-btn",searchWidgetDelay:250,searchWidgetMinChars:3};init(){try{this._inputField=this.el.querySelector(this.options.searchWidgetInputFieldSelector),this._submitButton=this.el.querySelector(this.options.searchWidgetButtonFieldSelector),this._closeButton=this.el.querySelector(this.options.searchWidgetCloseButtonSelector),this._url=this.el.getAttribute(this.options.searchWidgetUrlDataAttribute)}catch(e){return}this._client=new r.A,this.searchSuggestLinks=[],this._registerEvents()}_registerEvents(){this._inputField.addEventListener("input",n.A.debounce(this._handleInputEvent.bind(this),this.options.searchWidgetDelay),{capture:!0,passive:!0}),this._inputField.addEventListener("keydown",this._handleKeyEvent.bind(this)),this.el.addEventListener("submit",this._handleSearchEvent.bind(this)),document.body.addEventListener("click",this._onBodyClick.bind(this)),this._registerInputFocus(),this._closeButton.addEventListener("click",this._onCloseButtonClick.bind(this))}_handleSearchEvent(e){this._inputField.value.trim().length<this.options.searchWidgetMinChars&&(e.preventDefault(),e.stopPropagation())}_handleInputEvent(){let e=this._inputField.value.trim();if(e.length<this.options.searchWidgetMinChars){this._clearSuggestResults();return}this._suggest(e),this.$emitter.publish("handleInputEvent",{value:e})}_handleKeyEvent(e){"ArrowDown"===e.key&&""!==this._inputField.value.trim()&&(e.preventDefault(),this.searchSuggestLinks&&this.searchSuggestLinks.length&&window.focusHandler.setFocus(this.searchSuggestLinks[0],{focusVisible:!0}))}_handleSearchItemKeyEvent(e,t){("ArrowDown"===t.key||"ArrowUp"===t.key)&&(t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),"ArrowDown"===t.key&&this._moveFocusDown(e),"ArrowUp"===t.key&&this._moveFocusUp(e))}_moveFocusUp(e){if(0===e)window.focusHandler.setFocus(this._inputField,{focusVisible:!0});else{let t=this.searchSuggestLinks[e-1];window.focusHandler.setFocus(t,{focusVisible:!0})}}_moveFocusDown(e){if(e<this.searchSuggestLinks.length){let t=this.searchSuggestLinks[e+1];window.focusHandler.setFocus(t,{focusVisible:!0})}}_suggest(e){let t=this._url+encodeURIComponent(e),s=new o.A(this._submitButton);s.create(),this.$emitter.publish("beforeSearch"),fetch(t,{headers:{"X-Requested-With":"XMLHttpRequest"}}).then(e=>e.text()).then(e=>{this._clearSuggestResults(),s.remove(),this.el.querySelector(this.options.searchWidgetButtonFieldSelector).insertAdjacentHTML("afterend",e),this._inputField.setAttribute("aria-expanded","true");let t=document.querySelector(this.options.searchWidgetResultSelector);this.searchSuggestLinks=Array.from(window.focusHandler.getFocusableElements(t)),this.searchSuggestLinks.forEach((e,t)=>{e.addEventListener("keydown",this._handleSearchItemKeyEvent.bind(this,t))}),this.$emitter.publish("afterSuggest")}).catch(()=>{s.remove(),this._clearSuggestResults()})}_clearSuggestResults(){document.querySelectorAll(this.options.searchWidgetResultSelector).forEach(e=>e.remove()),this._inputField.setAttribute("aria-expanded","false"),this.$emitter.publish("clearSuggestResults")}_onBodyClick(e){e.target.closest(this.options.searchWidgetSelector)||e.target.closest(this.options.searchWidgetResultSelector)||(this._clearSuggestResults(),this.$emitter.publish("onBodyClick"))}_onCloseButtonClick(){this._inputField.value="",this._inputField.focus(),this._clearSuggestResults()}_registerInputFocus(){this._toggleButton=document.querySelector(this.options.searchWidgetCollapseButtonSelector),this._toggleButton&&this._toggleButton.addEventListener("click",this._focusInput.bind(this))}_focusInput(){this._toggleButton&&!this._toggleButton.classList.contains(this.options.searchWidgetCollapseClass)&&(this._toggleButton.blur(),this._inputField.focus()),this.$emitter.publish("focusInput")}}},9068:(e,t,s)=>{s.d(t,{A:()=>i});class i{constructor(){this._request=null,this._errorHandlingInternal=!1}get(e,t){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"application/json",i=this._createPreparedRequest("GET",e,s);return this._sendRequest(i,null,t)}
1post(e,t,s){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";i=this._getContentType(t,i);let n=this._createPreparedRequest("POST",e,i);return this._sendRequest(n,t,s)}delete(e,t,s){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";i=this._getContentType(t,i);let n=this._createPreparedRequest("DELETE",e,i);return this._sendRequest(n,t,s)}patch(e,t,s){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";i=this._getContentType(t,i);let n=this._createPreparedRequest("PATCH",e,i);return this._sendRequest(n,t,s)}abort(){if(this._request)return this._request.abort()}setErrorHandlingInternal(e){this._errorHandlingInternal=e}_registerOnLoaded(e,t){t&&(!0===this._errorHandlingInternal?(e.addEventListener("load",()=>{t(e.responseText,e)}),e.addEventListener("abort",()=>{console.warn(`the request to ${e.responseURL} was aborted`)}),e.addEventListener("error",()=>{console.warn(`the request to ${e.responseURL} failed with status ${e.status}`)}),e.addEventListener("timeout",()=>{console.warn(`the request to ${e.responseURL} timed out`)})):e.addEventListener("loadend",()=>{t(e.responseText,e)}))}_sendRequest(e,t,s){return this._registerOnLoaded(e,s),e.send(t),e}_getContentType(e,t){return e instanceof FormData&&(t=!1),t}_createPreparedRequest(e,t,s){return this._request=new XMLHttpRequest,this._request.open(e,t),this._request.setRequestHeader("X-Requested-With","XMLHttpRequest"),s&&this._request.setRequestHeader("Content-type",s),this._request}}},44:(e,t,s)=>{s.d(t,{A:()=>n});var i=s(5683);class n extends i.A{constructor(e,t="before"){super(e,t),this._isValidElement()||console.warn(`[ButtonLoadingIndicatorUtil] Parent element is not of type <button> or <a>. Given element: ${this.parent}`)}create(){if(!this._isValidElement()){console.warn(`[ButtonLoadingIndicatorUtil] Unable to create loading indicator. Parent element is not of type <button> or <a>. Given element: ${this.parent}`);return}if("inner"===this.position){let e=this.parent.getBoundingClientRect().width;this.parent.style.width=`${e}px`}super.create(),this.parent.classList.add(`is-loading-indicator-${this.position}`),this._isButtonElement()?this.parent.disabled=!0:this._isAnchorElement()&&this.parent.classList.add("disabled")}remove(){if(!this.exists()){console.warn(`[ButtonLoadingIndicatorUtil] Unable to remove loading indicator. No indicator present on given element: ${this.parent}`);return}"inner"===this.position&&(this.parent.style.width="auto"),super.remove(),this.parent.classList.remove(`is-loading-indicator-${this.position}`),this._isButtonElement()?this.parent.disabled=!1:this._isAnchorElement()&&this.parent.classList.remove("disabled")}_isValidElement(){return this._isButtonElement()||this._isAnchorElement()}_isButtonElement(){return this.parent?.tagName.toLowerCase()==="button"}_isAnchorElement(){return this.parent?.tagName.toLowerCase()==="a"}}},5683:(e,t,s)=>{s.d(t,{A:()=>r,c:()=>n});let i="loader",n={BEFORE:"before",AFTER:"after",INNER:"inner"};class r{constructor(e,t=n.BEFORE){this.parent=e instanceof Element?e:document.body.querySelector(e),this.position=t}create(){if(!this.exists()){if(this.position===n.INNER){this._previousHTML=this.parent.innerHTML,this.parent.innerHTML=r.getTemplate();return}this.parent.insertAdjacentHTML(this._getPosition(),r.getTemplate())}}remove(){if(this.position===n.INNER){this.parent.innerHTML=this._previousHTML;return}this.parent.querySelectorAll(`.${i}`).forEach(e=>e.remove())}exists(){return this.parent.querySelectorAll(`.${i}`).length>0}_getPosition(){return this.position===n.BEFORE?"afterbegin":"beforeend"}static getTemplate(){return`<div class="${i}" role="status"> 2 <span class="visually-hidden">Loading...</span> 3 </div>`}static SELECTOR_CLASS(){return i}}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.