$=jQuery.noConflict();$(document).ready(function(){function removeUnusedTokens(tokens){tokens.forEach(token=>{token.parentNode.removeChild(token);});} window.closeMultiSelect=function(e){const wrappers=document.querySelectorAll('.sc_multi_select');wrappers.forEach(wrapper=>{const select=wrapper.querySelector("select");const dropdown=wrapper.querySelector(".dropdown-icon");clearAutocompleteList(select);wrapper.classList.remove("open");dropdown.classList.remove("active");});} window.addEventMultiSelect=function(element){console.log('addEventMultiSelect');const wrapper=element.querySelector('.multi-select-component');wrapper.addEventListener("click",clickOnWrapper);const tokens=wrapper.querySelectorAll('.selected-wrapper');removeUnusedTokens(tokens);const input=wrapper.querySelector(".selected-input");input.addEventListener("keyup",inputChange);input.addEventListener("keydown",deletePressed);input.addEventListener("click",openOptions);console.log(input);const dropdown_icon=wrapper.querySelector(".dropdown-icon");dropdown_icon.addEventListener("click",clickDropdown);const select=wrapper.querySelector(".sc_multi_select-js");createInitialTokens(select);addPlaceholder(wrapper);} window.initMultiSelect=function(element){console.log('initMultiSelect');const wrapper=document.createElement("div");wrapper.addEventListener("click",clickOnWrapper);wrapper.classList.add("multi-select-component");const search_div=document.createElement("div");search_div.classList.add("search-container");const input=document.createElement("input");input.classList.add("selected-input");input.setAttribute("autocomplete","off");input.setAttribute("tabindex","0");input.addEventListener("keyup",inputChange);input.addEventListener("keydown",deletePressed);input.addEventListener("click",openOptions);const dropdown_icon=document.createElement("a");dropdown_icon.setAttribute("href","#");dropdown_icon.classList.add("dropdown-icon");dropdown_icon.addEventListener("click",clickDropdown);const autocomplete_list=document.createElement("ul");autocomplete_list.classList.add("autocomplete-list");search_div.appendChild(input);search_div.appendChild(autocomplete_list);search_div.appendChild(dropdown_icon);element.parentNode.replaceChild(wrapper,element);wrapper.appendChild(element);wrapper.appendChild(search_div);createInitialTokens(element);addPlaceholder(wrapper);} function removePlaceholder(wrapper){console.log('removePlaceholder');const input_search=wrapper.querySelector(".selected-input");input_search.removeAttribute("placeholder");} function addPlaceholder(wrapper){const outerContainer=wrapper.closest(".sc_multi_select");const placeholder=outerContainer.getAttribute('data-placeholder');const input_search=wrapper.querySelector(".selected-input");const tokens=wrapper.querySelectorAll(".selected-wrapper");if(!tokens.length&&!(document.activeElement===input_search)) input_search.setAttribute("placeholder",placeholder);} function createInitialTokens(select){console.log('createInitialTokens');let{options_selected}=getOptions(select);const wrapper=select.parentNode;for(let i=0;i{var text=node.textContent labelsArray.push(text);});return labelsArray;} function createToken(wrapper,value){console.log('createToken');const outerContainer=wrapper.closest(".sc_multi_select");const queryParam=outerContainer.getAttribute('data-queryParam');const search=wrapper.querySelector(".search-container");const token=document.createElement("div");token.classList.add("selected-wrapper");const token_span=document.createElement("span");token_span.classList.add("selected-label");token_span.innerText=value;const close=document.createElement("a");close.classList.add("selected-close");close.setAttribute("tabindex","-1");close.setAttribute("data-option",value);close.setAttribute("data-hits",0);close.setAttribute("href","#");close.innerText="x";close.addEventListener("click",removeToken) token.appendChild(token_span);token.appendChild(close);wrapper.insertBefore(token,search);$labelsArray=getInputLabels(wrapper);setUrlParam(queryParam,$labelsArray);} function clickDropdown(e){console.log('clickDropdown');const dropdown=e.target;const outerContainer=e.target.closest(".sc_multi_select");const wrapper=dropdown.parentNode.parentNode;const input_search=wrapper.querySelector(".selected-input");const select=wrapper.querySelector("select");dropdown.classList.toggle("active");outerContainer.classList.toggle("open");if(dropdown.classList.contains("active")){console.log('dropdown.classList.contains');removePlaceholder(wrapper);input_search.focus();if(!input_search.value){populateAutocompleteList(select,"",true);}else{populateAutocompleteList(select,input_search.value);}}else{clearAutocompleteList(select);addPlaceholder(wrapper);}} function clearAutocompleteList(select){console.log('clearAutocompleteList');const wrapper=select.parentNode;const autocomplete_list=wrapper.querySelector(".autocomplete-list");autocomplete_list.innerHTML="";} function populateAutocompleteList(select,query,dropdown=false){console.log('populateAutocompleteList');console.log(select);console.log(query);const{autocomplete_options}=getOptions(select);let options_to_show;if(dropdown) options_to_show=autocomplete_options;else options_to_show=autocomplete(query,autocomplete_options);const wrapper=select.parentNode;const outerContainer=select.closest(".sc_multi_select");const queryParam=outerContainer.getAttribute('data-queryParam');const input_search=wrapper.querySelector(".search-container");const autocomplete_list=wrapper.querySelector(".autocomplete-list");autocomplete_list.innerHTML="";const result_size=options_to_show.length;var $labelsArray=getInputLabels(wrapper);console.log($labelsArray);setUrlParam(queryParam,$labelsArray);console.log(result_size);if(result_size==1){const li=document.createElement("li");li.innerText=options_to_show[0];li.setAttribute('data-value',options_to_show[0]);li.addEventListener("click",selectOption);autocomplete_list.appendChild(li);if(query.length==options_to_show[0].length){const event=new Event('click');li.dispatchEvent(event);}}else if(result_size>1){for(let i=0;iel.value);const options_selected=Array.from(select.querySelectorAll("option:checked")).map(el=>el.value);const autocomplete_options=[];all_options.forEach(option=>{if(!options_selected.includes(option)){autocomplete_options.push(option);}});autocomplete_options.sort();return{options_selected,autocomplete_options};} function removeToken(e){console.log('removeToken');const value_to_remove=e.target.dataset.option;const wrapper=e.target.parentNode.parentNode;const input_search=wrapper.querySelector(".selected-input");const dropdown=wrapper.querySelector(".dropdown-icon");const outerContainer=e.target.closest(".sc_multi_select");const option_to_unselect=wrapper.querySelector(`select option[value="${value_to_remove}"]`);option_to_unselect.removeAttribute("selected");e.target.parentNode.remove();input_search.focus();dropdown.classList.remove("active");outerContainer.classList.remove("open");const event=new Event('click');dropdown.dispatchEvent(event);e.stopPropagation();reloadPage(wrapper);} function deletePressed(e){const wrapper=e.target.parentNode.parentNode;const input_search=e.target;const key=e.keyCode||e.charCode;const tokens=wrapper.querySelectorAll(".selected-wrapper");console.log('delete');if(tokens.length){const last_token_x=tokens[tokens.length-1].querySelector("a");let hits=+last_token_x.dataset.hits;if(key==8||key==46){if(!input_search.value){if(hits>1){const event=new Event('click');last_token_x.dispatchEvent(event);}else{last_token_x.dataset.hits=2;}}}else{last_token_x.dataset.hits=0;}} return true;} function addOption(target,val,text){const select=document.querySelector(target);let opt=document.createElement('option');opt.value=val;opt.innerHTML=text;select.appendChild(opt);} const select=document.querySelectorAll(".sc_multi_select-js");select.forEach(select=>{initMultiSelect(select);});$(document).on('click',function(e){if(!$(e.target).closest('.sc_multi_select').length){closeMultiSelect(e);}})});