jquery-datatables 1.10.19.1 → 1.10.20
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.
- checksums.yaml +4 -4
- data/.gitattributes +1 -0
- data/README.md +28 -1
- data/app/assets/javascripts/datatables/dataTables.uikit.js +2 -2
- data/app/assets/javascripts/datatables/extensions/AutoFill/dataTables.autoFill.js +42 -29
- data/app/assets/javascripts/datatables/extensions/Buttons/buttons.bootstrap.js +1 -1
- data/app/assets/javascripts/datatables/extensions/Buttons/buttons.bootstrap4.js +8 -2
- data/app/assets/javascripts/datatables/extensions/Buttons/buttons.colVis.js +6 -3
- data/app/assets/javascripts/datatables/extensions/Buttons/buttons.foundation.js +5 -4
- data/app/assets/javascripts/datatables/extensions/Buttons/buttons.html5.js +58 -6
- data/app/assets/javascripts/datatables/extensions/Buttons/buttons.print.js +16 -5
- data/app/assets/javascripts/datatables/extensions/Buttons/buttons.semanticui.js +1 -1
- data/app/assets/javascripts/datatables/extensions/Buttons/dataTables.buttons.js +267 -152
- data/app/assets/javascripts/datatables/extensions/ColReorder/colReorder.foundation.js +1 -1
- data/app/assets/javascripts/datatables/extensions/ColReorder/dataTables.colReorder.js +121 -52
- data/app/assets/javascripts/datatables/extensions/FixedColumns/dataTables.fixedColumns.js +32 -5
- data/app/assets/javascripts/datatables/extensions/KeyTable/dataTables.keyTable.js +166 -63
- data/app/assets/javascripts/datatables/extensions/KeyTable/keyTable.foundation.js +1 -1
- data/app/assets/javascripts/datatables/extensions/RowGroup/dataTables.rowGroup.js +105 -53
- data/app/assets/javascripts/datatables/extensions/RowGroup/rowGroup.foundation.js +1 -1
- data/app/assets/javascripts/datatables/extensions/RowGroup/{rowGroup.semanicui.js → rowGroup.semanticui.js} +0 -0
- data/app/assets/javascripts/datatables/extensions/RowReorder/dataTables.rowReorder.js +10 -9
- data/app/assets/javascripts/datatables/extensions/RowReorder/rowReorder.foundation.js +1 -1
- data/app/assets/javascripts/datatables/extensions/Scroller/dataTables.scroller.js +519 -636
- data/app/assets/javascripts/datatables/extensions/Scroller/scroller.foundation.js +1 -1
- data/app/assets/javascripts/datatables/extensions/Select/dataTables.select.js +49 -18
- data/app/assets/javascripts/datatables/extensions/Select/select.foundation.js +1 -1
- data/app/assets/javascripts/datatables/jquery.dataTables.js +97 -60
- data/app/assets/javascripts/datatables/plugins/api/average.js +7 -6
- data/app/assets/javascripts/datatables/plugins/api/sum.js +7 -6
- data/app/assets/javascripts/datatables/plugins/pagination/ellipses.js +160 -0
- data/app/assets/javascripts/datatables/plugins/pagination/extjs.js +137 -0
- data/app/assets/javascripts/datatables/plugins/pagination/four_button.js +110 -0
- data/app/assets/javascripts/datatables/plugins/pagination/full_numbers_no_ellipses.js +59 -0
- data/app/assets/javascripts/datatables/plugins/pagination/input.js +22 -19
- data/app/assets/javascripts/datatables/plugins/pagination/scrolling.js +130 -0
- data/app/assets/javascripts/datatables/plugins/pagination/select.js +97 -0
- data/app/assets/javascripts/datatables/plugins/pagination/simple_incremental_bootstrap.js +154 -0
- data/app/assets/javascripts/datatables/plugins/pagination/simple_numbers_no_ellipses.js +59 -0
- data/app/assets/javascripts/datatables/plugins/search/dataTables.alphabetSearch.js +440 -399
- data/app/assets/javascripts/datatables/plugins/sorting/enum.js +51 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/date-dd-MMM-yyyy.js +63 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/date-de.js +125 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/date-eu.js +64 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/date-euro.js +48 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/date-uk.js +35 -12
- data/app/assets/javascripts/datatables/plugins/type-detection/datetime-moment.js +74 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/datetime-us.js +86 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/file-size.js +37 -13
- data/app/assets/javascripts/datatables/plugins/type-detection/ip-address.js +113 -11
- data/app/assets/javascripts/datatables/plugins/type-detection/numString.js +63 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/percent.js +34 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/time-elapsed-dhms.js +42 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/time.js +56 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/title-numeric.js +40 -0
- data/app/assets/javascripts/datatables/plugins/type-detection/title-string.js +36 -0
- data/app/assets/stylesheets/datatables/extensions/AutoFill/autoFill.dataTables.scss +10 -3
- data/app/assets/stylesheets/datatables/extensions/Buttons/buttons.bootstrap.scss +12 -3
- data/app/assets/stylesheets/datatables/extensions/Buttons/buttons.bootstrap4.scss +13 -6
- data/app/assets/stylesheets/datatables/extensions/Buttons/buttons.dataTables.scss +2 -0
- data/app/assets/stylesheets/datatables/extensions/Buttons/buttons.foundation.scss +5 -1
- data/app/assets/stylesheets/datatables/extensions/Buttons/buttons.jqueryui.scss +1 -0
- data/app/assets/stylesheets/datatables/extensions/Buttons/buttons.semanticui.scss +2 -1
- data/app/assets/stylesheets/datatables/extensions/Buttons/common.scss +10 -0
- data/app/assets/stylesheets/datatables/extensions/Buttons/mixins.scss +42 -30
- data/app/assets/stylesheets/datatables/extensions/FixedColumns/fixedColumns.bootstrap.scss +11 -7
- data/app/assets/stylesheets/datatables/extensions/FixedColumns/fixedColumns.foundation.scss +1 -0
- data/app/assets/stylesheets/datatables/extensions/KeyTable/keyTable.dataTables.scss +13 -5
- data/app/assets/stylesheets/datatables/extensions/RowGroup/rowGroup.dataTables.scss +20 -2
- data/app/assets/stylesheets/datatables/extensions/Scroller/scroller.dataTables.scss +15 -2
- data/lib/jquery-datatables/version.rb +1 -1
- metadata +26 -12
- data/app/assets/javascripts/datatables/dataTables.bootstrap2.js +0 -162
- data/app/assets/javascripts/datatables/extensions/ColReorder/colReorder.semanicui.js +0 -38
- data/app/assets/javascripts/datatables/extensions/FixedColumns/fixedColumns.semanicui.js +0 -38
- data/app/assets/javascripts/datatables/extensions/FixedHeader/fixedHeader.semanicui.js +0 -38
- data/app/assets/javascripts/datatables/extensions/KeyTable/keyTable.semanicui.js +0 -38
- data/app/assets/javascripts/datatables/extensions/RowReorder/rowReorder.semanicui.js +0 -38
- data/app/assets/stylesheets/datatables/dataTables.bootstrap2.scss +0 -178
@@ -1,16 +1,16 @@
|
|
1
|
-
/*! Select for DataTables 1.
|
2
|
-
* 2015-
|
1
|
+
/*! Select for DataTables 1.3.1
|
2
|
+
* 2015-2019 SpryMedia Ltd - datatables.net/license/mit
|
3
3
|
*/
|
4
4
|
|
5
5
|
/**
|
6
6
|
* @summary Select for DataTables
|
7
7
|
* @description A collection of API methods, events and buttons for DataTables
|
8
8
|
* that provides selection options of the items in a DataTable
|
9
|
-
* @version 1.
|
9
|
+
* @version 1.3.1
|
10
10
|
* @file dataTables.select.js
|
11
11
|
* @author SpryMedia Ltd (www.sprymedia.co.uk)
|
12
12
|
* @contact datatables.net/forums
|
13
|
-
* @copyright Copyright 2015-
|
13
|
+
* @copyright Copyright 2015-2019 SpryMedia Ltd.
|
14
14
|
*
|
15
15
|
* This source file is free software, available under the following license:
|
16
16
|
* MIT license - http://datatables.net/license/mit
|
@@ -54,7 +54,7 @@ var DataTable = $.fn.dataTable;
|
|
54
54
|
// Version information for debugger
|
55
55
|
DataTable.select = {};
|
56
56
|
|
57
|
-
DataTable.select.version = '1.
|
57
|
+
DataTable.select.version = '1.3.1';
|
58
58
|
|
59
59
|
DataTable.select.init = function ( dt ) {
|
60
60
|
var ctx = dt.settings()[0];
|
@@ -68,6 +68,7 @@ DataTable.select.init = function ( dt ) {
|
|
68
68
|
var items = 'row';
|
69
69
|
var style = 'api';
|
70
70
|
var blurable = false;
|
71
|
+
var toggleable = true;
|
71
72
|
var info = true;
|
72
73
|
var selector = 'td, th';
|
73
74
|
var className = 'selected';
|
@@ -88,6 +89,10 @@ DataTable.select.init = function ( dt ) {
|
|
88
89
|
if ( opts.blurable !== undefined ) {
|
89
90
|
blurable = opts.blurable;
|
90
91
|
}
|
92
|
+
|
93
|
+
if ( opts.toggleable !== undefined ) {
|
94
|
+
toggleable = opts.toggleable;
|
95
|
+
}
|
91
96
|
|
92
97
|
if ( opts.info !== undefined ) {
|
93
98
|
info = opts.info;
|
@@ -101,6 +106,10 @@ DataTable.select.init = function ( dt ) {
|
|
101
106
|
style = opts.style;
|
102
107
|
setStyle = true;
|
103
108
|
}
|
109
|
+
else {
|
110
|
+
style = 'os';
|
111
|
+
setStyle = true;
|
112
|
+
}
|
104
113
|
|
105
114
|
if ( opts.selector !== undefined ) {
|
106
115
|
selector = opts.selector;
|
@@ -115,6 +124,7 @@ DataTable.select.init = function ( dt ) {
|
|
115
124
|
dt.select.items( items );
|
116
125
|
dt.select.style( style );
|
117
126
|
dt.select.blurable( blurable );
|
127
|
+
dt.select.toggleable( toggleable );
|
118
128
|
dt.select.info( info );
|
119
129
|
ctx._select.className = className;
|
120
130
|
|
@@ -176,15 +186,17 @@ The `_select` object contains the following properties:
|
|
176
186
|
|
177
187
|
```
|
178
188
|
{
|
179
|
-
items:string
|
180
|
-
|
181
|
-
|
182
|
-
style:string
|
183
|
-
|
184
|
-
blurable:boolean
|
185
|
-
|
186
|
-
|
187
|
-
|
189
|
+
items:string - Can be `rows`, `columns` or `cells`. Defines what item
|
190
|
+
will be selected if the user is allowed to activate row
|
191
|
+
selection using the mouse.
|
192
|
+
style:string - Can be `none`, `single`, `multi` or `os`. Defines the
|
193
|
+
interaction style when selecting items
|
194
|
+
blurable:boolean - If row selection can be cleared by clicking outside of
|
195
|
+
the table
|
196
|
+
toggleable:boolean - If row selection can be cancelled by repeated clicking
|
197
|
+
on the row
|
198
|
+
info:boolean - If the selection summary should be shown in the table
|
199
|
+
information elements
|
188
200
|
}
|
189
201
|
```
|
190
202
|
|
@@ -310,7 +322,7 @@ function disableMouseSelection( dt )
|
|
310
322
|
.off( 'mouseup.dtSelect', selector )
|
311
323
|
.off( 'click.dtSelect', selector );
|
312
324
|
|
313
|
-
$('body').off( 'click.dtSelect' + dt.table().node()
|
325
|
+
$('body').off( 'click.dtSelect' + _safeId(dt.table().node()) );
|
314
326
|
}
|
315
327
|
|
316
328
|
/**
|
@@ -353,7 +365,7 @@ function enableMouseSelection ( dt )
|
|
353
365
|
|
354
366
|
// If text was selected (click and drag), then we shouldn't change
|
355
367
|
// the row's selected state
|
356
|
-
if (
|
368
|
+
if ( matchSelection ) {
|
357
369
|
var selection = window.getSelection();
|
358
370
|
|
359
371
|
// If the element that contains the selection is not in the table, we can ignore it
|
@@ -366,7 +378,7 @@ function enableMouseSelection ( dt )
|
|
366
378
|
}
|
367
379
|
|
368
380
|
var ctx = dt.settings()[0];
|
369
|
-
var wrapperClass = dt.settings()[0].oClasses.sWrapper.replace(/
|
381
|
+
var wrapperClass = $.trim(dt.settings()[0].oClasses.sWrapper).replace(/ +/g, '.');
|
370
382
|
|
371
383
|
// Ignore clicks inside a sub-table
|
372
384
|
if ( $(e.target).closest('div.'+wrapperClass)[0] != dt.table().container() ) {
|
@@ -406,7 +418,7 @@ function enableMouseSelection ( dt )
|
|
406
418
|
} );
|
407
419
|
|
408
420
|
// Blurable
|
409
|
-
$('body').on( 'click.dtSelect' + dt.table().node()
|
421
|
+
$('body').on( 'click.dtSelect' + _safeId(dt.table().node()), function ( e ) {
|
410
422
|
if ( ctx._select.blurable ) {
|
411
423
|
// If the click was inside the DataTables container, don't blur
|
412
424
|
if ( $(e.target).parents().filter( dt.table().container() ).length ) {
|
@@ -666,7 +678,12 @@ function clear( ctx, force )
|
|
666
678
|
function typeSelect ( e, dt, ctx, type, idx )
|
667
679
|
{
|
668
680
|
var style = dt.select.style();
|
681
|
+
var toggleable = dt.select.toggleable();
|
669
682
|
var isSelected = dt[type]( idx, { selected: true } ).any();
|
683
|
+
|
684
|
+
if ( isSelected && ! toggleable ) {
|
685
|
+
return;
|
686
|
+
}
|
670
687
|
|
671
688
|
if ( style === 'os' ) {
|
672
689
|
if ( e.ctrlKey || e.metaKey ) {
|
@@ -718,6 +735,10 @@ function typeSelect ( e, dt, ctx, type, idx )
|
|
718
735
|
}
|
719
736
|
}
|
720
737
|
|
738
|
+
function _safeId( node ) {
|
739
|
+
return node.id.replace(/[^a-zA-Z0-9\-\_]/g, '-');
|
740
|
+
}
|
741
|
+
|
721
742
|
|
722
743
|
|
723
744
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
@@ -805,6 +826,16 @@ apiRegister( 'select.blurable()', function ( flag ) {
|
|
805
826
|
} );
|
806
827
|
} );
|
807
828
|
|
829
|
+
apiRegister( 'select.toggleable()', function ( flag ) {
|
830
|
+
if ( flag === undefined ) {
|
831
|
+
return this.context[0]._select.toggleable;
|
832
|
+
}
|
833
|
+
|
834
|
+
return this.iterator( 'table', function ( ctx ) {
|
835
|
+
ctx._select.toggleable = flag;
|
836
|
+
} );
|
837
|
+
} );
|
838
|
+
|
808
839
|
apiRegister( 'select.info()', function ( flag ) {
|
809
840
|
if ( info === undefined ) {
|
810
841
|
return this.context[0]._select.info;
|
@@ -1,15 +1,15 @@
|
|
1
|
-
/*! DataTables 1.10.
|
2
|
-
* ©2008-
|
1
|
+
/*! DataTables 1.10.20
|
2
|
+
* ©2008-2019 SpryMedia Ltd - datatables.net/license
|
3
3
|
*/
|
4
4
|
|
5
5
|
/**
|
6
6
|
* @summary DataTables
|
7
7
|
* @description Paginate, search and order HTML tables
|
8
|
-
* @version 1.10.
|
8
|
+
* @version 1.10.20
|
9
9
|
* @file jquery.dataTables.js
|
10
10
|
* @author SpryMedia Ltd
|
11
11
|
* @contact www.datatables.net
|
12
|
-
* @copyright Copyright 2008-
|
12
|
+
* @copyright Copyright 2008-2019 SpryMedia Ltd.
|
13
13
|
*
|
14
14
|
* This source file is free software, available under the following license:
|
15
15
|
* MIT license - http://datatables.net/license
|
@@ -898,7 +898,7 @@
|
|
898
898
|
_fnCamelToHungarian( defaults.column, defaults.column, true );
|
899
899
|
|
900
900
|
/* Setting up the initialisation object */
|
901
|
-
_fnCamelToHungarian( defaults, $.extend( oInit, $this.data() ) );
|
901
|
+
_fnCamelToHungarian( defaults, $.extend( oInit, $this.data() ), true );
|
902
902
|
|
903
903
|
|
904
904
|
|
@@ -1334,7 +1334,7 @@
|
|
1334
1334
|
var _api_registerPlural; // DataTable.Api.registerPlural
|
1335
1335
|
|
1336
1336
|
var _re_dic = {};
|
1337
|
-
var _re_new_lines = /[\r\n]/g;
|
1337
|
+
var _re_new_lines = /[\r\n\u2028]/g;
|
1338
1338
|
var _re_html = /<.*?>/g;
|
1339
1339
|
|
1340
1340
|
// This is not strict ISO8601 - Date.parse() is quite lax, although
|
@@ -2024,7 +2024,7 @@
|
|
2024
2024
|
_fnCompatCols( oOptions );
|
2025
2025
|
|
2026
2026
|
// Map camel case parameters to their Hungarian counterparts
|
2027
|
-
_fnCamelToHungarian( DataTable.defaults.column, oOptions );
|
2027
|
+
_fnCamelToHungarian( DataTable.defaults.column, oOptions, true );
|
2028
2028
|
|
2029
2029
|
/* Backwards compatibility for mDataProp */
|
2030
2030
|
if ( oOptions.mDataProp !== undefined && !oOptions.mData )
|
@@ -3078,7 +3078,7 @@
|
|
3078
3078
|
rowData = row._aData,
|
3079
3079
|
cells = [],
|
3080
3080
|
nTr, nTd, oCol,
|
3081
|
-
i, iLen;
|
3081
|
+
i, iLen, create;
|
3082
3082
|
|
3083
3083
|
if ( row.nTr === null )
|
3084
3084
|
{
|
@@ -3099,8 +3099,9 @@
|
|
3099
3099
|
for ( i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
|
3100
3100
|
{
|
3101
3101
|
oCol = oSettings.aoColumns[i];
|
3102
|
+
create = nTrIn ? false : true;
|
3102
3103
|
|
3103
|
-
nTd =
|
3104
|
+
nTd = create ? document.createElement( oCol.sCellType ) : anTds[i];
|
3104
3105
|
nTd._DT_CellIndex = {
|
3105
3106
|
row: iRow,
|
3106
3107
|
column: i
|
@@ -3109,9 +3110,9 @@
|
|
3109
3110
|
cells.push( nTd );
|
3110
3111
|
|
3111
3112
|
// Need to create the HTML if new, or if a rendering function is defined
|
3112
|
-
if ( (!nTrIn || oCol.mRender || oCol.mData !== i) &&
|
3113
|
+
if ( create || ((!nTrIn || oCol.mRender || oCol.mData !== i) &&
|
3113
3114
|
(!$.isPlainObject(oCol.mData) || oCol.mData._ !== i+'.display')
|
3114
|
-
) {
|
3115
|
+
)) {
|
3115
3116
|
nTd.innerHTML = _fnGetCellData( oSettings, iRow, i, 'display' );
|
3116
3117
|
}
|
3117
3118
|
|
@@ -4406,6 +4407,7 @@
|
|
4406
4407
|
// New search - start from the master array
|
4407
4408
|
if ( invalidated ||
|
4408
4409
|
force ||
|
4410
|
+
regex ||
|
4409
4411
|
prevSearch.length > input.length ||
|
4410
4412
|
input.indexOf(prevSearch) !== 0 ||
|
4411
4413
|
settings.bSorted // On resort, the display master needs to be
|
@@ -4529,7 +4531,7 @@
|
|
4529
4531
|
}
|
4530
4532
|
|
4531
4533
|
if ( cellData.replace ) {
|
4532
|
-
cellData = cellData.replace(/[\r\n]/g, '');
|
4534
|
+
cellData = cellData.replace(/[\r\n\u2028]/g, '');
|
4533
4535
|
}
|
4534
4536
|
|
4535
4537
|
filterData.push( cellData );
|
@@ -5457,7 +5459,7 @@
|
|
5457
5459
|
table.children('colgroup').insertBefore( table.children('thead') );
|
5458
5460
|
|
5459
5461
|
/* Adjust the position of the header in case we loose the y-scrollbar */
|
5460
|
-
divBody.scroll
|
5462
|
+
divBody.trigger('scroll');
|
5461
5463
|
|
5462
5464
|
// If sorting or filtering has occurred, jump the scrolling back to the top
|
5463
5465
|
// only if we aren't holding the position
|
@@ -6410,7 +6412,7 @@
|
|
6410
6412
|
|
6411
6413
|
_fnCallbackFire( settings, 'aoStateLoaded', 'stateLoaded', [settings, s] );
|
6412
6414
|
callback();
|
6413
|
-
}
|
6415
|
+
};
|
6414
6416
|
|
6415
6417
|
if ( ! settings.oFeatures.bStateSave ) {
|
6416
6418
|
callback();
|
@@ -6890,7 +6892,7 @@
|
|
6890
6892
|
var ctxSettings = function ( o ) {
|
6891
6893
|
var a = _toSettings( o );
|
6892
6894
|
if ( a ) {
|
6893
|
-
settings
|
6895
|
+
settings.push.apply( settings, a );
|
6894
6896
|
}
|
6895
6897
|
};
|
6896
6898
|
|
@@ -7188,8 +7190,7 @@
|
|
7188
7190
|
|
7189
7191
|
var
|
7190
7192
|
i, ien,
|
7191
|
-
|
7192
|
-
struct, inner,
|
7193
|
+
struct,
|
7193
7194
|
methodScoping = function ( scope, fn, struc ) {
|
7194
7195
|
return function () {
|
7195
7196
|
var ret = fn.apply( scope, arguments );
|
@@ -7204,9 +7205,9 @@
|
|
7204
7205
|
struct = ext[i];
|
7205
7206
|
|
7206
7207
|
// Value
|
7207
|
-
obj[ struct.name ] =
|
7208
|
+
obj[ struct.name ] = struct.type === 'function' ?
|
7208
7209
|
methodScoping( scope, struct.val, struct ) :
|
7209
|
-
|
7210
|
+
struct.type === 'object' ?
|
7210
7211
|
{} :
|
7211
7212
|
struct.val;
|
7212
7213
|
|
@@ -7287,13 +7288,19 @@
|
|
7287
7288
|
name: key,
|
7288
7289
|
val: {},
|
7289
7290
|
methodExt: [],
|
7290
|
-
propExt: []
|
7291
|
+
propExt: [],
|
7292
|
+
type: 'object'
|
7291
7293
|
};
|
7292
7294
|
struct.push( src );
|
7293
7295
|
}
|
7294
7296
|
|
7295
7297
|
if ( i === ien-1 ) {
|
7296
7298
|
src.val = val;
|
7299
|
+
src.type = typeof val === 'function' ?
|
7300
|
+
'function' :
|
7301
|
+
$.isPlainObject( val ) ?
|
7302
|
+
'object' :
|
7303
|
+
'other';
|
7297
7304
|
}
|
7298
7305
|
else {
|
7299
7306
|
struct = method ?
|
@@ -7303,7 +7310,6 @@
|
|
7303
7310
|
}
|
7304
7311
|
};
|
7305
7312
|
|
7306
|
-
|
7307
7313
|
_Api.registerPlural = _api_registerPlural = function ( pluralName, singularName, val ) {
|
7308
7314
|
_Api.register( pluralName, val );
|
7309
7315
|
|
@@ -7916,7 +7922,7 @@
|
|
7916
7922
|
[];
|
7917
7923
|
}
|
7918
7924
|
else if ( cellIdx ) {
|
7919
|
-
return aoData[ cellIdx.row ] && aoData[ cellIdx.row ].nTr === sel ?
|
7925
|
+
return aoData[ cellIdx.row ] && aoData[ cellIdx.row ].nTr === sel.parentNode ?
|
7920
7926
|
[ cellIdx.row ] :
|
7921
7927
|
[];
|
7922
7928
|
}
|
@@ -8575,16 +8581,6 @@
|
|
8575
8581
|
|
8576
8582
|
// Common actions
|
8577
8583
|
col.bVisible = vis;
|
8578
|
-
_fnDrawHead( settings, settings.aoHeader );
|
8579
|
-
_fnDrawHead( settings, settings.aoFooter );
|
8580
|
-
|
8581
|
-
// Update colspan for no records display. Child rows and extensions will use their own
|
8582
|
-
// listeners to do this - only need to update the empty table item here
|
8583
|
-
if ( ! settings.aiDisplay.length ) {
|
8584
|
-
$(settings.nTBody).find('td[colspan]').attr('colspan', _fnVisbleColumns(settings));
|
8585
|
-
}
|
8586
|
-
|
8587
|
-
_fnSaveState( settings );
|
8588
8584
|
};
|
8589
8585
|
|
8590
8586
|
|
@@ -8648,6 +8644,7 @@
|
|
8648
8644
|
} );
|
8649
8645
|
|
8650
8646
|
_api_registerPlural( 'columns().visible()', 'column().visible()', function ( vis, calc ) {
|
8647
|
+
var that = this;
|
8651
8648
|
var ret = this.iterator( 'column', function ( settings, column ) {
|
8652
8649
|
if ( vis === undefined ) {
|
8653
8650
|
return settings.aoColumns[ column ].bVisible;
|
@@ -8657,14 +8654,28 @@
|
|
8657
8654
|
|
8658
8655
|
// Group the column visibility changes
|
8659
8656
|
if ( vis !== undefined ) {
|
8660
|
-
|
8661
|
-
|
8662
|
-
|
8663
|
-
|
8657
|
+
this.iterator( 'table', function ( settings ) {
|
8658
|
+
// Redraw the header after changes
|
8659
|
+
_fnDrawHead( settings, settings.aoHeader );
|
8660
|
+
_fnDrawHead( settings, settings.aoFooter );
|
8661
|
+
|
8662
|
+
// Update colspan for no records display. Child rows and extensions will use their own
|
8663
|
+
// listeners to do this - only need to update the empty table item here
|
8664
|
+
if ( ! settings.aiDisplay.length ) {
|
8665
|
+
$(settings.nTBody).find('td[colspan]').attr('colspan', _fnVisbleColumns(settings));
|
8666
|
+
}
|
8667
|
+
|
8668
|
+
_fnSaveState( settings );
|
8664
8669
|
|
8665
|
-
|
8666
|
-
|
8667
|
-
|
8670
|
+
// Second loop once the first is done for events
|
8671
|
+
that.iterator( 'column', function ( settings, column ) {
|
8672
|
+
_fnCallbackFire( settings, null, 'column-visibility', [settings, column, vis, calc] );
|
8673
|
+
} );
|
8674
|
+
|
8675
|
+
if ( calc === undefined || calc ) {
|
8676
|
+
that.columns.adjust();
|
8677
|
+
}
|
8678
|
+
});
|
8668
8679
|
}
|
8669
8680
|
|
8670
8681
|
return ret;
|
@@ -8815,13 +8826,20 @@
|
|
8815
8826
|
} );
|
8816
8827
|
}
|
8817
8828
|
|
8829
|
+
// The default built in options need to apply to row and columns
|
8830
|
+
var internalOpts = opts ? {
|
8831
|
+
page: opts.page,
|
8832
|
+
order: opts.order,
|
8833
|
+
search: opts.search
|
8834
|
+
} : {};
|
8835
|
+
|
8818
8836
|
// Row + column selector
|
8819
|
-
var columns = this.columns( columnSelector );
|
8820
|
-
var rows = this.rows( rowSelector );
|
8821
|
-
var
|
8837
|
+
var columns = this.columns( columnSelector, internalOpts );
|
8838
|
+
var rows = this.rows( rowSelector, internalOpts );
|
8839
|
+
var i, ien, j, jen;
|
8822
8840
|
|
8823
|
-
this.iterator( 'table', function ( settings, idx ) {
|
8824
|
-
a = [];
|
8841
|
+
var cellsNoOpts = this.iterator( 'table', function ( settings, idx ) {
|
8842
|
+
var a = [];
|
8825
8843
|
|
8826
8844
|
for ( i=0, ien=rows[idx].length ; i<ien ; i++ ) {
|
8827
8845
|
for ( j=0, jen=columns[idx].length ; j<jen ; j++ ) {
|
@@ -8831,10 +8849,16 @@
|
|
8831
8849
|
} );
|
8832
8850
|
}
|
8833
8851
|
}
|
8852
|
+
|
8853
|
+
return a;
|
8834
8854
|
}, 1 );
|
8835
8855
|
|
8836
|
-
|
8837
|
-
|
8856
|
+
// There is currently only one extension which uses a cell selector extension
|
8857
|
+
// It is a _major_ performance drag to run this if it isn't needed, so this is
|
8858
|
+
// an extension specific check at the moment
|
8859
|
+
var cells = opts && opts.selected ?
|
8860
|
+
this.cells( cellsNoOpts, opts ) :
|
8861
|
+
cellsNoOpts;
|
8838
8862
|
|
8839
8863
|
$.extend( cells.selector, {
|
8840
8864
|
cols: columnSelector,
|
@@ -9455,7 +9479,6 @@
|
|
9455
9479
|
|
9456
9480
|
return resolved.replace( '%d', plural ); // nb: plural might be undefined,
|
9457
9481
|
} );
|
9458
|
-
|
9459
9482
|
/**
|
9460
9483
|
* Version string for plug-ins to check compatibility. Allowed format is
|
9461
9484
|
* `a.b.c-d` where: a:int, b:int, c:int, d:string(dev|beta|alpha). `d` is used
|
@@ -9464,7 +9487,7 @@
|
|
9464
9487
|
* @type string
|
9465
9488
|
* @default Version number
|
9466
9489
|
*/
|
9467
|
-
DataTable.version = "1.10.
|
9490
|
+
DataTable.version = "1.10.20";
|
9468
9491
|
|
9469
9492
|
/**
|
9470
9493
|
* Private data store, containing all of the settings objects that are
|
@@ -14527,7 +14550,8 @@
|
|
14527
14550
|
var btnDisplay, btnClass, counter=0;
|
14528
14551
|
|
14529
14552
|
var attach = function( container, buttons ) {
|
14530
|
-
var i, ien, node, button;
|
14553
|
+
var i, ien, node, button, tabIndex;
|
14554
|
+
var disabledClass = classes.sPageButtonDisabled;
|
14531
14555
|
var clickHandler = function ( e ) {
|
14532
14556
|
_fnPageChange( settings, e.data.action, true );
|
14533
14557
|
};
|
@@ -14542,7 +14566,8 @@
|
|
14542
14566
|
}
|
14543
14567
|
else {
|
14544
14568
|
btnDisplay = null;
|
14545
|
-
btnClass =
|
14569
|
+
btnClass = button;
|
14570
|
+
tabIndex = settings.iTabIndex;
|
14546
14571
|
|
14547
14572
|
switch ( button ) {
|
14548
14573
|
case 'ellipsis':
|
@@ -14551,26 +14576,38 @@
|
|
14551
14576
|
|
14552
14577
|
case 'first':
|
14553
14578
|
btnDisplay = lang.sFirst;
|
14554
|
-
|
14555
|
-
|
14579
|
+
|
14580
|
+
if ( page === 0 ) {
|
14581
|
+
tabIndex = -1;
|
14582
|
+
btnClass += ' ' + disabledClass;
|
14583
|
+
}
|
14556
14584
|
break;
|
14557
14585
|
|
14558
14586
|
case 'previous':
|
14559
14587
|
btnDisplay = lang.sPrevious;
|
14560
|
-
|
14561
|
-
|
14588
|
+
|
14589
|
+
if ( page === 0 ) {
|
14590
|
+
tabIndex = -1;
|
14591
|
+
btnClass += ' ' + disabledClass;
|
14592
|
+
}
|
14562
14593
|
break;
|
14563
14594
|
|
14564
14595
|
case 'next':
|
14565
14596
|
btnDisplay = lang.sNext;
|
14566
|
-
|
14567
|
-
|
14597
|
+
|
14598
|
+
if ( page === pages-1 ) {
|
14599
|
+
tabIndex = -1;
|
14600
|
+
btnClass += ' ' + disabledClass;
|
14601
|
+
}
|
14568
14602
|
break;
|
14569
14603
|
|
14570
14604
|
case 'last':
|
14571
14605
|
btnDisplay = lang.sLast;
|
14572
|
-
|
14573
|
-
|
14606
|
+
|
14607
|
+
if ( page === pages-1 ) {
|
14608
|
+
tabIndex = -1;
|
14609
|
+
btnClass += ' ' + disabledClass;
|
14610
|
+
}
|
14574
14611
|
break;
|
14575
14612
|
|
14576
14613
|
default:
|
@@ -14586,7 +14623,7 @@
|
|
14586
14623
|
'aria-controls': settings.sTableId,
|
14587
14624
|
'aria-label': aria[ button ],
|
14588
14625
|
'data-dt-idx': counter,
|
14589
|
-
'tabindex':
|
14626
|
+
'tabindex': tabIndex,
|
14590
14627
|
'id': idx === 0 && typeof button === 'string' ?
|
14591
14628
|
settings.sTableId +'_'+ button :
|
14592
14629
|
null
|
@@ -15214,7 +15251,7 @@
|
|
15214
15251
|
|
15215
15252
|
/**
|
15216
15253
|
* Processing event, fired when DataTables is doing some kind of processing
|
15217
|
-
* (be it, order,
|
15254
|
+
* (be it, order, search or anything else). It can be used to indicate to
|
15218
15255
|
* the end user that there is something happening, or that something has
|
15219
15256
|
* finished.
|
15220
15257
|
* @name DataTable#processing.dt
|