datatables.net-select 1.3.0 → 1.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/License.txt CHANGED
@@ -1,3 +1,5 @@
1
+ The MIT License (MIT)
2
+
1
3
  Copyright SpryMedia Limited and other contributors
2
4
  http://datatables.net
3
5
 
@@ -17,4 +19,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
19
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
20
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
21
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
- THE SOFTWARE.
22
+ THE SOFTWARE.
package/Readme.md CHANGED
@@ -17,11 +17,17 @@ For inclusion of this library using a standard `<script>` tag, rather than using
17
17
  npm install datatables.net-select
18
18
  ```
19
19
 
20
+ ES3 Syntax
20
21
  ```
21
22
  var $ = require( 'jquery' );
22
23
  require( 'datatables.net-select' )( window, $ );
23
24
  ```
24
25
 
26
+ ES6 Syntax
27
+ ```
28
+ import 'datatables.net-select'
29
+ ```
30
+
25
31
  ### bower
26
32
 
27
33
  ```
@@ -32,8 +38,7 @@ bower install --save datatables.net-select
32
38
 
33
39
  ## Documentation
34
40
 
35
- Full documentation of the DataTables options, API and plug-in interface are available on the DOCS_LINK. The site also contains information on the wide variety of plug-ins that are available for DataTables, which can be used to enhance and customise your table even further.
36
-
41
+ Full documentation and examples for Select can be found [on the website](https://datatables.net/extensions/select).
37
42
 
38
43
  ## Bug / Support
39
44
 
@@ -1,16 +1,16 @@
1
- /*! Select for DataTables 1.3.0
2
- * 2015-2018 SpryMedia Ltd - datatables.net/license/mit
1
+ /*! Select for DataTables 1.3.4-dev
2
+ * 2015-2021 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.3.0
9
+ * @version 1.3.4-dev
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-2018 SpryMedia Ltd.
13
+ * @copyright Copyright 2015-2021 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,10 +54,52 @@ var DataTable = $.fn.dataTable;
54
54
  // Version information for debugger
55
55
  DataTable.select = {};
56
56
 
57
- DataTable.select.version = '1.3.0';
57
+ DataTable.select.version = '1.3.4-dev';
58
58
 
59
59
  DataTable.select.init = function ( dt ) {
60
60
  var ctx = dt.settings()[0];
61
+
62
+ if (ctx._select) {
63
+ return;
64
+ }
65
+
66
+ var savedSelected = dt.state.loaded();
67
+
68
+ var selectAndSave = function(e, settings, data) {
69
+ if(data === null || data.select === undefined) {
70
+ return;
71
+ }
72
+ dt.rows().deselect();
73
+ dt.columns().deselect();
74
+ dt.cells().deselect();
75
+ if (data.select.rows !== undefined) {
76
+ dt.rows(data.select.rows).select();
77
+ }
78
+ if (data.select.columns !== undefined) {
79
+ dt.columns(data.select.columns).select();
80
+ }
81
+ if (data.select.cells !== undefined) {
82
+ for(var i = 0; i < data.select.cells.length; i++) {
83
+ dt.cell(data.select.cells[i].row, data.select.cells[i].column).select();
84
+ }
85
+ }
86
+ dt.state.save();
87
+ }
88
+
89
+ dt.one('init', function() {
90
+ dt.on('stateSaveParams', function(e, settings, data) {
91
+ data.select = {};
92
+ data.select.rows = dt.rows({selected:true}).ids(true).toArray();
93
+ data.select.columns = dt.columns({selected:true})[0];
94
+ data.select.cells = dt.cells({selected:true})[0].map(function(coords) {
95
+ return {row: dt.row(coords.row).id(true), column: coords.column}
96
+ });
97
+ })
98
+
99
+ selectAndSave(undefined, undefined, savedSelected)
100
+ dt.on('stateLoaded stateLoadParams', selectAndSave)
101
+ })
102
+
61
103
  var init = ctx.oInit.select;
62
104
  var defaults = DataTable.defaults.select;
63
105
  var opts = init === undefined ?
@@ -68,6 +110,7 @@ DataTable.select.init = function ( dt ) {
68
110
  var items = 'row';
69
111
  var style = 'api';
70
112
  var blurable = false;
113
+ var toggleable = true;
71
114
  var info = true;
72
115
  var selector = 'td, th';
73
116
  var className = 'selected';
@@ -88,6 +131,10 @@ DataTable.select.init = function ( dt ) {
88
131
  if ( opts.blurable !== undefined ) {
89
132
  blurable = opts.blurable;
90
133
  }
134
+
135
+ if ( opts.toggleable !== undefined ) {
136
+ toggleable = opts.toggleable;
137
+ }
91
138
 
92
139
  if ( opts.info !== undefined ) {
93
140
  info = opts.info;
@@ -119,6 +166,7 @@ DataTable.select.init = function ( dt ) {
119
166
  dt.select.items( items );
120
167
  dt.select.style( style );
121
168
  dt.select.blurable( blurable );
169
+ dt.select.toggleable( toggleable );
122
170
  dt.select.info( info );
123
171
  ctx._select.className = className;
124
172
 
@@ -180,15 +228,17 @@ The `_select` object contains the following properties:
180
228
 
181
229
  ```
182
230
  {
183
- items:string - Can be `rows`, `columns` or `cells`. Defines what item
184
- will be selected if the user is allowed to activate row
185
- selection using the mouse.
186
- style:string - Can be `none`, `single`, `multi` or `os`. Defines the
187
- interaction style when selecting items
188
- blurable:boolean - If row selection can be cleared by clicking outside of
189
- the table
190
- info:boolean - If the selection summary should be shown in the table
191
- information elements
231
+ items:string - Can be `rows`, `columns` or `cells`. Defines what item
232
+ will be selected if the user is allowed to activate row
233
+ selection using the mouse.
234
+ style:string - Can be `none`, `single`, `multi` or `os`. Defines the
235
+ interaction style when selecting items
236
+ blurable:boolean - If row selection can be cleared by clicking outside of
237
+ the table
238
+ toggleable:boolean - If row selection can be cancelled by repeated clicking
239
+ on the row
240
+ info:boolean - If the selection summary should be shown in the table
241
+ information elements
192
242
  }
193
243
  ```
194
244
 
@@ -314,7 +364,7 @@ function disableMouseSelection( dt )
314
364
  .off( 'mouseup.dtSelect', selector )
315
365
  .off( 'click.dtSelect', selector );
316
366
 
317
- $('body').off( 'click.dtSelect' + dt.table().node().id );
367
+ $('body').off( 'click.dtSelect' + _safeId(dt.table().node()) );
318
368
  }
319
369
 
320
370
  /**
@@ -370,7 +420,7 @@ function enableMouseSelection ( dt )
370
420
  }
371
421
 
372
422
  var ctx = dt.settings()[0];
373
- var wrapperClass = $.trim(dt.settings()[0].oClasses.sWrapper).replace(/ +/g, '.');
423
+ var wrapperClass = dt.settings()[0].oClasses.sWrapper.trim().replace(/ +/g, '.');
374
424
 
375
425
  // Ignore clicks inside a sub-table
376
426
  if ( $(e.target).closest('div.'+wrapperClass)[0] != dt.table().container() ) {
@@ -410,7 +460,7 @@ function enableMouseSelection ( dt )
410
460
  } );
411
461
 
412
462
  // Blurable
413
- $('body').on( 'click.dtSelect' + dt.table().node().id, function ( e ) {
463
+ $('body').on( 'click.dtSelect' + _safeId(dt.table().node()), function ( e ) {
414
464
  if ( ctx._select.blurable ) {
415
465
  // If the click was inside the DataTables container, don't blur
416
466
  if ( $(e.target).parents().filter( dt.table().container() ).length ) {
@@ -521,6 +571,7 @@ function info ( api )
521
571
  */
522
572
  function init ( ctx ) {
523
573
  var api = new DataTable.Api( ctx );
574
+ ctx._select_init = true;
524
575
 
525
576
  // Row callback so that classes can be added to rows and cells if the item
526
577
  // was selected before the element was created. This will happen with the
@@ -552,7 +603,12 @@ function init ( ctx ) {
552
603
 
553
604
  // On Ajax reload we want to reselect all rows which are currently selected,
554
605
  // if there is an rowId (i.e. a unique value to identify each row with)
555
- api.on( 'preXhr.dt.dtSelect', function () {
606
+ api.on( 'preXhr.dt.dtSelect', function (e, settings) {
607
+ if (settings !== api.settings()[0]) {
608
+ // Not triggered by our DataTable!
609
+ return;
610
+ }
611
+
556
612
  // note that column selection doesn't need to be cached and then
557
613
  // reselected, as they are already selected
558
614
  var rows = api.rows( { selected: true } ).ids( true ).filter( function ( d ) {
@@ -584,12 +640,16 @@ function init ( ctx ) {
584
640
  // Update the table information element with selected item summary
585
641
  api.on( 'draw.dtSelect.dt select.dtSelect.dt deselect.dtSelect.dt info.dt', function () {
586
642
  info( api );
643
+ api.state.save();
587
644
  } );
588
645
 
589
646
  // Clean up and release
590
647
  api.on( 'destroy.dtSelect', function () {
648
+ api.rows({selected: true}).deselect();
649
+
591
650
  disableMouseSelection( api );
592
651
  api.off( '.dtSelect' );
652
+ $('body').off('.dtSelect' + _safeId(api.table().node()));
593
653
  } );
594
654
  }
595
655
 
@@ -670,7 +730,12 @@ function clear( ctx, force )
670
730
  function typeSelect ( e, dt, ctx, type, idx )
671
731
  {
672
732
  var style = dt.select.style();
733
+ var toggleable = dt.select.toggleable();
673
734
  var isSelected = dt[type]( idx, { selected: true } ).any();
735
+
736
+ if ( isSelected && ! toggleable ) {
737
+ return;
738
+ }
674
739
 
675
740
  if ( style === 'os' ) {
676
741
  if ( e.ctrlKey || e.metaKey ) {
@@ -722,6 +787,10 @@ function typeSelect ( e, dt, ctx, type, idx )
722
787
  }
723
788
  }
724
789
 
790
+ function _safeId( node ) {
791
+ return node.id.replace(/[^a-zA-Z0-9\-\_]/g, '-');
792
+ }
793
+
725
794
 
726
795
 
727
796
  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
@@ -809,8 +878,18 @@ apiRegister( 'select.blurable()', function ( flag ) {
809
878
  } );
810
879
  } );
811
880
 
881
+ apiRegister( 'select.toggleable()', function ( flag ) {
882
+ if ( flag === undefined ) {
883
+ return this.context[0]._select.toggleable;
884
+ }
885
+
886
+ return this.iterator( 'table', function ( ctx ) {
887
+ ctx._select.toggleable = flag;
888
+ } );
889
+ } );
890
+
812
891
  apiRegister( 'select.info()', function ( flag ) {
813
- if ( info === undefined ) {
892
+ if ( flag === undefined ) {
814
893
  return this.context[0]._select.info;
815
894
  }
816
895
 
@@ -839,12 +918,16 @@ apiRegister( 'select.style()', function ( style ) {
839
918
  }
840
919
 
841
920
  return this.iterator( 'table', function ( ctx ) {
842
- ctx._select.style = style;
921
+ if ( ! ctx._select ) {
922
+ DataTable.select.init( new DataTable.Api(ctx) );
923
+ }
843
924
 
844
925
  if ( ! ctx._select_init ) {
845
- init( ctx );
926
+ init(ctx);
846
927
  }
847
928
 
929
+ ctx._select.style = style;
930
+
848
931
  // Add / remove mouse event handlers. They aren't required when only
849
932
  // API selection is available
850
933
  var dt = new DataTable.Api( ctx );
@@ -948,7 +1031,7 @@ apiRegisterPlural( 'cells().select()', 'cell().select()', function ( select ) {
948
1031
  } );
949
1032
 
950
1033
  this.iterator( 'table', function ( ctx, i ) {
951
- eventTrigger( api, 'select', [ 'cell', api[i] ], true );
1034
+ eventTrigger( api, 'select', [ 'cell', api.cells(api[i]).indexes().toArray() ], true );
952
1035
  } );
953
1036
 
954
1037
  return this;
@@ -960,6 +1043,7 @@ apiRegisterPlural( 'rows().deselect()', 'row().deselect()', function () {
960
1043
 
961
1044
  this.iterator( 'row', function ( ctx, idx ) {
962
1045
  ctx.aoData[ idx ]._select_selected = false;
1046
+ ctx._select_lastCell = null;
963
1047
  $( ctx.aoData[ idx ].nTr ).removeClass( ctx._select.className );
964
1048
  } );
965
1049
 
@@ -1008,7 +1092,9 @@ apiRegisterPlural( 'cells().deselect()', 'cell().deselect()', function () {
1008
1092
  this.iterator( 'cell', function ( ctx, rowIdx, colIdx ) {
1009
1093
  var data = ctx.aoData[ rowIdx ];
1010
1094
 
1011
- data._selected_cells[ colIdx ] = false;
1095
+ if(data._selected_cells !== undefined) {
1096
+ data._selected_cells[ colIdx ] = false;
1097
+ }
1012
1098
 
1013
1099
  // Remove class only if the cells exist, and the cell is not column
1014
1100
  // selected, in which case the class should remain (since it is selected
@@ -1,27 +1,40 @@
1
1
  /*!
2
- Select for DataTables 1.3.0
3
- 2015-2018 SpryMedia Ltd - datatables.net/license/mit
2
+ Copyright 2015-2021 SpryMedia Ltd.
3
+
4
+ This source file is free software, available under the following license:
5
+ MIT license - http://datatables.net/license/mit
6
+
7
+ This source file is distributed in the hope that it will be useful, but
8
+ WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
9
+ or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.
10
+
11
+ For details please refer to: http://www.datatables.net/extensions/select
12
+ Select for DataTables 1.3.4-dev
13
+ 2015-2021 SpryMedia Ltd - datatables.net/license/mit
4
14
  */
5
- (function(e){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(i){return e(i,window,document)}):"object"===typeof exports?module.exports=function(i,l){i||(i=window);if(!l||!l.fn.dataTable)l=require("datatables.net")(i,l).$;return e(l,i,i.document)}:e(jQuery,window,document)})(function(e,i,l,h){function u(a,c,b){var d;d=function(b,c){if(b>c)var d=c,c=b,b=d;var f=!1;return a.columns(":visible").indexes().filter(function(a){a===b&&(f=!0);return a===c?(f=!1,!0):f})};var f=
6
- function(b,c){var d=a.rows({search:"applied"}).indexes();if(d.indexOf(b)>d.indexOf(c))var f=c,c=b,b=f;var e=!1;return d.filter(function(a){a===b&&(e=!0);return a===c?(e=!1,!0):e})};!a.cells({selected:!0}).any()&&!b?(d=d(0,c.column),b=f(0,c.row)):(d=d(b.column,c.column),b=f(b.row,c.row));b=a.cells(b,d).flatten();a.cells(c,{selected:!0}).any()?a.cells(b).deselect():a.cells(b).select()}function q(a){var c=a.settings()[0]._select.selector;e(a.table().container()).off("mousedown.dtSelect",c).off("mouseup.dtSelect",
7
- c).off("click.dtSelect",c);e("body").off("click.dtSelect"+a.table().node().id)}function x(a){var c=e(a.table().container()),b=a.settings()[0],d=b._select.selector,f;c.on("mousedown.dtSelect",d,function(b){if(b.shiftKey||b.metaKey||b.ctrlKey)c.css("-moz-user-select","none").one("selectstart.dtSelect",d,function(){return!1});i.getSelection&&(f=i.getSelection())}).on("mouseup.dtSelect",d,function(){c.css("-moz-user-select","")}).on("click.dtSelect",d,function(b){var c=a.select.items();if(f){var d=i.getSelection();
8
- if((!d.anchorNode||e(d.anchorNode).closest("table")[0]===a.table().node())&&d!==f)return}var d=a.settings()[0],g=e.trim(a.settings()[0].oClasses.sWrapper).replace(/ +/g,".");if(e(b.target).closest("div."+g)[0]==a.table().container()&&(g=a.cell(e(b.target).closest("td, th")),g.any())){var h=e.Event("user-select.dt");j(a,h,[c,g,b]);h.isDefaultPrevented()||(h=g.index(),"row"===c?(c=h.row,r(b,a,d,"row",c)):"column"===c?(c=g.index().column,r(b,a,d,"column",c)):"cell"===c&&(c=g.index(),r(b,a,d,"cell",c)),
9
- d._select_lastCell=h)}});e("body").on("click.dtSelect"+a.table().node().id,function(c){b._select.blurable&&!e(c.target).parents().filter(a.table().container()).length&&(0!==e(c.target).parents("html").length&&!e(c.target).parents("div.DTE").length)&&o(b,!0)})}function j(a,c,b,d){if(!d||a.flatten().length)"string"===typeof c&&(c+=".dt"),b.unshift(a),e(a.table().node()).trigger(c,b)}function y(a){var c=a.settings()[0];if(c._select.info&&c.aanFeatures.i&&"api"!==a.select.style()){var b=a.rows({selected:!0}).flatten().length,
10
- d=a.columns({selected:!0}).flatten().length,f=a.cells({selected:!0}).flatten().length,k=function(b,c,d){b.append(e('<span class="select-item"/>').append(a.i18n("select."+c+"s",{_:"%d "+c+"s selected","0":"",1:"1 "+c+" selected"},d)))};e.each(c.aanFeatures.i,function(c,a){var a=e(a),g=e('<span class="select-info"/>');k(g,"row",b);k(g,"column",d);k(g,"cell",f);var h=a.children("span.select-info");h.length&&h.remove();""!==g.text()&&a.append(g)})}}function z(a,c,b,d){var f=a[c+"s"]({search:"applied"}).indexes(),
11
- d=e.inArray(d,f),k=e.inArray(b,f);if(!a[c+"s"]({selected:!0}).any()&&-1===d)f.splice(e.inArray(b,f)+1,f.length);else{if(d>k)var g=k,k=d,d=g;f.splice(k+1,f.length);f.splice(0,d)}a[c](b,{selected:!0}).any()?(f.splice(e.inArray(b,f),1),a[c+"s"](f).deselect()):a[c+"s"](f).select()}function o(a,c){if(c||"single"===a._select.style){var b=new g.Api(a);b.rows({selected:!0}).deselect();b.columns({selected:!0}).deselect();b.cells({selected:!0}).deselect()}}function r(a,c,b,d,f){var e=c.select.style(),g=c[d](f,
12
- {selected:!0}).any();"os"===e?a.ctrlKey||a.metaKey?c[d](f).select(!g):a.shiftKey?"cell"===d?u(c,f,b._select_lastCell||null):z(c,d,f,b._select_lastCell?b._select_lastCell[d]:null):(a=c[d+"s"]({selected:!0}),g&&1===a.flatten().length?c[d](f).deselect():(a.deselect(),c[d](f).select())):"multi+shift"==e?a.shiftKey?"cell"===d?u(c,f,b._select_lastCell||null):z(c,d,f,b._select_lastCell?b._select_lastCell[d]:null):c[d](f).select(!g):c[d](f).select(!g)}function p(a,c){return function(b){return b.i18n("buttons."+
13
- a,c)}}function s(a){a=a._eventNamespace;return"draw.dt.DT"+a+" select.dt.DT"+a+" deselect.dt.DT"+a}var g=e.fn.dataTable;g.select={};g.select.version="1.3.0";g.select.init=function(a){var c=a.settings()[0],b=c.oInit.select,d=g.defaults.select,b=b===h?d:b,d="row",f="api",k=!1,v=!0,w="td, th",i="selected",j=!1;c._select={};if(!0===b)f="os",j=!0;else if("string"===typeof b)f=b,j=!0;else if(e.isPlainObject(b)&&(b.blurable!==h&&(k=b.blurable),b.info!==h&&(v=b.info),b.items!==h&&(d=b.items),f=b.style!==
14
- h?b.style:"os",j=!0,b.selector!==h&&(w=b.selector),b.className!==h))i=b.className;a.select.selector(w);a.select.items(d);a.select.style(f);a.select.blurable(k);a.select.info(v);c._select.className=i;e.fn.dataTable.ext.order["select-checkbox"]=function(b,c){return this.api().column(c,{order:"index"}).nodes().map(function(c){return"row"===b._select.items?e(c).parent().hasClass(b._select.className):"cell"===b._select.items?e(c).hasClass(b._select.className):!1})};!j&&e(a.table().node()).hasClass("selectable")&&
15
- a.select.style("os")};e.each([{type:"row",prop:"aoData"},{type:"column",prop:"aoColumns"}],function(a,c){g.ext.selector[c.type].push(function(b,a,f){var a=a.selected,e,g=[];if(!0!==a&&!1!==a)return f;for(var h=0,i=f.length;h<i;h++)e=b[c.prop][f[h]],(!0===a&&!0===e._select_selected||!1===a&&!e._select_selected)&&g.push(f[h]);return g})});g.ext.selector.cell.push(function(a,c,b){var c=c.selected,d,f=[];if(c===h)return b;for(var e=0,g=b.length;e<g;e++)d=a.aoData[b[e].row],(!0===c&&d._selected_cells&&
16
- !0===d._selected_cells[b[e].column]||!1===c&&(!d._selected_cells||!d._selected_cells[b[e].column]))&&f.push(b[e]);return f});var m=g.Api.register,n=g.Api.registerPlural;m("select()",function(){return this.iterator("table",function(a){g.select.init(new g.Api(a))})});m("select.blurable()",function(a){return a===h?this.context[0]._select.blurable:this.iterator("table",function(c){c._select.blurable=a})});m("select.info()",function(a){return y===h?this.context[0]._select.info:this.iterator("table",function(c){c._select.info=
17
- a})});m("select.items()",function(a){return a===h?this.context[0]._select.items:this.iterator("table",function(c){c._select.items=a;j(new g.Api(c),"selectItems",[a])})});m("select.style()",function(a){return a===h?this.context[0]._select.style:this.iterator("table",function(c){c._select.style=a;if(!c._select_init){var b=new g.Api(c);c.aoRowCreatedCallback.push({fn:function(b,a,d){a=c.aoData[d];a._select_selected&&e(b).addClass(c._select.className);b=0;for(d=c.aoColumns.length;b<d;b++)(c.aoColumns[b]._select_selected||
18
- a._selected_cells&&a._selected_cells[b])&&e(a.anCells[b]).addClass(c._select.className)},sName:"select-deferRender"});b.on("preXhr.dt.dtSelect",function(){var a=b.rows({selected:!0}).ids(!0).filter(function(b){return b!==h}),c=b.cells({selected:!0}).eq(0).map(function(c){var a=b.row(c.row).id(!0);return a?{row:a,column:c.column}:h}).filter(function(b){return b!==h});b.one("draw.dt.dtSelect",function(){b.rows(a).select();c.any()&&c.each(function(c){b.cells(c.row,c.column).select()})})});b.on("draw.dtSelect.dt select.dtSelect.dt deselect.dtSelect.dt info.dt",
19
- function(){y(b)});b.on("destroy.dtSelect",function(){q(b);b.off(".dtSelect")})}var d=new g.Api(c);q(d);"api"!==a&&x(d);j(new g.Api(c),"selectStyle",[a])})});m("select.selector()",function(a){return a===h?this.context[0]._select.selector:this.iterator("table",function(c){q(new g.Api(c));c._select.selector=a;"api"!==c._select.style&&x(new g.Api(c))})});n("rows().select()","row().select()",function(a){var c=this;if(!1===a)return this.deselect();this.iterator("row",function(b,c){o(b);b.aoData[c]._select_selected=
20
- !0;e(b.aoData[c].nTr).addClass(b._select.className)});this.iterator("table",function(b,a){j(c,"select",["row",c[a]],!0)});return this});n("columns().select()","column().select()",function(a){var c=this;if(!1===a)return this.deselect();this.iterator("column",function(b,c){o(b);b.aoColumns[c]._select_selected=!0;var a=(new g.Api(b)).column(c);e(a.header()).addClass(b._select.className);e(a.footer()).addClass(b._select.className);a.nodes().to$().addClass(b._select.className)});this.iterator("table",
21
- function(b,a){j(c,"select",["column",c[a]],!0)});return this});n("cells().select()","cell().select()",function(a){var c=this;if(!1===a)return this.deselect();this.iterator("cell",function(b,c,a){o(b);c=b.aoData[c];c._selected_cells===h&&(c._selected_cells=[]);c._selected_cells[a]=!0;c.anCells&&e(c.anCells[a]).addClass(b._select.className)});this.iterator("table",function(b,a){j(c,"select",["cell",c[a]],!0)});return this});n("rows().deselect()","row().deselect()",function(){var a=this;this.iterator("row",
22
- function(c,b){c.aoData[b]._select_selected=!1;e(c.aoData[b].nTr).removeClass(c._select.className)});this.iterator("table",function(c,b){j(a,"deselect",["row",a[b]],!0)});return this});n("columns().deselect()","column().deselect()",function(){var a=this;this.iterator("column",function(c,b){c.aoColumns[b]._select_selected=!1;var a=new g.Api(c),f=a.column(b);e(f.header()).removeClass(c._select.className);e(f.footer()).removeClass(c._select.className);a.cells(null,b).indexes().each(function(b){var a=
23
- c.aoData[b.row],d=a._selected_cells;a.anCells&&(!d||!d[b.column])&&e(a.anCells[b.column]).removeClass(c._select.className)})});this.iterator("table",function(c,b){j(a,"deselect",["column",a[b]],!0)});return this});n("cells().deselect()","cell().deselect()",function(){var a=this;this.iterator("cell",function(a,b,d){b=a.aoData[b];b._selected_cells[d]=!1;b.anCells&&!a.aoColumns[d]._select_selected&&e(b.anCells[d]).removeClass(a._select.className)});this.iterator("table",function(c,b){j(a,"deselect",
24
- ["cell",a[b]],!0)});return this});var t=0;e.extend(g.ext.buttons,{selected:{text:p("selected","Selected"),className:"buttons-selected",limitTo:["rows","columns","cells"],init:function(a,c,b){var d=this;b._eventNamespace=".select"+t++;a.on(s(b),function(){d.enable(-1!==e.inArray("rows",b.limitTo)&&a.rows({selected:!0}).any()||-1!==e.inArray("columns",b.limitTo)&&a.columns({selected:!0}).any()||-1!==e.inArray("cells",b.limitTo)&&a.cells({selected:!0}).any()?!0:!1)});this.disable()},destroy:function(a,
25
- c,b){a.off(b._eventNamespace)}},selectedSingle:{text:p("selectedSingle","Selected single"),className:"buttons-selected-single",init:function(a,c,b){var d=this;b._eventNamespace=".select"+t++;a.on(s(b),function(){var b=a.rows({selected:!0}).flatten().length+a.columns({selected:!0}).flatten().length+a.cells({selected:!0}).flatten().length;d.enable(1===b)});this.disable()},destroy:function(a,c,b){a.off(b._eventNamespace)}},selectAll:{text:p("selectAll","Select all"),className:"buttons-select-all",action:function(){this[this.select.items()+
26
- "s"]().select()}},selectNone:{text:p("selectNone","Deselect all"),className:"buttons-select-none",action:function(){o(this.settings()[0],!0)},init:function(a,c,b){var d=this;b._eventNamespace=".select"+t++;a.on(s(b),function(){var b=a.rows({selected:!0}).flatten().length+a.columns({selected:!0}).flatten().length+a.cells({selected:!0}).flatten().length;d.enable(0<b)});this.disable()},destroy:function(a,c,b){a.off(b._eventNamespace)}}});e.each(["Row","Column","Cell"],function(a,c){var b=c.toLowerCase();
27
- g.ext.buttons["select"+c+"s"]={text:p("select"+c+"s","Select "+b+"s"),className:"buttons-select-"+b+"s",action:function(){this.select.items(b)},init:function(a){var c=this;a.on("selectItems.dt.DT",function(a,d,e){c.active(e===b)})}}});e(l).on("preInit.dt.dtSelect",function(a,c){"dt"===a.namespace&&g.select.init(new g.Api(c))});return g.select});
15
+ (function(h){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(r){return h(r,window,document)}):"object"===typeof exports?module.exports=function(r,v){r||(r=window);v&&v.fn.dataTable||(v=require("datatables.net")(r,v).$);return h(v,r,r.document)}:h(jQuery,window,document)})(function(h,r,v,l){function I(a,b,c){var d=function(g,f){if(g>f){var k=f;f=g;g=k}var n=!1;return a.columns(":visible").indexes().filter(function(q){q===g&&(n=!0);return q===f?(n=!1,!0):n})};var e=
16
+ function(g,f){var k=a.rows({search:"applied"}).indexes();if(k.indexOf(g)>k.indexOf(f)){var n=f;f=g;g=n}var q=!1;return k.filter(function(y){y===g&&(q=!0);return y===f?(q=!1,!0):q})};a.cells({selected:!0}).any()||c?(d=d(c.column,b.column),c=e(c.row,b.row)):(d=d(0,b.column),c=e(0,b.row));c=a.cells(c,d).flatten();a.cells(b,{selected:!0}).any()?a.cells(c).deselect():a.cells(c).select()}function C(a){var b=a.settings()[0]._select.selector;h(a.table().container()).off("mousedown.dtSelect",b).off("mouseup.dtSelect",
17
+ b).off("click.dtSelect",b);h("body").off("click.dtSelect"+D(a.table().node()))}function J(a){var b=h(a.table().container()),c=a.settings()[0],d=c._select.selector,e;b.on("mousedown.dtSelect",d,function(g){if(g.shiftKey||g.metaKey||g.ctrlKey)b.css("-moz-user-select","none").one("selectstart.dtSelect",d,function(){return!1});r.getSelection&&(e=r.getSelection())}).on("mouseup.dtSelect",d,function(){b.css("-moz-user-select","")}).on("click.dtSelect",d,function(g){var f=a.select.items();if(e){var k=r.getSelection();
18
+ if((!k.anchorNode||h(k.anchorNode).closest("table")[0]===a.table().node())&&k!==e)return}k=a.settings()[0];var n=a.settings()[0].oClasses.sWrapper.trim().replace(/ +/g,".");if(h(g.target).closest("div."+n)[0]==a.table().container()&&(n=a.cell(h(g.target).closest("td, th")),n.any())){var q=h.Event("user-select.dt");u(a,q,[f,n,g]);q.isDefaultPrevented()||(q=n.index(),"row"===f?(f=q.row,E(g,a,k,"row",f)):"column"===f?(f=n.index().column,E(g,a,k,"column",f)):"cell"===f&&(f=n.index(),E(g,a,k,"cell",f)),
19
+ k._select_lastCell=q)}});h("body").on("click.dtSelect"+D(a.table().node()),function(g){!c._select.blurable||h(g.target).parents().filter(a.table().container()).length||0===h(g.target).parents("html").length||h(g.target).parents("div.DTE").length||z(c,!0)})}function u(a,b,c,d){if(!d||a.flatten().length)"string"===typeof b&&(b+=".dt"),c.unshift(a),h(a.table().node()).trigger(b,c)}function N(a){var b=a.settings()[0];if(b._select.info&&b.aanFeatures.i&&"api"!==a.select.style()){var c=a.rows({selected:!0}).flatten().length,
20
+ d=a.columns({selected:!0}).flatten().length,e=a.cells({selected:!0}).flatten().length,g=function(f,k,n){f.append(h('<span class="select-item"/>').append(a.i18n("select."+k+"s",{_:"%d "+k+"s selected",0:"",1:"1 "+k+" selected"},n)))};h.each(b.aanFeatures.i,function(f,k){k=h(k);f=h('<span class="select-info"/>');g(f,"row",c);g(f,"column",d);g(f,"cell",e);var n=k.children("span.select-info");n.length&&n.remove();""!==f.text()&&k.append(f)})}}function O(a){var b=new m.Api(a);a._select_init=!0;a.aoRowCreatedCallback.push({fn:function(c,
21
+ d,e){d=a.aoData[e];d._select_selected&&h(c).addClass(a._select.className);c=0;for(e=a.aoColumns.length;c<e;c++)(a.aoColumns[c]._select_selected||d._selected_cells&&d._selected_cells[c])&&h(d.anCells[c]).addClass(a._select.className)},sName:"select-deferRender"});b.on("preXhr.dt.dtSelect",function(c,d){if(d===b.settings()[0]){var e=b.rows({selected:!0}).ids(!0).filter(function(f){return f!==l}),g=b.cells({selected:!0}).eq(0).map(function(f){var k=b.row(f.row).id(!0);return k?{row:k,column:f.column}:
22
+ l}).filter(function(f){return f!==l});b.one("draw.dt.dtSelect",function(){b.rows(e).select();g.any()&&g.each(function(f){b.cells(f.row,f.column).select()})})}});b.on("draw.dtSelect.dt select.dtSelect.dt deselect.dtSelect.dt info.dt",function(){N(b);b.state.save()});b.on("destroy.dtSelect",function(){b.rows({selected:!0}).deselect();C(b);b.off(".dtSelect");h("body").off(".dtSelect"+D(b.table().node()))})}function K(a,b,c,d){var e=a[b+"s"]({search:"applied"}).indexes();d=h.inArray(d,e);var g=h.inArray(c,
23
+ e);if(a[b+"s"]({selected:!0}).any()||-1!==d){if(d>g){var f=g;g=d;d=f}e.splice(g+1,e.length);e.splice(0,d)}else e.splice(h.inArray(c,e)+1,e.length);a[b](c,{selected:!0}).any()?(e.splice(h.inArray(c,e),1),a[b+"s"](e).deselect()):a[b+"s"](e).select()}function z(a,b){if(b||"single"===a._select.style)a=new m.Api(a),a.rows({selected:!0}).deselect(),a.columns({selected:!0}).deselect(),a.cells({selected:!0}).deselect()}function E(a,b,c,d,e){var g=b.select.style(),f=b.select.toggleable(),k=b[d](e,{selected:!0}).any();
24
+ if(!k||f)"os"===g?a.ctrlKey||a.metaKey?b[d](e).select(!k):a.shiftKey?"cell"===d?I(b,e,c._select_lastCell||null):K(b,d,e,c._select_lastCell?c._select_lastCell[d]:null):(a=b[d+"s"]({selected:!0}),k&&1===a.flatten().length?b[d](e).deselect():(a.deselect(),b[d](e).select())):"multi+shift"==g?a.shiftKey?"cell"===d?I(b,e,c._select_lastCell||null):K(b,d,e,c._select_lastCell?c._select_lastCell[d]:null):b[d](e).select(!k):b[d](e).select(!k)}function D(a){return a.id.replace(/[^a-zA-Z0-9\-_]/g,"-")}function A(a,
25
+ b){return function(c){return c.i18n("buttons."+a,b)}}function F(a){a=a._eventNamespace;return"draw.dt.DT"+a+" select.dt.DT"+a+" deselect.dt.DT"+a}function P(a,b){return-1!==h.inArray("rows",b.limitTo)&&a.rows({selected:!0}).any()||-1!==h.inArray("columns",b.limitTo)&&a.columns({selected:!0}).any()||-1!==h.inArray("cells",b.limitTo)&&a.cells({selected:!0}).any()?!0:!1}var m=h.fn.dataTable;m.select={};m.select.version="1.3.4-dev";m.select.init=function(a){var b=a.settings()[0];if(!b._select){var c=
26
+ a.state.loaded(),d=function(t,G,p){if(null!==p&&p.select!==l){a.rows().deselect();a.columns().deselect();a.cells().deselect();p.select.rows!==l&&a.rows(p.select.rows).select();p.select.columns!==l&&a.columns(p.select.columns).select();if(p.select.cells!==l)for(t=0;t<p.select.cells.length;t++)a.cell(p.select.cells[t].row,p.select.cells[t].column).select();a.state.save()}};a.one("init",function(){a.on("stateSaveParams",function(t,G,p){p.select={};p.select.rows=a.rows({selected:!0}).ids(!0).toArray();
27
+ p.select.columns=a.columns({selected:!0})[0];p.select.cells=a.cells({selected:!0})[0].map(function(L){return{row:a.row(L.row).id(!0),column:L.column}})});d(l,l,c);a.on("stateLoaded stateLoadParams",d)});var e=b.oInit.select,g=m.defaults.select;e=e===l?g:e;g="row";var f="api",k=!1,n=!0,q=!0,y="td, th",M="selected",B=!1;b._select={};!0===e?(f="os",B=!0):"string"===typeof e?(f=e,B=!0):h.isPlainObject(e)&&(e.blurable!==l&&(k=e.blurable),e.toggleable!==l&&(n=e.toggleable),e.info!==l&&(q=e.info),e.items!==
28
+ l&&(g=e.items),f=e.style!==l?e.style:"os",B=!0,e.selector!==l&&(y=e.selector),e.className!==l&&(M=e.className));a.select.selector(y);a.select.items(g);a.select.style(f);a.select.blurable(k);a.select.toggleable(n);a.select.info(q);b._select.className=M;h.fn.dataTable.ext.order["select-checkbox"]=function(t,G){return this.api().column(G,{order:"index"}).nodes().map(function(p){return"row"===t._select.items?h(p).parent().hasClass(t._select.className):"cell"===t._select.items?h(p).hasClass(t._select.className):
29
+ !1})};!B&&h(a.table().node()).hasClass("selectable")&&a.select.style("os")}};h.each([{type:"row",prop:"aoData"},{type:"column",prop:"aoColumns"}],function(a,b){m.ext.selector[b.type].push(function(c,d,e){d=d.selected;var g=[];if(!0!==d&&!1!==d)return e;for(var f=0,k=e.length;f<k;f++){var n=c[b.prop][e[f]];(!0===d&&!0===n._select_selected||!1===d&&!n._select_selected)&&g.push(e[f])}return g})});m.ext.selector.cell.push(function(a,b,c){b=b.selected;var d=[];if(b===l)return c;for(var e=0,g=c.length;e<
30
+ g;e++){var f=a.aoData[c[e].row];(!0===b&&f._selected_cells&&!0===f._selected_cells[c[e].column]||!(!1!==b||f._selected_cells&&f._selected_cells[c[e].column]))&&d.push(c[e])}return d});var w=m.Api.register,x=m.Api.registerPlural;w("select()",function(){return this.iterator("table",function(a){m.select.init(new m.Api(a))})});w("select.blurable()",function(a){return a===l?this.context[0]._select.blurable:this.iterator("table",function(b){b._select.blurable=a})});w("select.toggleable()",function(a){return a===
31
+ l?this.context[0]._select.toggleable:this.iterator("table",function(b){b._select.toggleable=a})});w("select.info()",function(a){return a===l?this.context[0]._select.info:this.iterator("table",function(b){b._select.info=a})});w("select.items()",function(a){return a===l?this.context[0]._select.items:this.iterator("table",function(b){b._select.items=a;u(new m.Api(b),"selectItems",[a])})});w("select.style()",function(a){return a===l?this.context[0]._select.style:this.iterator("table",function(b){b._select||
32
+ m.select.init(new m.Api(b));b._select_init||O(b);b._select.style=a;var c=new m.Api(b);C(c);"api"!==a&&J(c);u(new m.Api(b),"selectStyle",[a])})});w("select.selector()",function(a){return a===l?this.context[0]._select.selector:this.iterator("table",function(b){C(new m.Api(b));b._select.selector=a;"api"!==b._select.style&&J(new m.Api(b))})});x("rows().select()","row().select()",function(a){var b=this;if(!1===a)return this.deselect();this.iterator("row",function(c,d){z(c);c.aoData[d]._select_selected=
33
+ !0;h(c.aoData[d].nTr).addClass(c._select.className)});this.iterator("table",function(c,d){u(b,"select",["row",b[d]],!0)});return this});x("columns().select()","column().select()",function(a){var b=this;if(!1===a)return this.deselect();this.iterator("column",function(c,d){z(c);c.aoColumns[d]._select_selected=!0;d=(new m.Api(c)).column(d);h(d.header()).addClass(c._select.className);h(d.footer()).addClass(c._select.className);d.nodes().to$().addClass(c._select.className)});this.iterator("table",function(c,
34
+ d){u(b,"select",["column",b[d]],!0)});return this});x("cells().select()","cell().select()",function(a){var b=this;if(!1===a)return this.deselect();this.iterator("cell",function(c,d,e){z(c);d=c.aoData[d];d._selected_cells===l&&(d._selected_cells=[]);d._selected_cells[e]=!0;d.anCells&&h(d.anCells[e]).addClass(c._select.className)});this.iterator("table",function(c,d){u(b,"select",["cell",b.cells(b[d]).indexes().toArray()],!0)});return this});x("rows().deselect()","row().deselect()",function(){var a=
35
+ this;this.iterator("row",function(b,c){b.aoData[c]._select_selected=!1;b._select_lastCell=null;h(b.aoData[c].nTr).removeClass(b._select.className)});this.iterator("table",function(b,c){u(a,"deselect",["row",a[c]],!0)});return this});x("columns().deselect()","column().deselect()",function(){var a=this;this.iterator("column",function(b,c){b.aoColumns[c]._select_selected=!1;var d=new m.Api(b),e=d.column(c);h(e.header()).removeClass(b._select.className);h(e.footer()).removeClass(b._select.className);
36
+ d.cells(null,c).indexes().each(function(g){var f=b.aoData[g.row],k=f._selected_cells;!f.anCells||k&&k[g.column]||h(f.anCells[g.column]).removeClass(b._select.className)})});this.iterator("table",function(b,c){u(a,"deselect",["column",a[c]],!0)});return this});x("cells().deselect()","cell().deselect()",function(){var a=this;this.iterator("cell",function(b,c,d){c=b.aoData[c];c._selected_cells!==l&&(c._selected_cells[d]=!1);c.anCells&&!b.aoColumns[d]._select_selected&&h(c.anCells[d]).removeClass(b._select.className)});
37
+ this.iterator("table",function(b,c){u(a,"deselect",["cell",a[c]],!0)});return this});var H=0;h.extend(m.ext.buttons,{selected:{text:A("selected","Selected"),className:"buttons-selected",limitTo:["rows","columns","cells"],init:function(a,b,c){var d=this;c._eventNamespace=".select"+H++;a.on(F(c),function(){d.enable(P(a,c))});this.disable()},destroy:function(a,b,c){a.off(c._eventNamespace)}},selectedSingle:{text:A("selectedSingle","Selected single"),className:"buttons-selected-single",init:function(a,
38
+ b,c){var d=this;c._eventNamespace=".select"+H++;a.on(F(c),function(){var e=a.rows({selected:!0}).flatten().length+a.columns({selected:!0}).flatten().length+a.cells({selected:!0}).flatten().length;d.enable(1===e)});this.disable()},destroy:function(a,b,c){a.off(c._eventNamespace)}},selectAll:{text:A("selectAll","Select all"),className:"buttons-select-all",action:function(){this[this.select.items()+"s"]().select()}},selectNone:{text:A("selectNone","Deselect all"),className:"buttons-select-none",action:function(){z(this.settings()[0],
39
+ !0)},init:function(a,b,c){var d=this;c._eventNamespace=".select"+H++;a.on(F(c),function(){var e=a.rows({selected:!0}).flatten().length+a.columns({selected:!0}).flatten().length+a.cells({selected:!0}).flatten().length;d.enable(0<e)});this.disable()},destroy:function(a,b,c){a.off(c._eventNamespace)}}});h.each(["Row","Column","Cell"],function(a,b){var c=b.toLowerCase();m.ext.buttons["select"+b+"s"]={text:A("select"+b+"s","Select "+c+"s"),className:"buttons-select-"+c+"s",action:function(){this.select.items(c)},
40
+ init:function(d){var e=this;d.on("selectItems.dt.DT",function(g,f,k){e.active(k===c)})}}});h(v).on("preInit.dt.dtSelect",function(a,b){"dt"===a.namespace&&m.select.init(new m.Api(b))});return m.select});
package/package.json CHANGED
@@ -1,30 +1,43 @@
1
1
  {
2
2
  "name": "datatables.net-select",
3
- "version": "1.3.0",
4
- "description": "Select for DataTables ",
3
+ "description": "Select for DataTables",
4
+ "main": "js/dataTables.select.js",
5
+ "types": "./types/types.d.ts",
6
+ "version": "1.3.4",
5
7
  "files": [
6
- "js/**/*.js"
8
+ "js/**/*.js",
9
+ "types/**/*.d.ts"
7
10
  ],
8
- "main": "js/dataTables.select.js",
9
11
  "keywords": [
10
12
  "select",
11
13
  "selection",
12
- "DataTables",
14
+ "Datatables",
13
15
  "jQuery",
14
16
  "table",
15
- "DataTables"
17
+ "filter",
18
+ "sort"
19
+ ],
20
+ "dependencies": {
21
+ "datatables.net": ">=1.11.3",
22
+ "jquery": ">=1.7"
23
+ },
24
+ "moduleType": [
25
+ "globals",
26
+ "amd",
27
+ "node"
28
+ ],
29
+ "ignore": [
30
+ "composer.json",
31
+ "datatables.json",
32
+ "package.json"
16
33
  ],
17
- "homepage": "https://datatables.net",
18
- "bugs": "https://datatables.net/forums",
19
- "license": "MIT",
20
34
  "author": {
21
35
  "name": "SpryMedia Ltd",
22
36
  "url": "http://datatables.net"
23
37
  },
24
- "dependencies": {
25
- "jquery": ">=1.7",
26
- "datatables.net": "^1.10.15"
27
- },
38
+ "homepage": "https://datatables.net",
39
+ "bugs": "https://datatables.net/forums",
40
+ "license": "MIT",
28
41
  "repository": {
29
42
  "type": "git",
30
43
  "url": "https://github.com/DataTables/Dist-DataTables-Select.git"
@@ -0,0 +1,195 @@
1
+ // Type definitions for datatables.net-select 1.2
2
+ // Project: https://datatables.net/extensions/select/, https://datatables.net
3
+ // Definitions by: Jared Szechy <https://github.com/szechyjs>
4
+ // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
5
+ // TypeScript Version: 2.4
6
+
7
+ /// <reference types="jquery" />
8
+ /// <reference types="datatables.net"/>
9
+
10
+ declare namespace DataTables {
11
+ interface Settings {
12
+ /*
13
+ * Select extension options
14
+ */
15
+ select?: boolean | string | SelectSettings;
16
+ }
17
+
18
+ interface SelectSettings {
19
+ /*
20
+ * Indicate if the selected items will be removed when clicking outside of the table
21
+ */
22
+ blurable?: boolean;
23
+
24
+ /*
25
+ * Set the class name that will be applied to selected items
26
+ */
27
+ className?: string;
28
+
29
+ /*
30
+ * Enable / disable the display for item selection information in the table summary
31
+ */
32
+ info?: boolean;
33
+
34
+ /*
35
+ * Set which table items to select (rows, columns or cells)
36
+ */
37
+ items?: string;
38
+
39
+ /*
40
+ * Set the element selector used for mouse event capture to select items
41
+ */
42
+ selector?: string;
43
+
44
+ /*
45
+ * Set the selection style for end user interaction with the table
46
+ */
47
+ style?: "api" | "single" | "multi" | "os" | "multi+shift";
48
+ }
49
+
50
+ interface Api {
51
+ select: {
52
+ /**
53
+ * Initialise Select for a DataTable after the DataTable has been constructed.
54
+ *
55
+ * @returns DataTables Api instance
56
+ */
57
+ (): Api;
58
+
59
+ /**
60
+ * Get the blurable state for the table.
61
+ *
62
+ * @returns Current state - true if blurable, false otherwise. Note that if multiple tables are defined in the API's context, only the blurable state of the first table will be returned.
63
+ */
64
+ blurable(): boolean;
65
+
66
+ /**
67
+ * Set the blurable state for the table's selection options.
68
+ *
69
+ * @param flag Value to set for the blurable option - true to enable, false to disable.
70
+ * @returns DataTables Api instance for chaining
71
+ */
72
+ blurable(flag): Api;
73
+
74
+ /**
75
+ * Get the summary information display state for the table.
76
+ *
77
+ * @returns Current state - true if information summary shown, false otherwise. Note that if multiple tables are defined in the API's context, only the information state of the first table will be returned.
78
+ */
79
+ info(): boolean;
80
+
81
+ /**
82
+ * Set the information summary display state for the table's selection options.
83
+ *
84
+ * @param flag Value to set for the information summary display state - true to enable, false to disable.
85
+ * @returns DataTables API instance for chaining.
86
+ */
87
+ info(flag): Api;
88
+
89
+ /**
90
+ * Get the items that will be selected by user interaction (i.e. a click on the table).
91
+ *
92
+ * @returns The current item that will be selected when the user interacts with Select's event listeners - this will be the value row, column or cell.
93
+ */
94
+ items(): string;
95
+
96
+ /**
97
+ * Set the item type that will be selected by user interaction.
98
+ *
99
+ * @param set Items to select - this must be one of row, column or cells.
100
+ * @returns DataTables API instance for chaining.
101
+ */
102
+ items(set: string): Api;
103
+
104
+ /**
105
+ * Get the current item selector string applied to the table.
106
+ *
107
+ * @returns the item selector string being used for the table.
108
+ */
109
+ selector(): string;
110
+
111
+ /**
112
+ * Set the table's item selector string. Note that any old selectors will be automatically removed if this is used as a selector to ensure that there are no memory leaks in unattached event listeners.
113
+ *
114
+ * @param set jQuery selector that will select the cells that can trigger item selection.
115
+ */
116
+ selector(set: string): Api;
117
+
118
+ /**
119
+ * Get the current selection style applied to the table
120
+ *
121
+ * @returns The current selection style, this will be one of "api", "single", "multi" or "os".
122
+ */
123
+ style(): string;
124
+
125
+ /**
126
+ * Set the table's selection style
127
+ *
128
+ * @param s Selection style to set - this must be one of "api", "single", "multi" or "os".
129
+ * @returns DataTables API instance for chaining.
130
+ */
131
+ style(s: "api" | "single" | "multi" | "os"): Api;
132
+
133
+ /**
134
+ * Get the toggle state of Select for the given DataTable.
135
+ *
136
+ * @returns true if the item can be deselected when clicked on, false if it cannot be.
137
+ */
138
+ toggleable(): boolean;
139
+
140
+ /**
141
+ * Set the toggle state of Select for the DataTable.
142
+ *
143
+ * @param set true to allow item deselection, false to disallow.
144
+ * @returns DataTables API instance for chaining.
145
+ */
146
+ toggleable(set): Api;
147
+ };
148
+ }
149
+
150
+ interface RowMethods {
151
+ /**
152
+ * Select a row
153
+ */
154
+ select(): Api;
155
+ /**
156
+ * Deselect a row
157
+ */
158
+ deselect(): Api;
159
+ }
160
+
161
+ interface RowsMethods {
162
+ /**
163
+ * Select multiple rows
164
+ */
165
+ select(): Api;
166
+ /**
167
+ * Deselect a row
168
+ */
169
+ deselect(): Api;
170
+ }
171
+
172
+ interface CellMethods {
173
+ /**
174
+ * Select cell
175
+ */
176
+ select(): Api;
177
+
178
+ /**
179
+ * Deselect a cell
180
+ */
181
+ deselect(): Api;
182
+ }
183
+
184
+ interface CellsMethods {
185
+ /**
186
+ * Select multiple cells
187
+ */
188
+ select(): Api;
189
+
190
+ /**
191
+ * Deselect cells
192
+ */
193
+ deselect(): Api;
194
+ }
195
+ }