(()=>{"use strict";var e={n:t=>{var a=t&&t.__esModule?()=>t.default:()=>t;return e.d(a,{a}),a},d:(t,a)=>{for(var r in a)e.o(a,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:a[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.wp.element,a=window.wp.components,r=window.wp.i18n,l=window.wp.domReady;var n=e.n(l);const o=window.wp.htmlEntities,s=window.wp.url,c=({text:e})=>{const[l,n]=(0,t.useState)(!1),o=e.length>=200;return(0,t.createElement)("div",{className:"wpr-theme-description"},(0,t.createElement)("p",null,l||!o?e:`${e.substring(0,200)}...`,o&&(0,t.createElement)("span",{className:"wpr-expand-text",onClick:()=>{n(!l)}},l?(0,t.createElement)("span",null,(0,t.createElement)(a.Dashicon,{icon:"arrow-up"}),(0,r.__)("Read less","wp-rollback")):(0,t.createElement)("span",null,(0,t.createElement)(a.Dashicon,{icon:"arrow-down"}),(0,r.__)("Read more","wp-rollback")))))},i=function(){const[e,l]=(0,t.useState)(!1),n=()=>{l(!1)};return(0,t.createElement)("div",{className:"wpr-popover-wrap"},(0,t.createElement)(a.Dashicon,{icon:"info",onMouseEnter:()=>{l(!0)},onMouseLeave:n}),e&&(0,t.createElement)(a.Popover,{position:"top",className:"wpr-popover",variant:"unstyled",onClose:n,noArrow:!1},(0,r.__)("Trunk is where the most current revisions of the code should be stored, often representing the development version of the software. This is particularly relevant for developers and testers who are working with the very latest code changes that have not yet been released to the public.","wp-rollback")))},m=()=>{const[e,l]=(0,t.useState)(!0),[n,m]=(0,t.useState)(!1),[p,w]=(0,t.useState)(null),d=(0,s.getQueryArgs)(window.location.search),[u,h]=(0,t.useState)(!1),[g,E]=(0,t.useState)(!1),[_,v]=(0,t.useState)(d.current_version),{adminUrl:b,referrer:k}=wprData,f=()=>h(!1);function N(e){return new Promise(((t,a)=>{var r=new Image;r.onload=()=>t(!0),r.onerror=()=>t(!1),r.src=e}))}return(0,t.useEffect)((()=>{let e=(0,s.addQueryArgs)(wprData.restUrl+"wp-rollback/v1/fetch-info/",{type:d.type,slug:"theme"===d.type?d.theme_file:d.plugin_slug});const t=new Headers({"X-WP-Nonce":wprData.restApiNonce});fetch(e,{headers:t}).then((e=>e.json())).then((e=>{m(e),l(!1)})).catch((e=>{console.error("Error fetching data:",e)}))}),[wprData]),(0,t.useEffect)((()=>{(async()=>{if(n&&n.slug){const e=["icon-256x256","icon-128x128","icon"],t=["png","jpg","gif","svg"];for(let a of e)for(let e of t){const t=`https://ps.w.org/${n.slug}/assets/${a}.${e}`;if(await N(t))return void w(t)}w(wprData.avatarFallback)}})()}),[n]),e?(0,t.createElement)("div",{id:"wpr-wrap",className:"wpr-wrap"},(0,t.createElement)("div",{className:"wpr-loading-content"},(0,t.createElement)("div",{className:"wpr-loading-text"},(0,t.createElement)(a.Spinner,{style:{height:"calc(4px * 20)",width:"calc(4px * 20)"}}),(0,t.createElement)("p",null,(0,r.__)("Loading...","wp-rollback"))))):n.message?(0,t.createElement)("div",{id:"wpr-wrap",className:"wpr-wrap"},(0,t.createElement)("div",{className:"wpr-api-error"},(0,t.createElement)("h1",null,n.code),(0,t.createElement)("p",null,n.message))):(0,t.createElement)("div",{className:"wpr-wrapper"},(0,t.createElement)("div",{className:"wpr-logo-wrap"},(0,t.createElement)("div",{className:"wpr-logo"},(0,t.createElement)("h1",null,(0,r.__)("WP Rollback","wp-rollback")),(0,t.createElement)("a",{href:"https://wprollback.com/",target:"_blank"},(0,t.createElement)("img",{src:wprData.logo,width:250,height:"auto",alt:"WP Rollback"}))),(0,t.createElement)("p",{className:"wpr-intro-text"},(0,r.__)("Select which version you would like to rollback to from the releases listed below.","wp-rollback"))),(0,t.createElement)("div",{className:"wpr-content-wrap"},n.banners&&"plugin"===d.type&&(n.banners.high||n.banners.low)&&(0,t.createElement)("div",{className:"wpr-content-banner"},(0,t.createElement)("img",{src:!1!==n.banners.high?n.banners.high:n.banners.low,width:800,height:"auto",className:"wpr-plugin-banner",alt:n.name})),(0,t.createElement)("div",{className:"wpr-content-header"},n.screenshot_url&&"theme"===d.type&&(0,t.createElement)("div",{className:"wpr-content-banner wpr-content-banner__theme"},(0,t.createElement)("img",{src:n.screenshot_url,width:240,height:180,className:"wpr-theme-screenshot",alt:n.name})),p&&"plugin"===d.type&&(0,t.createElement)("div",{className:"wpr-plugin-avatar-wrap"},(0,t.createElement)("img",{src:p,width:96,height:96,className:"wpr-plugin-avatar",alt:n.name})),(0,t.createElement)("div",{className:"wpr-plugin-info"},(0,t.createElement)("h2",{className:"wpr-plugin-name"},"plugin"===d.type&&(0,t.createElement)("a",{href:`https://wordpress.org/plugins/${n.slug}/`,target:"_blank",className:"wpr-heading-link",alt:(0,r.sprintf)((0,r.__)("View %s on WordPress.org","wp-rollback"),n.name)},(0,o.decodeEntities)(n.name),(0,t.createElement)(a.Dashicon,{icon:"external"})),"theme"===d.type&&(0,t.createElement)("a",{href:n.homepage,target:"_blank",className:"wpr-heading-link",alt:(0,r.sprintf)((0,r.__)("View %s on WordPress.org","wp-rollback"),n.name)},(0,o.decodeEntities)(n.name),(0,t.createElement)(a.Dashicon,{icon:"external"}))),"theme"===d.type&&n.sections.description&&(0,t.createElement)("div",{className:"wpr-theme-description"},(0,t.createElement)(c,{text:n.sections.description})),(0,t.createElement)("div",{className:"wpr-pill-wrap"},(0,t.createElement)("div",{className:"wpr-pill wpr-pill__black"},(0,t.createElement)("span",{className:"wpr-pill-text"},(0,r.__)("Installed version:","wp-rollback")," ",(0,t.createElement)("strong",null,d.current_version))),"plugin"===d.type&&(0,t.createElement)("div",{className:"wpr-pill wpr-pill__author"},(0,t.createElement)("span",{className:"wpr-pill-text"},(0,r.__)("Plugin author:","wp-rollback")," ",(0,t.createElement)("span",{className:"wpr-pill__link",dangerouslySetInnerHTML:{__html:n.author}}))))),(0,t.createElement)("div",{className:"wpr-meta-wrap"},"theme"===d.type&&(0,t.createElement)("div",{className:"wpr-meta-item wpr-meta-item__author-wrap"},(0,t.createElement)("h3",null,(0,r.__)("Theme Author","wp-rollback")),(0,t.createElement)("div",{className:"wpr-theme-author-inner"},(0,t.createElement)("img",{src:n.author.avatar,width:64,height:64}),(0,t.createElement)("div",{className:"wpr-theme-author-info"},(0,t.createElement)("a",{href:n.author.author_url,target:"_blank"},n.author.display_name)))),"plugin"===d.type&&(0,t.createElement)("div",{className:"wpr-meta-wrap__plugins"},(0,t.createElement)("div",{className:"wpr-view-changelog"},(0,t.createElement)(a.Button,{isSecondary:!0,onClick:()=>E(!0),className:"wpr-version-changelog"},(0,r.__)("View Changelog","wp-rollback"))),(0,t.createElement)("h3",null,(0,r.__)("Last Updated","wp-rollback")),(0,t.createElement)("div",{className:"wpr-updater-info"},(0,t.createElement)(a.Dashicon,{icon:"clock"}),(0,t.createElement)("span",{className:"wpr-plugin-lastupdate"},function(e){let t=e.replace("am"," AM").replace("pm"," PM").replace(" GMT","");t=new Date(t).toLocaleString("en-US",{timeZone:"GMT"});const a=new Date(t);if(isNaN(a.getTime()))return console.error("Invalid date:",t),"Invalid date";const l=new Date,n=Math.floor((l-a)/1e3);return n<60?(0,r.sprintf)((0,r._n)("%s second ago","%s seconds ago",n,"wp-rollback"),n):n<3600?(0,r.sprintf)((0,r._n)("%s minute ago","%s minutes ago",Math.floor(n/60),"wp-rollback"),Math.floor(n/60)):n<86400?(0,r.sprintf)((0,r._n)("%s hour ago","%s hours ago",Math.floor(n/3600),"wp-rollback"),Math.floor(n/3600)):n<2592e3?(0,r.sprintf)((0,r._n)("%s day ago","%s days ago",Math.floor(n/86400),"wp-rollback"),Math.floor(n/86400)):n<31536e3?(0,r.sprintf)((0,r._n)("%s month ago","%s months ago",Math.floor(n/2592e3),"wp-rollback"),Math.floor(n/2592e3)):(0,r.sprintf)((0,r._n)("%s year ago","%s years ago",Math.floor(n/31536e3),"wp-rollback"),Math.floor(n/31536e3))}(n.last_updated)))))),(0,t.createElement)("div",{className:"wpr-versions-container"},Object.keys(n.versions).sort(((e,t)=>"trunk"===e?1:"trunk"===t?-1:t.localeCompare(e,void 0,{numeric:!0,sensitivity:"base"}))).map(((e,a)=>(0,t.createElement)("div",{key:a,className:"wpr-version-wrap "+(_===e?"wpr-active-row":"")},(0,t.createElement)("div",{className:"wpr-version-radio-wrap"},(0,t.createElement)("label",{htmlFor:"version-"+a},(0,t.createElement)("input",{id:"version-"+a,type:"radio",name:"version",value:e,checked:_===e,onChange:()=>v(e)}),(0,t.createElement)("span",{className:"wpr-version-lineitem"},e),d.current_version===e&&(0,t.createElement)("span",{className:"wpr-version-lineitem-current"},(0,r.__)("Currently Installed","wp-rollback")),"trunk"===e&&(0,t.createElement)(i,null))))))),(0,t.createElement)("div",{className:"wpr-button-wrap"},(0,t.createElement)(a.Button,{isPrimary:!0,onClick:()=>h(!0),className:"wpr-button-submit"},(0,r.__)("Rollback","wp-rollback")),(0,t.createElement)(a.Button,{isSecondary:!0,onClick:()=>window.location.href=k,className:"wpr-button-cancel"},(0,r.__)("Cancel","wp-rollback"))),g&&(0,t.createElement)(a.Modal,{title:(0,r.__)("Plugin Changelog","wp-rollback"),onRequestClose:()=>E(!1),disabled:!1===_,className:"wpr-modal wpr-modal__changelog",icon:(0,t.createElement)(a.Dashicon,{icon:"hammer"})},(0,t.createElement)("div",{className:"wpr-modal-intro",dangerouslySetInnerHTML:{__html:n.sections.changelog}})),u&&(0,t.createElement)(a.Modal,{title:(0,r.__)("Are you sure you want to proceed?","wp-rollback"),onRequestClose:f,disabled:!1===_,className:"wpr-modal",icon:(0,t.createElement)(a.Dashicon,{icon:"warning"})},(0,t.createElement)("p",{className:"wpr-modal-intro",dangerouslySetInnerHTML:{__html:(0,r.sprintf)( // Translators: %1$s: Plugin name, %2$s: Rollback version // Translators: %1$s: Plugin name, %2$s: Rollback version (0,r.__)("You are about to rollback %1$s to version %2$s. Please confirm you would like to proceed.","wp-rollback"),`${n.name}`,`${_}`)}}),(0,t.createElement)("div",{className:"rollback-details"},(0,t.createElement)("table",{className:"widefat"},(0,t.createElement)("tbody",null,(0,t.createElement)("tr",null,(0,t.createElement)("td",{className:"row-title"},(0,t.createElement)("label",{htmlFor:"tablecell"},"plugin"===d.type?(0,r.__)("Plugin Name:","wp-rollback"):(0,r.__)("Theme Name:","wp-rollback"))),(0,t.createElement)("td",null,(0,t.createElement)("span",{className:"wpr-plugin-name",dangerouslySetInnerHTML:{__html:n.name}}))),(0,t.createElement)("tr",{className:"alternate"},(0,t.createElement)("td",{className:"row-title"},(0,t.createElement)("label",{htmlFor:"tablecell"},(0,r.__)("Installed Version:","wp-rollback"))),(0,t.createElement)("td",null,(0,t.createElement)("span",{className:"wpr-installed-version"},d.current_version))),(0,t.createElement)("tr",null,(0,t.createElement)("td",{className:"row-title"},(0,t.createElement)("label",{htmlFor:"tablecell"},(0,r.__)("New Version:","wp-rollback"))),(0,t.createElement)("td",null,(0,t.createElement)("span",{className:"wpr-new-version"},_)))))),(0,t.createElement)("div",{className:"wpr-modal-notice notice notice-warning",dangerouslySetInnerHTML:{__html:(0,r.__)("

Notice: We strongly recommend you create a complete backup of your WordPress files and database prior to performing a rollback. We are not responsible for any misuse, deletions, white screens, fatal errors, or any other issue resulting from the use of this plugin.

","wp-rollback")}}),(0,t.createElement)("form",{name:"check_for_rollbacks",className:"rollback-form",action:b},(0,t.createElement)("input",{type:"hidden",name:"page",value:"wp-rollback"}),(0,t.createElement)("input",{type:"hidden",name:"wpr_rollback_nonce",value:wprData.rollback_nonce}),(0,t.createElement)("input",{type:"hidden",name:"_wpnonce",value:wprData.rollback_nonce}),"plugin"===d.type&&(0,t.createElement)("div",null,(0,t.createElement)("input",{type:"hidden",name:"plugin_file",value:d.plugin_file}),(0,t.createElement)("input",{type:"hidden",name:"plugin_version",value:_}),(0,t.createElement)("input",{type:"hidden",name:"plugin_slug",value:n.slug})),"theme"===d.type&&(0,t.createElement)("div",null,(0,t.createElement)("input",{type:"hidden",name:"theme_file",value:d.theme_file}),(0,t.createElement)("input",{type:"hidden",name:"theme_version",value:_})),(0,t.createElement)("input",{type:"hidden",name:"rollback_name",value:d.rollback_name}),(0,t.createElement)("input",{type:"hidden",name:"installed_version",value:d.current_version}),(0,t.createElement)("div",{className:"wpr-modal-button-wrap"},(0,t.createElement)(a.Button,{isPrimary:!0,type:"submit"},(0,r.__)("Rollback","wp-rollback")),(0,t.createElement)(a.Button,{isSecondary:!0,onClick:f,className:"wpr-button-cancel"},(0,r.__)("Cancel","wp-rollback")))))))};n()((function(){const e=document.getElementById("root-wp-rollback-admin");if(!e)return;const a=(0,t.createElement)(m,null);t.createRoot?(0,t.createRoot)(e).render(a):ReactDOM.render(a,e)}))})();