const uriAttributes=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),SAFE_URL_PATTERN=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,allowedAttribute=(r,c)=>{const t=r.nodeName.toLowerCase();return c.includes(t)?uriAttributes.has(t)?!!SAFE_URL_PATTERN.test(r.nodeValue):!0:c.filter(e=>e instanceof RegExp).some(e=>e.test(t))};function sanitizeHtml(r,c,t){if(!r.length)return r;if(t&&typeof t=="function")return t(r);const s=new window.DOMParser().parseFromString(r,"text/html"),n=[].concat(...s.body.querySelectorAll("*"));for(const o of n){const i=o.nodeName.toLowerCase();if(!Object.keys(c).includes(i)){o.remove();continue}const l=[].concat(...o.attributes),d=[].concat(c["*"]||[],c[i]||[]);for(const a of l)allowedAttribute(a,d)||o.removeAttribute(a.nodeName)}return s.body.innerHTML}/** * @copyright (C) 2018 Open Source Matters, Inc. * @license GNU General Public License version 2 or later; see LICENSE.txt */const ARIA_ATTRIBUTE_PATTERN=/^aria-[\w-]*$/i,DATA_ATTRIBUTE_PATTERN=/^data-[\w-]*$/i,DefaultAllowlist={"*":["class","dir","id","lang","role",ARIA_ATTRIBUTE_PATTERN,DATA_ATTRIBUTE_PATTERN],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[],button:["type"],input:["accept","alt","autocomplete","autofocus","capture","checked","dirname","disabled","height","list","max","maxlength","min","minlength","multiple","type","name","pattern","placeholder","readonly","required","size","src","step","value","width","inputmode"],select:["name"],textarea:["name"],option:["value","selected"]};window.Joomla=window.Joomla||{},window.Joomla.editors=window.Joomla.editors||{},window.Joomla.editors.instances=window.Joomla.editors.instances||{},window.Joomla.Modal=window.Joomla.Modal||{current:"",setCurrent:r=>{window.Joomla.Modal.current=r},getCurrent:()=>window.Joomla.Modal.current},(r=>{r.extend=(t,e)=>{let s=t;return t===null&&(s={}),[].slice.call(Object.keys(e)).forEach(n=>{s[n]=e[n]}),t},r.optionsStorage=r.optionsStorage||null,r.getOptions=(t,e)=>(r.optionsStorage||r.loadOptions(),r.optionsStorage[t]!==void 0?r.optionsStorage[t]:e),r.loadOptions=t=>{if(!t){const e=[].slice.call(document.querySelectorAll(".joomla-script-options.new"));let s=0;if(e.forEach(n=>{const o=n.text||n.textContent,i=JSON.parse(o);i&&(r.loadOptions(i),s+=1),n.className=n.className.replace(" new"," loaded")}),s)return}r.optionsStorage?t&&[].slice.call(Object.keys(t)).forEach(e=>{t[e]!==null&&typeof r.optionsStorage[e]=="object"&&typeof t[e]=="object"?r.optionsStorage[e]=r.extend(r.optionsStorage[e],t[e]):r.optionsStorage[e]=t[e]}):r.optionsStorage=t||{}},r.Text={strings:{},_:(t,e)=>{let s=t,n=e;const o=r.getOptions("joomla.jtext");return o&&(r.Text.load(o),r.loadOptions({"joomla.jtext":null})),n=n===void 0?s:n,s=s.toUpperCase(),r.Text.strings[s]!==void 0?r.Text.strings[s]:n},load:t=>([].slice.call(Object.keys(t)).forEach(e=>{r.Text.strings[e.toUpperCase()]=t[e]}),r.Text)},r.JText=r.Text,r.submitform=(t,e,s)=>{let n=e;const o=t;n||(n=document.getElementById("adminForm")),o&&(n.task.value=o),n.noValidate=!s,s?n.hasAttribute("novalidate")&&n.removeAttribute("novalidate"):n.setAttribute("novalidate","");const i=document.createElement("input");i.classList.add("hidden"),i.type="submit",n.appendChild(i).click(),n.removeChild(i)},r.submitbutton=(t,e,s)=>{let n=document.querySelector(e||"form.form-validate"),o=s;if(typeof e=="string"&&n===null&&(n=document.querySelector(`#${e}`)),n){if(o==null){const i=t.split(".");let l=n.getAttribute("data-cancel-task");l||(l=`${i[0]}.cancel`),o=t!==l}(!o||document.formvalidator.isValid(n))&&r.submitform(t,n)}else r.submitform(t)},r.checkAll=(t,e)=>{if(!t.form)return!1;const s=e||"cb",n=[].slice.call(t.form.elements);let o=0;return n.forEach(i=>{i.type===t.type&&i.id.indexOf(s)===0&&(i.checked=t.checked,o+=i.checked?1:0)}),t.form.boxchecked&&(t.form.boxchecked.value=o,t.form.boxchecked.dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!0}))),!0},r.isChecked=(t,e)=>{let s=e;if(typeof s>"u"?s=document.getElementById("adminForm"):typeof e=="string"&&(s=document.getElementById(e)),s.boxchecked.value=t?parseInt(s.boxchecked.value,10)+1:parseInt(s.boxchecked.value,10)-1,s.boxchecked.dispatchEvent(new CustomEvent("change",{bubbles:!0,cancelable:!0})),!s.elements["checkall-toggle"])return;let n=!0,o,i,l;for(o=0,l=s.elements.length;o{let o=n;typeof o>"u"?o=document.getElementById("adminForm"):typeof n=="string"&&(o=document.getElementById(n)),o.filter_order.value=t,o.filter_order_Dir.value=e,r.submitform(s,o)},r.listItemTask=(t,e,s=null)=>{let n=s;s!==null?n=document.getElementById(s):n=document.adminForm;const o=n[t];let i=0,l;if(!o)return!1;for(;l=n[`cb${i}`],!!l;)l.checked=!1,i+=1;return o.checked=!0,n.boxchecked.value=1,r.submitform(e,n),!1},r.replaceTokens=t=>{if(!/^[0-9A-F]{32}$/i.test(t))return;[].slice.call(document.getElementsByTagName("input")).forEach(s=>{s.type==="hidden"&&s.value==="1"&&s.name.length===32&&(s.name=t)})},r.request=t=>{const e=r.extend({url:"",method:"GET",data:null,perform:!0,promise:!1},t),s=(n,o)=>{const i=new XMLHttpRequest;if(i.open(e.method,e.url,!0),i.setRequestHeader("X-Requested-With","XMLHttpRequest"),i.setRequestHeader("X-Ajax-Engine","Joomla!"),e.method!=="GET"){const l=r.getOptions("csrf.token","");l&&(!e.url.startsWith("http:")&&!e.url.startsWith("https:")||e.url.startsWith(window.location.origin))&&i.setRequestHeader("X-CSRF-Token",l),typeof e.data=="string"&&(!e.headers||!e.headers["Content-Type"])&&i.setRequestHeader("Content-Type","application/x-www-form-urlencoded")}if(e.headers&&[].slice.call(Object.keys(e.headers)).forEach(l=>{l==="Content-Type"&&e.headers["Content-Type"]==="false"||i.setRequestHeader(l,e.headers[l])}),i.onreadystatechange=()=>{i.readyState===4&&(i.status===200?e.promise?n.call(window,i):n.call(window,i.responseText,i):o.call(window,i),e.onComplete&&!e.promise&&e.onComplete.call(window,i))},e.perform){if(e.onBefore&&e.onBefore.call(window,i)===!1)return e.promise&&n.call(window,i),i;i.send(e.data)}return i};if(e.promise)return new Promise((n,o)=>{e.perform=!0,s(n,o)});try{return s(e.onSuccess||(()=>{}),e.onError||(()=>{}))}catch(n){return console.error(n),!1}};let c;r.enqueueRequest=t=>{if(!t.promise)throw new Error("Joomla.enqueueRequest supports only Joomla.request as Promise");return c?c=c.then(()=>r.request(t)):c=r.request(t),c},r.sanitizeHtml=(t,e,s)=>{const n=e==null?DefaultAllowlist:{...DefaultAllowlist,...e};return sanitizeHtml(t,n,s)},r.ajaxErrorsMessages=(t,e)=>{const s={};if(e==="parsererror"){const n=[];let o=t.responseText.trim();for(let i=o.length-1;i>=0;i--)n.unshift(["&#",o[i].charCodeAt(),";"].join(""));o=n.join(""),s.error=[r.Text._("JLIB_JS_AJAX_ERROR_PARSE").replace("%s",o)]}else e==="nocontent"?s.error=[r.Text._("JLIB_JS_AJAX_ERROR_NO_CONTENT")]:e==="timeout"?s.error=[r.Text._("JLIB_JS_AJAX_ERROR_TIMEOUT")]:e==="abort"?s.error=[r.Text._("JLIB_JS_AJAX_ERROR_CONNECTION_ABORT")]:t.responseJSON&&t.responseJSON.message?s.error=[`${r.Text._("JLIB_JS_AJAX_ERROR_OTHER").replace("%s",t.status)} ${t.responseJSON.message}`]:t.statusText?s.error=[`${r.Text._("JLIB_JS_AJAX_ERROR_OTHER").replace("%s",t.status)} ${t.statusText}`]:s.error=[r.Text._("JLIB_JS_AJAX_ERROR_OTHER").replace("%s",t.status)];return s}})(Joomla);