jquery-tablesorter 1.23.12 → 1.23.13

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 239cdb0e919161f29a56889486aee7a569c6bce5
4
- data.tar.gz: 013fc8808367852338ad64de7f20a2647239046a
3
+ metadata.gz: 4599b415cfd55b6691b1ab65afe7fd151d5eca4b
4
+ data.tar.gz: 79c6f86cee61f56dcbd3ab71f9ca834cf55301b9
5
5
  SHA512:
6
- metadata.gz: baf17491cdcd0ea749ef607902a8af719cde1361034cee1d9854d6fdb0b033c21125bd28f6fc602dc8e4f1474799d441bba12b637e0c085c2e12706614e8ad47
7
- data.tar.gz: 25c8557784cf60e3d203ff226c3b59ab1f87550944b8af001540290a2037353cb2c70e0ee90a0338a8adb7bff93b7e6e73b3422a9208cfb93d4fc1b81f2f2581
6
+ metadata.gz: 0466a10d6c849257f48466028714faae3795993dc7d334233ed0832cd59519147adffc3b32777b1b4647000131b4de0f49b041595ab4e3d4a16ed6121f6a5fb5
7
+ data.tar.gz: 01217de0c92d25f0e849989ae7fe9a218a595be7692b0d9fa51f8204cb9ba5ba54d87506693ce988a7e9dc9cd41c18719d838e6184431998ba447e0f618aabd9
data/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  Simple integration of jQuery tablesorter ([Mottie's fork]) into the asset pipeline.
6
6
 
7
- Current tablesorter version: 2.28.12 (5/26/2017), [documentation]
7
+ Current tablesorter version: 2.28.13 (6/2/2017) [documentation]
8
8
 
9
9
  Any issue associated with the js/css files, please report to [Mottie's fork].
10
10
 
@@ -1,7 +1,7 @@
1
1
  module JqueryTablesorter
2
2
  MAJOR = 1
3
3
  MINOR = 23
4
- TINY = 12
4
+ TINY = 13
5
5
 
6
6
  VERSION = [MAJOR, MINOR, TINY].compact.join('.')
7
7
  end
@@ -4,7 +4,7 @@
4
4
  ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀▀▀██
5
5
  █████▀ ▀████▀ ██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ █████▀ ██ ██ █████▀
6
6
  */
7
- /*! tablesorter (FORK) - updated 05-26-2017 (v2.28.12)*/
7
+ /*! tablesorter (FORK) - updated 06-02-2017 (v2.28.13)*/
8
8
  /* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
9
9
  (function(factory) {
10
10
  if (typeof define === 'function' && define.amd) {
@@ -16,7 +16,7 @@
16
16
  }
17
17
  }(function(jQuery) {
18
18
 
19
- /*! TableSorter (FORK) v2.28.12 *//*
19
+ /*! TableSorter (FORK) v2.28.13 *//*
20
20
  * Client-side table sorting with ease!
21
21
  * @requires jQuery v1.2.6+
22
22
  *
@@ -40,7 +40,7 @@
40
40
  'use strict';
41
41
  var ts = $.tablesorter = {
42
42
 
43
- version : '2.28.12',
43
+ version : '2.28.13',
44
44
 
45
45
  parsers : [],
46
46
  widgets : [],
@@ -116,6 +116,7 @@
116
116
  cssIconNone : '', // class name added to the icon when there is no column sort
117
117
  cssIconAsc : '', // class name added to the icon when the column has an ascending sort
118
118
  cssIconDesc : '', // class name added to the icon when the column has a descending sort
119
+ cssIconDisabled : '', // class name added to the icon when the column has a disabled sort
119
120
 
120
121
  // *** events
121
122
  pointerClick : 'click',
@@ -1092,7 +1093,7 @@
1092
1093
  ▀████▀ ██ █████▀ ██ ██ ██ ██████
1093
1094
  */
1094
1095
  setHeadersCss : function( c ) {
1095
- var $sorted, indx, column,
1096
+ var indx, column,
1096
1097
  list = c.sortList,
1097
1098
  len = list.length,
1098
1099
  none = ts.css.sortNone + ' ' + c.cssNone,
@@ -1100,20 +1101,32 @@
1100
1101
  cssIcon = [ c.cssIconAsc, c.cssIconDesc, c.cssIconNone ],
1101
1102
  aria = [ 'ascending', 'descending' ],
1102
1103
  // find the footer
1103
- $headers = c.$table
1104
+ $extras = c.$table
1104
1105
  .find( 'tfoot tr' )
1105
1106
  .children( 'td, th' )
1106
1107
  .add( $( c.namespace + '_extra_headers' ) )
1107
- .removeClass( css.join( ' ' ) );
1108
- // remove all header information
1109
- c.$headers
1110
- .add( $( 'thead ' + c.namespace + '_extra_headers' ) )
1111
- .removeClass( css.join( ' ' ) )
1112
- .addClass( none )
1113
- .attr( 'aria-sort', 'none' )
1108
+ .removeClass( css.join( ' ' ) ),
1109
+ // remove all header information
1110
+ $sorted = c.$headers
1111
+ .add( $( 'thead ' + c.namespace + '_extra_headers' ) )
1112
+ .removeClass( css.join( ' ' ) )
1113
+ .addClass( none )
1114
+ .attr( 'aria-sort', 'none' )
1115
+ .find( '.' + ts.css.icon )
1116
+ .removeClass( cssIcon.join( ' ' ) )
1117
+ .end();
1118
+ // add css none to all sortable headers
1119
+ $sorted
1120
+ .not( '.sorter-false' )
1114
1121
  .find( '.' + ts.css.icon )
1115
- .removeClass( cssIcon.join( ' ' ) )
1116
1122
  .addClass( cssIcon[ 2 ] );
1123
+ // add disabled css icon class
1124
+ if ( c.cssIconDisabled ) {
1125
+ $sorted
1126
+ .filter( '.sorter-false' )
1127
+ .find( '.' + ts.css.icon )
1128
+ .addClass( c.cssIconDisabled );
1129
+ }
1117
1130
  for ( indx = 0; indx < len; indx++ ) {
1118
1131
  // direction = 2 means reset!
1119
1132
  if ( list[ indx ][ 1 ] !== 2 ) {
@@ -1150,8 +1163,8 @@
1150
1163
  }
1151
1164
  }
1152
1165
  // add sorted class to footer & extra headers, if they exist
1153
- if ( $headers.length ) {
1154
- $headers
1166
+ if ( $extras.length ) {
1167
+ $extras
1155
1168
  .filter( '[data-column="' + list[ indx ][ 0 ] + '"]' )
1156
1169
  .removeClass( none )
1157
1170
  .addClass( css[ list[ indx ][ 1 ] ] );
@@ -1824,10 +1837,10 @@
1824
1837
  },
1825
1838
 
1826
1839
  // Natural sort - https://github.com/overset/javascript-natural-sort (date sorting removed)
1827
- // this function will only accept strings, or you'll see 'TypeError: undefined is not a function'
1828
- // I could add a = a.toString(); b = b.toString(); but it'll slow down the sort overall
1829
1840
  sortNatural : function( a, b ) {
1830
1841
  if ( a === b ) { return 0; }
1842
+ a = a.toString();
1843
+ b = b.toString();
1831
1844
  var aNum, bNum, aFloat, bFloat, indx, max,
1832
1845
  regex = ts.regex;
1833
1846
  // first try and sort Hex codes
@@ -5152,7 +5165,7 @@
5152
5165
 
5153
5166
  })( jQuery );
5154
5167
 
5155
- /*! Widget: stickyHeaders - updated 1/6/2017 (v2.28.4) *//*
5168
+ /*! Widget: stickyHeaders - updated 6/2/2017 (v2.28.13) *//*
5156
5169
  * Requires tablesorter v2.8+ and jQuery 1.4.3+
5157
5170
  * by Rob Garrison
5158
5171
  */
@@ -5209,6 +5222,13 @@
5209
5222
  }, options.timer);
5210
5223
  };
5211
5224
 
5225
+ function getStickyOffset(c, wo) {
5226
+ var $el = isNaN(wo.stickyHeaders_offset) ? $(wo.stickyHeaders_offset) : [];
5227
+ return $el.length ?
5228
+ $el.height() || 0 :
5229
+ parseInt(wo.stickyHeaders_offset, 10) || 0;
5230
+ }
5231
+
5212
5232
  // Sticky headers based on this awesome article:
5213
5233
  // http://css-tricks.com/13465-persistent-headers/
5214
5234
  // and https://github.com/jmosbech/StickyTableHeaders by Jonas Mosbech
@@ -5245,8 +5265,7 @@
5245
5265
  $thead = $table.children('thead:first'),
5246
5266
  $header = $thead.children('tr').not('.sticky-false').children(),
5247
5267
  $tfoot = $table.children('tfoot'),
5248
- $stickyOffset = isNaN(wo.stickyHeaders_offset) ? $(wo.stickyHeaders_offset) : '',
5249
- stickyOffset = $stickyOffset.length ? $stickyOffset.height() || 0 : parseInt(wo.stickyHeaders_offset, 10) || 0,
5268
+ stickyOffset = getStickyOffset(c, wo),
5250
5269
  // is this table nested? If so, find parent sticky header wrapper (div, not table)
5251
5270
  $nestedSticky = $table.parent().closest('.' + ts.css.table).hasClass('hasStickyHeaders') ?
5252
5271
  $table.parent().closest('table.tablesorter')[0].config.widgetOptions.$sticky.parent() : [],
@@ -5268,7 +5287,6 @@
5268
5287
  $stickyThead = $stickyTable.children('thead:first'),
5269
5288
  $stickyCells,
5270
5289
  laststate = '',
5271
- spacing = 0,
5272
5290
  setWidth = function($orig, $clone){
5273
5291
  var index, width, border, $cell, $this,
5274
5292
  $cells = $orig.filter(':visible'),
@@ -5300,11 +5318,9 @@
5300
5318
  }
5301
5319
  },
5302
5320
  resizeHeader = function() {
5303
- stickyOffset = $stickyOffset.length ? $stickyOffset.height() || 0 : parseInt(wo.stickyHeaders_offset, 10) || 0;
5304
- spacing = 0;
5305
5321
  $stickyWrap.css({
5306
5322
  left : $attach.length ? parseInt($attach.css('padding-left'), 10) || 0 :
5307
- $table.offset().left - parseInt($table.css('margin-left'), 10) - $xScroll.scrollLeft() - spacing,
5323
+ $table.offset().left - parseInt($table.css('margin-left'), 10) - $xScroll.scrollLeft(),
5308
5324
  width: $table.outerWidth()
5309
5325
  });
5310
5326
  setWidth( $table, $stickyTable );
@@ -5315,6 +5331,7 @@
5315
5331
  // Detect nested tables - fixes #724
5316
5332
  nestedStickyTop = $nestedSticky.length ? $nestedSticky.offset().top - $yScroll.scrollTop() + $nestedSticky.height() : 0;
5317
5333
  var offset = $table.offset(),
5334
+ stickyOffset = getStickyOffset(c, wo),
5318
5335
  yWindow = $.isWindow( $yScroll[0] ), // $.isWindow needs jQuery 1.4.3
5319
5336
  xWindow = $.isWindow( $xScroll[0] ),
5320
5337
  attachTop = $attach.length ?
@@ -5330,11 +5347,9 @@
5330
5347
  }
5331
5348
  if (xWindow) {
5332
5349
  // adjust when scrolling horizontally - fixes issue #143
5333
- cssSettings.left = $table.offset().left - parseInt($table.css('margin-left'), 10) - $xScroll.scrollLeft() - spacing;
5334
- }
5335
- if ($nestedSticky.length) {
5336
- cssSettings.top = ( cssSettings.top || 0 ) + stickyOffset + nestedStickyTop;
5350
+ cssSettings.left = $table.offset().left - parseInt($table.css('margin-left'), 10) - $xScroll.scrollLeft();
5337
5351
  }
5352
+ cssSettings.top = ( cssSettings.top || 0 ) + stickyOffset + nestedStickyTop;
5338
5353
  $stickyWrap
5339
5354
  .removeClass( ts.css.stickyVis + ' ' + ts.css.stickyHide )
5340
5355
  .addClass( isVisible === 'visible' ? ts.css.stickyVis : ts.css.stickyHide )
@@ -5434,6 +5449,8 @@
5434
5449
  });
5435
5450
  }
5436
5451
 
5452
+ // make sure sticky is visible if page is partially scrolled
5453
+ scrollSticky( true );
5437
5454
  $table.triggerHandler('stickyHeadersInit');
5438
5455
 
5439
5456
  },
@@ -1,4 +1,4 @@
1
- /*! TableSorter (FORK) v2.28.12 *//*
1
+ /*! TableSorter (FORK) v2.28.13 *//*
2
2
  * Client-side table sorting with ease!
3
3
  * @requires jQuery v1.2.6+
4
4
  *
@@ -22,7 +22,7 @@
22
22
  'use strict';
23
23
  var ts = $.tablesorter = {
24
24
 
25
- version : '2.28.12',
25
+ version : '2.28.13',
26
26
 
27
27
  parsers : [],
28
28
  widgets : [],
@@ -98,6 +98,7 @@
98
98
  cssIconNone : '', // class name added to the icon when there is no column sort
99
99
  cssIconAsc : '', // class name added to the icon when the column has an ascending sort
100
100
  cssIconDesc : '', // class name added to the icon when the column has a descending sort
101
+ cssIconDisabled : '', // class name added to the icon when the column has a disabled sort
101
102
 
102
103
  // *** events
103
104
  pointerClick : 'click',
@@ -1074,7 +1075,7 @@
1074
1075
  ▀████▀ ██ █████▀ ██ ██ ██ ██████
1075
1076
  */
1076
1077
  setHeadersCss : function( c ) {
1077
- var $sorted, indx, column,
1078
+ var indx, column,
1078
1079
  list = c.sortList,
1079
1080
  len = list.length,
1080
1081
  none = ts.css.sortNone + ' ' + c.cssNone,
@@ -1082,20 +1083,32 @@
1082
1083
  cssIcon = [ c.cssIconAsc, c.cssIconDesc, c.cssIconNone ],
1083
1084
  aria = [ 'ascending', 'descending' ],
1084
1085
  // find the footer
1085
- $headers = c.$table
1086
+ $extras = c.$table
1086
1087
  .find( 'tfoot tr' )
1087
1088
  .children( 'td, th' )
1088
1089
  .add( $( c.namespace + '_extra_headers' ) )
1089
- .removeClass( css.join( ' ' ) );
1090
- // remove all header information
1091
- c.$headers
1092
- .add( $( 'thead ' + c.namespace + '_extra_headers' ) )
1093
- .removeClass( css.join( ' ' ) )
1094
- .addClass( none )
1095
- .attr( 'aria-sort', 'none' )
1090
+ .removeClass( css.join( ' ' ) ),
1091
+ // remove all header information
1092
+ $sorted = c.$headers
1093
+ .add( $( 'thead ' + c.namespace + '_extra_headers' ) )
1094
+ .removeClass( css.join( ' ' ) )
1095
+ .addClass( none )
1096
+ .attr( 'aria-sort', 'none' )
1097
+ .find( '.' + ts.css.icon )
1098
+ .removeClass( cssIcon.join( ' ' ) )
1099
+ .end();
1100
+ // add css none to all sortable headers
1101
+ $sorted
1102
+ .not( '.sorter-false' )
1096
1103
  .find( '.' + ts.css.icon )
1097
- .removeClass( cssIcon.join( ' ' ) )
1098
1104
  .addClass( cssIcon[ 2 ] );
1105
+ // add disabled css icon class
1106
+ if ( c.cssIconDisabled ) {
1107
+ $sorted
1108
+ .filter( '.sorter-false' )
1109
+ .find( '.' + ts.css.icon )
1110
+ .addClass( c.cssIconDisabled );
1111
+ }
1099
1112
  for ( indx = 0; indx < len; indx++ ) {
1100
1113
  // direction = 2 means reset!
1101
1114
  if ( list[ indx ][ 1 ] !== 2 ) {
@@ -1132,8 +1145,8 @@
1132
1145
  }
1133
1146
  }
1134
1147
  // add sorted class to footer & extra headers, if they exist
1135
- if ( $headers.length ) {
1136
- $headers
1148
+ if ( $extras.length ) {
1149
+ $extras
1137
1150
  .filter( '[data-column="' + list[ indx ][ 0 ] + '"]' )
1138
1151
  .removeClass( none )
1139
1152
  .addClass( css[ list[ indx ][ 1 ] ] );
@@ -1806,10 +1819,10 @@
1806
1819
  },
1807
1820
 
1808
1821
  // Natural sort - https://github.com/overset/javascript-natural-sort (date sorting removed)
1809
- // this function will only accept strings, or you'll see 'TypeError: undefined is not a function'
1810
- // I could add a = a.toString(); b = b.toString(); but it'll slow down the sort overall
1811
1822
  sortNatural : function( a, b ) {
1812
1823
  if ( a === b ) { return 0; }
1824
+ a = a.toString();
1825
+ b = b.toString();
1813
1826
  var aNum, bNum, aFloat, bFloat, indx, max,
1814
1827
  regex = ts.regex;
1815
1828
  // first try and sort Hex codes
@@ -4,7 +4,7 @@
4
4
  ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀▀▀██
5
5
  █████▀ ▀████▀ ██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ █████▀ ██ ██ █████▀
6
6
  */
7
- /*! tablesorter (FORK) - updated 05-26-2017 (v2.28.12)*/
7
+ /*! tablesorter (FORK) - updated 06-02-2017 (v2.28.13)*/
8
8
  /* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
9
9
  (function(factory) {
10
10
  if (typeof define === 'function' && define.amd) {
@@ -2332,7 +2332,7 @@
2332
2332
 
2333
2333
  })( jQuery );
2334
2334
 
2335
- /*! Widget: stickyHeaders - updated 1/6/2017 (v2.28.4) *//*
2335
+ /*! Widget: stickyHeaders - updated 6/2/2017 (v2.28.13) *//*
2336
2336
  * Requires tablesorter v2.8+ and jQuery 1.4.3+
2337
2337
  * by Rob Garrison
2338
2338
  */
@@ -2389,6 +2389,13 @@
2389
2389
  }, options.timer);
2390
2390
  };
2391
2391
 
2392
+ function getStickyOffset(c, wo) {
2393
+ var $el = isNaN(wo.stickyHeaders_offset) ? $(wo.stickyHeaders_offset) : [];
2394
+ return $el.length ?
2395
+ $el.height() || 0 :
2396
+ parseInt(wo.stickyHeaders_offset, 10) || 0;
2397
+ }
2398
+
2392
2399
  // Sticky headers based on this awesome article:
2393
2400
  // http://css-tricks.com/13465-persistent-headers/
2394
2401
  // and https://github.com/jmosbech/StickyTableHeaders by Jonas Mosbech
@@ -2425,8 +2432,7 @@
2425
2432
  $thead = $table.children('thead:first'),
2426
2433
  $header = $thead.children('tr').not('.sticky-false').children(),
2427
2434
  $tfoot = $table.children('tfoot'),
2428
- $stickyOffset = isNaN(wo.stickyHeaders_offset) ? $(wo.stickyHeaders_offset) : '',
2429
- stickyOffset = $stickyOffset.length ? $stickyOffset.height() || 0 : parseInt(wo.stickyHeaders_offset, 10) || 0,
2435
+ stickyOffset = getStickyOffset(c, wo),
2430
2436
  // is this table nested? If so, find parent sticky header wrapper (div, not table)
2431
2437
  $nestedSticky = $table.parent().closest('.' + ts.css.table).hasClass('hasStickyHeaders') ?
2432
2438
  $table.parent().closest('table.tablesorter')[0].config.widgetOptions.$sticky.parent() : [],
@@ -2448,7 +2454,6 @@
2448
2454
  $stickyThead = $stickyTable.children('thead:first'),
2449
2455
  $stickyCells,
2450
2456
  laststate = '',
2451
- spacing = 0,
2452
2457
  setWidth = function($orig, $clone){
2453
2458
  var index, width, border, $cell, $this,
2454
2459
  $cells = $orig.filter(':visible'),
@@ -2480,11 +2485,9 @@
2480
2485
  }
2481
2486
  },
2482
2487
  resizeHeader = function() {
2483
- stickyOffset = $stickyOffset.length ? $stickyOffset.height() || 0 : parseInt(wo.stickyHeaders_offset, 10) || 0;
2484
- spacing = 0;
2485
2488
  $stickyWrap.css({
2486
2489
  left : $attach.length ? parseInt($attach.css('padding-left'), 10) || 0 :
2487
- $table.offset().left - parseInt($table.css('margin-left'), 10) - $xScroll.scrollLeft() - spacing,
2490
+ $table.offset().left - parseInt($table.css('margin-left'), 10) - $xScroll.scrollLeft(),
2488
2491
  width: $table.outerWidth()
2489
2492
  });
2490
2493
  setWidth( $table, $stickyTable );
@@ -2495,6 +2498,7 @@
2495
2498
  // Detect nested tables - fixes #724
2496
2499
  nestedStickyTop = $nestedSticky.length ? $nestedSticky.offset().top - $yScroll.scrollTop() + $nestedSticky.height() : 0;
2497
2500
  var offset = $table.offset(),
2501
+ stickyOffset = getStickyOffset(c, wo),
2498
2502
  yWindow = $.isWindow( $yScroll[0] ), // $.isWindow needs jQuery 1.4.3
2499
2503
  xWindow = $.isWindow( $xScroll[0] ),
2500
2504
  attachTop = $attach.length ?
@@ -2510,11 +2514,9 @@
2510
2514
  }
2511
2515
  if (xWindow) {
2512
2516
  // adjust when scrolling horizontally - fixes issue #143
2513
- cssSettings.left = $table.offset().left - parseInt($table.css('margin-left'), 10) - $xScroll.scrollLeft() - spacing;
2514
- }
2515
- if ($nestedSticky.length) {
2516
- cssSettings.top = ( cssSettings.top || 0 ) + stickyOffset + nestedStickyTop;
2517
+ cssSettings.left = $table.offset().left - parseInt($table.css('margin-left'), 10) - $xScroll.scrollLeft();
2517
2518
  }
2519
+ cssSettings.top = ( cssSettings.top || 0 ) + stickyOffset + nestedStickyTop;
2518
2520
  $stickyWrap
2519
2521
  .removeClass( ts.css.stickyVis + ' ' + ts.css.stickyHide )
2520
2522
  .addClass( isVisible === 'visible' ? ts.css.stickyVis : ts.css.stickyHide )
@@ -2614,6 +2616,8 @@
2614
2616
  });
2615
2617
  }
2616
2618
 
2619
+ // make sure sticky is visible if page is partially scrolled
2620
+ scrollSticky( true );
2617
2621
  $table.triggerHandler('stickyHeadersInit');
2618
2622
 
2619
2623
  },
@@ -1,4 +1,4 @@
1
- /*! Widget: stickyHeaders - updated 1/6/2017 (v2.28.4) *//*
1
+ /*! Widget: stickyHeaders - updated 6/2/2017 (v2.28.13) *//*
2
2
  * Requires tablesorter v2.8+ and jQuery 1.4.3+
3
3
  * by Rob Garrison
4
4
  */
@@ -55,6 +55,13 @@
55
55
  }, options.timer);
56
56
  };
57
57
 
58
+ function getStickyOffset(c, wo) {
59
+ var $el = isNaN(wo.stickyHeaders_offset) ? $(wo.stickyHeaders_offset) : [];
60
+ return $el.length ?
61
+ $el.height() || 0 :
62
+ parseInt(wo.stickyHeaders_offset, 10) || 0;
63
+ }
64
+
58
65
  // Sticky headers based on this awesome article:
59
66
  // http://css-tricks.com/13465-persistent-headers/
60
67
  // and https://github.com/jmosbech/StickyTableHeaders by Jonas Mosbech
@@ -91,8 +98,7 @@
91
98
  $thead = $table.children('thead:first'),
92
99
  $header = $thead.children('tr').not('.sticky-false').children(),
93
100
  $tfoot = $table.children('tfoot'),
94
- $stickyOffset = isNaN(wo.stickyHeaders_offset) ? $(wo.stickyHeaders_offset) : '',
95
- stickyOffset = $stickyOffset.length ? $stickyOffset.height() || 0 : parseInt(wo.stickyHeaders_offset, 10) || 0,
101
+ stickyOffset = getStickyOffset(c, wo),
96
102
  // is this table nested? If so, find parent sticky header wrapper (div, not table)
97
103
  $nestedSticky = $table.parent().closest('.' + ts.css.table).hasClass('hasStickyHeaders') ?
98
104
  $table.parent().closest('table.tablesorter')[0].config.widgetOptions.$sticky.parent() : [],
@@ -114,7 +120,6 @@
114
120
  $stickyThead = $stickyTable.children('thead:first'),
115
121
  $stickyCells,
116
122
  laststate = '',
117
- spacing = 0,
118
123
  setWidth = function($orig, $clone){
119
124
  var index, width, border, $cell, $this,
120
125
  $cells = $orig.filter(':visible'),
@@ -146,11 +151,9 @@
146
151
  }
147
152
  },
148
153
  resizeHeader = function() {
149
- stickyOffset = $stickyOffset.length ? $stickyOffset.height() || 0 : parseInt(wo.stickyHeaders_offset, 10) || 0;
150
- spacing = 0;
151
154
  $stickyWrap.css({
152
155
  left : $attach.length ? parseInt($attach.css('padding-left'), 10) || 0 :
153
- $table.offset().left - parseInt($table.css('margin-left'), 10) - $xScroll.scrollLeft() - spacing,
156
+ $table.offset().left - parseInt($table.css('margin-left'), 10) - $xScroll.scrollLeft(),
154
157
  width: $table.outerWidth()
155
158
  });
156
159
  setWidth( $table, $stickyTable );
@@ -161,6 +164,7 @@
161
164
  // Detect nested tables - fixes #724
162
165
  nestedStickyTop = $nestedSticky.length ? $nestedSticky.offset().top - $yScroll.scrollTop() + $nestedSticky.height() : 0;
163
166
  var offset = $table.offset(),
167
+ stickyOffset = getStickyOffset(c, wo),
164
168
  yWindow = $.isWindow( $yScroll[0] ), // $.isWindow needs jQuery 1.4.3
165
169
  xWindow = $.isWindow( $xScroll[0] ),
166
170
  attachTop = $attach.length ?
@@ -176,11 +180,9 @@
176
180
  }
177
181
  if (xWindow) {
178
182
  // adjust when scrolling horizontally - fixes issue #143
179
- cssSettings.left = $table.offset().left - parseInt($table.css('margin-left'), 10) - $xScroll.scrollLeft() - spacing;
180
- }
181
- if ($nestedSticky.length) {
182
- cssSettings.top = ( cssSettings.top || 0 ) + stickyOffset + nestedStickyTop;
183
+ cssSettings.left = $table.offset().left - parseInt($table.css('margin-left'), 10) - $xScroll.scrollLeft();
183
184
  }
185
+ cssSettings.top = ( cssSettings.top || 0 ) + stickyOffset + nestedStickyTop;
184
186
  $stickyWrap
185
187
  .removeClass( ts.css.stickyVis + ' ' + ts.css.stickyHide )
186
188
  .addClass( isVisible === 'visible' ? ts.css.stickyVis : ts.css.stickyHide )
@@ -280,6 +282,8 @@
280
282
  });
281
283
  }
282
284
 
285
+ // make sure sticky is visible if page is partially scrolled
286
+ scrollSticky( true );
283
287
  $table.triggerHandler('stickyHeadersInit');
284
288
 
285
289
  },
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jquery-tablesorter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.23.12
4
+ version: 1.23.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jun Lin
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-05-29 00:00:00.000000000 Z
12
+ date: 2017-06-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: railties