Browse Source

surface LayoutMode constructor

pull/563/head
David DeSandro 12 years ago
parent
commit
d80a0b3522
  1. 16
      isotope.js
  2. 44
      layout-mode.js
  3. 6
      layout-modes/cells-by-column.js
  4. 6
      layout-modes/cells-by-row.js
  5. 6
      layout-modes/fit-columns.js
  6. 6
      layout-modes/fit-rows.js
  7. 6
      layout-modes/horizontal.js
  8. 4
      layout-modes/masonry-horizontal.js
  9. 6
      layout-modes/masonry.js
  10. 6
      layout-modes/vertical.js

16
isotope.js

@ -39,14 +39,14 @@ var getText = docElem.textContent ?
// -------------------------- isotopeDefinition -------------------------- //
// used for AMD definition and requires
function isotopeDefinition( Outlayer, getSize, matchesSelector, Item, layoutMode ) {
function isotopeDefinition( Outlayer, getSize, matchesSelector, Item, LayoutMode ) {
// create an Outlayer layout class
var Isotope = Outlayer.create( 'isotope', {
sortAscending: true
});
Isotope.Item = Isotope.prototype.settings.item = Item;
Isotope.layoutMode = layoutMode;
Isotope.LayoutMode = LayoutMode;
Isotope.prototype._create = function() {
this.itemGUID = 0;
@ -56,7 +56,7 @@ function isotopeDefinition( Outlayer, getSize, matchesSelector, Item, layoutMode
// create layout modes
this.modes = {};
// create from registered layout modes
for ( var name in layoutMode.modes ) {
for ( var name in LayoutMode.modes ) {
this._initLayoutMode( name );
}
// functions that sort items
@ -86,14 +86,14 @@ function isotopeDefinition( Outlayer, getSize, matchesSelector, Item, layoutMode
// -------------------------- layout -------------------------- //
Isotope.prototype._initLayoutMode = function( name ) {
var LayoutMode = layoutMode.modes[ name ];
var Mode = LayoutMode.modes[ name ];
// set mode options
// HACK extend initial options, back-fill in default options
var initialOpts = this.options[ name ] || {};
this.options[ name ] = LayoutMode.options ?
extend( LayoutMode.options, initialOpts ) : initialOpts;
this.options[ name ] = Mode.options ?
extend( Mode.options, initialOpts ) : initialOpts;
// init layout mode instance
this.modes[ name ] = new LayoutMode( this );
this.modes[ name ] = new Mode( this );
};
Isotope.prototype.layout = function( opts ) {
@ -385,7 +385,7 @@ if ( typeof define === 'function' && define.amd ) {
window.getSize,
window.matchesSelector,
window.Isotope.Item,
window.Isotope.layoutMode
window.Isotope.LayoutMode
);
}

44
layout-mode.js

@ -6,11 +6,6 @@
function layoutModeDefinition( getSize, Outlayer ) {
var layoutMode = {};
layoutMode.modes = {};
layoutMode.create = function( namespace, options ) {
// layout mode class
function LayoutMode( isotope ) {
this.isotope = isotope;
@ -24,16 +19,6 @@ layoutMode.create = function( namespace, options ) {
}
}
// default options
if ( options ) {
LayoutMode.options = options;
}
LayoutMode.prototype.namespace = namespace;
// register in Isotope
layoutMode.modes[ namespace ] = LayoutMode;
/**
* some methods should just defer to default Outlayer method
* and reference the Isotope instance as `this`
@ -117,13 +102,32 @@ layoutMode.create = function( namespace, options ) {
this.size = this.isotope.size;
};
// ----- ----- //
// -------------------------- create -------------------------- //
return LayoutMode;
};
LayoutMode.modes = {};
LayoutMode.create = function( namespace, options ) {
function Mode() {
LayoutMode.apply( this, arguments );
}
Mode.prototype = new LayoutMode();
// default options
if ( options ) {
Mode.options = options;
}
Mode.prototype.namespace = namespace;
// register in Isotope
LayoutMode.modes[ namespace ] = Mode;
return layoutMode;
return Mode;
};
return LayoutMode;
}
@ -137,7 +141,7 @@ if ( typeof define === 'function' && define.amd ) {
} else {
// browser global
window.Isotope = window.Isotope || {};
window.Isotope.layoutMode = layoutModeDefinition(
window.Isotope.LayoutMode = layoutModeDefinition(
window.getSize,
window.Outlayer
);

6
layout-modes/cells-by-column.js

@ -2,9 +2,9 @@
'use strict';
function cellsByColumnDefinition( layoutMode ) {
function cellsByColumnDefinition( LayoutMode ) {
var CellsByColumn = layoutMode.create( 'cellsByColumn' );
var CellsByColumn = LayoutMode.create( 'cellsByColumn' );
CellsByColumn.prototype._resetLayout = function() {
// reset properties
@ -51,7 +51,7 @@ if ( typeof define === 'function' && define.amd ) {
} else {
// browser global
cellsByColumnDefinition(
window.Isotope.layoutMode
window.Isotope.LayoutMode
);
}

6
layout-modes/cells-by-row.js

@ -2,9 +2,9 @@
'use strict';
function cellsByRowDefinition( layoutMode ) {
function cellsByRowDefinition( LayoutMode ) {
var CellsByRow = layoutMode.create( 'cellsByRow' );
var CellsByRow = LayoutMode.create( 'cellsByRow' );
CellsByRow.prototype._resetLayout = function() {
// reset properties
@ -48,7 +48,7 @@ if ( typeof define === 'function' && define.amd ) {
} else {
// browser global
cellsByRowDefinition(
window.Isotope.layoutMode,
window.Isotope.LayoutMode,
window.getSize
);
}

6
layout-modes/fit-columns.js

@ -2,9 +2,9 @@
'use strict';
function fitColumnsDefinition( layoutMode ) {
function fitColumnsDefinition( LayoutMode ) {
var FitColumns = layoutMode.create('fitColumns');
var FitColumns = LayoutMode.create('fitColumns');
FitColumns.prototype._resetLayout = function() {
this.x = 0;
@ -53,7 +53,7 @@ if ( typeof define === 'function' && define.amd ) {
} else {
// browser global
fitColumnsDefinition(
window.Isotope.layoutMode
window.Isotope.LayoutMode
);
}

6
layout-modes/fit-rows.js

@ -2,9 +2,9 @@
'use strict';
function fitRowsDefinition( layoutMode ) {
function fitRowsDefinition( LayoutMode ) {
var FitRows = layoutMode.create( 'fitRows', {
var FitRows = LayoutMode.create( 'fitRows', {
foo: 'bar'
});
@ -51,7 +51,7 @@ if ( typeof define === 'function' && define.amd ) {
} else {
// browser global
fitRowsDefinition(
window.Isotope.layoutMode
window.Isotope.LayoutMode
);
}

6
layout-modes/horizontal.js

@ -2,9 +2,9 @@
'use strict';
function horizontalDefinition( layoutMode ) {
function horizontalDefinition( LayoutMode ) {
var Horizontal = layoutMode.create( 'horizontal', {
var Horizontal = LayoutMode.create( 'horizontal', {
verticalAlignment: 0
});
@ -42,7 +42,7 @@ if ( typeof define === 'function' && define.amd ) {
} else {
// browser global
horizontalDefinition(
window.Isotope.layoutMode
window.Isotope.LayoutMode
);
}

4
layout-modes/masonry-horizontal.js

@ -22,7 +22,7 @@ var indexOf = Array.prototype.indexOf ?
function masonryHorizontalDefinition( getSize, layoutMode ) {
// create an Outlayer layout class
var MasonryHorizontal = layoutMode.create('masonryHorizontal');
var MasonryHorizontal = LayoutMode.create('masonryHorizontal');
MasonryHorizontal.prototype._resetLayout = function() {
this.getRowHeight();
@ -138,7 +138,7 @@ if ( typeof define === 'function' && define.amd ) {
// browser global
masonryHorizontalDefinition(
window.getSize,
window.Isotope.layoutMode
window.Isotope.LayoutMode
);
}

6
layout-modes/masonry.js

@ -21,9 +21,9 @@ function extend( a, b ) {
// -------------------------- masonryDefinition -------------------------- //
// used for AMD definition and requires
function masonryDefinition( layoutMode, Masonry ) {
function masonryDefinition( LayoutMode, Masonry ) {
// create an Outlayer layout class
var MasonryMode = layoutMode.create('masonry');
var MasonryMode = LayoutMode.create('masonry');
// save on to these methods
var _getElementOffset = MasonryMode.prototype._getElementOffset;
@ -51,7 +51,7 @@ if ( typeof define === 'function' && define.amd ) {
} else {
// browser global
masonryDefinition(
window.Isotope.layoutMode,
window.Isotope.LayoutMode,
window.Masonry
);
}

6
layout-modes/vertical.js

@ -2,9 +2,9 @@
'use strict';
function verticalDefinition( layoutMode ) {
function verticalDefinition( LayoutMode ) {
var Vertical = layoutMode.create( 'vertical', {
var Vertical = LayoutMode.create( 'vertical', {
horizontalAlignment: 0
});
@ -38,7 +38,7 @@ if ( typeof define === 'function' && define.amd ) {
} else {
// browser global
verticalDefinition(
window.Isotope.layoutMode
window.Isotope.LayoutMode
);
}

Loading…
Cancel
Save