Current File : /home/pacjaorg/.trash/media.1/system/js/searchtools.min.js |
Joomla=window.Joomla||{},(c=>{c.resetFilters=l=>{const{form:t}=l;if(!t)throw new Error("Element must be inside a form!");const e=[].slice.call(t.elements);if(e.length){const i=[];e.forEach(s=>{s.getAttribute("name")==="task"||s.getAttribute("name")==="boxchecked"||s.value==="1"&&/^[0-9A-F]{32}$/i.test(s.name)||s===l||i.push(s)}),i.forEach(s=>{s.value=""}),t.submit()}};class f{constructor(t,e){const i={formSelector:".js-stools-form",searchFieldSelector:".js-stools-field-search",clearBtnSelector:".js-stools-btn-clear",mainContainerSelector:".js-stools",searchBtnSelector:".js-stools-btn-search",filterBtnSelector:".js-stools-btn-filter",filterContainerSelector:".js-stools-container-filters",filtersHidden:!0,listBtnSelector:".js-stools-btn-list",listContainerSelector:".js-stools-container-list",listHidden:!0,orderColumnSelector:".js-stools-column-order",orderBtnSelector:".js-stools-btn-order",orderFieldSelector:".js-stools-field-order",orderFieldName:"list[fullordering]",limitFieldSelector:".js-stools-field-limit",defaultLimit:20,activeOrder:null,activeDirection:"ASC",clearListOptions:!1,listSelectAutoSubmit:"js-select-submit-on-change",listSelectAutoReset:"js-select-reset-on-change"};this.element=t,this.options=c.extend(i,e),this.theForm=document.querySelector(this.options.formSelector),this.filterButton=document.querySelector(`${this.options.formSelector} ${this.options.filterBtnSelector}`),this.filterContainer=document.querySelector(`${this.options.formSelector} ${this.options.filterContainerSelector}`)?document.querySelector(`${this.options.formSelector} ${this.options.filterContainerSelector}`):"",this.filtersHidden=this.options.filtersHidden,this.listButton=document.querySelector(this.options.listBtnSelector),this.listContainer=document.querySelector(`${this.options.formSelector} ${this.options.listContainerSelector}`),this.listHidden=this.options.listHidden,this.mainContainer=document.querySelector(this.options.mainContainerSelector),this.searchButton=document.querySelector(`${this.options.formSelector} ${this.options.searchBtnSelector}`),this.searchField=document.querySelector(`${this.options.formSelector} ${this.options.searchFieldSelector}`),this.searchString=null,this.clearButton=document.querySelector(this.options.clearBtnSelector),this.orderCols=document.querySelectorAll(`${this.options.formSelector} ${this.options.orderColumnSelector}`),this.orderField=document.querySelector(`${this.options.formSelector} ${this.options.orderFieldSelector}`),this.limitField=document.querySelector(`${this.options.formSelector} ${this.options.limitFieldSelector}`),this.activeColumn=null,this.activeDirection=this.options.activeDirection,this.activeOrder=this.options.activeOrder,this.activeLimit=null,this.clearListOptions=this.options.clearListOptions;const s=this;this.searchString=this.searchField?this.searchField.value:"",this.showFilters=this.showFilters.bind(this),this.hideFilters=this.hideFilters.bind(this),this.showList=this.showList.bind(this),this.hideList=this.hideList.bind(this),this.toggleFilters=this.toggleFilters.bind(this),this.toggleList=this.toggleList.bind(this),this.checkFilter=this.checkFilter.bind(this),this.clear=this.clear.bind(this),this.createOrderField=this.createOrderField.bind(this),this.checkActiveStatus=this.checkActiveStatus.bind(this),this.activeFilter=this.activeFilter.bind(this),this.deactiveFilter=this.deactiveFilter.bind(this),this.getFilterFields=this.getFilterFields.bind(this),this.getListFields=this.getListFields.bind(this),this.hideContainer=this.hideContainer.bind(this),this.showContainer=this.showContainer.bind(this),this.toggleContainer=this.toggleContainer.bind(this),this.toggleDirection=this.toggleDirection.bind(this),this.updateFieldValue=this.updateFieldValue.bind(this),this.findOption=this.findOption.bind(this),this.filterContainer&&this.filterContainer.classList.contains("js-stools-container-filters-visible")?(this.showFilters(),this.showList()):(this.hideFilters(),this.hideList()),this.filterButton&&this.filterButton.addEventListener("click",o=>{s.toggleFilters(),o.stopPropagation(),o.preventDefault()}),this.listButton&&this.listButton.addEventListener("click",o=>{s.toggleList(),o.stopPropagation(),o.preventDefault()}),this.getFilterFields().forEach(o=>{const r=!o.classList.contains(this.options.listSelectAutoSubmit)&&o.closest(`joomla-field-fancy-select.${this.options.listSelectAutoSubmit}`),n=!o.classList.contains(this.options.listSelectAutoReset)&&o.closest(`joomla-field-fancy-select.${this.options.listSelectAutoReset}`);s.checkFilter(o),o.addEventListener("change",()=>{s.checkFilter(o),(o.classList.contains(this.options.listSelectAutoSubmit)||r)&&o.form.submit(),(o.classList.contains(this.options.listSelectAutoReset)||n)&&this.clear(o)})}),this.clearButton&&this.clearButton.addEventListener("click",s.clear),this.createOrderField(),this.orderCols.forEach(o=>{o.addEventListener("click",({target:r})=>{const n=r.tagName.toLowerCase()==="span"?r.parentNode:r,a=n.getAttribute("data-order"),d=n.getAttribute("data-direction"),h=`${a} ${d}`;a.length&&(s.activeColumn=a,h!==s.activeOrder?(s.activeDirection=d,s.activeOrder=h,s.updateFieldValue(s.orderField,h)):s.toggleDirection(),s.theForm.submit())})}),this.checkActiveStatus(this)}checkFilter(t){if(t.tagName.toLowerCase()==="select"){const e=t.querySelector("option:checked");e&&(e.value!==""?this.activeFilter(t,this):this.deactiveFilter(t,this))}else t.value!==""?this.activeFilter(t,this):this.deactiveFilter(t,this)}clear(t=null){const e=this;e.searchField&&(e.searchField.value=""),e.getFilterFields().forEach(i=>{t&&i===t||!i.closest(this.options.filterContainerSelector)||(i.value="",e.checkFilter(i),window.jQuery&&window.jQuery.chosen&&window.jQuery(i).trigger("chosen:updated"))}),e.clearListOptions&&(e.getListFields().forEach(i=>{i.value="",e.checkFilter(i),window.jQuery&&window.jQuery.chosen&&window.jQuery(i).trigger("chosen:updated")}),document.querySelector("#list_limit").value=e.options.defaultLimit,window.jQuery&&window.jQuery.chosen&&window.jQuery("#list_limit").trigger("chosen:updated")),e.theForm.submit()}updateFilterCount(t){this.clearButton&&(this.clearButton.disabled=t===0&&!this.searchString.length)}checkActiveStatus(t){let e=0;if(this.getFilterFields().forEach(i=>{i.closest(this.options.filterContainerSelector)&&i.classList.contains("active")&&(e+=1,t.filterButton&&(t.filterButton.classList.remove("btn-secondary"),t.filterButton.classList.add("btn-primary")))}),e===0){const i=document.getElementById("filteredBy");i&&i.parentNode.removeChild(i)}this.clearButton&&(this.clearButton.disabled=e===0&&!this.searchString.length)}activeFilter(t){t.classList.add("active");const e=`#${t.getAttribute("id")}`,i=t.querySelector(e);i&&i.classList.add("active");const s=document.getElementById("filteredBy"),o=Object.prototype.hasOwnProperty.call(t.attributes,"type")&&t.attributes.type.value==="hidden";if(s&&!o){let r="";if(t.tagName.toLowerCase()==="select")if(t.multiple===!0){const n=t.querySelectorAll("option:checked"),a=[].slice.call(n).map(d=>d.text);r=`${t.labels[0].textContent} - ${a.join()}`}else r=`${t.labels[0].textContent} - ${t.options[t.selectedIndex].text}`;else r=`${t.labels[0].textContent} - ${t.value}`;s.textContent+=r}}deactiveFilter(t){t.classList.remove("active");const e=`#${t.getAttribute("id")}`,i=t.querySelector(e);i&&i.classList.remove("active")}getFilterFields(){return this.mainContainer?this.mainContainer.querySelectorAll("select,input"):this.filterContainer?this.filterContainer.querySelectorAll("select,input"):[]}getListFields(){return this.listContainer.querySelectorAll("select")}hideContainer(t){t&&(t.classList.remove("js-stools-container-filters-visible"),document.body.classList.remove("filters-shown"))}showContainer(t){t.classList.add("js-stools-container-filters-visible"),document.body.classList.add("filters-shown")}toggleContainer(t){t.classList.contains("js-stools-container-filters-visible")?this.hideContainer(t):this.showContainer(t)}hideList(){this.hideContainer(this.filterContainer)}showList(){this.showContainer(this.filterContainer)}toggleList(){this.toggleContainer(this.filterContainer)}hideFilters(){this.hideContainer(this.filterContainer)}showFilters(){this.showContainer(this.filterContainer)}toggleFilters(){this.toggleContainer(this.filterContainer)}toggleDirection(){const t=this;let e="ASC";t.activeDirection.toUpperCase()==="ASC"&&(e="DESC"),t.activeDirection=e,t.activeOrder=`${t.activeColumn} ${e}`,t.updateFieldValue(t.orderField,t.activeOrder)}createOrderField(){const t=this;this.orderField||(this.orderField=document.createElement("input"),this.orderField.setAttribute("type","hidden"),this.orderField.setAttribute("id","js-stools-field-order"),this.orderField.setAttribute("class","js-stools-field-order"),this.orderField.setAttribute("name",t.options.orderFieldName),this.orderField.setAttribute("value",`${t.activeOrder} ${this.activeDirection}`),this.theForm.append(this.orderField)),this.orderField.tagName.toLowerCase()==="select"&&([].slice.call(this.orderField.options).forEach(i=>{let s=i.getAttribute("data-order");const o=i.getAttribute("data-name"),r=i.getAttribute("data-direction");if(s&&s.length){s=`${s} ${r}`;let n=t.findOption(t.orderField,s);n.length||(n=document.createElement("option"),n.text=o,n.value=s,i.classList.contains("active")&&n.setAttribute("selected","selected"),this.orderFieldName.innerHTML+=c.sanitizeHtml(n))}}),window.jQuery&&window.jQuery.chosen&&window.jQuery(this.orderField).trigger("chosen:updated")),this.activeOrder=this.orderField.value}updateFieldValue(t,e){const i=t.getAttribute("type");if(i==="hidden"||i==="text")t.setAttribute("value",e);else if(t.tagName.toLowerCase()==="select"){const s=[].slice.call(t.options);let o;if(s.forEach(r=>{r.value===e&&(o=r)}),o&&o.length)o.setAttribute("selected","selected");else{const r=document.createElement("option");r.text=e,r.value=e,r.setAttribute("selected","selected"),t.appendChild(r)}t.value=e,window.jQuery&&window.jQuery.chosen&&t.trigger("chosen:updated")}}findOption(t,e){for(let i=0,s=t.length;s>i;i++)if(t[i].value===e)return t[i]}}const u=()=>{if(c.getOptions("searchtools")){const e=c.getOptions("searchtools"),i=document.querySelector(e.selector);new f(i,e)}const l=document.getElementById("sorted"),t=document.getElementById("orderedBy");if(l&&l.hasAttribute("data-caption")&&t){const e=l.getAttribute("data-caption");t.textContent+=e}if(l&&l.hasAttribute("data-sort")){const e=l.getAttribute("data-sort");l.parentNode.setAttribute("aria-sort",e)}document.removeEventListener("DOMContentLoaded",u)};document.addEventListener("DOMContentLoaded",u)})(Joomla);