Merge branch 'master' into gh-pages

This commit is contained in:
Rob Garrison 2018-01-10 16:18:30 -06:00
commit e44babdee4
23 changed files with 132 additions and 93 deletions

View File

@ -104,6 +104,14 @@ If you would like to contribute, please...
View the [complete change log here](https://github.com/Mottie/tablesorter/wiki/Changes).
#### <a name="v2.29.3">Version 2.29.3</a> (2018-01-10)
* Docs:
* Update Bootstrap to v4-beta.3.
* Add scroller widget incompatibilities section.
* Add pager size all setting.
#### <a name="v2.29.1">Version 2.29.1</a> &amp; <a name="v2.29.2">Version 2.29.2</a> (12/13/2017)
* Core:

View File

@ -20,9 +20,9 @@
cursor: pointer;
white-space: normal;
}
.tablesorter-bootstrap:not(.table-inverse) thead:not(.thead-inverse) .tablesorter-header,
.tablesorter-bootstrap:not(.table-inverse) tfoot th,
.tablesorter-bootstrap:not(.table-inverse) tfoot td {
.tablesorter-bootstrap:not(.table-dark) thead:not(.thead-dark) .tablesorter-header,
.tablesorter-bootstrap:not(.table-dark) tfoot th,
.tablesorter-bootstrap:not(.table-dark) tfoot td {
background-color: #eee;
}
@ -51,33 +51,33 @@
}
/* white icons */
.tablesorter-bootstrap thead.thead-inverse .tablesorter-headerUnSorted:not(.sorter-false),
.tablesorter-bootstrap.table-inverse thead .tablesorter-headerUnSorted:not(.sorter-false) {
.tablesorter-bootstrap thead.thead-dark .tablesorter-headerUnSorted:not(.sorter-false),
.tablesorter-bootstrap.table-dark thead .tablesorter-headerUnSorted:not(.sorter-false) {
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE0IDIwIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTQgMTNsLTIuNS0yLjVMNyAxNWwtNC41LTQuNUwwIDEzbDcgN3pNMTQgNy41TDExLjUgMTAgNyA1LjUgMi41IDEwIDAgNy41bDctN3oiLz48L3N2Zz4=);
}
.tablesorter-bootstrap thead.thead-inverse .tablesorter-headerAsc,
.tablesorter-bootstrap.table-inverse thead .tablesorter-headerAsc {
.tablesorter-bootstrap thead.thead-dark .tablesorter-headerAsc,
.tablesorter-bootstrap.table-dark thead .tablesorter-headerAsc {
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDE0IDE0Ij48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTQgOS41TDExLjUgMTIgNyA3LjUgMi41IDEyIDAgOS41bDctN3oiLz48L3N2Zz4=);
}
.tablesorter-bootstrap thead.thead-inverse .tablesorter-headerDesc,
.tablesorter-bootstrap.table-inverse thead .tablesorter-headerDesc {
.tablesorter-bootstrap thead.thead-dark .tablesorter-headerDesc,
.tablesorter-bootstrap.table-dark thead .tablesorter-headerDesc {
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDE0IDE0Ij48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTQgNWwtMi41LTIuNS00LjUgNC41LTQuNS00LjVMMCA1IDcgMTJ6Ii8+PC9zdmc+);
}
/* since bootstrap (table-striped) uses nth-child(), we just use this to add a zebra stripe color */
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr.odd > td,
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr.tablesorter-hasChildRow.odd:hover ~ tr.tablesorter-hasChildRow.odd ~ .tablesorter-childRow.odd > td {
.tablesorter-bootstrap:not(.table-dark) > tbody > tr.odd > td,
.tablesorter-bootstrap:not(.table-dark) > tbody > tr.tablesorter-hasChildRow.odd:hover ~ tr.tablesorter-hasChildRow.odd ~ .tablesorter-childRow.odd > td {
background-color: #f9f9f9;
}
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr.hover > td,
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr.odd:hover > td,
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr.even:hover > td,
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr.tablesorter-hasChildRow.odd:hover ~ .tablesorter-childRow.odd > td,
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr.tablesorter-hasChildRow.even:hover ~ .tablesorter-childRow.even > td {
.tablesorter-bootstrap:not(.table-dark) > tbody > tr.hover > td,
.tablesorter-bootstrap:not(.table-dark) > tbody > tr.odd:hover > td,
.tablesorter-bootstrap:not(.table-dark) > tbody > tr.even:hover > td,
.tablesorter-bootstrap:not(.table-dark) > tbody > tr.tablesorter-hasChildRow.odd:hover ~ .tablesorter-childRow.odd > td,
.tablesorter-bootstrap:not(.table-dark) > tbody > tr.tablesorter-hasChildRow.even:hover ~ .tablesorter-childRow.even > td {
background-color: #f5f5f5;
}
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr.even > td,
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr.tablesorter-hasChildRow.even:hover ~ tr.tablesorter-hasChildRow.even ~ .tablesorter-childRow.even > td {
.tablesorter-bootstrap:not(.table-dark) > tbody > tr.even > td,
.tablesorter-bootstrap:not(.table-dark) > tbody > tr.tablesorter-hasChildRow.even:hover ~ tr.tablesorter-hasChildRow.even ~ .tablesorter-childRow.even > td {
background-color: #fff;
}
@ -89,30 +89,30 @@
}
/* Column Widget - column sort colors */
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr.odd td.primary {
.tablesorter-bootstrap:not(.table-dark) > tbody > tr.odd td.primary {
background-color: #bfbfbf;
}
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr td.primary,
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr.even td.primary {
.tablesorter-bootstrap:not(.table-dark) > tbody > tr td.primary,
.tablesorter-bootstrap:not(.table-dark) > tbody > tr.even td.primary {
background-color: #d9d9d9;
}
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr.odd td.secondary {
.tablesorter-bootstrap:not(.table-dark) > tbody > tr.odd td.secondary {
background-color: #d9d9d9;
}
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr td.secondary,
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr.even td.secondary {
.tablesorter-bootstrap:not(.table-dark) > tbody > tr td.secondary,
.tablesorter-bootstrap:not(.table-dark) > tbody > tr.even td.secondary {
background-color: #e6e6e6;
}
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr.odd td.tertiary {
.tablesorter-bootstrap:not(.table-dark) > tbody > tr.odd td.tertiary {
background-color: #e6e6e6;
}
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr td.tertiary,
.tablesorter-bootstrap:not(.table-inverse) > tbody > tr.even td.tertiary {
.tablesorter-bootstrap:not(.table-dark) > tbody > tr td.tertiary,
.tablesorter-bootstrap:not(.table-dark) > tbody > tr.even td.tertiary {
background-color: #f2f2f2;
}
/* caption */
.tablesorter-bootstrap:not(.table-inverse) .caption {
.tablesorter-bootstrap:not(.table-dark) .caption {
background-color: #fff;
}
@ -129,11 +129,11 @@
-o-transition: height 0.1s ease;
transition: height 0.1s ease;
}
.tablesorter-bootstrap:not(.table-inverse) .tablesorter-filter-row {
.tablesorter-bootstrap:not(.table-dark) .tablesorter-filter-row {
background-color: #efefef;
}
.tablesorter-bootstrap:not(.table-inverse) .tablesorter-filter-row input.tablesorter-filter,
.tablesorter-bootstrap:not(.table-inverse) .tablesorter-filter-row select.tablesorter-filter {
.tablesorter-bootstrap:not(.table-dark) .tablesorter-filter-row input.tablesorter-filter,
.tablesorter-bootstrap:not(.table-dark) .tablesorter-filter-row select.tablesorter-filter {
color: #333;
}
@ -144,7 +144,7 @@
transition: height 0.1s ease;
}
.tablesorter-bootstrap:not(.table-inverse) .tablesorter-filter-row td {
.tablesorter-bootstrap:not(.table-dark) .tablesorter-filter-row td {
line-height: normal;
text-align: center;
padding: 4px 6px;
@ -176,13 +176,12 @@
}
/* pager plugin */
.tablesorter-bootstrap .tablesorter-pager .pagedisplay {
border: 0;
}
/* ajax error row */
.tablesorter:not(.table-inverse) .tablesorter-errorRow td {
.tablesorter:not(.table-dark) .tablesorter-errorRow td {
text-align: center;
cursor: pointer;
background-color: #e6bf99;

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
/*! tablesorter (FORK) - updated 12-13-2017 (v2.29.2)*/
/*! tablesorter (FORK) - updated 01-10-2018 (v2.29.3)*/
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
(function(factory) {
if (typeof define === 'function' && define.amd) {
@ -10,7 +10,7 @@
}
}(function(jQuery) {
/*! TableSorter (FORK) v2.29.2 *//*
/*! TableSorter (FORK) v2.29.3 *//*
* Client-side table sorting with ease!
* @requires jQuery v1.2.6+
*
@ -34,7 +34,7 @@
'use strict';
var ts = $.tablesorter = {
version : '2.29.2',
version : '2.29.3',
parsers : [],
widgets : [],
@ -1158,7 +1158,7 @@
if ( $sorted.length ) {
for ( column = 0; column < $sorted.length; column++ ) {
if ( !$sorted[ column ].sortDisabled ) {
updateColumnSort( $sorted.eq( column ) , list[ indx ][ 1 ] );
updateColumnSort( $sorted.eq( column ), list[ indx ][ 1 ] );
}
}
}

File diff suppressed because one or more lines are too long

View File

@ -8,7 +8,7 @@
}
}(function(jQuery) {
/*! TableSorter (FORK) v2.29.2 *//*
/*! TableSorter (FORK) v2.29.3 *//*
* Client-side table sorting with ease!
* @requires jQuery v1.2.6+
*
@ -32,7 +32,7 @@
'use strict';
var ts = $.tablesorter = {
version : '2.29.2',
version : '2.29.3',
parsers : [],
widgets : [],
@ -1156,7 +1156,7 @@
if ( $sorted.length ) {
for ( column = 0; column < $sorted.length; column++ ) {
if ( !$sorted[ column ].sortDisabled ) {
updateColumnSort( $sorted.eq( column ) , list[ indx ][ 1 ] );
updateColumnSort( $sorted.eq( column ), list[ indx ][ 1 ] );
}
}
}

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
/*! tablesorter (FORK) - updated 12-13-2017 (v2.29.2)*/
/*! tablesorter (FORK) - updated 01-10-2018 (v2.29.3)*/
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
(function(factory) {
if (typeof define === 'function' && define.amd) {

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,5 @@
/*! Parser: network - updated 5/17/2015 (v2.22.0) */
!function(d){"use strict";var e,r,t=d.tablesorter;/*! IPv6 Address parser (WIP) */
d.extend(t.regex,{},{ipv4Validate:/((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})/,ipv4Extract:/([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/,ipv6Validate:/^\s*((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/i}),t.addParser({id:"ipv6Address",is:function(d){return t.regex.ipv6Validate.test(d)},format:function(d,e){var r,a,i,f,n,s=!!e&&("boolean"==typeof e?e:e&&e.config.ipv6HexFormat||!1),c="",p="";if(d=d.replace(/\s*/g,""),t.regex.ipv4Validate.test(d)){for(f=d.match(t.regex.ipv4Extract),a="",r=1;r<f.length;r++)a+=("00"+parseInt(f[r],10).toString(16)).slice(-2)+(2===r?":":"");d=d.replace(t.regex.ipv4Extract,a)}if(-1==d.indexOf("::"))c=d;else{for(i=d.split("::"),n=0,r=0;r<i.length;r++)n+=i[r].split(":").length;for(c+=i[0]+":",r=0;r<8-n;r++)c+="0000:";c+=i[1]}for(f=c.split(":"),r=0;r<8;r++)f[r]=s?("0000"+f[r]).slice(-4):("00000"+(parseInt(f[r],16)||0)).slice(-5),p+=7!=r?f[r]+":":f[r];return s?p:p.replace(/:/g,"")},type:"numeric"}),r=function(d){return/^\d{1,3}[\.]\d{1,3}[\.]\d{1,3}[\.]\d{1,3}$/.test(d)},e=function(d,e){var r,a=d?d.split("."):"",i="",f=a.length;for(r=0;r<f;r++)i+=("000"+a[r]).slice(-3);return d?t.formatFloat(i,e):d},/*! Parser: ipv4Address (a.k.a. ipAddress) */
t.addParser({id:"ipAddress",is:r,format:e,type:"numeric"}),t.addParser({id:"ipv4Address",is:r,format:e,type:"numeric"}),/*! Parser: MAC address */
t.addParser({id:"MAC",is:function(){return!1},format:function(d){var e,r,t="",a=(d||"").replace(/[:.-]/g,"").match(/\w{2}/g);if(a){for(r=a.length,e=0;e<r;e++)t+=("000"+parseInt(a[e],16)).slice(-3);return t}return d},type:"numeric"})}(jQuery);
/*! Parser: network - updated 2018-01-10 (v2.29.3) */
!function(d){"use strict";var e,t,a=d.tablesorter;/*! IPv6 Address parser (WIP) */
d.extend(a.regex,{},{ipv4Validate:/((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})/,ipv4Extract:/([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/,ipv6Validate:/^\s*((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/i}),a.defaults.ipv6HexFormat=!1,a.addParser({id:"ipv6Address",is:function(d){return a.regex.ipv6Validate.test(d)},format:function(d,e){var t,r,i,f,s,n=!!e&&("boolean"==typeof e?e:e&&e.config.ipv6HexFormat||!1),p="",o="";if(d=d.replace(/\s*/g,""),a.regex.ipv4Validate.test(d)){for(f=d.match(a.regex.ipv4Extract),r="",t=1;t<f.length;t++)r+=("00"+parseInt(f[t],10).toString(16)).slice(-2)+(2===t?":":"");d=d.replace(a.regex.ipv4Extract,r)}if(-1==d.indexOf("::"))p=d;else{for(i=d.split("::"),s=0,t=0;t<i.length;t++)s+=i[t].split(":").length;for(p+=i[0]+":",t=0;t<8-s;t++)p+="0000:";p+=i[1]}for(f=p.split(":"),t=0;t<8;t++)f[t]=n?("0000"+f[t]).slice(-4):("00000"+(parseInt(f[t],16)||0)).slice(-5),o+=7!=t?f[t]+":":f[t];return o},type:"text"}),t=function(d){return/^\d{1,3}[\.]\d{1,3}[\.]\d{1,3}[\.]\d{1,3}$/.test(d)},e=function(d){var e,t=d?d.split("."):"",a=[],r=t.length;for(e=0;e<r;e++)a.push(("000"+t[e]).slice(-3));return d?a.join("."):d},/*! Parser: ipv4Address (a.k.a. ipAddress) */
a.addParser({id:"ipAddress",is:t,format:e,type:"text"}),a.addParser({id:"ipv4Address",is:t,format:e,type:"text"}),/*! Parser: MAC address */
a.addParser({id:"MAC",is:function(){return!1},format:function(d){var e,t,a=[],r=(d||"").replace(/[:.-]/g,"").match(/\w{2}/g);if(r){for(t=r.length,e=0;e<t;e++)a.push(("000"+parseInt(r[e],16)).slice(-3));return a.join(".")}return d},type:"text"})}(jQuery);

File diff suppressed because one or more lines are too long

View File

@ -132,6 +132,13 @@
<li>Go to <a href="example-option-theme-bootstrap-v3.html">Bootstrap v3.x</a> or <a href="example-option-theme-bootstrap-v2.html">Bootstrap v2.x</a> demo.</li>
<li>Get the current version of <a href="https://getbootstrap.com/">Bootstrap</a> (now v4.x).<br><br></li>
<li>In <span class="version updated">v2.29.3</span>
<ul>
<li>Updated to use Bootstrap v4.0.0-beta.2.</li>
<li>Updated theme v4 by changing <code>table-inverse</code> to <code>table-dark</code>.</li>
<li>Updated theme v4 by changing <code>thead-inverse</code> to <code>thead-dark</code>.</li>
</ul>
</li>
<li>In <span class="version updated">v2.29.0</span>, updated to use Bootstrap v4.0.0-beta.</li>
<li>In <span class="version">v2.28.4</span>, added this Bootstrap v4.0.0-alpha.6 demo.</li>
<li>Notes:
@ -153,7 +160,7 @@
<br>
<div id="demo"><table class="table table-bordered table-striped">
<thead> <!-- add class="thead-inverse" for a dark header -->
<thead class="thead-dark"> <!-- add class="thead-light" for a light header -->
<tr>
<th>Name</th>
<th>Major</th>

View File

@ -48,11 +48,13 @@
<em>NOTE!</em>
</p>
<ul>
<li><span class="label warning">NOTE</span> The default "ipAddress" parser (also named "ipv4Address") is included with the original tablesorter; it was moved to the <code>parser-network.js</code> file in <span class="version">v2.18.0</span>.</li>
<li><span class="label warning">NOTE</span> The default "ipAddress" parser (also named "ipv4Address") is included with the original tablesorter; it was moved to the <code>parser-network.js</code> file in <span class="version">v2.18.0</span>.<br><br></li>
<li>In <span class="version">v2.29.3</span>, all included parsers were changed to return a text representation of the network address. The specific issue was that the parsed IPv6 numerical values were too large for javascript to properly recognize the number.</li>
<li>A parser for IPv6 was added in <span class="version">v2.12</span> and named "ipv6Address":
<ul>
<li>Unlike some other custom parsers, this one will auto-detect &amp; check for a valid IPv6 address since the same address can be represented in many different ways. Some examples are shown in the demo table below.</li>
<li>IPv6 addresses are stored in the cache in their canonical decimal form, without the colons, for faster &amp; easier numerical sorting.</li>
<li>IPv6 addresses are stored in the cache in their canonical decimal form, for faster &amp; easier numerical sorting.</li>
<li><a href="../test.html">Extensive unit tests</a> are included with this parser.</li>
</ul>
</li>

View File

@ -316,6 +316,23 @@ $(function() {
</ul>
</div>
<h3><a href="#">Incompatibilities</a></h3>
<div>
The scroller widget is <em>known</em> to be currently incompatible with these widgets (there may be more):
<ul>
<li>Editable</li>
<li>Math</li>
<li>Reorder</li>
<li>Resizable</li>
<li>StickyHeaders</li>
</ul>
There is partial compatibility with these widgets:
<ul>
<li>Filter, except for custom <a href="index.html#widget-filter-functions"><code>filter_functions</code></a> and <a href="index.html#widget-filter-formatter"><code>filter_formatter</code></a>
</li>
</ul>
</div>
<h3><a href="#">Options</a></h3>
<div>
<h4>Scroller widget defaults (added inside of tablesorter <code>widgetOptions</code>)</h4>

View File

@ -354,7 +354,7 @@
<h4>Theming</h4>
<ul>
<li>The <a href="example-option-theme-bootstrap-v2.html">Bootstrap v2.x</a>, <a href="example-option-theme-bootstrap-v3.html">Bootstrap v3.x</a> &amp; <a href="example-widget-ui-theme.html">jQuery UI</a> themes require the uitheme widget.</li>
<li>The <a href="example-option-theme-bootstrap-v4.html">Bootstrap v4.x</a> theme (<span class="version">v2.28.4</span>) does not require the uitheme widget!</li>
<li>The <a href="example-option-theme-bootstrap-v4.html">Bootstrap v4.x</a> theme (<span class="version">v2.28.4</span>; <span class="version updated">2.29.3</span>) does not require the uitheme widget!</li>
<li>Set up a <a href="example-option-theme-metro-style.html">Metro style theme</a> (<span class="version">v2.16.4</span>).</li>
<li>Set up a <a href="example-option-theme-materialize.html">Materialize theme</a> (<span class="version">v2.27.0</span>).</li>
<li>Use css to <a href="example-css-highlighting.html">highlight rows &amp; columns</a> (<span class="version">v2.20.0</span>); css file added (<span class="version">v2.28.6</span>).</li>
@ -524,7 +524,7 @@
<li><a href="example-widget-ui-theme.html">jQuery UI theme</a> (v2.0.9; <span class="version updated">v2.27.0</span>).</li>
<li><a href="example-option-theme-bootstrap-v2.html">Bootstrap v2.x</a> (demo added <span class="version">v2.22.0</span>).</li>
<li><a href="example-option-theme-bootstrap-v3.html">Bootstrap v3.x</a> (v2.4.0; <span class="version updated">v2.28.4</span>).</li>
<li><a href="example-option-theme-bootstrap-v4.html">Bootstrap v4.x</a> (<span class="version updated">v2.29.0</span>) <span class="label warning">NOTE</span> <strong>does not</strong> require the uitheme widget!</li>
<li><a href="example-option-theme-bootstrap-v4.html">Bootstrap v4.x</a> (<span class="version updated">v2.29.3</span>) <span class="label warning">NOTE</span> <strong>does not</strong> require the uitheme widget!</li>
</ul>
</li>
<li><span class="label label-info">Beta</span> <a href="example-widget-vertical-group.html">Vertical Group Widget</a> (<span class="version">v2.29.2</span>).</li>
@ -547,7 +547,7 @@
<li><a href="example-parsers-leading-zeros.html">Leading zeros parser</a> (<span class="version">v2.28.6</span>).</li>
<li><a href="example-parsers-metric.html">Metric parser</a> (<span class="version">v2.8</span>).</li>
<li><a href="example-parsers-named-numbers.html">Named Numbers parser</a> (<span class="version">v2.18.0</span>; <span class="version updated">v2.22.0</span>).</li>
<li><a href="example-parsers-ip-address.html">Network (IPv4, IPv6 and MAC address parser</a> (<span class="version">v2.12</span>; <span class="version updated">v2.22.0</span>; <span class="label warning">NOTE</span> "ipAddress" parser moved to this file in v2.18.0).</li>
<li><a href="example-parsers-ip-address.html">Network (IPv4, IPv6 and MAC address parser</a> (<span class="version">v2.12</span>; <span class="version updated">v2.29.3</span>; <span class="label warning">NOTE</span> "ipAddress" parser moved to this file in v2.18.0).</li>
<li><a href="example-parsers-roman.html">Roman Numeral parser</a> (<span class="version">v2.17.3</span>).</li>
<li><a href="example-option-textsorter-semver.html">Semantic Versioning (Semver) sorting</a> (<span class="version">v2.14.3</span>; <span class="version updated">v2.21.4</span>).</li>
</ul>
@ -4724,6 +4724,7 @@ $('table').trigger('search', false);</pre></div>
<div class="collapsible">
<br>
<span class="label label-info">Note</span> The pager widget equivalent option is within the <code>widgetOptions</code> and accessed via <code>widgetOptions.pager_size</code>
<p>Set this option to <code>'all'</code> to show all rows (added <span class="version">v2.26.0</span>).</p>
</div>
</td>
<td><a href="example-pager.html">Example</a></td>

File diff suppressed because one or more lines are too long

View File

@ -4,7 +4,7 @@
*/
/*! tablesorter (FORK) - updated 12-13-2017 (v2.29.2)*/
/*! tablesorter (FORK) - updated 01-10-2018 (v2.29.3)*/
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
(function(factory) {
if (typeof define === 'function' && define.amd) {
@ -16,7 +16,7 @@
}
}(function(jQuery) {
/*! TableSorter (FORK) v2.29.2 *//*
/*! TableSorter (FORK) v2.29.3 *//*
* Client-side table sorting with ease!
* @requires jQuery v1.2.6+
*
@ -40,7 +40,7 @@
'use strict';
var ts = $.tablesorter = {
version : '2.29.2',
version : '2.29.3',
parsers : [],
widgets : [],
@ -1164,7 +1164,7 @@
if ( $sorted.length ) {
for ( column = 0; column < $sorted.length; column++ ) {
if ( !$sorted[ column ].sortDisabled ) {
updateColumnSort( $sorted.eq( column ) , list[ indx ][ 1 ] );
updateColumnSort( $sorted.eq( column ), list[ indx ][ 1 ] );
}
}
}

View File

@ -1,4 +1,4 @@
/*! TableSorter (FORK) v2.29.2 *//*
/*! TableSorter (FORK) v2.29.3 *//*
* Client-side table sorting with ease!
* @requires jQuery v1.2.6+
*
@ -22,7 +22,7 @@
'use strict';
var ts = $.tablesorter = {
version : '2.29.2',
version : '2.29.3',
parsers : [],
widgets : [],
@ -1146,7 +1146,7 @@
if ( $sorted.length ) {
for ( column = 0; column < $sorted.length; column++ ) {
if ( !$sorted[ column ].sortDisabled ) {
updateColumnSort( $sorted.eq( column ) , list[ indx ][ 1 ] );
updateColumnSort( $sorted.eq( column ), list[ indx ][ 1 ] );
}
}
}

View File

@ -4,7 +4,7 @@
*/
/*! tablesorter (FORK) - updated 12-13-2017 (v2.29.2)*/
/*! tablesorter (FORK) - updated 01-10-2018 (v2.29.3)*/
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
(function(factory) {
if (typeof define === 'function' && define.amd) {

View File

@ -1,4 +1,4 @@
/*! Parser: network - updated 5/17/2015 (v2.22.0) */
/*! Parser: network - updated 2018-01-10 (v2.29.3) */
/* IPv4, IPv6 and MAC Addresses */
/*global jQuery: false */
;(function($){
@ -23,6 +23,10 @@
ipv6Validate : /^\s*((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/i
});
// used for internal testing; it's not useful to set this to true because the natural sort algorithm
// is set up to only sort solitary hex values ("ffff") vs separated hex values ("ffff.ffff")
ts.defaults.ipv6HexFormat = false;
ts.addParser({
id: 'ipv6Address',
is: function(s) {
@ -72,10 +76,10 @@
('00000' + (parseInt(groups[i], 16) || 0)).slice(-5);
expandedAddress += ( i != validGroupCount - 1) ? groups[i] + ':' : groups[i];
}
return hex ? expandedAddress : expandedAddress.replace(/:/g, '');
return expandedAddress;
},
// uses natural sort hex compare
type: 'numeric'
type: 'text'
});
// ipv4 address
@ -83,14 +87,15 @@
ipv4Is = function(s) {
return (/^\d{1,3}[\.]\d{1,3}[\.]\d{1,3}[\.]\d{1,3}$/).test(s);
};
ipv4Format = function(s, table) {
var i, a = s ? s.split('.') : '',
r = '',
ipv4Format = function(s) {
var i,
a = s ? s.split('.') : '',
r = [],
l = a.length;
for (i = 0; i < l; i++) {
r += ('000' + a[i]).slice(-3);
r.push(('000' + a[i]).slice(-3));
}
return s ? ts.formatFloat(r, table) : s;
return s ? r.join('.') : s;
};
/*! Parser: ipv4Address (a.k.a. ipAddress) */
@ -99,13 +104,13 @@
id: 'ipAddress',
is: ipv4Is,
format: ipv4Format,
type: 'numeric'
type: 'text'
});
ts.addParser({
id: 'ipv4Address',
is: ipv4Is,
format: ipv4Format,
type: 'numeric'
type: 'text'
});
/*! Parser: MAC address */
@ -118,21 +123,21 @@
},
format : function( str ) {
var indx, len,
mac = '',
mac = [],
val = ( str || '' ).replace( /[:.-]/g, '' ).match( /\w{2}/g );
if ( val ) {
// not assuming all mac addresses in the column will end up with six
// groups of two to process, so it's not actually validating the address
len = val.length;
for ( indx = 0; indx < len; indx++ ) {
mac += ( '000' + parseInt( val[ indx ], 16 ) ).slice( -3 );
mac.push(( '000' + parseInt( val[ indx ], 16 ) ).slice( -3 ));
}
return mac;
return mac.join('.');
}
return str;
},
// uses natural sort hex compare
type : 'numeric'
type : 'text'
});
})( jQuery );

View File

@ -1,7 +1,7 @@
{
"name": "tablesorter",
"title": "tablesorter",
"version": "2.29.2",
"version": "2.29.3",
"description": "tablesorter (FORK) is a jQuery plugin for turning a standard HTML table with THEAD and TBODY tags into a sortable table without page refreshes. tablesorter can successfully parse and sort many types of data including linked data in a cell.",
"author": {
"name": "Christian Bach",
@ -20,7 +20,7 @@
"docs": "https://mottie.github.io/tablesorter/docs/index.html",
"demo": "https://github.com/Mottie/tablesorter/wiki",
"dependencies": {
"jquery": ">=1.2.6"
"jquery": ">=3.2.1"
},
"keywords": [
"table",
@ -61,7 +61,7 @@
"grunt-contrib-cssmin": "^2.2.1",
"grunt-contrib-jshint": "^1.1.0",
"grunt-contrib-qunit": "^2.0.0",
"grunt-contrib-uglify": "^3.0.1",
"grunt-contrib-uglify": "^3.3.0",
"grunt-contrib-watch": "^1.0.0",
"grunt-htmlhint": "^0.9.13",
"grunt-jscs": "^3.0.1",

View File

@ -1,7 +1,7 @@
{
"name": "tablesorter",
"title": "tablesorter",
"version": "2.29.2",
"version": "2.29.3",
"description": "tablesorter is a jQuery plugin for turning a standard HTML table with THEAD and TBODY tags into a sortable table without page refreshes. tablesorter can successfully parse and sort many types of data including linked data in a cell.\n\nThis forked version adds lots of new enhancements including: alphanumeric sorting, pager callback functons, multiple widgets providing column styling, ui theme application, sticky headers, column filters and resizer, as well as extended documentation with a lot more demos.",
"author": {
"name": "Christian Bach",

View File

@ -489,7 +489,7 @@ jQuery(function($){
sample1 = {
'text' : { 'test': 'test', 'TesT': 'test', '\u00e1 test': '\u00e1 test' },
'currency' : { '\u00a31': 1, '($2.23)': -2.23, '5\u20ac': 5, '(11\u00a4)': -11, '500\u00a5': 500, '25\u00a2': 25, '$1,000.50': 1000.5 },
'ipAddress' : { '255.255.255.255': 255255255255, '32.32.32.32': 32032032032, '1.1.1.1': 1001001001 },
'ipAddress' : { '255.255.255.255': '255.255.255.255', '32.32.32.32': '032.032.032.032', '1.1.1.1': '001.001.001.001' },
'url' : { 'http://google.com': 'google.com', 'ftp://fred.com': 'fred.com', 'https://github.com': 'github.com' },
'isoDate' : { '2012/12/12': returnTime('2012/12/12'), '2012-12/12': returnTime('2012/12/12'), '2013-1-1': returnTime('2013/1/1'), '2013/1/1 12:34:56 AM': returnTime('2013/1/1 12:34:56 AM') },
'percent' : { '100%': 100, '22%': 22, '%2': 2, '2 %': 2, '(4%)': -4, '1,234.56 %': 1234.56 },