class Showon{constructor(e){const t=this;this.container=e||document,this.fields={},this.showonFields=[].slice.call(this.container.querySelectorAll("[data-showon]")),this.showonFields.length&&(this.showonFields.forEach((e=>{if(e.hasAttribute("data-showon-initialised"))return;e.setAttribute("data-showon-initialised","");const i=e.getAttribute("data-showon")||"",s=JSON.parse(i);let o;s.length&&(o=[].slice.call(t.container.querySelectorAll(`[name="${s[0].field}"], [name="${s[0].field}[]"]`)),this.fields[s[0].field]||(this.fields[s[0].field]={origin:[],targets:[]}),o.forEach((e=>{-1===this.fields[s[0].field].origin.indexOf(e)&&this.fields[s[0].field].origin.push(e)})),this.fields[s[0].field].targets.push(e),s.length>1&&s.forEach(((i,l)=>{0!==l&&(o=[].slice.call(t.container.querySelectorAll(`[name="${i.field}"], [name="${i.field}[]"]`)),this.fields[s[0].field]||(this.fields[s[0].field]={origin:[],targets:[]}),o.forEach((e=>{-1===this.fields[s[0].field].origin.indexOf(e)&&this.fields[s[0].field].origin.push(e)})),-1===this.fields[s[0].field].targets.indexOf(e)&&this.fields[s[0].field].targets.push(e))})))})),this.linkedOptions=this.linkedOptions.bind(this),Object.keys(this.fields).forEach((e=>{this.fields[e].origin.length&&this.fields[e].origin.forEach((i=>{t.linkedOptions(e),i.addEventListener("change",(()=>{t.linkedOptions(e)})),i.addEventListener("keyup",(()=>{t.linkedOptions(e)})),i.addEventListener("click",(()=>{t.linkedOptions(e)}))}))})))}linkedOptions(e){this.fields[e].targets.forEach((t=>{const i=JSON.parse(t.getAttribute("data-showon"))||[];let s,o=!0;i.forEach(((t,l)=>{const n=t||{};n.valid=0,this.fields[e].origin.forEach((e=>{if(e.name.replace("[]","")!==t.field)return;const i=e.id;if(e.getAttribute("type")&&["checkbox","radio"].includes(e.getAttribute("type").toLowerCase())){if(!e.checked)return;s=document.getElementById(i).value}else"SELECT"===e.nodeName&&e.hasAttribute("multiple")?s=Array.from(e.querySelectorAll("option:checked")).map((e=>e.value)):(s=document.getElementById(i).value,null===s&&"select"===e.tagName.toLowerCase()&&(s=[]));"object"!=typeof s&&(s=JSON.parse(`["${s}"]`)),s.forEach((e=>{"="===n.sign&&-1!==n.values.indexOf(e)&&(n.valid=1),"!="===n.sign&&-1===n.values.indexOf(e)&&(n.valid=1)}))})),""===n.op?0===n.valid&&(o=!1):("AND"===n.op&&n.valid+i[l-1].valid<2&&(o=!1,n.valid=0),"OR"===n.op&&n.valid+i[l-1].valid>0&&(o=!0,n.valid=1))})),"option"!==t.tagName?o?(t.classList.remove("hidden"),t.dispatchEvent(new CustomEvent("joomla:showon-show",{bubbles:!0}))):(t.classList.add("hidden"),t.dispatchEvent(new CustomEvent("joomla:showon-hide",{bubbles:!0}))):t.disabled=!o}))}}if(!window.Joomla)throw new Error("Joomla API is not properly initialized");Joomla.Showon||(Joomla.Showon={initialise:e=>new Showon(e)}),Joomla.Showon.initialise(document);const getMatchedParents=(e,t)=>{let i,s=e;const o=[];for(;s;)i=s.matches&&s.matches(t)?s:null,i&&o.unshift(i),s=s.parentNode;return o};document.addEventListener("joomla:updated",(({target:e})=>{if(e.classList.contains("subform-repeatable-group")){const t=[].slice.call(e.querySelectorAll("[data-showon]"));if(t.length){const i=[],s=[];getMatchedParents(e,".subform-repeatable-group").forEach((e=>{i.push(new RegExp(`\\[${e.dataset.baseName}X\\]`,"g")),s.push(`[${e.dataset.group}]`)})),t.forEach((e=>{let{showon:t}=e.dataset;i.forEach(((e,i)=>{t=t.replace(e,s[i])})),e.dataset.showon=t}))}}Joomla.Showon.initialise(e)}));