var ACF_Field_Previewer=function(){function e(e){this.field=e,this.field_name="acf"+e.replace(/\s+/g,"").toLowerCase(),this.wrapper=".acf-field-previewer",this.ACFFieldsPreviewerData=window.ACFFieldsPreviewerData||{},this.JoomlaOptions=null,this.root_url=this.getOption("root_url"),this.base_url=this.root_url.replace("/administrator",""),this.app_ajax_url="?option=com_ajax&format=raw&plugin=acf&task=FieldsPreviewer",this.preview_ajax_url="?option=com_ajax&format=raw&plugin=acf&task=FieldsPreviewerHTML",this.run()}var t=e.prototype;return t.run=function(){if(window.MutationObserver){var e=document.querySelector('select[id="jform_type"]');if(e)if(e.value!==this.field_name){var t=this,i=new MutationObserver(function(e){if(e)for(m in e)e[m].target.value.startsWith(t.field_name)&&(t.previewerInit(),i.disconnect())});i.observe(e,{childList:!0,subtree:!0,attributes:!0})}else this.previewerInit()}},t.previewerInit=function(){var e=this;this.addPreviewerToPage(),this.isPreviewerVisible()&&this.updatePreviewer(),setTimeout(function(){e.togglePreviewerByTab()},100),this.initEvents()},t.initEvents=function(){function t(e,t,i){r||(r=!0,setTimeout(function(){e(i),r=!1},t))}var r=!1;document.addEventListener("click",function(e){this.toggleFullscreen(e),this.toggleOpenClose(e),this.selectResponsiveControl(e),this.J3togglePreviewerOnTab(e),this.J4togglePreviewerOnTab(e)}.bind(this)),document.addEventListener("blur",function(e){t(this.updatePreviewer.bind(this),150,e)}.bind(this)),jQuery(document).on("blur","input.minicolors",function(e){t(this.updatePreviewer.bind(this),150,e)}.bind(this)),jQuery(document).on("change",".tfHasChosen",function(e){t(this.updatePreviewer.bind(this),150,e)}.bind(this)),document.addEventListener("change",function(e){t(this.updatePreviewer.bind(this),150,e)}.bind(this))},t.J3togglePreviewerOnTab=function(e){var t=e.target.closest(".nav.nav-tabs");t&&t.parentElement.classList.contains("form-horizontal")&&e.target.closest("a")&&this.togglePreviewerByTab()},t.J4togglePreviewerOnTab=function(e){e.target.closest("joomla-tab")&&e.target.closest('button[type="button"]')&&this.togglePreviewerByTab()},t.togglePreviewerByTab=function(){this.isJ3GeneralTab()||this.isJ4GeneralTab()?this.showPreviewer():this.hidePreviewer(!0)},t.isJ3GeneralTab=function(){var e=document.querySelector("form > .form-horizontal > .nav.nav-tabs > li.active > a");if(e)return"#general"===e.getAttribute("href")},t.isJ4GeneralTab=function(){var e=document.querySelector('form joomla-tab button[aria-expanded="true"]');if(e)return"general"===e.getAttribute("aria-controls")},t.toggleFullscreen=function(e){var t=e.target.closest(".acf-field-previewer-fullscreen-toggle");if(t){document.body.classList.toggle("acf-field-previewer-open");var i=this.getPreviewer(t);i.classList.toggle("fullscreen"),i.classList.contains("fullscreen")||(i.querySelector(".body iframe").height=""),this.updatePreviewer(e)}},t.toggleOpenClose=function(e){var t=e.target.closest(".acf-field-previewer-show-hide-btn");if(t){e.preventDefault();var i=this.getPreviewer(t);document.body.classList.remove("acf-field-previewer-open"),i.classList.remove("fullscreen");var r=!i.classList.contains("is-hidden");i.querySelector(".body iframe").height="",localStorage.setItem("acf-field-previewer-hidden",r),r?this.hidePreviewer():this.showPreviewer()}},t.isPreviewerVisible=function(){return!this.getPreviewer().classList.contains("is-hidden")},t.showPreviewer=function(){var e=this.getPreviewer(),t=localStorage.getItem("acf-field-previewer-hidden");e.classList.contains("is-hidden")&&("true"!==t&&e.classList.remove("is-hidden"),e.classList.remove("is-hidden-full"),this.updatePreviewer())},t.hidePreviewer=function(e){void 0===e&&(e=!1);var t=this.getPreviewer();e&&t.classList.add("is-hidden-full"),t.classList.contains("is-hidden")||t.classList.add("is-hidden")},t.selectResponsiveControl=function(e){var t=e.target.closest(".acf-field-preview-responsive-device");t&&this.getPreviewer(t).setAttribute("data-device",t.dataset.device)},t.addPreviewerToPage=function(){var e=document.createElement("div"),t=this.wrapper.substring(1),i=localStorage.getItem("acf-field-previewer-hidden");(this.ACFFieldsPreviewerData.hidden&&!i||"true"===i)&&(t+=" is-hidden"),this.ACFFieldsPreviewerData.width&&(e.style.minWidth=this.ACFFieldsPreviewerData.width+"px"),this.ACFFieldsPreviewerData.height&&(e.style.minHeight=this.ACFFieldsPreviewerData.height+"px"),e.className=t,e.dataset.device="desktop";var r=document.createElement("div");r.className="title";var s=document.createElement("div");s.className="left";var n='
';if(s.innerHTML=n,s.innerHTML+=window.parent.Joomla.Text._("ACF_FIELD_PREVIEWER"),s.innerHTML+='',r.appendChild(s),this.ACFFieldsPreviewerData.responsiveControls){var o=document.createElement("div");o.className="acf-responsive-controls",o.innerHTML+='',o.innerHTML+='',o.innerHTML+='',r.appendChild(o)}var a=document.createElement("div");a.className="actions",this.ACFFieldsPreviewerData.fullscreenActions&&(a.innerHTML=''),a.innerHTML+='',r.appendChild(a),e.appendChild(r);var l=document.createElement("div");l.className="body";var c=document.createElement("iframe");c.src=this.getIFrameURL(),l.appendChild(c),e.appendChild(l),document.body.appendChild(e)},t.getIFrameURL=function(){return this.root_url+this.preview_ajax_url+"&field="+this.field_name+"&"+this.getJoomlaOption("csrf.token")+"=1"},t.updatePreviewer=function(e){if(!(e&&e.target&&e.target.name&&-1===e.target.name.indexOf("jform[fieldparams]"))){var t=this.getPreviewer();if(!t.classList.contains("is-hidden")){var i=new FormData(document.querySelector('form[name="adminForm"]'));(i=Object.fromEntries(i)).fullscreen=this.ACFFieldsPreviewerData.fullscreenActions&&t.classList.contains("fullscreen");var r=this,s=this.root_url+this.app_ajax_url+"&field="+this.field+"&"+this.getJoomlaOption("csrf.token")+"=1";this.showLoadingIndicator();var n=this.getIFrame();n.classList.add("refreshing"),n.height="",fetch(s,{method:"post",body:JSON.stringify(i)}).then(function(e){return e.json()}).then(function(e){e.error?alert(e.message):r.updatePreviewerContents(function(){r.hideLoadingIndicator()})}).catch(function(e){alert(e)})}}},t.showLoadingIndicator=function(){document.querySelector(".acf-field-previewer-loading-indicator").classList.add("is-visible")},t.hideLoadingIndicator=function(){document.querySelector(".acf-field-previewer-loading-indicator").classList.remove("is-visible")},t.updatePreviewerContents=function(e){void 0===e&&(e=null);var t=this.getIFrame();t.src=this.getIFrameURL(),t.height="",t.onload=function(){t.classList.remove("refreshing"),t.height=t.contentWindow.document.body.scrollHeight+"px","function"==typeof e&&e()}},t.getIFrame=function(){return document.querySelector(".acf-field-previewer iframe")},t.getJoomlaOption=function(e,t){if(!this.JoomlaOptions){var i=document.querySelector(".joomla-script-options");if(!i)return;this.JoomlaOptions=JSON.parse(i.text||i.textContent)}return void 0!==this.JoomlaOptions[e]?this.JoomlaOptions[e]:t},t.getOption=function(e,t){t=void 0===t?"":t;var i=this.getJoomlaOption("acf_js_object");return i&&void 0!==i[e]?i[e]:t},t.getPreviewer=function(e){return void 0===e&&(e=""),e?e.closest(this.wrapper):document.querySelector(this.wrapper)},e}();