|
|
|
/**
|
|
|
|
* Isotope Item
|
|
|
|
**/
|
|
|
|
|
|
|
|
( function( window ) {
|
|
|
|
|
|
|
|
'use strict';
|
|
|
|
|
|
|
|
// -------------------------- Item -------------------------- //
|
|
|
|
|
|
|
|
function itemDefinition( Outlayer ) {
|
|
|
|
|
|
|
|
// sub-class Outlayer Item
|
|
|
|
function Item() {
|
|
|
|
Outlayer.Item.apply( this, arguments );
|
|
|
|
}
|
|
|
|
|
|
|
|
Item.prototype = new Outlayer.Item();
|
|
|
|
|
|
|
|
Item.prototype._create = function() {
|
|
|
|
// assign id, used for original-order sorting
|
|
|
|
this.id = this.layout.itemGUID++;
|
|
|
|
Outlayer.Item.prototype._create.call( this );
|
|
|
|
this.sortData = {};
|
|
|
|
};
|
|
|
|
|
|
|
|
Item.prototype.updateSortData = function() {
|
|
|
|
// default sorters
|
|
|
|
this.sortData.id = this.id;
|
|
|
|
// for backward compatibility
|
|
|
|
this.sortData['original-order'] = this.id;
|
|
|
|
this.sortData.random = Math.random();
|
|
|
|
// go thru getSortData obj and apply the sorters
|
|
|
|
var getSortData = this.layout.options.getSortData;
|
|
|
|
var sorters = this.layout._sorters;
|
|
|
|
for ( var key in getSortData ) {
|
|
|
|
var sorter = sorters[ key ];
|
|
|
|
this.sortData[ key ] = sorter( this.element, this );
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
return Item;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// -------------------------- transport -------------------------- //
|
|
|
|
|
|
|
|
if ( typeof define === 'function' && define.amd ) {
|
|
|
|
// AMD
|
|
|
|
define( [
|
|
|
|
'outlayer/outlayer'
|
|
|
|
],
|
|
|
|
itemDefinition );
|
|
|
|
} else {
|
|
|
|
// browser global
|
|
|
|
window.Isotope = window.Isotope || {};
|
|
|
|
window.Isotope.Item = itemDefinition(
|
|
|
|
window.Outlayer
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
})( window );
|