datatables.net 2.3.2 → 2.3.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.mjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! DataTables 2.3.2
1
+ /*! DataTables 2.3.3
2
2
  * © SpryMedia Ltd - datatables.net/license
3
3
  */
4
4
 
@@ -696,7 +696,7 @@ DataTable.ext = _ext = {
696
696
  *
697
697
  * The extension options for ordering of data available here is complimentary
698
698
  * to the default type based ordering that DataTables typically uses. It
699
- * allows much greater control over the the data that is being used to
699
+ * allows much greater control over the data that is being used to
700
700
  * order a column, but is necessarily therefore more complex.
701
701
  *
702
702
  * This type of ordering is useful if you want to do ordering based on data
@@ -855,7 +855,7 @@ DataTable.ext = _ext = {
855
855
  * `{type}-asc` and `{type}-desc` together. It is generally recommended
856
856
  * that only `{type}-pre` is used, as this provides the optimal
857
857
  * implementation in terms of speed, although the others are provided
858
- * for compatibility with existing Javascript sort functions.
858
+ * for compatibility with existing JavaScript sort functions.
859
859
  *
860
860
  * `{type}-pre`: Functions defined take a single parameter:
861
861
  *
@@ -865,7 +865,7 @@ DataTable.ext = _ext = {
865
865
  *
866
866
  * * `{*}` Data to be sorted upon
867
867
  *
868
- * `{type}-asc` and `{type}-desc`: Functions are typical Javascript sort
868
+ * `{type}-asc` and `{type}-desc`: Functions are typical JavaScript sort
869
869
  * functions, taking two parameters:
870
870
  *
871
871
  * 1. `{*}` Data to compare to the second parameter
@@ -1089,7 +1089,7 @@ var _intVal = function ( s ) {
1089
1089
  };
1090
1090
 
1091
1091
  // Convert from a formatted number with characters other than `.` as the
1092
- // decimal place, to a Javascript number
1092
+ // decimal place, to a JavaScript number
1093
1093
  var _numToDecimal = function ( num, decimalPoint ) {
1094
1094
  // Cache created regular expressions for speed as this function is called often
1095
1095
  if ( ! _re_dic[ decimalPoint ] ) {
@@ -1155,19 +1155,19 @@ var _htmlNumeric = function ( d, decimalPoint, formatted, allowEmpty ) {
1155
1155
 
1156
1156
  var _pluck = function ( a, prop, prop2 ) {
1157
1157
  var out = [];
1158
- var i=0, ien=a.length;
1158
+ var i=0, iLen=a.length;
1159
1159
 
1160
1160
  // Could have the test in the loop for slightly smaller code, but speed
1161
1161
  // is essential here
1162
1162
  if ( prop2 !== undefined ) {
1163
- for ( ; i<ien ; i++ ) {
1163
+ for ( ; i<iLen ; i++ ) {
1164
1164
  if ( a[i] && a[i][ prop ] ) {
1165
1165
  out.push( a[i][ prop ][ prop2 ] );
1166
1166
  }
1167
1167
  }
1168
1168
  }
1169
1169
  else {
1170
- for ( ; i<ien ; i++ ) {
1170
+ for ( ; i<iLen ; i++ ) {
1171
1171
  if ( a[i] ) {
1172
1172
  out.push( a[i][ prop ] );
1173
1173
  }
@@ -1183,19 +1183,19 @@ var _pluck = function ( a, prop, prop2 ) {
1183
1183
  var _pluck_order = function ( a, order, prop, prop2 )
1184
1184
  {
1185
1185
  var out = [];
1186
- var i=0, ien=order.length;
1186
+ var i=0, iLen=order.length;
1187
1187
 
1188
1188
  // Could have the test in the loop for slightly smaller code, but speed
1189
1189
  // is essential here
1190
1190
  if ( prop2 !== undefined ) {
1191
- for ( ; i<ien ; i++ ) {
1191
+ for ( ; i<iLen ; i++ ) {
1192
1192
  if ( a[ order[i] ] && a[ order[i] ][ prop ] ) {
1193
1193
  out.push( a[ order[i] ][ prop ][ prop2 ] );
1194
1194
  }
1195
1195
  }
1196
1196
  }
1197
1197
  else {
1198
- for ( ; i<ien ; i++ ) {
1198
+ for ( ; i<iLen ; i++ ) {
1199
1199
  if ( a[ order[i] ] ) {
1200
1200
  out.push( a[ order[i] ][ prop ] );
1201
1201
  }
@@ -1232,7 +1232,7 @@ var _removeEmpty = function ( a )
1232
1232
  {
1233
1233
  var out = [];
1234
1234
 
1235
- for ( var i=0, ien=a.length ; i<ien ; i++ ) {
1235
+ for ( var i=0, iLen=a.length ; i<iLen ; i++ ) {
1236
1236
  if ( a[i] ) { // careful - will remove all falsy values!
1237
1237
  out.push( a[i] );
1238
1238
  }
@@ -1318,7 +1318,7 @@ var _areAllUnique = function ( src ) {
1318
1318
  var sorted = src.slice().sort();
1319
1319
  var last = sorted[0];
1320
1320
 
1321
- for ( var i=1, ien=sorted.length ; i<ien ; i++ ) {
1321
+ for ( var i=1, iLen=sorted.length ; i<iLen ; i++ ) {
1322
1322
  if ( sorted[i] === last ) {
1323
1323
  return false;
1324
1324
  }
@@ -1354,10 +1354,10 @@ var _unique = function ( src )
1354
1354
  var
1355
1355
  out = [],
1356
1356
  val,
1357
- i, ien=src.length,
1357
+ i, iLen=src.length,
1358
1358
  j, k=0;
1359
1359
 
1360
- again: for ( i=0 ; i<ien ; i++ ) {
1360
+ again: for ( i=0 ; i<iLen ; i++ ) {
1361
1361
  val = src[i];
1362
1362
 
1363
1363
  for ( j=0 ; j<k ; j++ ) {
@@ -1891,7 +1891,7 @@ function _fnCompatOpts ( init )
1891
1891
  var searchCols = init.aoSearchCols;
1892
1892
 
1893
1893
  if ( searchCols ) {
1894
- for ( var i=0, ien=searchCols.length ; i<ien ; i++ ) {
1894
+ for ( var i=0, iLen=searchCols.length ; i<iLen ; i++ ) {
1895
1895
  if ( searchCols[i] ) {
1896
1896
  _fnCamelToHungarian( DataTable.models.oSearch, searchCols[i] );
1897
1897
  }
@@ -2044,7 +2044,7 @@ function _fnColumnOptions( oSettings, iCol, oOptions )
2044
2044
  oCol._sManualType = oOptions.sType;
2045
2045
  }
2046
2046
 
2047
- // `class` is a reserved word in Javascript, so we need to provide
2047
+ // `class` is a reserved word in JavaScript, so we need to provide
2048
2048
  // the ability to use a valid name for the camel case input
2049
2049
  if ( oOptions.className && ! oOptions.sClass )
2050
2050
  {
@@ -2201,14 +2201,14 @@ function _fnColumnIndexToVisible( oSettings, iMatch )
2201
2201
  * @returns {int} i the number of visible columns
2202
2202
  * @memberof DataTable#oApi
2203
2203
  */
2204
- function _fnVisbleColumns( settings )
2204
+ function _fnVisibleColumns( settings )
2205
2205
  {
2206
2206
  var layout = settings.aoHeader;
2207
2207
  var columns = settings.aoColumns;
2208
2208
  var vis = 0;
2209
2209
 
2210
2210
  if ( layout.length ) {
2211
- for ( var i=0, ien=layout[0].length ; i<ien ; i++ ) {
2211
+ for ( var i=0, iLen=layout[0].length ; i<iLen ; i++ ) {
2212
2212
  if ( columns[i].bVisible && $(layout[0][i].cell).css('display') !== 'none' ) {
2213
2213
  vis++;
2214
2214
  }
@@ -2243,7 +2243,7 @@ function _fnGetColumns( oSettings, sParam )
2243
2243
  /**
2244
2244
  * Allow the result from a type detection function to be `true` while
2245
2245
  * translating that into a string. Old type detection functions will
2246
- * return the type name if it passes. An obect store would be better,
2246
+ * return the type name if it passes. An object store would be better,
2247
2247
  * but not backwards compatible.
2248
2248
  *
2249
2249
  * @param {*} typeDetect Object or function for type detection
@@ -2266,11 +2266,11 @@ function _fnColumnTypes ( settings )
2266
2266
  var columns = settings.aoColumns;
2267
2267
  var data = settings.aoData;
2268
2268
  var types = DataTable.ext.type.detect;
2269
- var i, ien, j, jen, k, ken;
2269
+ var i, iLen, j, jen, k, ken;
2270
2270
  var col, detectedType, cache;
2271
2271
 
2272
2272
  // For each column, spin over the data type detection functions, seeing if one matches
2273
- for ( i=0, ien=columns.length ; i<ien ; i++ ) {
2273
+ for ( i=0, iLen=columns.length ; i<iLen ; i++ ) {
2274
2274
  col = columns[i];
2275
2275
  cache = [];
2276
2276
 
@@ -2540,7 +2540,7 @@ function _fnColumnsSumWidth( settings, targets, original, incVisible ) {
2540
2540
  var unit;
2541
2541
  var columns = settings.aoColumns;
2542
2542
 
2543
- for ( var i=0, ien=targets.length ; i<ien ; i++ ) {
2543
+ for ( var i=0, iLen=targets.length ; i<iLen ; i++ ) {
2544
2544
  var column = columns[ targets[i] ];
2545
2545
  var definedWidth = original ?
2546
2546
  column.sWidthOrig :
@@ -2586,7 +2586,7 @@ function _fnColumnsFromHeader( cell )
2586
2586
  }
2587
2587
  /**
2588
2588
  * Add a data array to the table, creating DOM node etc. This is the parallel to
2589
- * _fnGatherData, but for adding rows from a Javascript source, rather than a
2589
+ * _fnGatherData, but for adding rows from a JavaScript source, rather than a
2590
2590
  * DOM source.
2591
2591
  * @param {object} settings dataTables settings object
2592
2592
  * @param {array} data data array to be added
@@ -2726,10 +2726,10 @@ function _fnGetCellData( settings, rowIdx, colIdx, type )
2726
2726
  }
2727
2727
 
2728
2728
  if ( type === 'filter' ) {
2729
- var fomatters = DataTable.ext.type.search;
2729
+ var formatters = DataTable.ext.type.search;
2730
2730
 
2731
- if ( fomatters[ col.sType ] ) {
2732
- cellData = fomatters[ col.sType ]( cellData );
2731
+ if ( formatters[ col.sType ] ) {
2732
+ cellData = formatters[ col.sType ]( cellData );
2733
2733
  }
2734
2734
  }
2735
2735
 
@@ -2859,7 +2859,7 @@ function _fnClearTable( settings )
2859
2859
  function _fnInvalidate( settings, rowIdx, src, colIdx )
2860
2860
  {
2861
2861
  var row = settings.aoData[ rowIdx ];
2862
- var i, ien;
2862
+ var i, iLen;
2863
2863
 
2864
2864
  // Remove the cached data for the row
2865
2865
  row._aSortData = null;
@@ -2884,7 +2884,7 @@ function _fnInvalidate( settings, rowIdx, src, colIdx )
2884
2884
  _fnWriteCell(cells[colIdx], display[colIdx]);
2885
2885
  }
2886
2886
  else {
2887
- for ( i=0, ien=cells.length ; i<ien ; i++ ) {
2887
+ for ( i=0, iLen=cells.length ; i<iLen ; i++ ) {
2888
2888
  _fnWriteCell(cells[i], display[i]);
2889
2889
  }
2890
2890
  }
@@ -2902,7 +2902,7 @@ function _fnInvalidate( settings, rowIdx, src, colIdx )
2902
2902
  cols[ colIdx ].maxLenString = null;
2903
2903
  }
2904
2904
  else {
2905
- for ( i=0, ien=cols.length ; i<ien ; i++ ) {
2905
+ for ( i=0, iLen=cols.length ; i<iLen ; i++ ) {
2906
2906
  cols[i].sType = null;
2907
2907
  cols[i].maxLenString = null;
2908
2908
  }
@@ -3201,7 +3201,7 @@ function _fnBuildHead( settings, side )
3201
3201
  {
3202
3202
  var classes = settings.oClasses;
3203
3203
  var columns = settings.aoColumns;
3204
- var i, ien, row;
3204
+ var i, iLen, row;
3205
3205
  var target = side === 'header'
3206
3206
  ? settings.nTHead
3207
3207
  : settings.nTFoot;
@@ -3229,7 +3229,7 @@ function _fnBuildHead( settings, side )
3229
3229
  cellCount += this.colSpan;
3230
3230
  });
3231
3231
 
3232
- for ( i=cellCount, ien=columns.length ; i<ien ; i++ ) {
3232
+ for ( i=cellCount, iLen=columns.length ; i<iLen ; i++ ) {
3233
3233
  $('<th/>')
3234
3234
  .html( columns[i][titleProp] || '' )
3235
3235
  .appendTo( row );
@@ -3573,7 +3573,7 @@ function _emptyRow ( settings ) {
3573
3573
 
3574
3574
  return $( '<tr/>' )
3575
3575
  .append( $('<td />', {
3576
- 'colSpan': _fnVisbleColumns( settings ),
3576
+ 'colSpan': _fnVisibleColumns( settings ),
3577
3577
  'class': settings.oClasses.empty.row
3578
3578
  } ).html( zero ) )[0];
3579
3579
  }
@@ -3757,7 +3757,7 @@ function _layoutResolve( settings, row ) {
3757
3757
 
3758
3758
  var line = row[ item ].contents;
3759
3759
 
3760
- for ( var i=0, ien=line.length ; i<ien ; i++ ) {
3760
+ for ( var i=0, iLen=line.length ; i<iLen ; i++ ) {
3761
3761
  if ( ! line[i] ) {
3762
3762
  continue;
3763
3763
  }
@@ -3921,7 +3921,7 @@ function _fnLayoutDom( settings, dom, insert )
3921
3921
  /**
3922
3922
  * Use the DOM source to create up an array of header cells. The idea here is to
3923
3923
  * create a layout grid (array) of rows x columns, which contains a reference
3924
- * to the cell that that point in the grid (regardless of col/rowspan), such that
3924
+ * to the cell at that point in the grid (regardless of col/rowspan), such that
3925
3925
  * any column / row could be removed and the new grid constructed
3926
3926
  * @param {node} thead The header/footer element for the table
3927
3927
  * @returns {array} Calculated layout array
@@ -4166,7 +4166,7 @@ function _fnBuildAjax( oSettings, data, fn )
4166
4166
 
4167
4167
  var newData = typeof ajaxData === 'function' ?
4168
4168
  ajaxData( data, oSettings ) : // fn can manipulate data or return
4169
- ajaxData; // an object object or array to merge
4169
+ ajaxData; // an object or array to merge
4170
4170
 
4171
4171
  // If the function returned something, use that alone
4172
4172
  data = typeof ajaxData === 'function' && newData ?
@@ -4365,7 +4365,7 @@ function _fnAjaxUpdateDraw ( settings, json )
4365
4365
  settings._iRecordsTotal = parseInt(recordsTotal, 10);
4366
4366
  settings._iRecordsDisplay = parseInt(recordsFiltered, 10);
4367
4367
 
4368
- for ( var i=0, ien=data.length ; i<ien ; i++ ) {
4368
+ for ( var i=0, iLen=data.length ; i<iLen ; i++ ) {
4369
4369
  _fnAddData( settings, data[i] );
4370
4370
  }
4371
4371
  settings.aiDisplay = settings.aiDisplayMaster.slice();
@@ -4524,7 +4524,7 @@ function _fnFilterCustom( settings )
4524
4524
  var displayRows = settings.aiDisplay;
4525
4525
  var row, rowIdx;
4526
4526
 
4527
- for ( var i=0, ien=filters.length ; i<ien ; i++ ) {
4527
+ for ( var i=0, iLen=filters.length ; i<iLen ; i++ ) {
4528
4528
  var rows = [];
4529
4529
 
4530
4530
  // Loop over each row and see if it should be included
@@ -4592,7 +4592,7 @@ function _fnFilter( searchRows, settings, input, options, column )
4592
4592
  * @param {string} sSearch string to search for
4593
4593
  * @param {bool} bRegex treat as a regular expression or not
4594
4594
  * @param {bool} bSmart perform smart filtering or not
4595
- * @param {bool} bCaseInsensitive Do case insensitive matching or not
4595
+ * @param {bool} bCaseInsensitive Do case-insensitive matching or not
4596
4596
  * @returns {RegExp} constructed object
4597
4597
  * @memberof DataTable#oApi
4598
4598
  */
@@ -5335,7 +5335,7 @@ function _fnScrollDraw ( settings )
5335
5335
  }
5336
5336
 
5337
5337
  // 4. Clean up
5338
- // Figure out if there are scrollbar present - if so then we need a the header and footer to
5338
+ // Figure out if there are scrollbar present - if so then we need the header and footer to
5339
5339
  // provide a bit more space to allow "overflow" scrolling (i.e. past the scrollbar)
5340
5340
  var isScrolling = Math.floor(table.height()) > divBodyEl.clientHeight || divBody.css('overflow-y') == "scroll";
5341
5341
  var paddingSide = 'padding' + (browser.bScrollbarLeft ? 'Left' : 'Right' );
@@ -5433,7 +5433,7 @@ function _fnCalculateColumnWidths ( settings )
5433
5433
  .removeAttr( 'id' );
5434
5434
 
5435
5435
  // Clean up the table body
5436
- tmpTable.append('<tbody>')
5436
+ tmpTable.append('<tbody/>')
5437
5437
  var tr = $('<tr/>').appendTo( tmpTable.find('tbody') );
5438
5438
 
5439
5439
  // Clone the table header and footer - we can't use the header / footer
@@ -5642,7 +5642,7 @@ function _fnGetMaxLenString( settings, colIdx )
5642
5642
  if (! column.maxLenString) {
5643
5643
  var s, max='', maxLen = -1;
5644
5644
 
5645
- for ( var i=0, ien=settings.aiDisplayMaster.length ; i<ien ; i++ ) {
5645
+ for ( var i=0, iLen=settings.aiDisplayMaster.length ; i<iLen ; i++ ) {
5646
5646
  var rowIdx = settings.aiDisplayMaster[i];
5647
5647
  var data = _fnGetRowDisplay(settings, rowIdx)[colIdx];
5648
5648
 
@@ -5764,7 +5764,7 @@ function _fnSortAttachListener(settings, node, selector, column, callback) {
5764
5764
  : [column];
5765
5765
 
5766
5766
  if ( columns.length ) {
5767
- for ( var i=0, ien=columns.length ; i<ien ; i++ ) {
5767
+ for ( var i=0, iLen=columns.length ; i<iLen ; i++ ) {
5768
5768
  var ret = _fnSortAdd( settings, columns[i], i, e.shiftKey );
5769
5769
 
5770
5770
  if (ret !== false) {
@@ -5813,7 +5813,7 @@ function _fnSortDisplay(settings, display) {
5813
5813
  masterMap[master[i]] = i;
5814
5814
  }
5815
5815
 
5816
- // And then cache what would be the indexOf fom the display
5816
+ // And then cache what would be the indexOf from the display
5817
5817
  for (i=0 ; i<display.length ; i++) {
5818
5818
  map[display[i]] = masterMap[display[i]];
5819
5819
  }
@@ -5939,7 +5939,7 @@ function _fnSortFlatten ( settings )
5939
5939
  function _fnSort ( oSettings, col, dir )
5940
5940
  {
5941
5941
  var
5942
- i, ien, iLen,
5942
+ i, iLen,
5943
5943
  aiOrig = [],
5944
5944
  extSort = DataTable.ext.type.order,
5945
5945
  aoData = oSettings.aoData,
@@ -5970,7 +5970,7 @@ function _fnSort ( oSettings, col, dir )
5970
5970
  aSort = _fnSortFlatten( oSettings );
5971
5971
  }
5972
5972
 
5973
- for ( i=0, ien=aSort.length ; i<ien ; i++ ) {
5973
+ for ( i=0, iLen=aSort.length ; i<iLen ; i++ ) {
5974
5974
  sortCol = aSort[i];
5975
5975
 
5976
5976
  // Load the data needed for the sort, for each cell
@@ -5993,7 +5993,7 @@ function _fnSort ( oSettings, col, dir )
5993
5993
 
5994
5994
  /* Do the sort - here we want multi-column sorting based on a given data source (column)
5995
5995
  * and sorting function (from oSort) in a certain direction. It's reasonably complex to
5996
- * follow on it's own, but this is what we want (example two column sorting):
5996
+ * follow on its own, but this is what we want (example two column sorting):
5997
5997
  * fnLocalSorting = function(a,b){
5998
5998
  * var test;
5999
5999
  * test = oSort['string-asc']('data11', 'data12');
@@ -6117,7 +6117,7 @@ function _fnSortAdd ( settings, colIdx, addIndex, shift )
6117
6117
  nextSortIdx = 0; // can't remove sorting completely
6118
6118
  }
6119
6119
 
6120
- if ( nextSortIdx === null ) {
6120
+ if ( nextSortIdx === null || asSorting[ nextSortIdx ] === '' ) {
6121
6121
  sorting.splice( sortIdx, 1 );
6122
6122
  }
6123
6123
  else {
@@ -6167,11 +6167,11 @@ function _fnSortingClasses( settings )
6167
6167
  var sortClass = settings.oClasses.order.position;
6168
6168
  var sort = _fnSortFlatten( settings );
6169
6169
  var features = settings.oFeatures;
6170
- var i, ien, colIdx;
6170
+ var i, iLen, colIdx;
6171
6171
 
6172
6172
  if ( features.bSort && features.bSortClasses ) {
6173
6173
  // Remove old sorting classes
6174
- for ( i=0, ien=oldSort.length ; i<ien ; i++ ) {
6174
+ for ( i=0, iLen=oldSort.length ; i<iLen ; i++ ) {
6175
6175
  colIdx = oldSort[i].src;
6176
6176
 
6177
6177
  // Remove column sorting
@@ -6180,7 +6180,7 @@ function _fnSortingClasses( settings )
6180
6180
  }
6181
6181
 
6182
6182
  // Add new column sorting
6183
- for ( i=0, ien=sort.length ; i<ien ; i++ ) {
6183
+ for ( i=0, iLen=sort.length ; i<iLen ; i++ ) {
6184
6184
  colIdx = sort[i].src;
6185
6185
 
6186
6186
  $( _pluck( settings.aoData, 'anCells', colIdx ) )
@@ -6314,7 +6314,7 @@ function _fnLoadState ( settings, init, callback )
6314
6314
  }
6315
6315
 
6316
6316
  function _fnImplementState ( settings, s, callback) {
6317
- var i, ien;
6317
+ var i, iLen;
6318
6318
  var columns = settings.aoColumns;
6319
6319
  var currentNames = _pluck(settings.aoColumns, 'sName');
6320
6320
 
@@ -6443,7 +6443,7 @@ function _fnImplementState ( settings, s, callback) {
6443
6443
 
6444
6444
  // If the number of columns to restore is different from current, then all bets are off.
6445
6445
  if (set.length === columns.length) {
6446
- for ( i=0, ien=set.length ; i<ien ; i++ ) {
6446
+ for ( i=0, iLen=set.length ; i<iLen ; i++ ) {
6447
6447
  var col = set[i];
6448
6448
 
6449
6449
  // Visibility
@@ -6597,7 +6597,7 @@ function _fnExtend( out, extender, breakRefs )
6597
6597
 
6598
6598
 
6599
6599
  /**
6600
- * Bind an event handers to allow a click or return key to activate the callback.
6600
+ * Bind an event handler to allow a click or return key to activate the callback.
6601
6601
  * This is good for accessibility since a return on the keyboard will have the
6602
6602
  * same effect as a click, if the element has focus.
6603
6603
  * @param {element} n Element to bind the action to
@@ -6786,7 +6786,7 @@ function _fnMacros ( settings, str, entries )
6786
6786
  }
6787
6787
 
6788
6788
  /**
6789
- * Add elements to an array as quickly as possible, but stack stafe.
6789
+ * Add elements to an array as quickly as possible, but stack safe.
6790
6790
  *
6791
6791
  * @param {*} arr Array to add the data to
6792
6792
  * @param {*} data Data array that is to be added
@@ -7062,7 +7062,7 @@ $.extend( _Api.prototype, {
7062
7062
 
7063
7063
  each: function ( fn )
7064
7064
  {
7065
- for ( var i=0, ien=this.length ; i<ien; i++ ) {
7065
+ for ( var i=0, iLen=this.length ; i<iLen; i++ ) {
7066
7066
  fn.call( this, this[i], i, this );
7067
7067
  }
7068
7068
 
@@ -7108,7 +7108,7 @@ $.extend( _Api.prototype, {
7108
7108
  iterator: function ( flatten, type, fn, alwaysNew ) {
7109
7109
  var
7110
7110
  a = [], ret,
7111
- i, ien, j, jen,
7111
+ i, iLen, j, jen,
7112
7112
  context = this.context,
7113
7113
  rows, items, item,
7114
7114
  selector = this.selector;
@@ -7121,7 +7121,7 @@ $.extend( _Api.prototype, {
7121
7121
  flatten = false;
7122
7122
  }
7123
7123
 
7124
- for ( i=0, ien=context.length ; i<ien ; i++ ) {
7124
+ for ( i=0, iLen=context.length ; i<iLen ; i++ ) {
7125
7125
  var apiInst = new _Api( context[i] );
7126
7126
 
7127
7127
  if ( type === 'table' ) {
@@ -7243,18 +7243,18 @@ $.extend( _Api.prototype, {
7243
7243
  } );
7244
7244
 
7245
7245
 
7246
- function _api_scope( scope, fn, struc ) {
7246
+ function _api_scope( scope, fn, struct ) {
7247
7247
  return function () {
7248
7248
  var ret = fn.apply( scope || this, arguments );
7249
7249
 
7250
7250
  // Method extension
7251
- _Api.extend( ret, ret, struc.methodExt );
7251
+ _Api.extend( ret, ret, struct.methodExt );
7252
7252
  return ret;
7253
7253
  };
7254
7254
  }
7255
7255
 
7256
7256
  function _api_find( src, name ) {
7257
- for ( var i=0, ien=src.length ; i<ien ; i++ ) {
7257
+ for ( var i=0, iLen=src.length ; i<iLen ; i++ ) {
7258
7258
  if ( src[i].name === name ) {
7259
7259
  return src[i];
7260
7260
  }
@@ -7272,10 +7272,10 @@ _Api.extend = function ( scope, obj, ext )
7272
7272
  }
7273
7273
 
7274
7274
  var
7275
- i, ien,
7275
+ i, iLen,
7276
7276
  struct;
7277
7277
 
7278
- for ( i=0, ien=ext.length ; i<ien ; i++ ) {
7278
+ for ( i=0, iLen=ext.length ; i<iLen ; i++ ) {
7279
7279
  struct = ext[i];
7280
7280
 
7281
7281
  if (struct.name === '__proto__') {
@@ -7330,12 +7330,12 @@ _Api.register = _api_register = function ( name, val )
7330
7330
  }
7331
7331
 
7332
7332
  var
7333
- i, ien,
7333
+ i, iLen,
7334
7334
  heir = name.split('.'),
7335
7335
  struct = __apiStruct,
7336
7336
  key, method;
7337
7337
 
7338
- for ( i=0, ien=heir.length ; i<ien ; i++ ) {
7338
+ for ( i=0, iLen=heir.length ; i<iLen ; i++ ) {
7339
7339
  method = heir[i].indexOf('()') !== -1;
7340
7340
  key = method ?
7341
7341
  heir[i].replace('()', '') :
@@ -7353,7 +7353,7 @@ _Api.register = _api_register = function ( name, val )
7353
7353
  struct.push( src );
7354
7354
  }
7355
7355
 
7356
- if ( i === ien-1 ) {
7356
+ if ( i === iLen-1 ) {
7357
7357
  src.val = val;
7358
7358
  src.type = typeof val === 'function' ?
7359
7359
  'function' :
@@ -7695,7 +7695,7 @@ _api_register( 'page.info()', function () {
7695
7695
  */
7696
7696
  _api_register( 'page.len()', function ( len ) {
7697
7697
  // Note that we can't call this function 'length()' because `length`
7698
- // is a Javascript property of functions which defines how many arguments
7698
+ // is a JavaScript property of functions which defines how many arguments
7699
7699
  // the function expects.
7700
7700
  if ( len === undefined ) {
7701
7701
  return this.context.length !== 0 ?
@@ -7738,7 +7738,7 @@ var __reload = function ( settings, holdPosition, callback ) {
7738
7738
  _fnClearTable( settings );
7739
7739
 
7740
7740
  var data = _fnAjaxDataSrc( settings, json );
7741
- for ( var i=0, ien=data.length ; i<ien ; i++ ) {
7741
+ for ( var i=0, iLen=data.length ; i<iLen ; i++ ) {
7742
7742
  _fnAddData( settings, data[i] );
7743
7743
  }
7744
7744
 
@@ -7861,7 +7861,7 @@ var _selector_run = function ( type, selector, selectFn, settings, opts )
7861
7861
  {
7862
7862
  var
7863
7863
  out = [], res,
7864
- i, ien,
7864
+ i, iLen,
7865
7865
  selectorType = typeof selector;
7866
7866
 
7867
7867
  // Can't just check for isArray here, as an API or jQuery instance might be
@@ -7870,7 +7870,7 @@ var _selector_run = function ( type, selector, selectFn, settings, opts )
7870
7870
  selector = [ selector ];
7871
7871
  }
7872
7872
 
7873
- for ( i=0, ien=selector.length ; i<ien ; i++ ) {
7873
+ for ( i=0, iLen=selector.length ; i<iLen ; i++ ) {
7874
7874
  res = selectFn( typeof selector[i] === 'string' ? selector[i].trim() : selector[i] );
7875
7875
 
7876
7876
  // Remove empty items
@@ -7886,7 +7886,7 @@ var _selector_run = function ( type, selector, selectFn, settings, opts )
7886
7886
  // selector extensions
7887
7887
  var ext = _ext.selector[ type ];
7888
7888
  if ( ext.length ) {
7889
- for ( i=0, ien=ext.length ; i<ien ; i++ ) {
7889
+ for ( i=0, iLen=ext.length ; i<iLen ; i++ ) {
7890
7890
  out = ext[i]( settings, opts, out );
7891
7891
  }
7892
7892
  }
@@ -7941,7 +7941,7 @@ var _selector_first = function ( old )
7941
7941
  var _selector_row_indexes = function ( settings, opts )
7942
7942
  {
7943
7943
  var
7944
- i, ien, tmp, a=[],
7944
+ i, iLen, tmp, a=[],
7945
7945
  displayFiltered = settings.aiDisplay,
7946
7946
  displayMaster = settings.aiDisplayMaster;
7947
7947
 
@@ -7964,7 +7964,7 @@ var _selector_row_indexes = function ( settings, opts )
7964
7964
  // Current page implies that order=current and filter=applied, since it is
7965
7965
  // fairly senseless otherwise, regardless of what order and search actually
7966
7966
  // are
7967
- for ( i=settings._iDisplayStart, ien=settings.fnDisplayEnd() ; i<ien ; i++ ) {
7967
+ for ( i=settings._iDisplayStart, iLen=settings.fnDisplayEnd() ; i<iLen ; i++ ) {
7968
7968
  a.push( displayFiltered[i] );
7969
7969
  }
7970
7970
  }
@@ -7979,7 +7979,7 @@ var _selector_row_indexes = function ( settings, opts )
7979
7979
  // O(n+m) solution by creating a hash map
7980
7980
  var displayFilteredMap = {};
7981
7981
 
7982
- for ( i=0, ien=displayFiltered.length ; i<ien ; i++ ) {
7982
+ for ( i=0, iLen=displayFiltered.length ; i<iLen ; i++ ) {
7983
7983
  displayFilteredMap[displayFiltered[i]] = null;
7984
7984
  }
7985
7985
 
@@ -7991,7 +7991,7 @@ var _selector_row_indexes = function ( settings, opts )
7991
7991
  }
7992
7992
  }
7993
7993
  else if ( order == 'index' || order == 'original' ) {
7994
- for ( i=0, ien=settings.aoData.length ; i<ien ; i++ ) {
7994
+ for ( i=0, iLen=settings.aoData.length ; i<iLen ; i++ ) {
7995
7995
  if (! settings.aoData[i]) {
7996
7996
  continue;
7997
7997
  }
@@ -8208,7 +8208,7 @@ _api_registerPlural( 'rows().ids()', 'row().id()', function ( hash ) {
8208
8208
  var context = this.context;
8209
8209
 
8210
8210
  // `iterator` will drop undefined values, but in this case we want them
8211
- for ( var i=0, ien=context.length ; i<ien ; i++ ) {
8211
+ for ( var i=0, iLen=context.length ; i<iLen ; i++ ) {
8212
8212
  for ( var j=0, jen=this[i].length ; j<jen ; j++ ) {
8213
8213
  var id = context[i].rowIdFn( context[i].aoData[ this[i][j] ]._aData );
8214
8214
  a.push( (hash === true ? '#' : '' )+ id );
@@ -8252,10 +8252,10 @@ _api_registerPlural( 'rows().remove()', 'row().remove()', function () {
8252
8252
 
8253
8253
  _api_register( 'rows.add()', function ( rows ) {
8254
8254
  var newRows = this.iterator( 'table', function ( settings ) {
8255
- var row, i, ien;
8255
+ var row, i, iLen;
8256
8256
  var out = [];
8257
8257
 
8258
- for ( i=0, ien=rows.length ; i<ien ; i++ ) {
8258
+ for ( i=0, iLen=rows.length ; i<iLen ; i++ ) {
8259
8259
  row = rows[i];
8260
8260
 
8261
8261
  if ( row.nodeName && row.nodeName.toUpperCase() === 'TR' ) {
@@ -8402,7 +8402,7 @@ var __details_add = function ( ctx, row, data, klass )
8402
8402
  var addRow = function ( r, k ) {
8403
8403
  // Recursion to allow for arrays of jQuery objects
8404
8404
  if ( Array.isArray( r ) || r instanceof $ ) {
8405
- for ( var i=0, ien=r.length ; i<ien ; i++ ) {
8405
+ for ( var i=0, iLen=r.length ; i<iLen ; i++ ) {
8406
8406
  addRow( r[i], k );
8407
8407
  }
8408
8408
  return;
@@ -8422,7 +8422,7 @@ var __details_add = function ( ctx, row, data, klass )
8422
8422
 
8423
8423
  $('td', created)
8424
8424
  .addClass( k )
8425
- .html( r )[0].colSpan = _fnVisbleColumns( ctx );
8425
+ .html( r )[0].colSpan = _fnVisibleColumns( ctx );
8426
8426
 
8427
8427
  rows.push( created[0] );
8428
8428
  }
@@ -8460,7 +8460,7 @@ var __details_remove = function ( api, idx )
8460
8460
  var row = ctx[0].aoData[ idx !== undefined ? idx : api[0] ];
8461
8461
 
8462
8462
  if ( row && row._details ) {
8463
- row._details.remove();
8463
+ row._details.detach();
8464
8464
 
8465
8465
  row._detailsShow = undefined;
8466
8466
  row._details = undefined;
@@ -8534,9 +8534,9 @@ var __details_events = function ( settings )
8534
8534
 
8535
8535
  // Update the colspan for the details rows (note, only if it already has
8536
8536
  // a colspan)
8537
- var row, visible = _fnVisbleColumns( ctx );
8537
+ var row, visible = _fnVisibleColumns( ctx );
8538
8538
 
8539
- for ( var i=0, ien=data.length ; i<ien ; i++ ) {
8539
+ for ( var i=0, iLen=data.length ; i<iLen ; i++ ) {
8540
8540
  row = data[i];
8541
8541
 
8542
8542
  if ( row && row._details ) {
@@ -8557,7 +8557,7 @@ var __details_events = function ( settings )
8557
8557
  return;
8558
8558
  }
8559
8559
 
8560
- for ( var i=0, ien=data.length ; i<ien ; i++ ) {
8560
+ for ( var i=0, iLen=data.length ; i<iLen ; i++ ) {
8561
8561
  if ( data[i] && data[i]._details ) {
8562
8562
  __details_remove( api, i );
8563
8563
  }
@@ -8661,7 +8661,7 @@ var __re_column_selector = /^([^:]+)?:(name|title|visIdx|visible)$/;
8661
8661
  // iterator callback in columns().data()
8662
8662
  var __columnData = function ( settings, column, r1, r2, rows, type ) {
8663
8663
  var a = [];
8664
- for ( var row=0, ien=rows.length ; row<ien ; row++ ) {
8664
+ for ( var row=0, iLen=rows.length ; row<iLen ; row++ ) {
8665
8665
  a.push( _fnGetCellData( settings, rows[row], column, type ) );
8666
8666
  }
8667
8667
  return a;
@@ -8861,7 +8861,7 @@ var __setColumnVis = function ( settings, column, vis ) {
8861
8861
  cols = settings.aoColumns,
8862
8862
  col = cols[ column ],
8863
8863
  data = settings.aoData,
8864
- cells, i, ien, tr;
8864
+ cells, i, iLen, tr;
8865
8865
 
8866
8866
  // Get
8867
8867
  if ( vis === undefined ) {
@@ -8879,7 +8879,7 @@ var __setColumnVis = function ( settings, column, vis ) {
8879
8879
  // Need to decide if we should use appendChild or insertBefore
8880
8880
  var insertBefore = _pluck(cols, 'bVisible').indexOf(true, column+1);
8881
8881
 
8882
- for ( i=0, ien=data.length ; i<ien ; i++ ) {
8882
+ for ( i=0, iLen=data.length ; i<iLen ; i++ ) {
8883
8883
  if (data[i]) {
8884
8884
  tr = data[i].nTr;
8885
8885
  cells = data[i].anCells;
@@ -9045,7 +9045,7 @@ _api_registerPlural( 'columns().visible()', 'column().visible()', function ( vis
9045
9045
  // Update colspan for no records display. Child rows and extensions will use their own
9046
9046
  // listeners to do this - only need to update the empty table item here
9047
9047
  if ( ! settings.aiDisplay.length ) {
9048
- $(settings.nTBody).find('td[colspan]').attr('colspan', _fnVisbleColumns(settings));
9048
+ $(settings.nTBody).find('td[colspan]').attr('colspan', _fnVisibleColumns(settings));
9049
9049
  }
9050
9050
 
9051
9051
  _fnSaveState( settings );
@@ -9131,7 +9131,7 @@ var __cell_selector = function ( settings, selector, opts )
9131
9131
  var allCells = $(_flatten( [], cells ));
9132
9132
  var row;
9133
9133
  var columns = settings.aoColumns.length;
9134
- var a, i, ien, j, o, host;
9134
+ var a, i, iLen, j, o, host;
9135
9135
 
9136
9136
  var run = function ( s ) {
9137
9137
  var fnSelector = typeof s === 'function';
@@ -9140,7 +9140,7 @@ var __cell_selector = function ( settings, selector, opts )
9140
9140
  // All cells and function selectors
9141
9141
  a = [];
9142
9142
 
9143
- for ( i=0, ien=rows.length ; i<ien ; i++ ) {
9143
+ for ( i=0, iLen=rows.length ; i<iLen ; i++ ) {
9144
9144
  row = rows[i];
9145
9145
 
9146
9146
  for ( j=0 ; j<columns ; j++ ) {
@@ -9245,12 +9245,12 @@ _api_register( 'cells()', function ( rowSelector, columnSelector, opts ) {
9245
9245
  // Row + column selector
9246
9246
  var columns = this.columns( columnSelector, internalOpts );
9247
9247
  var rows = this.rows( rowSelector, internalOpts );
9248
- var i, ien, j, jen;
9248
+ var i, iLen, j, jen;
9249
9249
 
9250
9250
  var cellsNoOpts = this.iterator( 'table', function ( settings, idx ) {
9251
9251
  var a = [];
9252
9252
 
9253
- for ( i=0, ien=rows[idx].length ; i<ien ; i++ ) {
9253
+ for ( i=0, iLen=rows[idx].length ; i<iLen ; i++ ) {
9254
9254
  for ( j=0, jen=columns[idx].length ; j<jen ; j++ ) {
9255
9255
  a.push( {
9256
9256
  row: rows[idx][i],
@@ -9462,7 +9462,7 @@ _api_register( [
9462
9462
  return this.iterator( 'column', function ( settings, idx ) {
9463
9463
  var sort = _fnSortFlatten( settings );
9464
9464
 
9465
- for ( var i=0, ien=sort.length ; i<ien ; i++ ) {
9465
+ for ( var i=0, iLen=sort.length ; i<iLen ; i++ ) {
9466
9466
  if ( sort[i].col === idx ) {
9467
9467
  return sort[i].dir;
9468
9468
  }
@@ -10153,9 +10153,11 @@ _api_register( 'i18n()', function ( token, def, plural ) {
10153
10153
  }
10154
10154
 
10155
10155
  if ( $.isPlainObject( resolved ) ) {
10156
- resolved = plural !== undefined && resolved[ plural ] !== undefined ?
10157
- resolved[ plural ] :
10158
- resolved._;
10156
+ resolved = plural !== undefined && resolved[ plural ] !== undefined
10157
+ ? resolved[ plural ]
10158
+ : plural === false
10159
+ ? resolved
10160
+ : resolved._;
10159
10161
  }
10160
10162
 
10161
10163
  return typeof resolved === 'string'
@@ -10184,7 +10186,7 @@ function cleanHeader(node, className) {
10184
10186
  * @type string
10185
10187
  * @default Version number
10186
10188
  */
10187
- DataTable.version = "2.3.2";
10189
+ DataTable.version = "2.3.3";
10188
10190
 
10189
10191
  /**
10190
10192
  * Private data store, containing all of the settings objects that are
@@ -10217,7 +10219,7 @@ DataTable.models = {};
10217
10219
  */
10218
10220
  DataTable.models.oSearch = {
10219
10221
  /**
10220
- * Flag to indicate if the filtering should be case insensitive or not
10222
+ * Flag to whether or not the filtering should be case-insensitive
10221
10223
  */
10222
10224
  "caseInsensitive": true,
10223
10225
 
@@ -10502,7 +10504,7 @@ DataTable.models.oColumn = {
10502
10504
  * from v1.10 onwards the primary interface is camel case. In order to avoid
10503
10505
  * breaking backwards compatibility utterly with this change, the Hungarian
10504
10506
  * version is still, internally the primary interface, but is is not documented
10505
- * - hence the @name tags in each doc comment. This allows a Javascript function
10507
+ * - hence the @name tags in each doc comment. This allows a JavaScript function
10506
10508
  * to create a map from Hungarian notation to camel case (going the other direction
10507
10509
  * would require each property to be listed, which would add around 3K to the size
10508
10510
  * of DataTables, while this method is about a 0.5K hit).
@@ -10521,7 +10523,7 @@ DataTable.defaults = {
10521
10523
  /**
10522
10524
  * An array of data to use for the table, passed in at initialisation which
10523
10525
  * will be used in preference to any data which is already in the DOM. This is
10524
- * particularly useful for constructing tables purely in Javascript, for
10526
+ * particularly useful for constructing tables purely in JavaScript, for
10525
10527
  * example with a custom Ajax call.
10526
10528
  */
10527
10529
  "aaData": null,
@@ -10588,7 +10590,7 @@ DataTable.defaults = {
10588
10590
  * * `dataSrc` - By default DataTables will look for the property `data` (or
10589
10591
  * `aaData` for compatibility with DataTables 1.9-) when obtaining data
10590
10592
  * from an Ajax source or for server-side processing - this parameter
10591
- * allows that property to be changed. You can use Javascript dotted
10593
+ * allows that property to be changed. You can use JavaScript dotted
10592
10594
  * object notation to get a data source for multiple levels of nesting, or
10593
10595
  * it my be used as a function. As a function it takes a single parameter,
10594
10596
  * the JSON returned from the server, which can be manipulated as
@@ -10712,13 +10714,13 @@ DataTable.defaults = {
10712
10714
  "bFilter": true,
10713
10715
 
10714
10716
  /**
10715
- * Used only for compatiblity with DT1
10717
+ * Used only for compatibility with DT1
10716
10718
  * @deprecated
10717
10719
  */
10718
10720
  "bInfo": true,
10719
10721
 
10720
10722
  /**
10721
- * Used only for compatiblity with DT1
10723
+ * Used only for compatibility with DT1
10722
10724
  * @deprecated
10723
10725
  */
10724
10726
  "bLengthChange": true,
@@ -10809,7 +10811,7 @@ DataTable.defaults = {
10809
10811
  * Enable or disable state saving. When enabled HTML5 `localStorage` will be
10810
10812
  * used to save table display information such as pagination information,
10811
10813
  * display length, filtering and sorting. As such when the end user reloads
10812
- * the page the display display will match what thy had previously set up.
10814
+ * the page the display will match what thy had previously set up.
10813
10815
  */
10814
10816
  "bStateSave": false,
10815
10817
 
@@ -11166,7 +11168,7 @@ DataTable.defaults = {
11166
11168
  /**
11167
11169
  * When using Ajax sourced data and during the first draw when DataTables is
11168
11170
  * gathering the data, this message is shown in an empty row in the table to
11169
- * indicate to the end user the the data is being loaded. Note that this
11171
+ * indicate to the end user the data is being loaded. Note that this
11170
11172
  * parameter is not used when loading data by server-side processing, just
11171
11173
  * Ajax sourced data with client-side processing.
11172
11174
  */
@@ -11427,8 +11429,8 @@ DataTable.defaults.column = {
11427
11429
  * * `string` - read an object property from the data source. There are
11428
11430
  * three 'special' options that can be used in the string to alter how
11429
11431
  * DataTables reads the data from the source object:
11430
- * * `.` - Dotted Javascript notation. Just as you use a `.` in
11431
- * Javascript to read from nested objects, so to can the options
11432
+ * * `.` - Dotted JavaScript notation. Just as you use a `.` in
11433
+ * JavaScript to read from nested objects, so to can the options
11432
11434
  * specified in `data`. For example: `browser.version` or
11433
11435
  * `browser.name`. If your object parameter name contains a period, use
11434
11436
  * `\\` to escape it - i.e. `first\\.name`.
@@ -11486,7 +11488,7 @@ DataTable.defaults.column = {
11486
11488
  * This property is the rendering partner to `data` and it is suggested that
11487
11489
  * when you want to manipulate data for display (including filtering,
11488
11490
  * sorting etc) without altering the underlying data for the table, use this
11489
- * property. `render` can be considered to be the the read only companion to
11491
+ * property. `render` can be considered to be the read only companion to
11490
11492
  * `data` which is read / write (then as such more complex). Like `data`
11491
11493
  * this option can be given in a number of different ways to effect its
11492
11494
  * behaviour:
@@ -11496,8 +11498,8 @@ DataTable.defaults.column = {
11496
11498
  * * `string` - read an object property from the data source. There are
11497
11499
  * three 'special' options that can be used in the string to alter how
11498
11500
  * DataTables reads the data from the source object:
11499
- * * `.` - Dotted Javascript notation. Just as you use a `.` in
11500
- * Javascript to read from nested objects, so to can the options
11501
+ * * `.` - Dotted JavaScript notation. Just as you use a `.` in
11502
+ * JavaScript to read from nested objects, so to can the options
11501
11503
  * specified in `data`. For example: `browser.version` or
11502
11504
  * `browser.name`. If your object parameter name contains a period, use
11503
11505
  * `\\` to escape it - i.e. `first\\.name`.
@@ -11600,7 +11602,7 @@ DataTable.defaults.column = {
11600
11602
  * The type allows you to specify how the data for this column will be
11601
11603
  * ordered. Four types (string, numeric, date and html (which will strip
11602
11604
  * HTML tags before ordering)) are currently available. Note that only date
11603
- * formats understood by Javascript's Date() object will be accepted as type
11605
+ * formats understood by JavaScript's Date() object will be accepted as type
11604
11606
  * date. For example: "Mar 26, 2008 5:03 PM". May take the values: 'string',
11605
11607
  * 'numeric', 'date' or 'html' (by default). Further types can be adding
11606
11608
  * through plug-ins.
@@ -11652,7 +11654,7 @@ DataTable.models.oSettings = {
11652
11654
  /**
11653
11655
  * Delay the creation of TR and TD elements until they are actually
11654
11656
  * needed by a driven page draw. This can give a significant speed
11655
- * increase for Ajax source and Javascript source data, but makes no
11657
+ * increase for Ajax source and JavaScript source data, but makes no
11656
11658
  * difference at all for DOM and server-side processing tables.
11657
11659
  * Note that this parameter will be set by the initialisation routine. To
11658
11660
  * set a default use {@link DataTable.defaults}.
@@ -11669,13 +11671,13 @@ DataTable.models.oSettings = {
11669
11671
  "bFilter": null,
11670
11672
 
11671
11673
  /**
11672
- * Used only for compatiblity with DT1
11674
+ * Used only for compatibility with DT1
11673
11675
  * @deprecated
11674
11676
  */
11675
11677
  "bInfo": true,
11676
11678
 
11677
11679
  /**
11678
- * Used only for compatiblity with DT1
11680
+ * Used only for compatibility with DT1
11679
11681
  * @deprecated
11680
11682
  */
11681
11683
  "bLengthChange": true,
@@ -12546,7 +12548,7 @@ function __mlHelper (localeString) {
12546
12548
  },
12547
12549
  order: {
12548
12550
  pre: function (d) {
12549
- // The renderer gives us Moment, Luxon or Date obects for the sorting, all of which have a
12551
+ // The renderer gives us Moment, Luxon or Date objects for the sorting, all of which have a
12550
12552
  // `valueOf` which gives milliseconds epoch
12551
12553
  return d.valueOf();
12552
12554
  }
@@ -13112,7 +13114,7 @@ var __numericReplace = function ( d, decimalPlace, re1, re2 ) {
13112
13114
 
13113
13115
  // If a decimal place other than `.` is used, it needs to be given to the
13114
13116
  // function so we can detect it and replace with a `.` which is the only
13115
- // decimal place Javascript recognises - it is not locale aware.
13117
+ // decimal place JavaScript recognises - it is not locale aware.
13116
13118
  if ( decimalPlace ) {
13117
13119
  d = _numToDecimal( d, decimalPlace );
13118
13120
  }
@@ -13170,7 +13172,7 @@ $.extend( true, DataTable.ext.renderer, {
13170
13172
  // on destroy, while the `dt` namespaced event is the one we are
13171
13173
  // listening for
13172
13174
  $(settings.nTable).on( 'order.dt.DT column-visibility.dt.DT', function ( e, ctx, column ) {
13173
- if ( settings !== ctx ) { // need to check this this is the host
13175
+ if ( settings !== ctx ) { // need to check if this is the host
13174
13176
  return; // table, not a nested one
13175
13177
  }
13176
13178