@ntlab/ntjs-assets 2.93.0 → 2.95.0

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.
Files changed (24) hide show
  1. package/assets/js/DataTables/DataTables/css/dataTables.bootstrap5.css +7 -8
  2. package/assets/js/DataTables/DataTables/css/dataTables.bootstrap5.min.css +2 -2
  3. package/assets/js/DataTables/DataTables/css/dataTables.dataTables.css +6 -3
  4. package/assets/js/DataTables/DataTables/css/dataTables.dataTables.min.css +1 -1
  5. package/assets/js/DataTables/DataTables/js/dataTables.js +119 -117
  6. package/assets/js/DataTables/DataTables/js/dataTables.min.js +2 -2
  7. package/assets/js/DataTables/Extensions/Responsive/js/dataTables.responsive.js +11 -3
  8. package/assets/js/DataTables/Extensions/Responsive/js/dataTables.responsive.min.js +2 -2
  9. package/assets/js/DataTables/Extensions/SearchPanes/css/searchPanes.bootstrap5.css +10 -3
  10. package/assets/js/DataTables/Extensions/SearchPanes/css/searchPanes.bootstrap5.min.css +1 -1
  11. package/assets/js/DataTables/Extensions/SearchPanes/css/searchPanes.dataTables.css +10 -3
  12. package/assets/js/DataTables/Extensions/SearchPanes/css/searchPanes.dataTables.min.css +1 -1
  13. package/assets/js/DataTables/Extensions/SearchPanes/js/dataTables.searchPanes.js +11 -4
  14. package/assets/js/DataTables/Extensions/SearchPanes/js/dataTables.searchPanes.min.js +2 -2
  15. package/assets/js/DataTables/Extensions/Select/css/select.bootstrap5.css +5 -0
  16. package/assets/js/DataTables/Extensions/Select/css/select.bootstrap5.min.css +1 -1
  17. package/assets/js/DataTables/Extensions/Select/css/select.dataTables.css +5 -0
  18. package/assets/js/DataTables/Extensions/Select/css/select.dataTables.min.css +1 -1
  19. package/assets/js/DataTables/Extensions/Select/js/dataTables.select.js +49 -46
  20. package/assets/js/DataTables/Extensions/Select/js/dataTables.select.min.js +2 -2
  21. package/assets/js/DataTables/Extensions/Select/js/select.bootstrap5.js +1 -1
  22. package/assets/js/DataTables/Extensions/Select/js/select.bootstrap5.min.js +1 -1
  23. package/assets/js/cdn.json +4 -4
  24. package/package.json +1 -1
@@ -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
 
@@ -731,7 +731,7 @@
731
731
  *
732
732
  * The extension options for ordering of data available here is complimentary
733
733
  * to the default type based ordering that DataTables typically uses. It
734
- * allows much greater control over the the data that is being used to
734
+ * allows much greater control over the data that is being used to
735
735
  * order a column, but is necessarily therefore more complex.
736
736
  *
737
737
  * This type of ordering is useful if you want to do ordering based on data
@@ -890,7 +890,7 @@
890
890
  * `{type}-asc` and `{type}-desc` together. It is generally recommended
891
891
  * that only `{type}-pre` is used, as this provides the optimal
892
892
  * implementation in terms of speed, although the others are provided
893
- * for compatibility with existing Javascript sort functions.
893
+ * for compatibility with existing JavaScript sort functions.
894
894
  *
895
895
  * `{type}-pre`: Functions defined take a single parameter:
896
896
  *
@@ -900,7 +900,7 @@
900
900
  *
901
901
  * * `{*}` Data to be sorted upon
902
902
  *
903
- * `{type}-asc` and `{type}-desc`: Functions are typical Javascript sort
903
+ * `{type}-asc` and `{type}-desc`: Functions are typical JavaScript sort
904
904
  * functions, taking two parameters:
905
905
  *
906
906
  * 1. `{*}` Data to compare to the second parameter
@@ -1124,7 +1124,7 @@
1124
1124
  };
1125
1125
 
1126
1126
  // Convert from a formatted number with characters other than `.` as the
1127
- // decimal place, to a Javascript number
1127
+ // decimal place, to a JavaScript number
1128
1128
  var _numToDecimal = function ( num, decimalPoint ) {
1129
1129
  // Cache created regular expressions for speed as this function is called often
1130
1130
  if ( ! _re_dic[ decimalPoint ] ) {
@@ -1190,19 +1190,19 @@
1190
1190
 
1191
1191
  var _pluck = function ( a, prop, prop2 ) {
1192
1192
  var out = [];
1193
- var i=0, ien=a.length;
1193
+ var i=0, iLen=a.length;
1194
1194
 
1195
1195
  // Could have the test in the loop for slightly smaller code, but speed
1196
1196
  // is essential here
1197
1197
  if ( prop2 !== undefined ) {
1198
- for ( ; i<ien ; i++ ) {
1198
+ for ( ; i<iLen ; i++ ) {
1199
1199
  if ( a[i] && a[i][ prop ] ) {
1200
1200
  out.push( a[i][ prop ][ prop2 ] );
1201
1201
  }
1202
1202
  }
1203
1203
  }
1204
1204
  else {
1205
- for ( ; i<ien ; i++ ) {
1205
+ for ( ; i<iLen ; i++ ) {
1206
1206
  if ( a[i] ) {
1207
1207
  out.push( a[i][ prop ] );
1208
1208
  }
@@ -1218,19 +1218,19 @@
1218
1218
  var _pluck_order = function ( a, order, prop, prop2 )
1219
1219
  {
1220
1220
  var out = [];
1221
- var i=0, ien=order.length;
1221
+ var i=0, iLen=order.length;
1222
1222
 
1223
1223
  // Could have the test in the loop for slightly smaller code, but speed
1224
1224
  // is essential here
1225
1225
  if ( prop2 !== undefined ) {
1226
- for ( ; i<ien ; i++ ) {
1226
+ for ( ; i<iLen ; i++ ) {
1227
1227
  if ( a[ order[i] ] && a[ order[i] ][ prop ] ) {
1228
1228
  out.push( a[ order[i] ][ prop ][ prop2 ] );
1229
1229
  }
1230
1230
  }
1231
1231
  }
1232
1232
  else {
1233
- for ( ; i<ien ; i++ ) {
1233
+ for ( ; i<iLen ; i++ ) {
1234
1234
  if ( a[ order[i] ] ) {
1235
1235
  out.push( a[ order[i] ][ prop ] );
1236
1236
  }
@@ -1267,7 +1267,7 @@
1267
1267
  {
1268
1268
  var out = [];
1269
1269
 
1270
- for ( var i=0, ien=a.length ; i<ien ; i++ ) {
1270
+ for ( var i=0, iLen=a.length ; i<iLen ; i++ ) {
1271
1271
  if ( a[i] ) { // careful - will remove all falsy values!
1272
1272
  out.push( a[i] );
1273
1273
  }
@@ -1353,7 +1353,7 @@
1353
1353
  var sorted = src.slice().sort();
1354
1354
  var last = sorted[0];
1355
1355
 
1356
- for ( var i=1, ien=sorted.length ; i<ien ; i++ ) {
1356
+ for ( var i=1, iLen=sorted.length ; i<iLen ; i++ ) {
1357
1357
  if ( sorted[i] === last ) {
1358
1358
  return false;
1359
1359
  }
@@ -1389,10 +1389,10 @@
1389
1389
  var
1390
1390
  out = [],
1391
1391
  val,
1392
- i, ien=src.length,
1392
+ i, iLen=src.length,
1393
1393
  j, k=0;
1394
1394
 
1395
- again: for ( i=0 ; i<ien ; i++ ) {
1395
+ again: for ( i=0 ; i<iLen ; i++ ) {
1396
1396
  val = src[i];
1397
1397
 
1398
1398
  for ( j=0 ; j<k ; j++ ) {
@@ -1926,7 +1926,7 @@
1926
1926
  var searchCols = init.aoSearchCols;
1927
1927
 
1928
1928
  if ( searchCols ) {
1929
- for ( var i=0, ien=searchCols.length ; i<ien ; i++ ) {
1929
+ for ( var i=0, iLen=searchCols.length ; i<iLen ; i++ ) {
1930
1930
  if ( searchCols[i] ) {
1931
1931
  _fnCamelToHungarian( DataTable.models.oSearch, searchCols[i] );
1932
1932
  }
@@ -2079,7 +2079,7 @@
2079
2079
  oCol._sManualType = oOptions.sType;
2080
2080
  }
2081
2081
 
2082
- // `class` is a reserved word in Javascript, so we need to provide
2082
+ // `class` is a reserved word in JavaScript, so we need to provide
2083
2083
  // the ability to use a valid name for the camel case input
2084
2084
  if ( oOptions.className && ! oOptions.sClass )
2085
2085
  {
@@ -2236,14 +2236,14 @@
2236
2236
  * @returns {int} i the number of visible columns
2237
2237
  * @memberof DataTable#oApi
2238
2238
  */
2239
- function _fnVisbleColumns( settings )
2239
+ function _fnVisibleColumns( settings )
2240
2240
  {
2241
2241
  var layout = settings.aoHeader;
2242
2242
  var columns = settings.aoColumns;
2243
2243
  var vis = 0;
2244
2244
 
2245
2245
  if ( layout.length ) {
2246
- for ( var i=0, ien=layout[0].length ; i<ien ; i++ ) {
2246
+ for ( var i=0, iLen=layout[0].length ; i<iLen ; i++ ) {
2247
2247
  if ( columns[i].bVisible && $(layout[0][i].cell).css('display') !== 'none' ) {
2248
2248
  vis++;
2249
2249
  }
@@ -2278,7 +2278,7 @@
2278
2278
  /**
2279
2279
  * Allow the result from a type detection function to be `true` while
2280
2280
  * translating that into a string. Old type detection functions will
2281
- * return the type name if it passes. An obect store would be better,
2281
+ * return the type name if it passes. An object store would be better,
2282
2282
  * but not backwards compatible.
2283
2283
  *
2284
2284
  * @param {*} typeDetect Object or function for type detection
@@ -2301,11 +2301,11 @@
2301
2301
  var columns = settings.aoColumns;
2302
2302
  var data = settings.aoData;
2303
2303
  var types = DataTable.ext.type.detect;
2304
- var i, ien, j, jen, k, ken;
2304
+ var i, iLen, j, jen, k, ken;
2305
2305
  var col, detectedType, cache;
2306
2306
 
2307
2307
  // For each column, spin over the data type detection functions, seeing if one matches
2308
- for ( i=0, ien=columns.length ; i<ien ; i++ ) {
2308
+ for ( i=0, iLen=columns.length ; i<iLen ; i++ ) {
2309
2309
  col = columns[i];
2310
2310
  cache = [];
2311
2311
 
@@ -2575,7 +2575,7 @@
2575
2575
  var unit;
2576
2576
  var columns = settings.aoColumns;
2577
2577
 
2578
- for ( var i=0, ien=targets.length ; i<ien ; i++ ) {
2578
+ for ( var i=0, iLen=targets.length ; i<iLen ; i++ ) {
2579
2579
  var column = columns[ targets[i] ];
2580
2580
  var definedWidth = original ?
2581
2581
  column.sWidthOrig :
@@ -2621,7 +2621,7 @@
2621
2621
  }
2622
2622
  /**
2623
2623
  * Add a data array to the table, creating DOM node etc. This is the parallel to
2624
- * _fnGatherData, but for adding rows from a Javascript source, rather than a
2624
+ * _fnGatherData, but for adding rows from a JavaScript source, rather than a
2625
2625
  * DOM source.
2626
2626
  * @param {object} settings dataTables settings object
2627
2627
  * @param {array} data data array to be added
@@ -2761,10 +2761,10 @@
2761
2761
  }
2762
2762
 
2763
2763
  if ( type === 'filter' ) {
2764
- var fomatters = DataTable.ext.type.search;
2764
+ var formatters = DataTable.ext.type.search;
2765
2765
 
2766
- if ( fomatters[ col.sType ] ) {
2767
- cellData = fomatters[ col.sType ]( cellData );
2766
+ if ( formatters[ col.sType ] ) {
2767
+ cellData = formatters[ col.sType ]( cellData );
2768
2768
  }
2769
2769
  }
2770
2770
 
@@ -2894,7 +2894,7 @@
2894
2894
  function _fnInvalidate( settings, rowIdx, src, colIdx )
2895
2895
  {
2896
2896
  var row = settings.aoData[ rowIdx ];
2897
- var i, ien;
2897
+ var i, iLen;
2898
2898
 
2899
2899
  // Remove the cached data for the row
2900
2900
  row._aSortData = null;
@@ -2919,7 +2919,7 @@
2919
2919
  _fnWriteCell(cells[colIdx], display[colIdx]);
2920
2920
  }
2921
2921
  else {
2922
- for ( i=0, ien=cells.length ; i<ien ; i++ ) {
2922
+ for ( i=0, iLen=cells.length ; i<iLen ; i++ ) {
2923
2923
  _fnWriteCell(cells[i], display[i]);
2924
2924
  }
2925
2925
  }
@@ -2937,7 +2937,7 @@
2937
2937
  cols[ colIdx ].maxLenString = null;
2938
2938
  }
2939
2939
  else {
2940
- for ( i=0, ien=cols.length ; i<ien ; i++ ) {
2940
+ for ( i=0, iLen=cols.length ; i<iLen ; i++ ) {
2941
2941
  cols[i].sType = null;
2942
2942
  cols[i].maxLenString = null;
2943
2943
  }
@@ -3236,7 +3236,7 @@
3236
3236
  {
3237
3237
  var classes = settings.oClasses;
3238
3238
  var columns = settings.aoColumns;
3239
- var i, ien, row;
3239
+ var i, iLen, row;
3240
3240
  var target = side === 'header'
3241
3241
  ? settings.nTHead
3242
3242
  : settings.nTFoot;
@@ -3264,7 +3264,7 @@
3264
3264
  cellCount += this.colSpan;
3265
3265
  });
3266
3266
 
3267
- for ( i=cellCount, ien=columns.length ; i<ien ; i++ ) {
3267
+ for ( i=cellCount, iLen=columns.length ; i<iLen ; i++ ) {
3268
3268
  $('<th/>')
3269
3269
  .html( columns[i][titleProp] || '' )
3270
3270
  .appendTo( row );
@@ -3608,7 +3608,7 @@
3608
3608
 
3609
3609
  return $( '<tr/>' )
3610
3610
  .append( $('<td />', {
3611
- 'colSpan': _fnVisbleColumns( settings ),
3611
+ 'colSpan': _fnVisibleColumns( settings ),
3612
3612
  'class': settings.oClasses.empty.row
3613
3613
  } ).html( zero ) )[0];
3614
3614
  }
@@ -3792,7 +3792,7 @@
3792
3792
 
3793
3793
  var line = row[ item ].contents;
3794
3794
 
3795
- for ( var i=0, ien=line.length ; i<ien ; i++ ) {
3795
+ for ( var i=0, iLen=line.length ; i<iLen ; i++ ) {
3796
3796
  if ( ! line[i] ) {
3797
3797
  continue;
3798
3798
  }
@@ -3956,7 +3956,7 @@
3956
3956
  /**
3957
3957
  * Use the DOM source to create up an array of header cells. The idea here is to
3958
3958
  * create a layout grid (array) of rows x columns, which contains a reference
3959
- * to the cell that that point in the grid (regardless of col/rowspan), such that
3959
+ * to the cell at that point in the grid (regardless of col/rowspan), such that
3960
3960
  * any column / row could be removed and the new grid constructed
3961
3961
  * @param {node} thead The header/footer element for the table
3962
3962
  * @returns {array} Calculated layout array
@@ -4201,7 +4201,7 @@
4201
4201
 
4202
4202
  var newData = typeof ajaxData === 'function' ?
4203
4203
  ajaxData( data, oSettings ) : // fn can manipulate data or return
4204
- ajaxData; // an object object or array to merge
4204
+ ajaxData; // an object or array to merge
4205
4205
 
4206
4206
  // If the function returned something, use that alone
4207
4207
  data = typeof ajaxData === 'function' && newData ?
@@ -4400,7 +4400,7 @@
4400
4400
  settings._iRecordsTotal = parseInt(recordsTotal, 10);
4401
4401
  settings._iRecordsDisplay = parseInt(recordsFiltered, 10);
4402
4402
 
4403
- for ( var i=0, ien=data.length ; i<ien ; i++ ) {
4403
+ for ( var i=0, iLen=data.length ; i<iLen ; i++ ) {
4404
4404
  _fnAddData( settings, data[i] );
4405
4405
  }
4406
4406
  settings.aiDisplay = settings.aiDisplayMaster.slice();
@@ -4559,7 +4559,7 @@
4559
4559
  var displayRows = settings.aiDisplay;
4560
4560
  var row, rowIdx;
4561
4561
 
4562
- for ( var i=0, ien=filters.length ; i<ien ; i++ ) {
4562
+ for ( var i=0, iLen=filters.length ; i<iLen ; i++ ) {
4563
4563
  var rows = [];
4564
4564
 
4565
4565
  // Loop over each row and see if it should be included
@@ -4627,7 +4627,7 @@
4627
4627
  * @param {string} sSearch string to search for
4628
4628
  * @param {bool} bRegex treat as a regular expression or not
4629
4629
  * @param {bool} bSmart perform smart filtering or not
4630
- * @param {bool} bCaseInsensitive Do case insensitive matching or not
4630
+ * @param {bool} bCaseInsensitive Do case-insensitive matching or not
4631
4631
  * @returns {RegExp} constructed object
4632
4632
  * @memberof DataTable#oApi
4633
4633
  */
@@ -5370,7 +5370,7 @@
5370
5370
  }
5371
5371
 
5372
5372
  // 4. Clean up
5373
- // Figure out if there are scrollbar present - if so then we need a the header and footer to
5373
+ // Figure out if there are scrollbar present - if so then we need the header and footer to
5374
5374
  // provide a bit more space to allow "overflow" scrolling (i.e. past the scrollbar)
5375
5375
  var isScrolling = Math.floor(table.height()) > divBodyEl.clientHeight || divBody.css('overflow-y') == "scroll";
5376
5376
  var paddingSide = 'padding' + (browser.bScrollbarLeft ? 'Left' : 'Right' );
@@ -5468,7 +5468,7 @@
5468
5468
  .removeAttr( 'id' );
5469
5469
 
5470
5470
  // Clean up the table body
5471
- tmpTable.append('<tbody>')
5471
+ tmpTable.append('<tbody/>')
5472
5472
  var tr = $('<tr/>').appendTo( tmpTable.find('tbody') );
5473
5473
 
5474
5474
  // Clone the table header and footer - we can't use the header / footer
@@ -5677,7 +5677,7 @@
5677
5677
  if (! column.maxLenString) {
5678
5678
  var s, max='', maxLen = -1;
5679
5679
 
5680
- for ( var i=0, ien=settings.aiDisplayMaster.length ; i<ien ; i++ ) {
5680
+ for ( var i=0, iLen=settings.aiDisplayMaster.length ; i<iLen ; i++ ) {
5681
5681
  var rowIdx = settings.aiDisplayMaster[i];
5682
5682
  var data = _fnGetRowDisplay(settings, rowIdx)[colIdx];
5683
5683
 
@@ -5799,7 +5799,7 @@
5799
5799
  : [column];
5800
5800
 
5801
5801
  if ( columns.length ) {
5802
- for ( var i=0, ien=columns.length ; i<ien ; i++ ) {
5802
+ for ( var i=0, iLen=columns.length ; i<iLen ; i++ ) {
5803
5803
  var ret = _fnSortAdd( settings, columns[i], i, e.shiftKey );
5804
5804
 
5805
5805
  if (ret !== false) {
@@ -5848,7 +5848,7 @@
5848
5848
  masterMap[master[i]] = i;
5849
5849
  }
5850
5850
 
5851
- // And then cache what would be the indexOf fom the display
5851
+ // And then cache what would be the indexOf from the display
5852
5852
  for (i=0 ; i<display.length ; i++) {
5853
5853
  map[display[i]] = masterMap[display[i]];
5854
5854
  }
@@ -5974,7 +5974,7 @@
5974
5974
  function _fnSort ( oSettings, col, dir )
5975
5975
  {
5976
5976
  var
5977
- i, ien, iLen,
5977
+ i, iLen,
5978
5978
  aiOrig = [],
5979
5979
  extSort = DataTable.ext.type.order,
5980
5980
  aoData = oSettings.aoData,
@@ -6005,7 +6005,7 @@
6005
6005
  aSort = _fnSortFlatten( oSettings );
6006
6006
  }
6007
6007
 
6008
- for ( i=0, ien=aSort.length ; i<ien ; i++ ) {
6008
+ for ( i=0, iLen=aSort.length ; i<iLen ; i++ ) {
6009
6009
  sortCol = aSort[i];
6010
6010
 
6011
6011
  // Load the data needed for the sort, for each cell
@@ -6028,7 +6028,7 @@
6028
6028
 
6029
6029
  /* Do the sort - here we want multi-column sorting based on a given data source (column)
6030
6030
  * and sorting function (from oSort) in a certain direction. It's reasonably complex to
6031
- * follow on it's own, but this is what we want (example two column sorting):
6031
+ * follow on its own, but this is what we want (example two column sorting):
6032
6032
  * fnLocalSorting = function(a,b){
6033
6033
  * var test;
6034
6034
  * test = oSort['string-asc']('data11', 'data12');
@@ -6152,7 +6152,7 @@
6152
6152
  nextSortIdx = 0; // can't remove sorting completely
6153
6153
  }
6154
6154
 
6155
- if ( nextSortIdx === null ) {
6155
+ if ( nextSortIdx === null || asSorting[ nextSortIdx ] === '' ) {
6156
6156
  sorting.splice( sortIdx, 1 );
6157
6157
  }
6158
6158
  else {
@@ -6202,11 +6202,11 @@
6202
6202
  var sortClass = settings.oClasses.order.position;
6203
6203
  var sort = _fnSortFlatten( settings );
6204
6204
  var features = settings.oFeatures;
6205
- var i, ien, colIdx;
6205
+ var i, iLen, colIdx;
6206
6206
 
6207
6207
  if ( features.bSort && features.bSortClasses ) {
6208
6208
  // Remove old sorting classes
6209
- for ( i=0, ien=oldSort.length ; i<ien ; i++ ) {
6209
+ for ( i=0, iLen=oldSort.length ; i<iLen ; i++ ) {
6210
6210
  colIdx = oldSort[i].src;
6211
6211
 
6212
6212
  // Remove column sorting
@@ -6215,7 +6215,7 @@
6215
6215
  }
6216
6216
 
6217
6217
  // Add new column sorting
6218
- for ( i=0, ien=sort.length ; i<ien ; i++ ) {
6218
+ for ( i=0, iLen=sort.length ; i<iLen ; i++ ) {
6219
6219
  colIdx = sort[i].src;
6220
6220
 
6221
6221
  $( _pluck( settings.aoData, 'anCells', colIdx ) )
@@ -6349,7 +6349,7 @@
6349
6349
  }
6350
6350
 
6351
6351
  function _fnImplementState ( settings, s, callback) {
6352
- var i, ien;
6352
+ var i, iLen;
6353
6353
  var columns = settings.aoColumns;
6354
6354
  var currentNames = _pluck(settings.aoColumns, 'sName');
6355
6355
 
@@ -6478,7 +6478,7 @@
6478
6478
 
6479
6479
  // If the number of columns to restore is different from current, then all bets are off.
6480
6480
  if (set.length === columns.length) {
6481
- for ( i=0, ien=set.length ; i<ien ; i++ ) {
6481
+ for ( i=0, iLen=set.length ; i<iLen ; i++ ) {
6482
6482
  var col = set[i];
6483
6483
 
6484
6484
  // Visibility
@@ -6632,7 +6632,7 @@
6632
6632
 
6633
6633
 
6634
6634
  /**
6635
- * Bind an event handers to allow a click or return key to activate the callback.
6635
+ * Bind an event handler to allow a click or return key to activate the callback.
6636
6636
  * This is good for accessibility since a return on the keyboard will have the
6637
6637
  * same effect as a click, if the element has focus.
6638
6638
  * @param {element} n Element to bind the action to
@@ -6821,7 +6821,7 @@
6821
6821
  }
6822
6822
 
6823
6823
  /**
6824
- * Add elements to an array as quickly as possible, but stack stafe.
6824
+ * Add elements to an array as quickly as possible, but stack safe.
6825
6825
  *
6826
6826
  * @param {*} arr Array to add the data to
6827
6827
  * @param {*} data Data array that is to be added
@@ -7097,7 +7097,7 @@
7097
7097
 
7098
7098
  each: function ( fn )
7099
7099
  {
7100
- for ( var i=0, ien=this.length ; i<ien; i++ ) {
7100
+ for ( var i=0, iLen=this.length ; i<iLen; i++ ) {
7101
7101
  fn.call( this, this[i], i, this );
7102
7102
  }
7103
7103
 
@@ -7143,7 +7143,7 @@
7143
7143
  iterator: function ( flatten, type, fn, alwaysNew ) {
7144
7144
  var
7145
7145
  a = [], ret,
7146
- i, ien, j, jen,
7146
+ i, iLen, j, jen,
7147
7147
  context = this.context,
7148
7148
  rows, items, item,
7149
7149
  selector = this.selector;
@@ -7156,7 +7156,7 @@
7156
7156
  flatten = false;
7157
7157
  }
7158
7158
 
7159
- for ( i=0, ien=context.length ; i<ien ; i++ ) {
7159
+ for ( i=0, iLen=context.length ; i<iLen ; i++ ) {
7160
7160
  var apiInst = new _Api( context[i] );
7161
7161
 
7162
7162
  if ( type === 'table' ) {
@@ -7278,18 +7278,18 @@
7278
7278
  } );
7279
7279
 
7280
7280
 
7281
- function _api_scope( scope, fn, struc ) {
7281
+ function _api_scope( scope, fn, struct ) {
7282
7282
  return function () {
7283
7283
  var ret = fn.apply( scope || this, arguments );
7284
7284
 
7285
7285
  // Method extension
7286
- _Api.extend( ret, ret, struc.methodExt );
7286
+ _Api.extend( ret, ret, struct.methodExt );
7287
7287
  return ret;
7288
7288
  };
7289
7289
  }
7290
7290
 
7291
7291
  function _api_find( src, name ) {
7292
- for ( var i=0, ien=src.length ; i<ien ; i++ ) {
7292
+ for ( var i=0, iLen=src.length ; i<iLen ; i++ ) {
7293
7293
  if ( src[i].name === name ) {
7294
7294
  return src[i];
7295
7295
  }
@@ -7307,10 +7307,10 @@
7307
7307
  }
7308
7308
 
7309
7309
  var
7310
- i, ien,
7310
+ i, iLen,
7311
7311
  struct;
7312
7312
 
7313
- for ( i=0, ien=ext.length ; i<ien ; i++ ) {
7313
+ for ( i=0, iLen=ext.length ; i<iLen ; i++ ) {
7314
7314
  struct = ext[i];
7315
7315
 
7316
7316
  if (struct.name === '__proto__') {
@@ -7365,12 +7365,12 @@
7365
7365
  }
7366
7366
 
7367
7367
  var
7368
- i, ien,
7368
+ i, iLen,
7369
7369
  heir = name.split('.'),
7370
7370
  struct = __apiStruct,
7371
7371
  key, method;
7372
7372
 
7373
- for ( i=0, ien=heir.length ; i<ien ; i++ ) {
7373
+ for ( i=0, iLen=heir.length ; i<iLen ; i++ ) {
7374
7374
  method = heir[i].indexOf('()') !== -1;
7375
7375
  key = method ?
7376
7376
  heir[i].replace('()', '') :
@@ -7388,7 +7388,7 @@
7388
7388
  struct.push( src );
7389
7389
  }
7390
7390
 
7391
- if ( i === ien-1 ) {
7391
+ if ( i === iLen-1 ) {
7392
7392
  src.val = val;
7393
7393
  src.type = typeof val === 'function' ?
7394
7394
  'function' :
@@ -7730,7 +7730,7 @@
7730
7730
  */
7731
7731
  _api_register( 'page.len()', function ( len ) {
7732
7732
  // Note that we can't call this function 'length()' because `length`
7733
- // is a Javascript property of functions which defines how many arguments
7733
+ // is a JavaScript property of functions which defines how many arguments
7734
7734
  // the function expects.
7735
7735
  if ( len === undefined ) {
7736
7736
  return this.context.length !== 0 ?
@@ -7773,7 +7773,7 @@
7773
7773
  _fnClearTable( settings );
7774
7774
 
7775
7775
  var data = _fnAjaxDataSrc( settings, json );
7776
- for ( var i=0, ien=data.length ; i<ien ; i++ ) {
7776
+ for ( var i=0, iLen=data.length ; i<iLen ; i++ ) {
7777
7777
  _fnAddData( settings, data[i] );
7778
7778
  }
7779
7779
 
@@ -7896,7 +7896,7 @@
7896
7896
  {
7897
7897
  var
7898
7898
  out = [], res,
7899
- i, ien,
7899
+ i, iLen,
7900
7900
  selectorType = typeof selector;
7901
7901
 
7902
7902
  // Can't just check for isArray here, as an API or jQuery instance might be
@@ -7905,7 +7905,7 @@
7905
7905
  selector = [ selector ];
7906
7906
  }
7907
7907
 
7908
- for ( i=0, ien=selector.length ; i<ien ; i++ ) {
7908
+ for ( i=0, iLen=selector.length ; i<iLen ; i++ ) {
7909
7909
  res = selectFn( typeof selector[i] === 'string' ? selector[i].trim() : selector[i] );
7910
7910
 
7911
7911
  // Remove empty items
@@ -7921,7 +7921,7 @@
7921
7921
  // selector extensions
7922
7922
  var ext = _ext.selector[ type ];
7923
7923
  if ( ext.length ) {
7924
- for ( i=0, ien=ext.length ; i<ien ; i++ ) {
7924
+ for ( i=0, iLen=ext.length ; i<iLen ; i++ ) {
7925
7925
  out = ext[i]( settings, opts, out );
7926
7926
  }
7927
7927
  }
@@ -7976,7 +7976,7 @@
7976
7976
  var _selector_row_indexes = function ( settings, opts )
7977
7977
  {
7978
7978
  var
7979
- i, ien, tmp, a=[],
7979
+ i, iLen, tmp, a=[],
7980
7980
  displayFiltered = settings.aiDisplay,
7981
7981
  displayMaster = settings.aiDisplayMaster;
7982
7982
 
@@ -7999,7 +7999,7 @@
7999
7999
  // Current page implies that order=current and filter=applied, since it is
8000
8000
  // fairly senseless otherwise, regardless of what order and search actually
8001
8001
  // are
8002
- for ( i=settings._iDisplayStart, ien=settings.fnDisplayEnd() ; i<ien ; i++ ) {
8002
+ for ( i=settings._iDisplayStart, iLen=settings.fnDisplayEnd() ; i<iLen ; i++ ) {
8003
8003
  a.push( displayFiltered[i] );
8004
8004
  }
8005
8005
  }
@@ -8014,7 +8014,7 @@
8014
8014
  // O(n+m) solution by creating a hash map
8015
8015
  var displayFilteredMap = {};
8016
8016
 
8017
- for ( i=0, ien=displayFiltered.length ; i<ien ; i++ ) {
8017
+ for ( i=0, iLen=displayFiltered.length ; i<iLen ; i++ ) {
8018
8018
  displayFilteredMap[displayFiltered[i]] = null;
8019
8019
  }
8020
8020
 
@@ -8026,7 +8026,7 @@
8026
8026
  }
8027
8027
  }
8028
8028
  else if ( order == 'index' || order == 'original' ) {
8029
- for ( i=0, ien=settings.aoData.length ; i<ien ; i++ ) {
8029
+ for ( i=0, iLen=settings.aoData.length ; i<iLen ; i++ ) {
8030
8030
  if (! settings.aoData[i]) {
8031
8031
  continue;
8032
8032
  }
@@ -8243,7 +8243,7 @@
8243
8243
  var context = this.context;
8244
8244
 
8245
8245
  // `iterator` will drop undefined values, but in this case we want them
8246
- for ( var i=0, ien=context.length ; i<ien ; i++ ) {
8246
+ for ( var i=0, iLen=context.length ; i<iLen ; i++ ) {
8247
8247
  for ( var j=0, jen=this[i].length ; j<jen ; j++ ) {
8248
8248
  var id = context[i].rowIdFn( context[i].aoData[ this[i][j] ]._aData );
8249
8249
  a.push( (hash === true ? '#' : '' )+ id );
@@ -8287,10 +8287,10 @@
8287
8287
 
8288
8288
  _api_register( 'rows.add()', function ( rows ) {
8289
8289
  var newRows = this.iterator( 'table', function ( settings ) {
8290
- var row, i, ien;
8290
+ var row, i, iLen;
8291
8291
  var out = [];
8292
8292
 
8293
- for ( i=0, ien=rows.length ; i<ien ; i++ ) {
8293
+ for ( i=0, iLen=rows.length ; i<iLen ; i++ ) {
8294
8294
  row = rows[i];
8295
8295
 
8296
8296
  if ( row.nodeName && row.nodeName.toUpperCase() === 'TR' ) {
@@ -8437,7 +8437,7 @@
8437
8437
  var addRow = function ( r, k ) {
8438
8438
  // Recursion to allow for arrays of jQuery objects
8439
8439
  if ( Array.isArray( r ) || r instanceof $ ) {
8440
- for ( var i=0, ien=r.length ; i<ien ; i++ ) {
8440
+ for ( var i=0, iLen=r.length ; i<iLen ; i++ ) {
8441
8441
  addRow( r[i], k );
8442
8442
  }
8443
8443
  return;
@@ -8457,7 +8457,7 @@
8457
8457
 
8458
8458
  $('td', created)
8459
8459
  .addClass( k )
8460
- .html( r )[0].colSpan = _fnVisbleColumns( ctx );
8460
+ .html( r )[0].colSpan = _fnVisibleColumns( ctx );
8461
8461
 
8462
8462
  rows.push( created[0] );
8463
8463
  }
@@ -8495,7 +8495,7 @@
8495
8495
  var row = ctx[0].aoData[ idx !== undefined ? idx : api[0] ];
8496
8496
 
8497
8497
  if ( row && row._details ) {
8498
- row._details.remove();
8498
+ row._details.detach();
8499
8499
 
8500
8500
  row._detailsShow = undefined;
8501
8501
  row._details = undefined;
@@ -8569,9 +8569,9 @@
8569
8569
 
8570
8570
  // Update the colspan for the details rows (note, only if it already has
8571
8571
  // a colspan)
8572
- var row, visible = _fnVisbleColumns( ctx );
8572
+ var row, visible = _fnVisibleColumns( ctx );
8573
8573
 
8574
- for ( var i=0, ien=data.length ; i<ien ; i++ ) {
8574
+ for ( var i=0, iLen=data.length ; i<iLen ; i++ ) {
8575
8575
  row = data[i];
8576
8576
 
8577
8577
  if ( row && row._details ) {
@@ -8592,7 +8592,7 @@
8592
8592
  return;
8593
8593
  }
8594
8594
 
8595
- for ( var i=0, ien=data.length ; i<ien ; i++ ) {
8595
+ for ( var i=0, iLen=data.length ; i<iLen ; i++ ) {
8596
8596
  if ( data[i] && data[i]._details ) {
8597
8597
  __details_remove( api, i );
8598
8598
  }
@@ -8696,7 +8696,7 @@
8696
8696
  // iterator callback in columns().data()
8697
8697
  var __columnData = function ( settings, column, r1, r2, rows, type ) {
8698
8698
  var a = [];
8699
- for ( var row=0, ien=rows.length ; row<ien ; row++ ) {
8699
+ for ( var row=0, iLen=rows.length ; row<iLen ; row++ ) {
8700
8700
  a.push( _fnGetCellData( settings, rows[row], column, type ) );
8701
8701
  }
8702
8702
  return a;
@@ -8896,7 +8896,7 @@
8896
8896
  cols = settings.aoColumns,
8897
8897
  col = cols[ column ],
8898
8898
  data = settings.aoData,
8899
- cells, i, ien, tr;
8899
+ cells, i, iLen, tr;
8900
8900
 
8901
8901
  // Get
8902
8902
  if ( vis === undefined ) {
@@ -8914,7 +8914,7 @@
8914
8914
  // Need to decide if we should use appendChild or insertBefore
8915
8915
  var insertBefore = _pluck(cols, 'bVisible').indexOf(true, column+1);
8916
8916
 
8917
- for ( i=0, ien=data.length ; i<ien ; i++ ) {
8917
+ for ( i=0, iLen=data.length ; i<iLen ; i++ ) {
8918
8918
  if (data[i]) {
8919
8919
  tr = data[i].nTr;
8920
8920
  cells = data[i].anCells;
@@ -9080,7 +9080,7 @@
9080
9080
  // Update colspan for no records display. Child rows and extensions will use their own
9081
9081
  // listeners to do this - only need to update the empty table item here
9082
9082
  if ( ! settings.aiDisplay.length ) {
9083
- $(settings.nTBody).find('td[colspan]').attr('colspan', _fnVisbleColumns(settings));
9083
+ $(settings.nTBody).find('td[colspan]').attr('colspan', _fnVisibleColumns(settings));
9084
9084
  }
9085
9085
 
9086
9086
  _fnSaveState( settings );
@@ -9166,7 +9166,7 @@
9166
9166
  var allCells = $(_flatten( [], cells ));
9167
9167
  var row;
9168
9168
  var columns = settings.aoColumns.length;
9169
- var a, i, ien, j, o, host;
9169
+ var a, i, iLen, j, o, host;
9170
9170
 
9171
9171
  var run = function ( s ) {
9172
9172
  var fnSelector = typeof s === 'function';
@@ -9175,7 +9175,7 @@
9175
9175
  // All cells and function selectors
9176
9176
  a = [];
9177
9177
 
9178
- for ( i=0, ien=rows.length ; i<ien ; i++ ) {
9178
+ for ( i=0, iLen=rows.length ; i<iLen ; i++ ) {
9179
9179
  row = rows[i];
9180
9180
 
9181
9181
  for ( j=0 ; j<columns ; j++ ) {
@@ -9280,12 +9280,12 @@
9280
9280
  // Row + column selector
9281
9281
  var columns = this.columns( columnSelector, internalOpts );
9282
9282
  var rows = this.rows( rowSelector, internalOpts );
9283
- var i, ien, j, jen;
9283
+ var i, iLen, j, jen;
9284
9284
 
9285
9285
  var cellsNoOpts = this.iterator( 'table', function ( settings, idx ) {
9286
9286
  var a = [];
9287
9287
 
9288
- for ( i=0, ien=rows[idx].length ; i<ien ; i++ ) {
9288
+ for ( i=0, iLen=rows[idx].length ; i<iLen ; i++ ) {
9289
9289
  for ( j=0, jen=columns[idx].length ; j<jen ; j++ ) {
9290
9290
  a.push( {
9291
9291
  row: rows[idx][i],
@@ -9497,7 +9497,7 @@
9497
9497
  return this.iterator( 'column', function ( settings, idx ) {
9498
9498
  var sort = _fnSortFlatten( settings );
9499
9499
 
9500
- for ( var i=0, ien=sort.length ; i<ien ; i++ ) {
9500
+ for ( var i=0, iLen=sort.length ; i<iLen ; i++ ) {
9501
9501
  if ( sort[i].col === idx ) {
9502
9502
  return sort[i].dir;
9503
9503
  }
@@ -10188,9 +10188,11 @@
10188
10188
  }
10189
10189
 
10190
10190
  if ( $.isPlainObject( resolved ) ) {
10191
- resolved = plural !== undefined && resolved[ plural ] !== undefined ?
10192
- resolved[ plural ] :
10193
- resolved._;
10191
+ resolved = plural !== undefined && resolved[ plural ] !== undefined
10192
+ ? resolved[ plural ]
10193
+ : plural === false
10194
+ ? resolved
10195
+ : resolved._;
10194
10196
  }
10195
10197
 
10196
10198
  return typeof resolved === 'string'
@@ -10219,7 +10221,7 @@
10219
10221
  * @type string
10220
10222
  * @default Version number
10221
10223
  */
10222
- DataTable.version = "2.3.2";
10224
+ DataTable.version = "2.3.3";
10223
10225
 
10224
10226
  /**
10225
10227
  * Private data store, containing all of the settings objects that are
@@ -10252,7 +10254,7 @@
10252
10254
  */
10253
10255
  DataTable.models.oSearch = {
10254
10256
  /**
10255
- * Flag to indicate if the filtering should be case insensitive or not
10257
+ * Flag to whether or not the filtering should be case-insensitive
10256
10258
  */
10257
10259
  "caseInsensitive": true,
10258
10260
 
@@ -10537,7 +10539,7 @@
10537
10539
  * from v1.10 onwards the primary interface is camel case. In order to avoid
10538
10540
  * breaking backwards compatibility utterly with this change, the Hungarian
10539
10541
  * version is still, internally the primary interface, but is is not documented
10540
- * - hence the @name tags in each doc comment. This allows a Javascript function
10542
+ * - hence the @name tags in each doc comment. This allows a JavaScript function
10541
10543
  * to create a map from Hungarian notation to camel case (going the other direction
10542
10544
  * would require each property to be listed, which would add around 3K to the size
10543
10545
  * of DataTables, while this method is about a 0.5K hit).
@@ -10556,7 +10558,7 @@
10556
10558
  /**
10557
10559
  * An array of data to use for the table, passed in at initialisation which
10558
10560
  * will be used in preference to any data which is already in the DOM. This is
10559
- * particularly useful for constructing tables purely in Javascript, for
10561
+ * particularly useful for constructing tables purely in JavaScript, for
10560
10562
  * example with a custom Ajax call.
10561
10563
  */
10562
10564
  "aaData": null,
@@ -10623,7 +10625,7 @@
10623
10625
  * * `dataSrc` - By default DataTables will look for the property `data` (or
10624
10626
  * `aaData` for compatibility with DataTables 1.9-) when obtaining data
10625
10627
  * from an Ajax source or for server-side processing - this parameter
10626
- * allows that property to be changed. You can use Javascript dotted
10628
+ * allows that property to be changed. You can use JavaScript dotted
10627
10629
  * object notation to get a data source for multiple levels of nesting, or
10628
10630
  * it my be used as a function. As a function it takes a single parameter,
10629
10631
  * the JSON returned from the server, which can be manipulated as
@@ -10747,13 +10749,13 @@
10747
10749
  "bFilter": true,
10748
10750
 
10749
10751
  /**
10750
- * Used only for compatiblity with DT1
10752
+ * Used only for compatibility with DT1
10751
10753
  * @deprecated
10752
10754
  */
10753
10755
  "bInfo": true,
10754
10756
 
10755
10757
  /**
10756
- * Used only for compatiblity with DT1
10758
+ * Used only for compatibility with DT1
10757
10759
  * @deprecated
10758
10760
  */
10759
10761
  "bLengthChange": true,
@@ -10844,7 +10846,7 @@
10844
10846
  * Enable or disable state saving. When enabled HTML5 `localStorage` will be
10845
10847
  * used to save table display information such as pagination information,
10846
10848
  * display length, filtering and sorting. As such when the end user reloads
10847
- * the page the display display will match what thy had previously set up.
10849
+ * the page the display will match what thy had previously set up.
10848
10850
  */
10849
10851
  "bStateSave": false,
10850
10852
 
@@ -11201,7 +11203,7 @@
11201
11203
  /**
11202
11204
  * When using Ajax sourced data and during the first draw when DataTables is
11203
11205
  * gathering the data, this message is shown in an empty row in the table to
11204
- * indicate to the end user the the data is being loaded. Note that this
11206
+ * indicate to the end user the data is being loaded. Note that this
11205
11207
  * parameter is not used when loading data by server-side processing, just
11206
11208
  * Ajax sourced data with client-side processing.
11207
11209
  */
@@ -11462,8 +11464,8 @@
11462
11464
  * * `string` - read an object property from the data source. There are
11463
11465
  * three 'special' options that can be used in the string to alter how
11464
11466
  * DataTables reads the data from the source object:
11465
- * * `.` - Dotted Javascript notation. Just as you use a `.` in
11466
- * Javascript to read from nested objects, so to can the options
11467
+ * * `.` - Dotted JavaScript notation. Just as you use a `.` in
11468
+ * JavaScript to read from nested objects, so to can the options
11467
11469
  * specified in `data`. For example: `browser.version` or
11468
11470
  * `browser.name`. If your object parameter name contains a period, use
11469
11471
  * `\\` to escape it - i.e. `first\\.name`.
@@ -11521,7 +11523,7 @@
11521
11523
  * This property is the rendering partner to `data` and it is suggested that
11522
11524
  * when you want to manipulate data for display (including filtering,
11523
11525
  * sorting etc) without altering the underlying data for the table, use this
11524
- * property. `render` can be considered to be the the read only companion to
11526
+ * property. `render` can be considered to be the read only companion to
11525
11527
  * `data` which is read / write (then as such more complex). Like `data`
11526
11528
  * this option can be given in a number of different ways to effect its
11527
11529
  * behaviour:
@@ -11531,8 +11533,8 @@
11531
11533
  * * `string` - read an object property from the data source. There are
11532
11534
  * three 'special' options that can be used in the string to alter how
11533
11535
  * DataTables reads the data from the source object:
11534
- * * `.` - Dotted Javascript notation. Just as you use a `.` in
11535
- * Javascript to read from nested objects, so to can the options
11536
+ * * `.` - Dotted JavaScript notation. Just as you use a `.` in
11537
+ * JavaScript to read from nested objects, so to can the options
11536
11538
  * specified in `data`. For example: `browser.version` or
11537
11539
  * `browser.name`. If your object parameter name contains a period, use
11538
11540
  * `\\` to escape it - i.e. `first\\.name`.
@@ -11635,7 +11637,7 @@
11635
11637
  * The type allows you to specify how the data for this column will be
11636
11638
  * ordered. Four types (string, numeric, date and html (which will strip
11637
11639
  * HTML tags before ordering)) are currently available. Note that only date
11638
- * formats understood by Javascript's Date() object will be accepted as type
11640
+ * formats understood by JavaScript's Date() object will be accepted as type
11639
11641
  * date. For example: "Mar 26, 2008 5:03 PM". May take the values: 'string',
11640
11642
  * 'numeric', 'date' or 'html' (by default). Further types can be adding
11641
11643
  * through plug-ins.
@@ -11687,7 +11689,7 @@
11687
11689
  /**
11688
11690
  * Delay the creation of TR and TD elements until they are actually
11689
11691
  * needed by a driven page draw. This can give a significant speed
11690
- * increase for Ajax source and Javascript source data, but makes no
11692
+ * increase for Ajax source and JavaScript source data, but makes no
11691
11693
  * difference at all for DOM and server-side processing tables.
11692
11694
  * Note that this parameter will be set by the initialisation routine. To
11693
11695
  * set a default use {@link DataTable.defaults}.
@@ -11704,13 +11706,13 @@
11704
11706
  "bFilter": null,
11705
11707
 
11706
11708
  /**
11707
- * Used only for compatiblity with DT1
11709
+ * Used only for compatibility with DT1
11708
11710
  * @deprecated
11709
11711
  */
11710
11712
  "bInfo": true,
11711
11713
 
11712
11714
  /**
11713
- * Used only for compatiblity with DT1
11715
+ * Used only for compatibility with DT1
11714
11716
  * @deprecated
11715
11717
  */
11716
11718
  "bLengthChange": true,
@@ -12581,7 +12583,7 @@
12581
12583
  },
12582
12584
  order: {
12583
12585
  pre: function (d) {
12584
- // The renderer gives us Moment, Luxon or Date obects for the sorting, all of which have a
12586
+ // The renderer gives us Moment, Luxon or Date objects for the sorting, all of which have a
12585
12587
  // `valueOf` which gives milliseconds epoch
12586
12588
  return d.valueOf();
12587
12589
  }
@@ -13147,7 +13149,7 @@
13147
13149
 
13148
13150
  // If a decimal place other than `.` is used, it needs to be given to the
13149
13151
  // function so we can detect it and replace with a `.` which is the only
13150
- // decimal place Javascript recognises - it is not locale aware.
13152
+ // decimal place JavaScript recognises - it is not locale aware.
13151
13153
  if ( decimalPlace ) {
13152
13154
  d = _numToDecimal( d, decimalPlace );
13153
13155
  }
@@ -13205,7 +13207,7 @@
13205
13207
  // on destroy, while the `dt` namespaced event is the one we are
13206
13208
  // listening for
13207
13209
  $(settings.nTable).on( 'order.dt.DT column-visibility.dt.DT', function ( e, ctx, column ) {
13208
- if ( settings !== ctx ) { // need to check this this is the host
13210
+ if ( settings !== ctx ) { // need to check if this is the host
13209
13211
  return; // table, not a nested one
13210
13212
  }
13211
13213