let omgf_font_cls=0,omgf_fonts_ready=!1,omgf_dom_content_loaded="loading"!==document.readyState,omgf_dom_content_loaded_time=omgf_dom_content_loaded?performance.now():0,omgf_cls_supported=!1;omgf_dom_content_loaded||document.addEventListener("DOMContentLoaded",()=>{omgf_dom_content_loaded=!0,omgf_dom_content_loaded_time=performance.now()});try{let e=new PerformanceObserver(()=>{});e.observe({type:"layout-shift",buffered:!1}),e.disconnect(),omgf_cls_supported=!0}catch(e){}if(omgf_cls_supported&&void 0!==document.fonts&&void 0!==document.fonts.ready)try{let e=new PerformanceObserver(e=>{e.getEntries().forEach(e=>{!e.hadRecentInput&&omgf_dom_content_loaded&&!omgf_fonts_ready&&e.startTime>=omgf_dom_content_loaded_time&&(omgf_font_cls+=e.value)})});e.observe({type:"layout-shift",buffered:!0}),document.fonts.ready.then(()=>{omgf_fonts_ready=!0,e.disconnect()})}catch(e){}window.addEventListener("load",()=>{let g={menu_item:document.getElementById("wp-admin-bar-omgf"),sub_menu:document.getElementById("wp-admin-bar-omgf-default"),skip_results:omgf_frontend_results.skip||!1,init:async function(){let e=[],t=[],n=null;try{var o,a=this.filterGoogleFonts(),i=(o=await this.getStatus(a)).unused_fonts_analysis||{},r=(t=o.unused_fonts||[],o.preload_analysis||{}),s=(e=o.missing_preloads||[],o.cls_analysis||{});if(n=o.status||null,null!==this.menu_item&&(this.menu_item.classList.add("dot"),n&&this.menu_item.classList.add(n),"success"!==n&&"warning"!==n&&null!==this.sub_menu&&this.addInfoBox(n),!g.skip_results)){if(omgf_frontend_i18n.multilang_plugin_used){var l=omgf_frontend_i18n.subsets_count;if(1<l){let e=omgf_frontend_i18n.info_box_impact_low;3===l?e=omgf_frontend_i18n.info_box_impact_medium:3<l&&(e=omgf_frontend_i18n.info_box_impact_high);var f={name:omgf_frontend_i18n.multilang_plugin_name,subsets_count:l,impact:e};this.addInfoBox("multilang_plugin",f)}}i&&i.count&&this.addInfoBox("unload_notice",i),r&&0<r.potential_delay_ms&&0<e.length&&this.addInfoBox("preload_notice",r,e.length),s&&.01<=s.cls&&this.addInfoBox("cls_notice",s)}}catch(e){console.error("OMGF - Error running Google Fonts Checker:",e)}finally{document.dispatchEvent(new CustomEvent("omgf_frontend_loaded",{detail:{missing_preloads:e,unused_fonts:t,status:n}}))}},filterGoogleFonts:()=>{var e=window.performance.getEntries().filter(e=>0<e.name.indexOf("/fonts.googleapis.com/css")||0<e.name.indexOf("/fonts.googleapis.com/icon")||0<e.name.indexOf("/fonts.gstatic.com/"));if(0===e.length)return[];console.log("OMGF has found the following Google Fonts API calls:");let t=[];return e.forEach(e=>{t.push(e.name),console.log(" - "+e.name)}),t},getFontFaceProperty:function(e,t){var n=e.style.getPropertyValue(t);return n?n.replace(/["']/g,"").trim():(n=e.cssText.match(new RegExp(t+"\\s*:\\s*([^;]+)","i")))?n[1].replace(/["']/g,"").trim():null},extractFontFaceRules:function(t,o,a,i){for(let e=0;e<t.length;e++){var r=t[e];if(r.type===CSSRule.IMPORT_RULE&&r.styleSheet&&(s=r.styleSheet.cssRules||r.styleSheet.rules)&&this.extractFontFaceRules(s,r.styleSheet,a,i),"CSSFontFaceRule"===r.constructor.name||r.type===CSSRule.FONT_FACE_RULE){var s=this.getFontFaceProperty(r,"font-family");let e=this.getFontFaceProperty(r,"font-weight")||"400";var l,f=this.getFontFaceProperty(r,"font-style")||"normal";"bold"===(e="normal"===e?"400":e)&&(e="700");let t=r.style.getPropertyValue("src")||r.style.src,n=(t=t||this.getFontFaceProperty(r,"src"))?t.match(/url\(["']?([^"')]+\.woff2[^"')]*?)["']?\)/):null;(n=n||(t?t.match(/url\(["']?([^"')]+)["']?\)/):null))&&(l=new URL(n[1],o.href||document.baseURI).href,r=r.style.getPropertyValue("unicode-range")||"",f=(`${s}-${e}-`+f+(r?"-"+r:"")).toLowerCase(),a.has(f)||a.set(f,l),i.has(l))&&a.set(f,l)}}},getStatus:async function(e){var t=new URLSearchParams(window.location.search),t=Object.fromEntries(t.entries());let d=[],m=[];if(void 0!==document.fonts&&void 0!==document.fonts.ready){await document.fonts.ready;let s=[];document.head.querySelectorAll('link[rel="preload"][as="font"]').forEach(e=>{s.push(e.href)});let l=new Set,f=new Set;var o=document.querySelectorAll("body *:not(#wpadminbar):not(#wpadminbar *)");for(let e=0;e<o.length&&e<1500;e++){let a=o[e];var r=a.getBoundingClientRect(),c=window.getComputedStyle(a),u=c.fontFamily.replace(/["']/g,"");let t=c.fontWeight,n=c.fontStyle,i=r.top<window.innerHeight&&0<r.bottom&&r.left<window.innerWidth&&0<r.right;u.split(",").forEach(e=>{e=(`${e=e.trim()}-${t}-`+n).toLowerCase();i&&l.add(e),f.add(e)}),["::before","::after"].forEach(e=>{var e=window.getComputedStyle(a,e),t=e.fontFamily.replace(/["']/g,"");let n=e.fontWeight,o=e.fontStyle;t.split(",").forEach(e=>{e=(`${e=e.trim()}-${n}-`+o).toLowerCase();i&&l.add(e),f.add(e)})})}var n=new Set(window.performance.getEntriesByType("resource").filter(e=>e.name.match(/\.(woff2?|ttf|otf)(\?.*)?$/i)).map(e=>e.name));let _=new Map;for(let e=0;e<document.styleSheets.length;e++)try{var a=document.styleSheets[e],i=a.cssRules||a.rules;i&&this.extractFontFaceRules(i,a,_,n)}catch(e){}document.fonts.forEach(e=>{let n=e.family.replace(/["']/g,"");var t=e.weight,o=e.style,a=(n+`-${t}-`+o).toLowerCase(),i=(a+"-"+(e.unicodeRange||"")).toLowerCase();let r=_.get(i)||_.get(a);i=_.has(i)?i:a;"loaded"!==e.status||!r||!l.has(i)&&!l.has(a)||s.some(e=>{var t;return!(!r||e!==r)||(t=n.toLowerCase().replace(/\s/g,"-"),e=e.toLowerCase(),new RegExp("(^|[/_-])"+t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"([./_-]|$)","i").test(e))})||d.some(e=>e.family===n&&e.url===r)||d.push({family:n,weight:t,style:o,url:r}),"unloaded"===e.status&&!f.has(i)&&r&&m.push({family:n,weight:t,style:o,url:r,unicode_range:e.unicodeRange})})}let s=this.analyzeUnusedFonts(m),l=await this.analyzePreloadImpact(d),f=this.analyzeCLS(omgf_font_cls);var _=new FormData;return _.append("path",document.location.pathname),_.append("urls",JSON.stringify(e)),_.append("params",JSON.stringify(t)),_.append("unused_fonts_analysis",JSON.stringify(s)),_.append("preload_analysis",JSON.stringify(l)),_.append("cls_analysis",JSON.stringify(f)),g.ajax(_).then(e=>(e&&(e.unused_fonts_analysis=s,e.unused_fonts=m,e.preload_analysis=l,e.missing_preloads=d,e.cls_analysis=f),e))},forEachMatchingResources:function(e,n,o){e.forEach(i=>{let t=i.family,r=i.url,s=t.toLowerCase().replace(/\s/g,"-");n.filter(e=>{var t=e.name.toLowerCase();if(r&&e.name===r)return!0;if(!new RegExp("(^|[/_-])"+s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"([./_-]|\\.|$)","i").test(t))return!1;if(void 0===i.weight)return!0;let n=i.weight;var e=i.style,o=("bold"===(n="normal"===n?"400":n)&&(n="700"),new RegExp(`[./_-]${n}([./_-]|\\.|$)`,"i"));let a=!0;return"italic"===e?a=t.includes("italic")||/[._-]i\.(woff|woff2|ttf|otf)/.test(t)||/\d{3}i\.(woff|woff2|ttf|otf)/.test(t):"normal"===e&&(a=!t.includes("italic")),o.test(t)&&a}).forEach(e=>{o(e,t)})})},getFontResources:function(){return window.performance.getEntriesByType("resource").filter(e=>e.name.match(/\.(woff|woff2|ttf|otf)(\?.*)?$/i))},analyzeUnusedFonts:function(e){if(0===e.length)return{};e=e.length;let t=omgf_frontend_i18n.info_box_impact_low;return 6<e?t=omgf_frontend_i18n.info_box_impact_high:3<=e&&(t=omgf_frontend_i18n.info_box_impact_medium),{count:e,impact:t}},analyzeCLS:function(e){let t=omgf_frontend_i18n.info_box_impact_low;e=Math.round(1e3*e)/1e3;return e<.01?{}:(.1<e&&(t=omgf_frontend_i18n.info_box_impact_medium),{cls:e,impact:t=.25<e?omgf_frontend_i18n.info_box_impact_high:t})},analyzePreloadImpact:async function(n){if(0===n.length)return{};let o={affects_lcp:!1,potential_delay_ms:0,impact:omgf_frontend_i18n.info_box_impact_low};try{var a=await new Promise(t=>{let n=new PerformanceObserver(e=>{e=e.getEntries(),e=e[e.length-1];n.disconnect(),t(e)});n.observe({type:"largest-contentful-paint",buffered:!0}),setTimeout(()=>{n.disconnect(),t(null)},2e3)});if(!a)return o;var i=a.element;let e=!1;if(!(e=i?"string"==typeof i.innerText&&0<i.innerText.trim().length||"string"==typeof i.textContent&&0<i.textContent.trim().length:e))return o;var r=this.getFontResources();let t=0;if(this.forEachMatchingResources(n,r,e=>{e=e.responseEnd-e.startTime;0<e&&(o.affects_lcp=!0,e>t)&&(t=e)}),o.potential_delay_ms=Math.round(t),o.potential_delay_ms<=5)return{};100<o.potential_delay_ms?o.impact=omgf_frontend_i18n.info_box_impact_high:20<o.potential_delay_ms&&(o.impact=omgf_frontend_i18n.info_box_impact_medium)}catch(e){return console.warn("OMGF - Error analyzing preload impact:",e),{}}return o},ajax:function(e){return fetch(omgf_frontend_i18n.api_url,{method:"POST",credentials:"same-origin",headers:{"X-WP-Nonce":omgf_frontend_i18n.nonce},body:e}).then(e=>!!e.ok&&e.json())},addInfoBox:function(e,t,n){var o,a=document.createElement("li");a.id="wp-admin-bar-omgf-info","alert"===e&&(a.innerHTML=`<a class="ab-item" href="${omgf_frontend_i18n.info_box_admin_url}">${omgf_frontend_i18n.info_box_alert_text}</a>`),"notice"===e&&(a.innerHTML=`<a class="ab-item" href="${omgf_frontend_i18n.info_box_admin_url}">${omgf_frontend_i18n.info_box_notice_text}</a>`),"multilang_plugin"===e&&(a.id="wp-admin-bar-omgf-multilang-info",o=g.sprintf(omgf_frontend_i18n.info_box_multilang_plugin_text,omgf_frontend_i18n.multilang_plugin_name,t.subsets_count,t.impact),a.innerHTML=`<a class="ab-item" href="${omgf_frontend_i18n.info_box_admin_url}">${o}</a>`),"unload_notice"===e&&(a.id="wp-admin-bar-omgf-unload-info",o=g.sprintf(omgf_frontend_i18n.info_box_unload_text,t.count||0,t.impact||omgf_frontend_i18n.info_box_impact_low),a.innerHTML=`<a class="ab-item" href="${omgf_frontend_i18n.info_box_admin_url}">${o}</a>`),"preload_notice"===e&&(a.id="wp-admin-bar-omgf-preload-info",o=g.sprintf(omgf_frontend_i18n.info_box_preload_text,n||0,t.potential_delay_ms||0,t.impact||omgf_frontend_i18n.info_box_impact_low),a.innerHTML=`<a class="ab-item" href="${omgf_frontend_i18n.info_box_admin_url}">${o}</a>`),"cls_notice"===e&&(a.id="wp-admin-bar-omgf-cls-info",n=g.sprintf(omgf_frontend_i18n.info_box_cls_text,t.cls,t.impact),a.innerHTML=`<a class="ab-item" href="${omgf_frontend_i18n.info_box_admin_url}">${n}</a>`),"cls_notice"!==e&&"unload_notice"!==e&&"preload_notice"!==e&&"multilang_plugin"!==e||a.classList.add("info"),"info"===e&&omgf_frontend_i18n.first_run&&document.getElementById("wp-admin-bar-omgf-optimize-this")?.classList.add("info"),g.sub_menu&&g.sub_menu.prepend(a)},sprintf:function(e){let a=arguments,i=1;return e.replace(/%(s|d|0\d+d)/g,function(e,t){var n=a[i++];switch(t){case"s":return n;case"d":return parseInt(n,10);default:var n=String(parseInt(n,10)),o=Number(t.slice(1,-1));return"0".repeat(o).slice(n.length)+n}})}},e=window.performance.getEntries(),t=0,n=setInterval(()=>{t++,((e=e.length<window.performance.getEntries().length?window.performance.getEntries():e).length===window.performance.getEntries().length||20<=t)&&(clearInterval(n),g.init())},500)});