var NRF_ChainedFields=function(){function e(){this.nextSelect=null,this.initEvents()}var t=e.prototype;return t.initEvents=function(){document.addEventListener("change",function(e){this.handleChange(e)}.bind(this))},t.handleChange=function(e){var t,n,o=e.target.closest(".nr-chained-fields-select");o&&this.getNextSelect(o)&&(t=this,n=e.target.closest(".nr-chained-fields"),this.resetNextSelects(o),o.value)&&(this.setNextSelectIsLoading(o),(o=new FormData).append("select_id",e.target.id),o.append("value",JSON.stringify(this.getValue(n))),o.append("data_source",n.dataset.dataSource),o.append("csv",n.dataset.csv),o.append(Joomla.getOptions("csrf.token"),1),fetch(n.dataset.baseUrl+n.dataset.ajaxUrl,{method:"post",body:o}).then(function(e){return e.json()}).then(function(e){e.error?alert(e.response):t.populateNextSelect(e.response)}))},t.populateNextSelect=function(e){this.populateDropdown(e,this.nextSelect),this.nextSelect.removeAttribute("disabled"),this.nextSelect.querySelector("option.placeholder").innerHTML=this.nextSelect.querySelector("option.placeholder").dataset.original,window.jQuery&&jQuery().chosen&&jQuery(this.nextSelect).chosen("destroy").chosen()},t.getValue=function(e){var t={};return e.querySelectorAll(".nr-chained-fields-select").forEach(function(e){t[e.name]=e.options[e.selectedIndex].classList.contains("placeholder")?"":e.value}),t},t.populateDropdown=function(e,t){for(var n=0;n<e.length;n++){var o=document.createElement("option");o.value=e[n].value,o.text=e[n].text,t.appendChild(o)}},t.resetNextSelects=function(e){e=this.getNextSelect(e);e&&(e.setAttribute("disabled","disabled"),e.querySelector("option.placeholder").innerHTML=e.querySelector("option.placeholder").dataset.original,e.querySelectorAll("option:not(.placeholder)").forEach(function(e){e.remove()}),window.jQuery&&jQuery().chosen&&jQuery(e).chosen("destroy").chosen(),this.resetNextSelects(e))},t.getNextSelect=function(e){return!!e.nextElementSibling&&"select"==e.nextElementSibling.nodeName.toLowerCase()&&e.nextElementSibling},t.setNextSelectIsLoading=function(e){var t=this.getNextSelect(e);t&&(this.nextSelect=t,e=e.closest(".nr-chained-fields").dataset.loading,t.querySelector("option").innerHTML=e,window.jQuery)&&jQuery().chosen&&jQuery(t).chosen("destroy").chosen()},e}();document.addEventListener("DOMContentLoaded",function(){new NRF_ChainedFields});

