/*! * Masonry layout mode * sub-classes Masonry * http://masonry.desandro.com */ ( function( window ) { 'use strict'; // -------------------------- helpers -------------------------- // // extend objects function extend( a, b ) { for ( var prop in b ) { a[ prop ] = b[ prop ]; } return a; } // -------------------------- masonryDefinition -------------------------- // // used for AMD definition and requires function masonryDefinition( layoutMode, Masonry ) { // create an Outlayer layout class var MasonryMode = layoutMode.create('masonry'); // save on to these methods var _getElementOffset = MasonryMode.prototype._getElementOffset; var layout = MasonryMode.prototype.layout; // sub-class Masonry extend( MasonryMode.prototype, Masonry.prototype ); // set back, as it was overwritten by Masonry MasonryMode.prototype._getElementOffset = _getElementOffset; MasonryMode.prototype.layout = layout; return MasonryMode; } // -------------------------- transport -------------------------- // if ( typeof define === 'function' && define.amd ) { // AMD define( [ '../layout-mode', 'masonry/masonry' ], masonryDefinition ); } else { // browser global masonryDefinition( window.Isotope.layoutMode, window.Masonry ); } })( window );