datatables.net 2.0.2 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/js/dataTables.js CHANGED
@@ -1,11 +1,11 @@
1
- /*! DataTables 2.0.2
1
+ /*! DataTables 2.0.3
2
2
  * © SpryMedia Ltd - datatables.net/license
3
3
  */
4
4
 
5
5
  /**
6
6
  * @summary DataTables
7
7
  * @description Paginate, search and order HTML tables
8
- * @version 2.0.2
8
+ * @version 2.0.3
9
9
  * @author SpryMedia Ltd
10
10
  * @contact www.datatables.net
11
11
  * @copyright SpryMedia Ltd.
@@ -3417,8 +3417,15 @@
3417
3417
  _fnCallbackFire( oSettings, 'aoFooterCallback', 'footer', [ $(oSettings.nTFoot).children('tr')[0],
3418
3418
  _fnGetDataMaster( oSettings ), iDisplayStart, iDisplayEnd, aiDisplay ] );
3419
3419
 
3420
- body.children().detach();
3421
- body.append( $(anRows) );
3420
+ // replaceChildren is faster, but only became widespread in 2020,
3421
+ // so a fall back in jQuery is provided for older browsers.
3422
+ if (body[0].replaceChildren) {
3423
+ body[0].replaceChildren.apply(body[0], anRows);
3424
+ }
3425
+ else {
3426
+ body.children().detach();
3427
+ body.append( $(anRows) );
3428
+ }
3422
3429
 
3423
3430
  // Empty table needs a specific class
3424
3431
  $(oSettings.nTableWrapper).toggleClass('dt-empty-footer', $('tr', oSettings.nTFoot).length === 0);
@@ -3686,15 +3693,15 @@
3686
3693
 
3687
3694
  settings.nTableWrapper = insert[0];
3688
3695
 
3689
- var top = _layoutArray( settings, settings.layout, 'top' );
3690
- var bottom = _layoutArray( settings, settings.layout, 'bottom' );
3691
- var renderer = _fnRenderer( settings, 'layout' );
3692
-
3693
3696
  if (settings.sDom) {
3694
3697
  // Legacy
3695
3698
  _fnLayoutDom(settings, settings.sDom, insert);
3696
3699
  }
3697
3700
  else {
3701
+ var top = _layoutArray( settings, settings.layout, 'top' );
3702
+ var bottom = _layoutArray( settings, settings.layout, 'bottom' );
3703
+ var renderer = _fnRenderer( settings, 'layout' );
3704
+
3698
3705
  // Everything above - the renderer will actually insert the contents into the document
3699
3706
  top.forEach(function (item) {
3700
3707
  renderer( settings, insert, item );
@@ -5454,10 +5461,13 @@
5454
5461
  // Allow the processing display to show
5455
5462
  setTimeout( function () {
5456
5463
  _fnSort( settings );
5457
- _fnSortDisplay( settings );
5458
- _fnReDraw( settings, false, false );
5464
+ _fnSortDisplay( settings, settings.aiDisplay );
5465
+
5466
+ // Sort processing done - redraw has its own processing display
5459
5467
  _fnProcessingDisplay( settings, false );
5460
5468
 
5469
+ _fnReDraw( settings, false, false );
5470
+
5461
5471
  if (callback) {
5462
5472
  callback();
5463
5473
  }
@@ -5471,8 +5481,7 @@
5471
5481
  * Sort the display array to match the master's order
5472
5482
  * @param {*} settings
5473
5483
  */
5474
- function _fnSortDisplay(settings) {
5475
- var display = settings.aiDisplay;
5484
+ function _fnSortDisplay(settings, display) {
5476
5485
  var master = settings.aiDisplayMaster;
5477
5486
  var masterMap = {};
5478
5487
  var map = {};
@@ -7693,11 +7702,7 @@
7693
7702
  var matched = _selector_run( 'row', selector, run, settings, opts );
7694
7703
 
7695
7704
  if (opts.order === 'current' || opts.order === 'applied') {
7696
- var master = settings.aiDisplayMaster;
7697
-
7698
- matched.sort(function(a, b) {
7699
- return master.indexOf(a) - master.indexOf(b);
7700
- });
7705
+ _fnSortDisplay(settings, matched);
7701
7706
  }
7702
7707
 
7703
7708
  return matched;
@@ -9558,7 +9563,7 @@
9558
9563
  * @type string
9559
9564
  * @default Version number
9560
9565
  */
9561
- DataTable.version = "2.0.2";
9566
+ DataTable.version = "2.0.3";
9562
9567
 
9563
9568
  /**
9564
9569
  * Private data store, containing all of the settings objects that are
@@ -12960,9 +12965,9 @@
12960
12965
  var ariaType = '';
12961
12966
  var indexes = columns.indexes();
12962
12967
  var sortDirs = columns.orderable(true).flatten();
12963
- var orderedColumns = sorting.map( function (val) {
12968
+ var orderedColumns = ',' + sorting.map( function (val) {
12964
12969
  return val.col;
12965
- } ).join(',');
12970
+ } ).join(',') + ',';
12966
12971
 
12967
12972
  cell
12968
12973
  .removeClass(
@@ -12973,7 +12978,7 @@
12973
12978
  .toggleClass( orderClasses.canAsc, orderable && sortDirs.includes('asc') )
12974
12979
  .toggleClass( orderClasses.canDesc, orderable && sortDirs.includes('desc') );
12975
12980
 
12976
- var sortIdx = orderedColumns.indexOf( indexes.toArray().join(',') );
12981
+ var sortIdx = orderedColumns.indexOf( ',' + indexes.toArray().join(',') + ',' );
12977
12982
 
12978
12983
  if ( sortIdx !== -1 ) {
12979
12984
  // Get the ordering direction for the columns under this cell
@@ -12988,7 +12993,7 @@
12988
12993
  }
12989
12994
 
12990
12995
  // The ARIA spec says that only one column should be marked with aria-sort
12991
- if ( sortIdx === 0 && orderedColumns.length === indexes.count() ) {
12996
+ if ( sortIdx === 0 ) {
12992
12997
  var firstSort = sorting[0];
12993
12998
  var sortOrder = col.asSorting;
12994
12999