var Select=function(t,i){this.target=null,this.select=null,this.display=null,this.list=null,this.options=[],this.isLarge=!1,this.value=null,this.selected=null,this.settings=null,this.highlighted=null,this.init=function(){switch(typeof t){case"object":this.target=t;break;case"string":this.target=document.querySelector(t)}this.settings=this.getSettings(i),this.buildSelect(),this.target.parentNode.replaceChild(this.select,this.target),this.target.style.display="none",this.select.appendChild(this.target),document.addEventListener("click",this.handleClickOff.bind(this)),this.positionList()},this.buildSelect=function(){this.select=document.createElement("div"),this.select.classList.add("select"),this.select.setAttribute("tabindex",this.target.tabIndex),this.select.addEventListener("keydown",this.handleSelectKeydown.bind(this)),this.display=document.createElement("span"),this.display.classList.add("value"),this.display.addEventListener("click",this.handleDisplayClick.bind(this)),this.select.appendChild(this.display),this.buildList(),this.options.length&&(this.value=this.options[this.target.selectedIndex].getAttribute("data-value"),this.selected=this.options[this.target.selectedIndex],this.display.innerHTML=this.selected.innerHTML),("auto"===this.settings.filtered&&this.options.length>=this.settings.filter_threshold||this.settings.filtered===!0)&&(this.isLarge=!0,this.select.classList.add("large"))},this.buildList=function(){this.list=document.createElement("div"),this.list.classList.add("list"),this.list.setAttribute("tabindex","-1"),this.list.addEventListener("keydown",this.handleListKeydown.bind(this)),this.list.addEventListener("mouseenter",function(){this.options[this.highlighted].classList.remove("hovered")}.bind(this)),this.highlighted=this.target.selectedIndex,this.buildFilter(),this.buildOptions(),this.select.appendChild(this.list)},this.buildFilter=function(){var t=document.createElement("div");t.classList.add("filter"),this.filter=document.createElement("input"),this.filter.type="text",this.filter.setAttribute("placeholder",this.settings.filter_placeholder),this.filter.addEventListener("keyup",this.handleFilterKeyup.bind(this)),t.appendChild(this.filter),this.list.appendChild(t)},this.buildOptions=function(){for(var t=document.createElement("ul"),i=this.target.querySelectorAll("option"),e=0;ethis.options.length-1?this.highlighted:this.highlighted+1;break;default:i=this.highlighted}this.options[this.highlighted].classList.remove("hovered"),this.options[i].classList.add("hovered"),this.highlighted=i},this.clearFilter=function(){this.filter.value="";for(var t=0;t