update bower version and dependencies

This commit is contained in:
David Miller
2015-04-21 01:01:39 -04:00
parent 00b5ca81c3
commit b6e856a925
91 changed files with 1441 additions and 833 deletions

View File

@@ -1,15 +1,15 @@
/*! Responsive 1.0.3
* 2014 SpryMedia Ltd - datatables.net/license
/*! Responsive 1.0.5
* 2014-2015 SpryMedia Ltd - datatables.net/license
*/
/**
* @summary Responsive
* @description Responsive tables plug-in for DataTables
* @version 1.0.3
* @version 1.0.5
* @file dataTables.responsive.js
* @author SpryMedia Ltd (www.sprymedia.co.uk)
* @contact www.sprymedia.co.uk/contact
* @copyright Copyright 2014 SpryMedia Ltd.
* @copyright Copyright 2014-2015 SpryMedia Ltd.
*
* This source file is free software, available under the following license:
* MIT license - http://datatables.net/license/mit
@@ -133,16 +133,13 @@ Responsive.prototype = {
} );
// Determine which columns are already hidden, and should therefore
// remain hidden. TODO - should this be done? See thread 22677
// remain hidden. todo - should this be done? See thread 22677
//
// this.s.alwaysHidden = dt.columns(':hidden').indexes();
this._classLogic();
this._resizeAuto();
// First pass - draw the table for the current viewport size
this._resize();
// Details handler
var details = this.c.details;
if ( details.type ) {
@@ -156,7 +153,7 @@ Responsive.prototype = {
// Redraw the details box on each draw. This is used until
// DataTables implements a native `updated` event for rows
dt.on( 'draw.dtr', function () {
dt.rows().iterator( 'row', function ( settings, idx ) {
dt.rows( {page: 'current'} ).iterator( 'row', function ( settings, idx ) {
var row = dt.row( idx );
if ( row.child.isShown() ) {
@@ -168,6 +165,9 @@ Responsive.prototype = {
$(dt.table().node()).addClass( 'dtr-'+details.type );
}
// First pass - draw the table for the current viewport size
this._resize();
},
@@ -213,8 +213,14 @@ Responsive.prototype = {
}
}
// Second pass, use up any remaining width for other columns
var widthAvailable = dt.table().container().offsetWidth;
// Second pass, use up any remaining width for other columns. For
// scrolling tables we need to subtract the width of the scrollbar. It
// may not be requires which makes this sub-optimal, but it would
// require another full redraw to make complete use of those extra few
// pixels
var scrolling = dt.settings()[0].oScroll;
var bar = scrolling.sY || scrolling.sX ? scrolling.iBarWidth : 0;
var widthAvailable = dt.table().container().offsetWidth - bar;
var usedWidth = widthAvailable - requiredWidth;
// Control column needs to always be included. This makes it sub-
@@ -230,11 +236,19 @@ Responsive.prototype = {
// Allow columns to be shown (counting from the left) until we run out
// of room
var empty = false;
for ( i=0, ien=display.length ; i<ien ; i++ ) {
if ( display[i] === '-' && ! columns[i].control ) {
display[i] = usedWidth - columns[i].minWidth < 0 ?
false :
true;
// Once we've found a column that won't fit we don't let any
// others display either, or columns might disappear in the
// middle of the table
if ( empty || usedWidth - columns[i].minWidth < 0 ) {
empty = true;
display[i] = false;
}
else {
display[i] = true;
}
usedWidth -= columns[i].minWidth;
}
@@ -493,11 +507,8 @@ Responsive.prototype = {
}
if ( haveHidden ) {
// Got hidden columns
$( dt.table().node() ).addClass('collapsed');
// Show all existing child rows
dt.rows().eq(0).each( function (idx) {
dt.rows( { page: 'current' } ).eq(0).each( function (idx) {
var row = dt.row( idx );
if ( row.child() ) {
@@ -514,11 +525,8 @@ Responsive.prototype = {
} );
}
else {
// No hidden columns
$( dt.table().node() ).removeClass('collapsed');
// Hide all existing child rows
dt.rows().eq(0).each( function (idx) {
dt.rows( { page: 'current' } ).eq(0).each( function (idx) {
dt.row( idx ).child.hide();
} );
}
@@ -555,9 +563,11 @@ Responsive.prototype = {
var width = $(window).width();
var breakpoints = this.c.breakpoints;
var breakpoint = breakpoints[0].name;
var columns = this.s.columns;
var i, ien;
// Determine what breakpoint we are currently at
for ( var i=breakpoints.length-1 ; i>=0 ; i-- ) {
for ( i=breakpoints.length-1 ; i>=0 ; i-- ) {
if ( width <= breakpoints[i].width ) {
breakpoint = breakpoints[i].name;
break;
@@ -565,10 +575,23 @@ Responsive.prototype = {
}
// Show the columns for that break point
var columns = this._columnsVisiblity( breakpoint );
var columnsVis = this._columnsVisiblity( breakpoint );
// Set the class before the column visibility is changed so event
// listeners know what the state is. Need to determine if there are
// any columns that are not visible but can be shown
var collapsedClass = false;
for ( i=0, ien=columns.length ; i<ien ; i++ ) {
if ( columnsVis[i] === false && ! columns[i].never ) {
collapsedClass = true;
break;
}
}
$( dt.table().node() ).toggleClass('collapsed', collapsedClass );
dt.columns().eq(0).each( function ( colIdx, i ) {
dt.column( colIdx ).visible( columns[i] );
dt.column( colIdx ).visible( columnsVis[i] );
} );
},
@@ -604,6 +627,8 @@ Responsive.prototype = {
var clonedHeader = $( dt.table().header().cloneNode( false ) ).appendTo( clonedTable );
var clonedBody = $( dt.table().body().cloneNode( false ) ).appendTo( clonedTable );
$( dt.table().footer() ).clone( false ).appendTo( clonedTable );
// This is a bit slow, but we need to get a clone of each row that
// includes all columns. As such, try to do this as little as possible.
dt.rows( { page: 'current' } ).indexes().flatten().each( function ( idx ) {
@@ -616,8 +641,12 @@ Responsive.prototype = {
$(clone).appendTo( clonedBody );
} );
var cells = dt.columns().header().to$().clone( false ).wrapAll('tr').appendTo( clonedHeader );
var inserted = $('<div/>')
var cells = dt.columns().header().to$().clone( false );
$('<tr/>')
.append( cells )
.appendTo( clonedHeader );
var inserted = $('<div/>')
.css( {
width: 1,
height: 1,
@@ -716,10 +745,14 @@ Responsive.defaults = {
var cellData = dtPrivate.oApi._fnGetCellData(
dtPrivate, idx.row, idx.column, 'display'
);
var title = header.text();
if ( title ) {
title = title + ':';
}
return '<li data-dtr-index="'+idx.column+'">'+
'<span class="dtr-title">'+
header.text()+':'+
title+
'</span> '+
'<span class="dtr-data">'+
cellData+
@@ -749,15 +782,6 @@ Api.register( 'responsive()', function () {
return this;
} );
Api.register( 'responsive.recalc()', function () {
this.iterator( 'table', function ( ctx ) {
if ( ctx._responsive ) {
ctx._responsive._resizeAuto();
ctx._responsive._resize();
}
} );
} );
Api.register( 'responsive.index()', function ( li ) {
li = $(li);
@@ -767,6 +791,23 @@ Api.register( 'responsive.index()', function ( li ) {
};
} );
Api.register( 'responsive.rebuild()', function () {
return this.iterator( 'table', function ( ctx ) {
if ( ctx._responsive ) {
ctx._responsive._classLogic();
}
} );
} );
Api.register( 'responsive.recalc()', function () {
return this.iterator( 'table', function ( ctx ) {
if ( ctx._responsive ) {
ctx._responsive._resizeAuto();
ctx._responsive._resize();
}
} );
} );
/**
* Version information
@@ -774,7 +815,7 @@ Api.register( 'responsive.index()', function ( li ) {
* @name Responsive.version
* @static
*/
Responsive.version = '1.0.3';
Responsive.version = '1.0.5';
$.fn.dataTable.Responsive = Responsive;
@@ -783,11 +824,17 @@ $.fn.DataTable.Responsive = Responsive;
// Attach a listener to the document which listens for DataTables initialisation
// events so we can automatically initialise
$(document).on( 'init.dt.dtr', function (e, settings, json) {
if ( e.namespace !== 'dt' ) {
return;
}
if ( $(settings.nTable).hasClass( 'responsive' ) ||
$(settings.nTable).hasClass( 'dt-responsive' ) ||
settings.oInit.responsive ||
DataTable.defaults.responsive
) {
console.log( e.namespace );
var init = settings.oInit.responsive;
if ( init !== false ) {
@@ -815,4 +862,3 @@ else if ( jQuery && !jQuery.fn.dataTable.Responsive ) {
})(window, document);