PageSourceSearch

https://www.basler-beauty.ch/theme/59d215d9a4f5d11511ffa3850758f3b…/ix-address-autocomplete.js?1790361042

js basler-beauty.ch collected 2026-09-29 12:35:10 UTC 4,118 bytes, 1 lines download raw bytes

1(()=>{"use strict";class e{static debounce(e,t){let s,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(){for(var l=arguments.length,r=Array(l),o=0;o<l;o++)r[o]=arguments[o];i&&!s&&setTimeout(e.bind(e,...r),0),clearTimeout(s),s=setTimeout(e.bind(e,...r),t)}}}let{PluginBaseClass:t}=window;class s extends t{static #e=this.options={streetFieldSelector:null,cityFieldSelector:null,zipcodeFieldSelector:null,countryFieldSelector:null,suggestResultSelectClass:"js-search-result",listboxIdSuffix:"-suggest-listbox",suggestUrlDataAttribute:"data-url",navigationKeyCodes:["ArrowUp","ArrowDown","Escape","Enter","Space","Tab"],suggestDelay:500};init(){try{this._streetField=this.el.querySelector(this.options.streetFieldSelector),this._zipcodeField=this.el.querySelector(this.options.zipcodeFieldSelector),this._cityField=this.el.querySelector(this.options.cityFieldSelector),this._countrySelect=this.el.querySelector(this.options.countryFieldSelector),this._url=this.el.getAttribute(this.options.suggestUrlDataAttribute)}catch(e){return}this._addressFields={street:this._streetField,zipcode:this._zipcodeField,city:this._cityField},this._inputField=null,this._registerEvents()}_registerEvents(){for(let[,t]of Object.entries(this._addressFields))t.addEventListener("input",e.debounce(this._handleInputEvent.bind(this),this.options.suggestDelay),{capture:!0,passive:!0}),t.setAttribute("role","combobox"),t.setAttribute("aria-autocomplete","list"),t.setAttribute("aria-controls",t.id+this.options.listboxIdSuffix),t.setAttribute("aria-expanded","false"),t.addEventListener("keydown",this._handleKeyEvent.bind(this))}_handleInputEvent(e){this._countrySelect.value&&this._suggest(e.target)}_handleKeyEvent(e){"ArrowDown"===e.key&&""!==e.target.value.trim()&&(e.preventDefault(),this.suggestItems&&this.suggestItems.length&&window.focusHandler.setFocus(this.suggestItems[0],{focusVisible:!0}))}_handleSearchItemKeyEvent(e,t){("ArrowDown"===t.key||"ArrowUp"===t.key||"Enter"===t.key||"Tab"===t.key)&&(t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),("Enter"===t.key||"Tab"===t.key)&&this._select(t.target),"ArrowDown"===t.key&&this._moveFocusDown(e),"ArrowUp"===t.key&&this._moveFocusUp(e))}_handleClickItemEvent(e){this._select(e.target)}_moveFocusUp(e){if(0===e)window.focusHandler.setFocus(this._inputField,{focusVisible:!0});else{let t=this.suggestItems[e-1];window.focusHandler.setFocus(t,{focusVisible:!0})}}_moveFocusDown(e){if(e<this.suggestItems.length){let t=this.suggestItems[e+1];window.focusHandler.setFocus(t,{focusVisible:!0})}}_suggest(e){let t={city:"",zipcode:"",street:""};for(let[e,s]of Object.entries(this._addressFields))t[e]=s.value;this._url&&""!==Object.values(t).join("").trim()&&fetch(this._url,{method:"POST",body:JSON.stringify({...t,countryId:this._countrySelect.value}),headers:{"Content-Type":"application/json","X-Requested-With":"XMLHttpRequest"}}).then(e=>{if(e.ok)return e.text();throw Error()}).then(t=>{if(this._clearSuggestResults(e),!t.trim())return;e.insertAdjacentHTML("afterend",t),e.setAttribute("aria-expanded","true"),this._inputField=e;let s=e.nextElementSibling;s&&s.classList.contains(this.options.suggestResultSelectClass)&&(s.id="#"+e.id+this.options.listboxIdSuffix,this.suggestItems=Array.from(window.focusHandler.getFocusableElements(s)),this.suggestItems.forEach((e,t)=>{e.addEventListener("keydown",this._handleSearchItemKeyEvent.bind(this,t)),e.addEventListener("click",this._handleClickItemEvent.bind(this))}))}).catch(()=>{this._clearSuggestResults(e)})}_select(e){for(let[,t]of(this._streetField.value=e.getAttribute("data-street"),this._zipcodeField.value=e.getAttribute("data-zipcode"),this._cityField.value=e.getAttribute("data-city"),Object.entries(this._addressFields)))t.dispatchEvent(new Event("change"));this._clearSuggestResults(e)}_clearSuggestResults(e){document.querySelectorAll("."+this.options.suggestResultSelectClass).forEach(e=>e.remove()),e.setAttribute("aria-expanded","false"),this._inputField=null}}window.PluginManager.register("IxAddressAutocompletePlugin",s,"[data-ix-address-autocomplete-plugin]")})();

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.