Update the Masonry JavaScript library to version 3.
The new script handle is 'masonry'. The old 'jquery-masonry' handle is the official shiv that sits on top of the v3 library. While v3 no longer depends on jQuery, a theme or plugin may have bee n implicitly loading jQuery though Masonry, rather than additionally declaring it as a dependency for themselves. Thus, the shiv is separate. Themes should switch to 'masonry' and declare jQuery as a dependency on their own if they need it. Upgrade guide: http://masonry.desandro.com/appendix.html#upgrading-from-v2. imagesLoaded remai ns included with Masonry here. props shelob9. fixes #25351. Built from https://develop.svn.wordpress.org/trunk@27271 git-svn-id: http://core.svn.wordpress.org/trunk@27127 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
65fac9e55a
commit
1cb9788f1b
|
@ -0,0 +1,79 @@
|
||||||
|
/*!
|
||||||
|
* Masonry v2 shim
|
||||||
|
* to maintain backwards compatibility
|
||||||
|
* as of Masonry v3.1.2
|
||||||
|
*
|
||||||
|
* Cascading grid layout library
|
||||||
|
* http://masonry.desandro.com
|
||||||
|
* MIT License
|
||||||
|
* by David DeSandro
|
||||||
|
*/
|
||||||
|
( function( window ) {
|
||||||
|
|
||||||
|
var Masonry = window.Masonry;
|
||||||
|
|
||||||
|
Masonry.prototype._remapV2Options = function() {
|
||||||
|
// map v2 options to v3 equivalents
|
||||||
|
this._remapOption( 'gutterWidth', 'gutter' );
|
||||||
|
this._remapOption( 'isResizable', 'isResizeBound' );
|
||||||
|
this._remapOption( 'isRTL', 'isOriginLeft', function( opt ) {
|
||||||
|
return !opt;
|
||||||
|
});
|
||||||
|
|
||||||
|
// override transitionDuration with isAnimated
|
||||||
|
var isAniOption = this.options.isAnimated;
|
||||||
|
if ( isAniOption !== undefined ) {
|
||||||
|
this.options.transitionDuration = isAniOption ?
|
||||||
|
Masonry.prototype.options.transitionDuration : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( isAniOption === undefined || isAniOption ) {
|
||||||
|
// use animation Duration option in place of transitionDuration
|
||||||
|
var aniOptions = this.options.animationOptions;
|
||||||
|
var aniDuration = aniOptions && aniOptions.duration;
|
||||||
|
if ( aniDuration ) {
|
||||||
|
this.options.transitionDuration = typeof aniDuration === 'string' ?
|
||||||
|
aniDuration : aniDuration + 'ms';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
Masonry.prototype._remapOption = function( from, to, munge ) {
|
||||||
|
var fromOption = this.options[ from ];
|
||||||
|
if ( fromOption !== undefined ) {
|
||||||
|
this.options[ to ] = munge ? munge( fromOption ) : fromOption;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// remap v2 options for necessary methods
|
||||||
|
|
||||||
|
var __create = Masonry.prototype._create;
|
||||||
|
Masonry.prototype._create = function() {
|
||||||
|
this._remapV2Options();
|
||||||
|
__create.apply( this, arguments );
|
||||||
|
};
|
||||||
|
|
||||||
|
var _layout = Masonry.prototype.layout;
|
||||||
|
Masonry.prototype.layout = function() {
|
||||||
|
this._remapV2Options();
|
||||||
|
_layout.apply( this, arguments );
|
||||||
|
};
|
||||||
|
|
||||||
|
var _option = Masonry.prototype.option;
|
||||||
|
Masonry.prototype.option = function() {
|
||||||
|
_option.apply( this, arguments );
|
||||||
|
this._remapV2Options();
|
||||||
|
};
|
||||||
|
|
||||||
|
// re-enable using function for columnWidth
|
||||||
|
var _measureColumns = Masonry.prototype.measureColumns;
|
||||||
|
Masonry.prototype.measureColumns = function() {
|
||||||
|
var colWOpt = this.options.columnWidth;
|
||||||
|
if ( colWOpt && typeof colWOpt === 'function' ) {
|
||||||
|
this.getContainerWidth();
|
||||||
|
this.columnWidth = colWOpt( this.containerWidth );
|
||||||
|
}
|
||||||
|
_measureColumns.apply( this, arguments );
|
||||||
|
};
|
||||||
|
|
||||||
|
})( window );
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -197,7 +197,11 @@ function wp_default_scripts( &$scripts ) {
|
||||||
$scripts->add( 'jquery-hotkeys', "/wp-includes/js/jquery/jquery.hotkeys$suffix.js", array('jquery'), '0.0.2m', 1 );
|
$scripts->add( 'jquery-hotkeys', "/wp-includes/js/jquery/jquery.hotkeys$suffix.js", array('jquery'), '0.0.2m', 1 );
|
||||||
$scripts->add( 'jquery-table-hotkeys', "/wp-includes/js/jquery/jquery.table-hotkeys$suffix.js", array('jquery', 'jquery-hotkeys'), false, 1 );
|
$scripts->add( 'jquery-table-hotkeys', "/wp-includes/js/jquery/jquery.table-hotkeys$suffix.js", array('jquery', 'jquery-hotkeys'), false, 1 );
|
||||||
$scripts->add( 'jquery-touch-punch', "/wp-includes/js/jquery/jquery.ui.touch-punch.js", array('jquery-ui-widget', 'jquery-ui-mouse'), '0.2.2', 1 );
|
$scripts->add( 'jquery-touch-punch', "/wp-includes/js/jquery/jquery.ui.touch-punch.js", array('jquery-ui-widget', 'jquery-ui-mouse'), '0.2.2', 1 );
|
||||||
$scripts->add( 'jquery-masonry', "/wp-includes/js/jquery/jquery.masonry.min.js", array('jquery'), '2.1.05', 1 );
|
|
||||||
|
// Masonry v2 depended on jQuery. v3 does not. The older jquery-masonry handle is a shiv.
|
||||||
|
// It sets jQuery as a dependency, as the theme may have been implicitly loading it this way.
|
||||||
|
$scripts->add( 'masonry', "/wp-includes/js/masonry.min.js", array(), '3.1.2', 1 );
|
||||||
|
$scripts->add( 'jquery-masonry', "/wp-includes/js/jquery/jquery.masonry$suffix.js", array( 'jquery', 'masonry' ), '3.1.2', 1 );
|
||||||
|
|
||||||
$scripts->add( 'thickbox', "/wp-includes/js/thickbox/thickbox.js", array('jquery'), '3.1-20121105', 1 );
|
$scripts->add( 'thickbox', "/wp-includes/js/thickbox/thickbox.js", array('jquery'), '3.1-20121105', 1 );
|
||||||
did_action( 'init' ) && $scripts->localize( 'thickbox', 'thickboxL10n', array(
|
did_action( 'init' ) && $scripts->localize( 'thickbox', 'thickboxL10n', array(
|
||||||
|
|
Loading…
Reference in New Issue