Files
Roman Pyrih 296b13244b first commit
2025-07-11 12:34:24 +02:00

5 lines
49 KiB
JavaScript
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
(()=>{var e={20841:(e,t)=>{var a;!function(){"use strict";var r={}.hasOwnProperty;function s(){for(var e="",t=0;t<arguments.length;t++){var a=arguments[t];a&&(e=n(e,o(a)))}return e}function o(e){if("string"==typeof e||"number"==typeof e)return e;if("object"!=typeof e)return"";if(Array.isArray(e))return s.apply(null,e);if(e.toString!==Object.prototype.toString&&!e.toString.toString().includes("[native code]"))return e.toString();var t="";for(var a in e)r.call(e,a)&&e[a]&&(t=n(t,a));return t}function n(e,t){return t?e?e+" "+t:e+t:e}e.exports?(s.default=s,e.exports=s):void 0===(a=function(){return s}.apply(t,[]))||(e.exports=a)}()}},t={};function a(r){var s=t[r];if(void 0!==s)return s.exports;var o=t[r]={exports:{}};return e[r](o,o.exports,a),o.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};(()=>{"use strict";a.r(r),a.d(r,{ComparisonMetricsDataFormatter:()=>ct,Dashboard:()=>Xe,DataFormatterInterface:()=>lt,DataProvider:()=>Ct,OrganicSessionsWidget:()=>be,PlainMetricsDataFormatter:()=>it,RemoteCachedDataProvider:()=>wt,RemoteDataProvider:()=>pt,ScoreWidget:()=>Ye,SearchRankingCompareWidget:()=>X,TopPagesWidget:()=>M,TopQueriesWidget:()=>z,Widget:()=>E,WidgetDataSources:()=>h,WidgetErrorBoundary:()=>v,WidgetFactory:()=>jt,WidgetTitle:()=>g,WidgetTooltip:()=>f,fetchJson:()=>$e,useFetch:()=>Be});const e=window.React,t=e.forwardRef((function(t,a){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:a},t),e.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z"}))})),s=window.wp.i18n,o=window.yoast.uiLibrary,n=window.wp.element;var l=a(20841),i=a.n(l);const c=(e,t)=>{try{return(0,n.createInterpolateElement)((0,s.sprintf)(e,"<link>","</link>"),{link:t})}catch(t){return(0,s.sprintf)(e,"","")}},d=({error:e,supportLink:t,className:a=""})=>{if(!e)return null;const r=React.createElement(o.Link,{variant:"error",href:t}," ");return React.createElement(o.Alert,{variant:"error",className:i()("yst-max-w-2xl",a)},((e,t)=>{switch(!0){case 408===e.status||"TimeoutError"===e.name:return c(/* translators: %1$s expands to an anchor start tag, %2$s to an anchor end tag. */
(0,s.__)("The request timed out. Try refreshing the page. If the problem persists, please check our %1$sSupport page%2$s.","wordpress-seo"),t);case 403===e.status:return c(/* translators: %1$s expands to an anchor start tag, %2$s to an anchor end tag. */
(0,s.__)("You dont have permission to access this resource. Please contact your admin for access. In case you need further help, please check our %1$sSupport page%2$s.","wordpress-seo"),t);default:return c(/* translators: %1$s expands to an anchor start tag, %2$s to an anchor end tag. */
(0,s.__)("Something went wrong. Try refreshing the page. If the problem persists, please check our %1$sSupport page%2$s.","wordpress-seo"),t)}})(e,r))},m=({className:e="yst-mt-4"})=>React.createElement("p",{className:e},(0,s.__)("No data to display: Your site hasn't received any visitors yet.","wordpress-seo"));function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var r in a)({}).hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},u.apply(null,arguments)}const p=e.forwardRef((function(t,a){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:a},t),e.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"}))})),y=({children:e})=>React.createElement(o.TooltipContainer,{as:"div",className:"yst-h-fit yst-leading-[0]"},React.createElement(o.TooltipTrigger,null,React.createElement(p,{className:"yst-w-5 yst-h-5 yst-text-slate-400"})),React.createElement(o.TooltipWithContext,{variant:"light",className:"yst-leading-normal yst-max-w-80 yst-p-4 yst-shadow-md",position:"left"},e)),g=({children:e,...t})=>React.createElement(o.Title,u({as:"h2"},t),e);g.displayName="Widget.Title";const f=({content:e,children:t})=>React.createElement(y,null,React.createElement("p",{className:"yst-mb-2 yst-text-slate-600"},e),t);f.displayName="Widget.Tooltip";const h=({dataSources:e})=>React.createElement("div",{className:"yst-border-t yst-mt-3 yst-border-slate-200 yst-italic yst-text-xxs"},React.createElement("div",{className:"yst-mt-3 yst-font-semibold yst-text-slate-800"},(0,s.__)("Data provided by:","wordpress-seo")),React.createElement("ul",null,e.map(((e,t)=>React.createElement("li",{className:"yst-text-slate-500",key:t},e.feature?React.createElement(React.Fragment,null,React.createElement("span",{className:"yst-font-medium"},e.source," - "),e.feature):e.source)))));h.displayName="Widget.DataSources";const v=({className:t="yst-mt-4",supportLink:a,children:r,...s})=>{const n=(0,e.useCallback)((({error:e})=>React.createElement(d,{error:e,className:t,supportLink:a})),[t,a]);return React.createElement(o.ErrorBoundary,u({},s,{FallbackComponent:n}),r)};v.displayName="Widget.ErrorBoundary";const E=({className:e="yst-paper__content",title:t,tooltip:a,dataSources:r,children:s,errorSupportLink:n})=>React.createElement(o.Paper,{className:i()("yst-shadow-md",e)},(t||a)&&React.createElement("div",{className:"yst-flex yst-justify-between"},t&&React.createElement(g,null,t),a&&React.createElement(f,{content:a},r&&r.length>0&&React.createElement(h,{dataSources:r}))),n?React.createElement(v,{supportLink:n},s):s),R={good:{label:(0,s.__)("Good","wordpress-seo"),color:"yst-bg-analysis-good",hex:"#7ad03a"},ok:{label:(0,s.__)("OK","wordpress-seo"),color:"yst-bg-analysis-ok",hex:"#ee7c1b"},bad:{label:(0,s.__)("Needs improvement","wordpress-seo"),color:"yst-bg-analysis-bad",hex:"#dc3232"},notAnalyzed:{label:(0,s.__)("Not analyzed","wordpress-seo"),color:"yst-bg-analysis-na",hex:"#cbd5e1"}},b={seo:{good:(0,s.__)("Most of your content has a good SEO score. Well done!","wordpress-seo"),ok:(0,s.__)("Your content has an average SEO score. Time to find opportunities for improvement!","wordpress-seo"),bad:(0,s.__)("Some of your content could use a little extra care. Take a look and start improving!","wordpress-seo"),notAnalyzed:(0,s.__)("Some of your content hasn't been analyzed yet. Please open it in your editor, ensure a focus keyphrase is entered, and save it so we can start the analysis.","wordpress-seo")},readability:{good:(0,s.__)("Most of your content has a good readability score. Well done!","wordpress-seo"),ok:(0,s.__)("Your content has an average readability score. Time to find opportunities for improvement!","wordpress-seo"),bad:(0,s.__)("Some of your content could use a little extra care. Take a look and start improving!","wordpress-seo"),notAnalyzed:(0,s.__)("Some of your content hasn't been analyzed yet. Please open it and save it in your editor so we can start the analysis.","wordpress-seo")}},w={seo:{notAnalyzed:(0,s.__)("We havent analyzed this content yet. Please open it in your editor, ensure a focus keyphrase is entered, and save it so we can start the analysis.","wordpress-seo")},readability:{notAnalyzed:(0,s.__)("We havent analyzed this content yet. Please open it in your editor and save it so we can start the analysis.","wordpress-seo")}},k=e.forwardRef((function(t,a){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true",ref:a},t),e.createElement("path",{fillRule:"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",clipRule:"evenodd"}))})),S=({tooltip:e,id:t})=>React.createElement(o.TooltipContainer,{className:"yst-h-4"},React.createElement(o.TooltipTrigger,{ariaDescribedby:t},React.createElement(k,{className:"yst-w-4 yst-h-4 yst-text-slate-400"}),React.createElement("span",{className:"yst-sr-only"},(0,s.__)("Disabled","wordpress-seo"))),e&&React.createElement(o.TooltipWithContext,{position:"left",id:t},e)),_=({score:e,id:t})=>{var a;return React.createElement(o.TooltipContainer,{className:"yst-h-4 yst-flex yst-items-center yst-justify-center"},React.createElement(o.TooltipTrigger,{ariaDescribedby:t},React.createElement("div",{className:i()("yst-shrink-0 yst-w-3 yst-aspect-square yst-rounded-full",R[e].color)},React.createElement("span",{className:"yst-sr-only"},R[e].label))),(null===(a=R[e])||void 0===a?void 0:a.tooltip)&&React.createElement(o.TooltipWithContext,{position:"left",id:t},"notAnalyzed"===e?(0,s.__)("Content analysis hasn't started. Please open this page in your editor, enter a focus keyphrase and save.","wordpress-seo"):R[e].tooltip))},N=({score:e,isIndexablesEnabled:t,isSeoAnalysisEnabled:a,isEditable:r,id:o})=>t&&a?r?React.createElement(_,{score:e,id:o}):React.createElement(S,{id:o,tooltip:(0,s.__)("We cant provide an SEO score for this page.","wordpress-seo")}):React.createElement(S,{id:o}),x=({children:e})=>React.createElement("div",{className:"yst-overflow-auto"},React.createElement(o.Table,{variant:"minimal"},e));x.Head=({children:e})=>React.createElement(o.Table.Head,null,React.createElement(o.Table.Row,null,React.createElement(o.Table.Header,{className:"yst-px-0 yst-w-5"},""),e)),x.Row=({children:e,index:t})=>React.createElement(o.Table.Row,null,React.createElement(o.Table.Cell,{className:"yst-px-0 yst-text-slate-500"},t+1,". "),e),x.Cell=o.Table.Cell,x.Header=o.Table.Header,x.Body=o.Table.Body;const C=window.yoast.reduxJsToolkit,P=window.lodash,T=(0,C.createSlice)({name:"data",initialState:{data:void 0,error:void 0,isPending:!0},reducers:{setData(e,t){e.data=t.payload,e.error=void 0,e.isPending=!1},setError(e,t){e.error=t.payload,e.isPending=!1},setIsPending(e,t){e.isPending=Boolean(t.payload)}}}),L=(t,a=P.identity)=>{const[r,s]=(0,e.useReducer)(T.reducer,{},T.getInitialState),o=(0,e.useRef)();return(0,e.useEffect)((()=>{var e,r;return null===(e=o.current)||void 0===e||e.abort(),o.current=new AbortController,s(T.actions.setIsPending(!0)),t({signal:null===(r=o.current)||void 0===r?void 0:r.signal}).then((e=>s(T.actions.setData(a(e))))).catch((e=>{"AbortError"!==(null==e?void 0:e.name)&&s(T.actions.setError(e))})),()=>{var e;return null===(e=o.current)||void 0===e?void 0:e.abort()}}),[t]),r},F=({isIndexablesEnabled:e,isSeoAnalysisEnabled:t})=>{if(e&&t)return React.createElement(React.Fragment,null,"Yoast",React.createElement("br",null),(0,s.__)("SEO score","wordpress-seo"));let a;return e?t||(a=(0,s.__)("We cant provide SEO scores, because the SEO analysis is disabled for your site.","wordpress-seo")):a=(0,s.__)("We cant analyze your content, because youre in a non-production environment.","wordpress-seo"),React.createElement(o.TooltipContainer,{className:"yst-inline-block"},React.createElement(o.TooltipTrigger,{ariaDescribedby:"yst-disabled-score-header-tooltip",className:"yst-cursor-help yst-underline yst-decoration-dotted yst-underline-offset-4"},"Yoast",React.createElement("br",null),(0,s.__)("SEO score","wordpress-seo")),React.createElement(o.TooltipWithContext,{position:"bottom",id:"yst-disabled-score-header-tooltip",className:"yst-w-52"},a))},D=({index:e})=>React.createElement(x.Row,{index:e},React.createElement(x.Cell,null,React.createElement(o.SkeletonLoader,null,"https://example.com/page")),React.createElement(x.Cell,null,React.createElement(o.SkeletonLoader,{className:"yst-ms-auto"},"10")),React.createElement(x.Cell,null,React.createElement(o.SkeletonLoader,{className:"yst-ms-auto"},"100")),React.createElement(x.Cell,null,React.createElement(o.SkeletonLoader,{className:"yst-ms-auto"},"0.12")),React.createElement(x.Cell,null,React.createElement(o.SkeletonLoader,{className:"yst-ms-auto"},"12.34")),React.createElement(x.Cell,null,React.createElement("div",{className:"yst-flex yst-justify-center"},React.createElement(o.SkeletonLoader,{className:"yst-shrink-0 yst-w-3 yst-aspect-square yst-rounded-full"}))),React.createElement(x.Cell,null,React.createElement(o.SkeletonLoader,{className:"yst-ms-auto"},"Edit"))),j=({data:e,children:a,isIndexablesEnabled:r=!0,isSeoAnalysisEnabled:n=!0})=>React.createElement(x,null,React.createElement(x.Head,null,React.createElement(x.Header,null,(0,s.__)("Landing page","wordpress-seo")),React.createElement(x.Header,{className:"yst-text-end"},(0,s.__)("Clicks","wordpress-seo")),React.createElement(x.Header,{className:"yst-text-end"},(0,s.__)("Impressions","wordpress-seo")),React.createElement(x.Header,{className:"yst-text-end"},(0,s.__)("CTR","wordpress-seo")),React.createElement(x.Header,{className:"yst-text-end"},(0,s.__)("Average position","wordpress-seo")),React.createElement(x.Header,{className:"yst-text-center"},React.createElement(F,{isIndexablesEnabled:r,isSeoAnalysisEnabled:n})),React.createElement(x.Header,{className:"yst-text-end"},(0,s.__)("Actions","wordpress-seo"))),React.createElement(x.Body,null,a||e.map((({subject:e,clicks:a,impressions:l,ctr:i,position:c,seoScore:d,links:m},u)=>React.createElement(x.Row,{key:`most-popular-content-${u}`,index:u},React.createElement(x.Cell,{className:"yst-text-slate-900 yst-font-medium"},e),React.createElement(x.Cell,{className:"yst-text-end"},a),React.createElement(x.Cell,{className:"yst-text-end"},l),React.createElement(x.Cell,{className:"yst-text-end"},i),React.createElement(x.Cell,{className:"yst-text-end"},c),React.createElement(x.Cell,null,React.createElement("div",{className:"yst-flex yst-justify-center"},React.createElement(N,{id:`yst-top-pages-widget__seo-score-${u}`,score:d,isIndexablesEnabled:r,isSeoAnalysisEnabled:n,isEditable:null==m?void 0:m.edit}))),React.createElement(x.Cell,{className:"yst-text-end"},React.createElement(o.Button,{variant:"tertiary",size:"small",as:"a",href:null==m?void 0:m.edit,className:"yst-px-0 yst-me-1",disabled:!(null!=m&&m.edit),"aria-disabled":!(null!=m&&m.edit),role:"link"},React.createElement(t,{className:"yst-w-4 yst-h-4 yst-me-1.5"}),(0,s.__)("Edit","wordpress-seo")))))))),W=({dataProvider:t,remoteDataProvider:a,dataFormatter:r,limit:s})=>{const{data:o,isPending:n,error:l}=(({dataProvider:t,remoteDataProvider:a,dataFormatter:r,limit:s=5})=>{const o=(0,e.useCallback)((e=>a.fetchJson(t.getEndpoint("timeBasedSeoMetrics"),{limit:s.toString(10),options:{widget:"page"}},e)),[t,s]),n=(0,e.useMemo)((()=>(e=>(t=[])=>t.map((t=>({subject:e.format(t.subject,"subject",{widget:"topPages"}),clicks:e.format(t.clicks,"clicks",{widget:"topPages"}),impressions:e.format(t.impressions,"impressions",{widget:"topPages"}),ctr:e.format(t.ctr,"ctr",{widget:"topPages"}),position:e.format(t.position,"position",{widget:"topPages"}),seoScore:e.format(t.seoScore,"seoScore",{widget:"topPages"}),links:e.format(t.links,"links",{widget:"topPages"})}))))(r)),[r]);return L(o,n)})({dataProvider:t,remoteDataProvider:a,dataFormatter:r,limit:s});return n?React.createElement(j,null,Array.from({length:s},((e,t)=>React.createElement(D,{key:`top-pages-table--row__${t}`,index:t})))):l?React.createElement(d,{error:l,supportLink:t.getLink("errorSupport"),className:"yst-mt-4"}):0===o.length?React.createElement(m,null):React.createElement(j,{data:o,isIndexablesEnabled:t.hasFeature("indexables"),isSeoAnalysisEnabled:t.hasFeature("seoAnalysis")})},M=({dataProvider:e,remoteDataProvider:t,dataFormatter:a,limit:r=5})=>React.createElement(E,{className:"yst-paper__content yst-col-span-4",title:(0,s.__)("Top 5 most popular content","wordpress-seo"),tooltip:(0,s.__)("The top 5 URLs on your website with the highest number of clicks over the last 28 days.","wordpress-seo"),dataSources:[{source:"Site Kit by Google",feature:(0,s.__)("Clicks, Impressions, CTR, Position","wordpress-seo")},{source:"Yoast SEO",feature:(0,s.sprintf)(/* translators: 1: Yoast SEO. */
(0,s.__)("%1$s score","wordpress-seo"),"Yoast SEO")}],errorSupportLink:e.getLink("errorSupport")},React.createElement(W,{dataProvider:e,remoteDataProvider:t,dataFormatter:a,limit:r})),O=({index:e})=>React.createElement(x.Row,{index:e},React.createElement(x.Cell,null,React.createElement(o.SkeletonLoader,null,"focus keyphrase")),React.createElement(x.Cell,null,React.createElement(o.SkeletonLoader,{className:"yst-ms-auto"},"10")),React.createElement(x.Cell,null,React.createElement(o.SkeletonLoader,{className:"yst-ms-auto"},"100")),React.createElement(x.Cell,null,React.createElement(o.SkeletonLoader,{className:"yst-ms-auto"},"0.12")),React.createElement(x.Cell,null,React.createElement(o.SkeletonLoader,{className:"yst-ms-auto"},"12.34"))),A=({data:e,children:t})=>React.createElement(x,null,React.createElement(x.Head,null,React.createElement(x.Header,null,(0,s.__)("Query","wordpress-seo")),React.createElement(x.Header,{className:"yst-text-end"},(0,s.__)("Clicks","wordpress-seo")),React.createElement(x.Header,{className:"yst-text-end"},(0,s.__)("Impressions","wordpress-seo")),React.createElement(x.Header,{className:"yst-text-end"},(0,s.__)("CTR","wordpress-seo")),React.createElement(x.Header,null,React.createElement("div",{className:"yst-flex yst-justify-end"},React.createElement("div",{className:"yst-w-min yst-text-end"},(0,s.__)("Average position","wordpress-seo"))))),React.createElement(x.Body,null,t||e.map((({subject:e,clicks:t,impressions:a,ctr:r,position:s},o)=>React.createElement(x.Row,{key:`most-popular-content-${o}`,index:o},React.createElement(x.Cell,{className:"yst-text-slate-900 yst-font-medium"},e),React.createElement(x.Cell,{className:"yst-text-end"},t),React.createElement(x.Cell,{className:"yst-text-end"},a),React.createElement(x.Cell,{className:"yst-text-end"},r),React.createElement(x.Cell,{className:"yst-text-end"},s)))))),I=({dataProvider:t,remoteDataProvider:a,dataFormatter:r,limit:s=5})=>{const{data:o,error:n,isPending:l}=(({dataProvider:t,remoteDataProvider:a,dataFormatter:r,limit:s})=>{const o=(0,e.useCallback)((e=>a.fetchJson(t.getEndpoint("timeBasedSeoMetrics"),{limit:s.toString(10),options:{widget:"query"}},e)),[t,s]),n=(0,e.useMemo)((()=>(e=>(t=[])=>t.map((t=>({subject:e.format(t.subject,"subject",{widget:"topQueries"}),clicks:e.format(t.clicks,"clicks",{widget:"topQueries"}),impressions:e.format(t.impressions,"impressions",{widget:"topQueries"}),ctr:e.format(t.ctr,"ctr",{widget:"topQueries"}),position:e.format(t.position,"position",{widget:"topQueries"})}))))(r)),[r]);return L(o,n)})({dataProvider:t,remoteDataProvider:a,dataFormatter:r,limit:s});return l?React.createElement(A,null,Array.from({length:s},((e,t)=>React.createElement(O,{key:`top-queries-table--row__${t}`,index:t})))):n?React.createElement(d,{error:n,supportLink:t.getLink("errorSupport"),className:"yst-mt-4"}):0===o.length?React.createElement(m,null):React.createElement(A,{data:o})},z=({dataProvider:e,remoteDataProvider:t,dataFormatter:a,limit:r=5})=>React.createElement(E,{className:"yst-paper__content yst-col-span-4",title:(0,s.__)("Top 5 search queries","wordpress-seo"),tooltip:(0,s.__)("The top 5 search queries on your website with the highest number of clicks over the last 28 days.","wordpress-seo"),dataSources:[{source:"Site Kit by Google"}],errorSupportLink:e.getLink("errorSupport")},React.createElement(I,{dataProvider:e,remoteDataProvider:t,dataFormatter:a,limit:r})),G=({value:e,formattedValue:t,moreIsGood:a})=>{if(!e)return null;const r=e>=0,s=a?"yst-text-green-600":"yst-text-red-600",o=a?"yst-text-red-600":"yst-text-green-600";return React.createElement("div",{className:i()("yst-flex yst-items-center yst-font-semibold",r?s:o)},[r?"+":"",t].join(""))},H=({className:e,children:t})=>React.createElement("div",{className:i()("yst-flex yst-gap-4 yst-justify-center yst-bg-white","yst-col-span-4 @lg:yst-col-span-2 @3xl:yst-col-span-1","yst-ps-0 yst-pe-0 yst-pt-4 yst-pb-4 first:yst-pt-0 last:yst-pb-0","@lg:yst-ps-0 @lg:yst-pe-0 @lg:yst-pt-0 @lg:yst-pb-0","@3xl:yst-ps-4 @3xl:yst-pe-4 @3xl:yst-pt-0 @3xl:yst-pb-0 @3xl:first:yst-ps-0 @3xl:last:yst-pe-0",e)},t),$=({children:e})=>React.createElement("div",{className:"yst-flex yst-flex-col yst-items-center yst-min-w-28 @3xl:yst-min-w-0"},e),B=({className:e,tooltipLocalizedContent:t,dataSources:a})=>React.createElement(H,{className:e},React.createElement("div",{className:"yst-w-5"}),React.createElement($,null,React.createElement(o.SkeletonLoader,{className:"yst-text-center yst-text-2xl yst-font-bold yst-text-slate-900"},"12345"),React.createElement(o.SkeletonLoader,{className:"yst-text-center yst-text-sm yst-mt-2"},"Dummy"),React.createElement(o.SkeletonLoader,{className:"yst-text-center yst-text-sm yst-mt-2 yst-font-semibold"},"- 13%")),React.createElement("div",{className:"yst-mt-2"},React.createElement(f,{content:t},React.createElement(h,{dataSources:a})))),Q=({className:e,metricName:t,data:a,dataSources:r,tooltipLocalizedContent:s,moreIsGood:o})=>React.createElement(H,{className:e},React.createElement("div",{className:"yst-w-5"}),React.createElement($,null,React.createElement("div",{className:"yst-text-center yst-text-2xl yst-font-bold yst-text-slate-900"},a.formattedValue),React.createElement("div",{className:"yst-text-center"},t),React.createElement("div",{className:"yst-text-center yst-mt-2"},React.createElement(G,{value:a.delta,formattedValue:a.formattedDelta,moreIsGood:o}))),React.createElement("div",{className:"yst-mt-2"},React.createElement(f,{content:s},React.createElement(h,{dataSources:r})))),V=e=>!e&&0!==e,J=(e,t)=>V(e)||V(t)?NaN:e===t?0:0===t?1:(e-t)/t,q={impressions:{name:(0,s._x)("Impressions","The number of times your website appeared in the Google search results","wordpress-seo"),tooltip:(0,s.__)("The number of times your website appeared in the Google search results over the last 28 days.","wordpress-seo"),dataSources:[{source:(0,s.__)("Site Kit by Google","wordpress-seo")}]},clicks:{name:(0,s._x)("Clicks","The number of times users clicked on your website's link in the Google search results","wordpress-seo"),tooltip:(0,s.__)("The number of times users clicked on your website's link in the Google search results over the last 28 days.","wordpress-seo"),dataSources:[{source:(0,s.__)("Site Kit by Google","wordpress-seo")}]},ctr:{name:(0,s._x)("Average CTR","Click-through-rate for your website in the Google search results","wordpress-seo"),tooltip:(0,s.__)("The average click-through-rate for your website in the Google search results over the last 28 days.","wordpress-seo"),dataSources:[{source:(0,s.__)("Site Kit by Google","wordpress-seo")}]},position:{name:(0,s._x)("Average position","Average position of your website in the Google search results","wordpress-seo"),tooltip:(0,s.__)("The average position of your website in the Google search results over the last 28 days.","wordpress-seo"),dataSources:[{source:(0,s.__)("Site Kit by Google","wordpress-seo")}]}},U=({children:e})=>React.createElement("div",{className:"yst-grid yst-grid-cols-4 yst-gap-px yst-bg-slate-200"},e),K=()=>React.createElement(U,null,React.createElement(B,{className:"@lg:yst-pe-4 @lg:yst-pb-4",tooltipLocalizedContent:q.impressions.tooltip,dataSources:q.impressions.dataSources}),React.createElement(B,{className:"@lg:yst-ps-4 @lg:yst-pb-4",tooltipLocalizedContent:q.clicks.tooltip,dataSources:q.clicks.dataSources}),React.createElement(B,{className:"@lg:yst-pe-4 @lg:yst-pt-4",tooltipLocalizedContent:q.ctr.tooltip,dataSources:q.ctr.dataSources}),React.createElement(B,{className:"@lg:yst-ps-4 @lg:yst-pt-4",tooltipLocalizedContent:q.position.tooltip,dataSources:q.position.dataSources})),Y=({dataProvider:t,remoteDataProvider:a,dataFormatter:r,setShowTitle:s})=>{const{data:o,error:n,isPending:l}=(({dataProvider:t,remoteDataProvider:a,dataFormatter:r})=>{const s=(0,e.useCallback)((e=>a.fetchJson(t.getEndpoint("timeBasedSeoMetrics"),{options:{widget:"searchRankingCompare"}},e)),[t]),o=(0,e.useMemo)((()=>e=>(e=>t=>null===t?null:{impressions:e.format(t.impressions,"impressions"),clicks:e.format(t.clicks,"clicks"),ctr:e.format(t.ctr,"ctr"),position:e.format(t.position,"position")})(r)((e=>{if(0===e.length)return null;const t={impressions:{value:e[0].current.total_impressions,delta:J(e[0].current.total_impressions,e[0].previous.total_impressions)},clicks:{value:e[0].current.total_clicks,delta:J(e[0].current.total_clicks,e[0].previous.total_clicks)},ctr:null,position:null};return e[0].current.average_ctr&&(t.ctr={value:e[0].current.average_ctr,delta:J(e[0].current.average_ctr,e[0].previous.average_ctr)}),e[0].current.average_position&&(t.position={value:e[0].current.average_position,delta:e[0].current.average_position-e[0].previous.average_position}),t})(e))),[r]);return L(s,o)})({dataProvider:t,remoteDataProvider:a,dataFormatter:r});return(0,e.useEffect)((()=>{s(!l&&(n||null===o))}),[o,n,l,s]),l?React.createElement(K,null):n?React.createElement(d,{error:n,supportLink:t.getLink("errorSupport"),className:"yst-mt-4"}):null===o?React.createElement(m,null):React.createElement(U,null,React.createElement(Q,{className:"@lg:yst-pe-4 @lg:yst-pb-4",metricName:q.impressions.name,data:o.impressions,tooltipLocalizedContent:q.impressions.tooltip,dataSources:q.impressions.dataSources,moreIsGood:!0}),React.createElement(Q,{className:"@lg:yst-ps-4 @lg:yst-pb-4",metricName:q.clicks.name,data:o.clicks,tooltipLocalizedContent:q.clicks.tooltip,dataSources:q.clicks.dataSources,moreIsGood:!0}),React.createElement(Q,{className:"@lg:yst-pe-4 @lg:yst-pt-4",metricName:q.ctr.name,data:o.ctr,tooltipLocalizedContent:q.ctr.tooltip,dataSources:q.ctr.dataSources,moreIsGood:!0}),React.createElement(Q,{className:"@lg:yst-ps-4 @lg:yst-pt-4",metricName:q.position.name,data:o.position,tooltipLocalizedContent:q.position.tooltip,dataSources:q.position.dataSources,moreIsGood:!1}))},X=({dataProvider:t,remoteDataProvider:a,dataFormatter:r})=>{const[n,l]=(0,e.useState)(!1),[i,,,c]=(0,o.useToggleState)(!1);return React.createElement(E,{className:"yst-paper__content yst-col-span-4",title:(n||i)&&(0,s.__)("Impressions, Clicks, Site CTR, Average position","wordpress-seo")},React.createElement(v,{supportLink:t.getLink("errorSupport"),onError:c},React.createElement(Y,{dataProvider:t,remoteDataProvider:a,dataFormatter:r,setShowTitle:l})))},Z=({children:e})=>React.createElement("div",{className:"yst-flex yst-flex-col yst-gap-1"},React.createElement("div",{className:"yst-flex yst-gap-3"},e),React.createElement("span",null,(0,s.__)("Last 28 days","wordpress-seo"))),ee=({data:e,isPending:t,error:a,supportLink:r})=>t?React.createElement(Z,null,React.createElement(o.SkeletonLoader,{className:"yst-title yst-title--1"},"10_000"),React.createElement(o.SkeletonLoader,null,"^ +100%")):a?React.createElement(d,{error:a,supportLink:r}):React.createElement(Z,null,React.createElement(o.Title,{as:"h2",size:"1",className:"yst-font-bold"},e.sessions),React.createElement(G,{value:e.difference,formattedValue:e.formattedDifference,moreIsGood:!0})),te=window.yoast["chart.js"],ae="label";function re(e,t){"function"==typeof e?e(t):e&&(e.current=t)}function se(e,t){e.labels=t}function oe(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:ae;const r=[];e.datasets=t.map((t=>{const s=e.datasets.find((e=>e[a]===t[a]));return s&&t.data&&!r.includes(s)?(r.push(s),Object.assign(s,t),s):{...t}}))}function ne(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ae;const a={labels:[],datasets:[]};return se(a,e.labels),oe(a,e.datasets,t),a}function le(t,a){const{height:r=150,width:s=300,redraw:o=!1,datasetIdKey:n,type:l,data:i,options:c,plugins:d=[],fallbackContent:m,updateMode:u,...p}=t,y=(0,e.useRef)(null),g=(0,e.useRef)(),f=()=>{y.current&&(g.current=new te.Chart(y.current,{type:l,data:ne(i,n),options:c&&{...c},plugins:d}),re(a,g.current))},h=()=>{re(a,null),g.current&&(g.current.destroy(),g.current=null)};return(0,e.useEffect)((()=>{!o&&g.current&&c&&function(e,t){const a=e.options;a&&t&&Object.assign(a,t)}(g.current,c)}),[o,c]),(0,e.useEffect)((()=>{!o&&g.current&&se(g.current.config.data,i.labels)}),[o,i.labels]),(0,e.useEffect)((()=>{!o&&g.current&&i.datasets&&oe(g.current.config.data,i.datasets,n)}),[o,i.datasets]),(0,e.useEffect)((()=>{g.current&&(o?(h(),setTimeout(f)):g.current.update(u))}),[o,c,i.labels,i.datasets,u]),(0,e.useEffect)((()=>{g.current&&(h(),setTimeout(f))}),[l]),(0,e.useEffect)((()=>(f(),()=>h())),[]),e.createElement("canvas",Object.assign({ref:y,role:"img",height:r,width:s},p),m)}const ie=(0,e.forwardRef)(le);function ce(t,a){return te.Chart.register(a),(0,e.forwardRef)(((a,r)=>e.createElement(ie,Object.assign({},a,{ref:r,type:t}))))}const de=ce("line",te.LineController),me=ce("doughnut",te.DoughnutController);var ue,pe;te.Chart.register(te.Filler,te.CategoryScale,te.LinearScale,te.LineElement,te.PointElement,te.Tooltip);const ye="rgba(166, 30, 105, 1)",ge="transparent",fe=null===(ue=document.createElement("canvas"))||void 0===ue||null===(pe=ue.getContext("2d"))||void 0===pe?void 0:pe.createLinearGradient(0,0,0,225);null==fe||fe.addColorStop(0,"rgba(166, 30, 105, 0.2)"),null==fe||fe.addColorStop(1,"rgba(166, 30, 105, 0)");const he={parsing:{xAxisKey:"date",yAxisKey:"sessions"},elements:{point:{radius:5,borderWidth:2,borderColor:"white",backgroundColor:ye},line:{tension:.3,borderWidth:3,borderColor:ye,backgroundColor:fe||ge}},layout:{padding:{left:-20}},scales:{x:{grid:{color:"oklch(0.869 0.022 252.894)",drawTicks:!1},ticks:{font:{size:12,weight:400},padding:12,maxRotation:0,maxTicksLimit:14}},y:{grid:{color:e=>e.tick.value%1?ge:"oklch(0.929 0.013 255.508)",drawTicks:!1},ticks:{color:"oklch(0.554 0.046 257.417)",font:{size:14,weight:400},padding:20,callback:function(e){return e%1?"":this.getLabelForValue(e)}}}},responsive:!0,maintainAspectRatio:!1,plugins:{legend:!1,tooltip:{displayColors:!1,callbacks:{title:()=>"",label:e=>`${e.label}: ${null==e?void 0:e.formattedValue}`}}}},ve=({data:e})=>React.createElement(React.Fragment,null,React.createElement("div",{className:"yst-w-full yst-h-60"},React.createElement(de,{"aria-hidden":!0,options:he,data:e})),React.createElement("table",{className:"yst-sr-only yst-table-fixed"},React.createElement("caption",null,(0,s.__)("Organic sessions chart","wordpress-seo")),React.createElement("thead",null,React.createElement("tr",null,e.labels.map((e=>React.createElement("th",{key:e},e))))),React.createElement("tbody",null,React.createElement("tr",null,e.datasets[0].data.map((({date:e,sessions:t})=>React.createElement("td",{key:e},String(t)))))))),Ee=({data:e,isPending:t,error:a,supportLink:r})=>t?React.createElement(o.SkeletonLoader,{className:"yst-w-full yst-h-52 yst-mt-8"}):a?React.createElement(d,{className:"yst-mt-4",error:a,supportLink:r}):React.createElement(ve,{data:e}),Re=({dataProvider:t,remoteDataProvider:a,dataFormatter:r})=>{var s;const o=t.getLink("errorSupport"),n=((t,a,r)=>{const s=(0,e.useCallback)((e=>a.fetchJson(t.getEndpoint("timeBasedSeoMetrics"),{options:{widget:"organicSessionsDaily"}},e)),[t]),o=(0,e.useMemo)((()=>(e=[])=>{return t=(e=>(t=[])=>t.map((t=>({date:e.format(t.date,"date",{widget:"organicSessions"}),sessions:Number(t.sessions)}))))(r)(e),{labels:t.map((({date:e})=>e)),datasets:[{fill:"origin",data:t}]};var t}),[r]);return L(s,o)})(t,a,r),l=((t,a,r)=>{const s=(0,e.useCallback)((e=>a.fetchJson(t.getEndpoint("timeBasedSeoMetrics"),{options:{widget:"organicSessionsCompare"}},e)),[t]),o=(0,e.useMemo)((()=>(e=>([t])=>{var a,r;const s=(null==t||null===(a=t.current)||void 0===a?void 0:a.sessions)||NaN,o=J(s,(null==t||null===(r=t.previous)||void 0===r?void 0:r.sessions)||NaN);return{sessions:e.format(s,"sessions",{widget:"organicSessions"}),difference:o,formattedDifference:e.format(o,"difference",{widget:"organicSessions"})}})(r)),[r]);return L(s,o)})(t,a,r);return l.error&&n.error&&(0,P.isEqual)(l.error,n.error)?React.createElement(d,{className:"yst-mt-4",error:l.error,supportLink:o}):0===(null===(s=n.data)||void 0===s?void 0:s.labels.length)?React.createElement(m,null):React.createElement(React.Fragment,null,React.createElement("div",{className:"yst-flex yst-justify-between yst-mt-4"},React.createElement(ee,{data:l.data,error:l.error,isPending:l.isPending,supportLink:o})),React.createElement(Ee,{data:n.data,error:n.error,isPending:n.isPending,supportLink:o}))},be=({dataProvider:e,remoteDataProvider:t,dataFormatter:a})=>React.createElement(E,{className:"yst-paper__content yst-col-span-4",title:(0,s.__)("Organic sessions","wordpress-seo"),tooltip:(0,s.__)("The number of organic sessions that began on your website.","wordpress-seo"),dataSources:[{source:"Site Kit by Google"}],errorSupportLink:e.getLink("errorSupport")},React.createElement(Re,{dataProvider:e,remoteDataProvider:t,dataFormatter:a})),we=new RegExp("&#0?39;","g");function ke(e){return(0,P.replace)((0,P.unescape)(e),we,"'")}const Se=({idSuffix:t,contentTypes:a,selected:r,onChange:n})=>{const[l,i]=(0,e.useState)((()=>a)),c=(0,e.useCallback)((e=>{n(a.find((({name:t})=>t===e)))}),[a]),d=(0,e.useCallback)((e=>{const t=e.target.value.trim().toLowerCase();i(t?a.filter((({name:e,label:a})=>a.toLowerCase().includes(t)||e.toLowerCase().includes(t))):a)}),[a]);return React.createElement(o.AutocompleteField,{id:`content-type--${t}`,label:(0,s.__)("Content type","wordpress-seo"),value:null==r?void 0:r.name,selectedLabel:ke(null==r?void 0:r.label)||"",onChange:c,onQueryChange:d},l.map((({name:e,label:t})=>{const a=ke(t);return React.createElement(o.AutocompleteField.Option,{key:e,value:e},a)})))},_e=({scores:e,descriptions:t})=>{const a=(0,P.maxBy)(e,"amount");return React.createElement("p",{className:"yst-max-w-2xl"},t[null==a?void 0:a.name]||"")};te.Chart.register(te.ArcElement,te.Tooltip);const Ne=e=>({labels:e.map((({name:e})=>R[e].label)),datasets:[{cutout:"82%",data:e.map((({amount:e})=>e)),backgroundColor:e.map((({name:e})=>R[e].hex)),borderWidth:0,offset:0,hoverOffset:5,spacing:1,weight:1,animation:{animateRotate:!0}}]}),xe={plugins:{legend:!1,tooltip:{displayColors:!1,callbacks:{title:()=>"",label:e=>`${e.label}: ${null==e?void 0:e.formattedValue}`}}},layout:{padding:5}},Ce=({className:e})=>React.createElement("div",{className:i()(e,"yst-relative")},React.createElement(o.SkeletonLoader,{className:"yst-w-full yst-aspect-square yst-rounded-full"}),React.createElement("div",{className:"yst-absolute yst-inset-5 yst-aspect-square yst-bg-white yst-rounded-full"})),Pe=({className:e,scores:t})=>React.createElement("div",{className:e},React.createElement(me,{options:xe,data:Ne(t)})),Te="yst-flex yst-items-center yst-py-3 first:yst-pt-0 last:yst-pb-0 yst-border-b last:yst-border-b-0",Le="yst-shrink-0 yst-w-3 yst-aspect-square yst-rounded-full",Fe="yst-ms-3 yst-me-2",De=({className:e})=>React.createElement("ul",{className:e},Object.entries(R).map((([e,{label:t}])=>React.createElement("li",{key:`skeleton-loader--${e}`,className:Te},React.createElement(o.SkeletonLoader,{className:Le}),React.createElement(o.SkeletonLoader,{className:Fe},t),React.createElement(o.SkeletonLoader,{className:"yst-w-7 yst-me-3"},"1"),React.createElement(o.SkeletonLoader,{className:"yst-ms-auto yst-button yst-button--small"},(0,s.__)("View","wordpress-seo")))))),je=({score:e})=>React.createElement(React.Fragment,null,React.createElement("span",{className:i()(Le,R[e.name].color)}),React.createElement(o.Label,{as:"span",className:i()(Fe,"yst-leading-4 yst-py-1.5")},R[e.name].label),React.createElement(o.Badge,{variant:"plain",className:i()(e.links.view&&"yst-me-3")},e.amount)),We=({score:e,idSuffix:t,tooltip:a})=>{const r=`tooltip--${t}__${e.name}`;return React.createElement(o.TooltipContainer,null,React.createElement(o.TooltipTrigger,{className:"yst-flex yst-items-center",ariaDescribedby:r},React.createElement(je,{score:e})),React.createElement(o.TooltipWithContext,{id:r,className:"max-[784px]:yst-max-w-full"},a))},Me=({score:e,idSuffix:t,tooltips:a})=>{const r=a[e.name]?We:je;return React.createElement("li",{className:Te},React.createElement(r,{score:e,idSuffix:t,tooltip:a[e.name]}),e.links.view&&React.createElement(o.Button,{as:"a",variant:"secondary",size:"small",href:e.links.view,className:"yst-ms-auto"},(0,s.__)("View","wordpress-seo")))},Oe=({className:e,scores:t,idSuffix:a,tooltips:r})=>React.createElement("ul",{className:e},t.map((e=>React.createElement(Me,{key:e.name,score:e,idSuffix:a,tooltips:r})))),Ae="yst-flex yst-flex-col @md:yst-flex-row yst-gap-12 yst-mt-6",Ie="yst-grow",ze="yst-w-[calc(11.5rem+3px)] yst-aspect-square",Ge=()=>React.createElement(React.Fragment,null,React.createElement(o.SkeletonLoader,{className:"yst-w-full"}," "),React.createElement("div",{className:Ae},React.createElement(De,{className:Ie}),React.createElement(Ce,{className:ze}))),He=({scores:e=[],isLoading:t,descriptions:a,tooltips:r,idSuffix:s})=>t?React.createElement(Ge,null):React.createElement(React.Fragment,null,React.createElement(_e,{scores:e,descriptions:a}),React.createElement("div",{className:Ae},e&&React.createElement(Oe,{className:Ie,scores:e,idSuffix:s,tooltips:r}),e&&React.createElement(Pe,{className:ze,scores:e}))),$e=async(e,t)=>{try{const a=await fetch(e,t);if(!a.ok){const e=new Error(a.statusText);throw e.status=a.status,e}return a.json()}catch(e){return Promise.reject(e)}},Be=({dependencies:t,url:a,options:r,prepareData:s=P.identity,doFetch:o=$e,fetchDelay:n=200})=>{const[l,i]=(0,e.useState)(!0),[c,d]=(0,e.useState)(),[m,u]=(0,e.useState)(),p=(0,e.useRef)(),y=(0,e.useCallback)((0,P.debounce)(((...e)=>{o(...e).then((e=>{u(s(e)),d(void 0)})).catch((e=>{"AbortError"!==(null==e?void 0:e.name)&&d(e)})).finally((()=>{i(!1)}))}),n),[]);return(0,e.useEffect)((()=>{var e;return i(!0),null===(e=p.current)||void 0===e||e.abort(),p.current=new AbortController,y(a,{signal:p.current.signal,...r}),()=>{var e;return null===(e=p.current)||void 0===e?void 0:e.abort()}}),t),{data:m,error:c,isPending:l}},Qe=(e,t)=>{const a=new URL(e);return a.searchParams.set("search",t),a.searchParams.set("_fields",["id","name"]),a},Ve=e=>({name:String(e.id),label:(0,P.unescape)(e.name)}),Je=({terms:e})=>0===e.length?React.createElement("div",{className:"yst-autocomplete__option"},(0,s.__)("Nothing found","wordpress-seo")):e.map((({name:e,label:t})=>React.createElement(o.AutocompleteField.Option,{key:e,value:e},t))),qe=({idSuffix:t,taxonomy:a,selected:r,onChange:n})=>{const[l,i]=(0,e.useState)(""),{data:c=[],error:d,isPending:m}=Be({dependencies:[a.links.search,l],url:Qe(a.links.search,l),options:{headers:{"Content-Type":"application/json"}},prepareData:e=>e.map(Ve)}),u=(0,e.useCallback)((e=>{null===e&&i(""),n(c.find((({name:t})=>t===e)))}),[c]),p=(0,e.useCallback)((e=>{var t,a,r;i((null==e||null===(t=e.target)||void 0===t||null===(a=t.value)||void 0===a||null===(r=a.trim())||void 0===r?void 0:r.toLowerCase())||"")}),[]);return React.createElement(o.AutocompleteField,{id:`term--${t}`,label:a.label,value:(null==r?void 0:r.name)||"",selectedLabel:(null==r?void 0:r.label)||l,onChange:u,onQueryChange:p,placeholder:(0,s.__)("All","wordpress-seo"),nullable:!0,clearButtonScreenReaderText:(0,s.__)("Clear filter","wordpress-seo"),validation:d&&{variant:"error",message:(0,s.__)("Something went wrong.","wordpress-seo")}},m&&React.createElement("div",{className:"yst-autocomplete__option"},React.createElement(o.Spinner,null)),!m&&React.createElement(Je,{terms:c}))},Ue=e=>null==e?void 0:e.scores,Ke=({analysisType:t,contentTypes:a,dataProvider:r,remoteDataProvider:s})=>{var o,n;const[l,i]=(0,e.useState)(a[0]),[c,m]=(0,e.useState)(),u=(0,e.useCallback)((e=>s.fetchJson(r.getEndpoint(t+"Scores"),((e,t)=>{var a;const r={contentType:null==e?void 0:e.name};return null!=e&&null!==(a=e.taxonomy)&&void 0!==a&&a.name&&null!=t&&t.name&&(r.taxonomy=e.taxonomy.name,r.term=t.name),r})(l,c),e)),[r,t,l,c]),{data:p,error:y,isPending:g}=L(u,Ue);return(0,e.useEffect)((()=>{m(void 0)}),[null==l?void 0:l.name]),React.createElement(React.Fragment,null,React.createElement("div",{className:"yst-grid yst-grid-cols-1 @md:yst-grid-cols-2 yst-gap-6 yst-mt-4"},React.createElement(Se,{idSuffix:t,contentTypes:a,selected:l,onChange:i}),l.taxonomy&&(null===(o=l.taxonomy)||void 0===o||null===(n=o.links)||void 0===n?void 0:n.search)&&React.createElement(qe,{idSuffix:t,taxonomy:l.taxonomy,selected:c,onChange:m})),React.createElement("div",{className:"yst-mt-6"},React.createElement(d,{error:y,supportLink:r.getLink("errorSupport")}),!y&&React.createElement(He,{scores:p,isLoading:g,descriptions:b[t],tooltips:w[t],idSuffix:t})))},Ye=({analysisType:t,dataProvider:a,remoteDataProvider:r})=>{const[o,n]=(0,e.useState)((()=>a.getContentTypes()));return(0,e.useEffect)((()=>{n(a.getContentTypes())}),[a]),null!=o&&o.length?React.createElement(E,{className:"yst-paper__content yst-@container @3xl:yst-col-span-2 yst-col-span-4",title:"readability"===t?(0,s.__)("Readability scores","wordpress-seo"):(0,s.__)("SEO scores","wordpress-seo"),errorSupportLink:a.getLink("errorSupport")},React.createElement(Ke,{analysisType:t,contentTypes:o,dataProvider:a,remoteDataProvider:r})):null},Xe=({widgetFactory:e})=>React.createElement(React.Fragment,null,(0,P.values)(e.types).map((t=>e.createWidget(t))));function Ze(e){return Ze="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ze(e)}function et(e,t,a){return(t=function(e){var t=function(e,t){if("object"!=Ze(e)||!e)return e;var a=e[Symbol.toPrimitive];if(void 0!==a){var r=a.call(e,"string");if("object"!=Ze(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Ze(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function tt(e,t){return e.get(function(e,t,a){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:a;throw new TypeError("Private element is not present on this object")}(e,t))}function at(e,t){return function(e,t){return t.get?t.get.call(e):t.value}(e,tt(t,e))}function rt(e,t,a){return function(e,t,a){if(t.set)t.set.call(e,a);else{if(!t.writable)throw new TypeError("attempted to set read only private field");t.value=a}}(e,tt(t,e),a),a}function st(e,t,a){!function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e,t),t.set(e,a)}var ot=new WeakMap,nt=new WeakMap;class lt{constructor({locale:e="en-US"}={}){if(st(this,ot,{writable:!0,value:void 0}),st(this,nt,{writable:!0,value:{}}),new.target===lt)throw new Error("DataFormatterInterface cannot be instantiated directly.");rt(this,ot,e),at(this,nt).nonFractional=new Intl.NumberFormat(e,{maximumFractionDigits:0}),at(this,nt).compactNonFractional=new Intl.NumberFormat(e,{maximumFractionDigits:0,notation:"compact",compactDisplay:"short"}),at(this,nt).percentage=new Intl.NumberFormat(e,{style:"percent",minimumFractionDigits:2,maximumFractionDigits:2}),at(this,nt).twoFractions=new Intl.NumberFormat(e,{maximumFractionDigits:2,minimumFractionDigits:2})}get numberFormat(){return at(this,nt)}get locale(){return at(this,ot)}format(e,t,a={}){throw new Error("You must implement the format() method before using it.")}}et(lt,"safeUrl",(e=>{try{return new URL(e)}catch{return null}})),et(lt,"safeNumberFormat",((e,t)=>{try{return t.format(e)}catch{return e.toString(10)}}));class it extends lt{formatLandingPage(e){const t=lt.safeUrl(e);return null===t?e:decodeURI(t.pathname)}format(e,t,a={}){switch(t){case"subject":switch(a.widget){case"topPages":return this.formatLandingPage(e);case"topQueries":return String(e);default:return e}case"clicks":case"impressions":return lt.safeNumberFormat(e,this.numberFormat.nonFractional);case"ctr":return lt.safeNumberFormat(e,this.numberFormat.percentage);case"position":return lt.safeNumberFormat(e,this.numberFormat.twoFractions);case"seoScore":return Object.keys(R).includes(e)?e:"notAnalyzed";default:return e}}}class ct extends lt{format(e,t,a={}){switch(t){case"impressions":case"clicks":return{formattedValue:lt.safeNumberFormat(e.value,this.numberFormat.nonFractional),delta:e.delta,formattedDelta:lt.safeNumberFormat(e.delta,this.numberFormat.percentage)};case"ctr":return null===e?{formattedValue:"-",delta:null,formattedDelta:"-"}:{formattedValue:lt.safeNumberFormat(e.value,this.numberFormat.percentage),delta:e.delta,formattedDelta:lt.safeNumberFormat(e.delta,this.numberFormat.percentage)};case"position":return null===e?{formattedValue:"-",delta:null,formattedDelta:"-"}:{formattedValue:lt.safeNumberFormat(e.value,this.numberFormat.twoFractions),delta:e.delta,formattedDelta:lt.safeNumberFormat(e.delta,this.numberFormat.twoFractions)};case"date":return new Date(Date.UTC(e.slice(0,4),e.slice(4,6)-1,e.slice(6,8))).toLocaleDateString(this.locale,{month:"short",day:"numeric"});case"sessions":return lt.safeNumberFormat(e||0,this.numberFormat.nonFractional);case"difference":return lt.safeNumberFormat(e,this.numberFormat.percentage);default:return e}}}function dt(e,t,a){!function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e,t),t.set(e,a)}var mt=new WeakMap,ut=new WeakMap;class pt{constructor(e,t=$e){dt(this,mt,{writable:!0,value:void 0}),dt(this,ut,{writable:!0,value:void 0}),rt(this,mt,e),rt(this,ut,t)}getOptions(){return at(this,mt)}getUrl(e,t){const a=new URL(e);return(0,P.forEach)(t,((e,t)=>{"object"==typeof e?(0,P.forEach)(e,((e,r)=>{a.searchParams.append(`${t}[${r}]`,e)})):a.searchParams.append(t,e)})),a}async fetchJson(e,t,a){return at(this,ut).call(this,this.getUrl(e,t),(0,P.defaultsDeep)(a,at(this,mt),{headers:{"Content-Type":"application/json"}}))}}let yt,gt=["sessionStorage","localStorage"];const ft=e=>{const t=a.g[e];if(!t)return!1;try{const e="__storage_test__";return t.setItem(e,e),t.removeItem(e),!0}catch(e){return e instanceof DOMException&&(22===e.code||1014===e.code||"QuotaExceededError"===e.name||"NS_ERROR_DOM_QUOTA_REACHED"===e.name)&&0!==t.length}},ht=()=>{if(void 0!==yt)return yt;for(const e of gt)yt||ft(e)&&(yt=a.g[e]);return void 0===yt&&(yt=null),yt};function vt(e,t,a){!function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e,t),t.set(e,a)}var Et=new WeakMap,Rt=new WeakMap,bt=new WeakMap;class wt extends pt{constructor(e,t,a,r){if(super(e),vt(this,Et,{writable:!0,value:void 0}),vt(this,Rt,{writable:!0,value:void 0}),vt(this,bt,{writable:!0,value:void 0}),rt(this,Et,t),rt(this,Rt,a),!Number.isInteger(r)||r<=0)throw new TypeError("The TTL provided must be a positive integer.");rt(this,bt,r)}async fetchJson(e,t,r){const s="yoastseo_"+at(this,Rt)+"_"+at(this,Et)+"_"+t.options.widget,{cacheHit:o,value:n}=(e=>{const t=ht();if(t){const a=t.getItem(e);if(a){const e=JSON.parse(a),{timestamp:t,ttl:r,value:s}=e;if(t&&(!r||Math.round(Date.now()/1e3)-t<r))return{cacheHit:!0,value:s}}}return{cacheHit:!1,value:void 0}})(s);if(o)return n;const l=await super.fetchJson(e,t,r);return((e,t,{ttl:r=3600,timestamp:s=Math.round(Date.now()/1e3)}={})=>{const o=ht();if(o)try{return o.setItem(e,JSON.stringify({timestamp:s,ttl:r,value:t})),!0}catch(e){return a.g.console.warn("Encountered an unexpected storage error:",e),!1}})(s,l,{ttl:at(this,bt)}),l}}function kt(e,t,a){!function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e,t),t.set(e,a)}var St=new WeakMap,_t=new WeakMap,Nt=new WeakMap,xt=new WeakMap;class Ct{constructor({contentTypes:e,features:t,endpoints:a,links:r}){kt(this,St,{writable:!0,value:void 0}),kt(this,_t,{writable:!0,value:void 0}),kt(this,Nt,{writable:!0,value:void 0}),kt(this,xt,{writable:!0,value:void 0}),rt(this,St,e),rt(this,_t,t),rt(this,Nt,a),rt(this,xt,r)}getContentTypes(){return at(this,St)}hasFeature(e){var t;return!0===(null===(t=at(this,_t))||void 0===t?void 0:t[e])}getEndpoint(e){var t;return null===(t=at(this,Nt))||void 0===t?void 0:t[e]}getLink(e){var t;return null===(t=at(this,xt))||void 0===t?void 0:t[e]}}function Pt(e,t,a){!function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}(e,t),t.set(e,a)}var Tt=new WeakMap,Lt=new WeakMap,Ft=new WeakMap,Dt=new WeakMap;class jt{constructor(e,t,a,r){Pt(this,Tt,{writable:!0,value:void 0}),Pt(this,Lt,{writable:!0,value:void 0}),Pt(this,Ft,{writable:!0,value:void 0}),Pt(this,Dt,{writable:!0,value:void 0}),rt(this,Tt,e),rt(this,Lt,t),rt(this,Ft,a),rt(this,Dt,r)}getRemoteDataProvider(e){var t;return null!==(t=at(this,Ft)[e])&&void 0!==t?t:at(this,Lt)}get types(){return{searchRankingCompare:"searchRankingCompare",organicSessions:"organicSessions",topPages:"topPages",topQueries:"topQueries",seoScores:"seoScores",readabilityScores:"readabilityScores"}}createWidget(e){switch(e){case this.types.seoScores:return at(this,Tt).hasFeature("indexables")&&at(this,Tt).hasFeature("seoAnalysis")?React.createElement(Ye,{key:e,analysisType:"seo",dataProvider:at(this,Tt),remoteDataProvider:this.getRemoteDataProvider(e)}):null;case this.types.readabilityScores:return at(this,Tt).hasFeature("indexables")&&at(this,Tt).hasFeature("readabilityAnalysis")?React.createElement(Ye,{key:e,analysisType:"readability",dataProvider:at(this,Tt),remoteDataProvider:this.getRemoteDataProvider(e)}):null;case this.types.topPages:return React.createElement(M,{key:e,dataProvider:at(this,Tt),remoteDataProvider:this.getRemoteDataProvider(e),dataFormatter:at(this,Dt).plainMetricsDataFormatter});case this.types.topQueries:return React.createElement(z,{key:e,dataProvider:at(this,Tt),remoteDataProvider:this.getRemoteDataProvider(e),dataFormatter:at(this,Dt).plainMetricsDataFormatter});case this.types.searchRankingCompare:return React.createElement(X,{key:e,dataProvider:at(this,Tt),remoteDataProvider:this.getRemoteDataProvider(e),dataFormatter:at(this,Dt).comparisonMetricsDataFormatter});case this.types.organicSessions:return React.createElement(be,{key:e,dataProvider:at(this,Tt),remoteDataProvider:this.getRemoteDataProvider(e),dataFormatter:at(this,Dt).comparisonMetricsDataFormatter});default:return null}}}})(),(window.yoast=window.yoast||{}).dashboardFrontend=r})();