datatables.net-select 1.3.2 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,4 +1,4 @@
1
- /*! Select for DataTables 1.3.2
1
+ /*! Select for DataTables 1.4.0-dev
2
2
  * 2015-2021 SpryMedia Ltd - datatables.net/license/mit
3
3
  */
4
4
 
@@ -6,7 +6,7 @@
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.2
9
+ * @version 1.4.0-dev
10
10
  * @file dataTables.select.js
11
11
  * @author SpryMedia Ltd (www.sprymedia.co.uk)
12
12
  * @contact datatables.net/forums
@@ -54,10 +54,63 @@ var DataTable = $.fn.dataTable;
54
54
  // Version information for debugger
55
55
  DataTable.select = {};
56
56
 
57
- DataTable.select.version = '1.3.2';
57
+ DataTable.select.version = '1.4.0-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
+
73
+ // Clear any currently selected rows, before restoring state
74
+ // None will be selected on first initialisation
75
+ if (dt.rows({selected: true}).any()) {
76
+ dt.rows().deselect();
77
+ }
78
+ if (data.select.rows !== undefined) {
79
+ dt.rows(data.select.rows).select();
80
+ }
81
+
82
+ if (dt.columns({selected: true}).any()) {
83
+ dt.columns().deselect();
84
+ }
85
+ if (data.select.columns !== undefined) {
86
+ dt.columns(data.select.columns).select();
87
+ }
88
+
89
+ if (dt.cells({selected: true}).any()) {
90
+ dt.cells().deselect();
91
+ }
92
+ if (data.select.cells !== undefined) {
93
+ for(var i = 0; i < data.select.cells.length; i++) {
94
+ dt.cell(data.select.cells[i].row, data.select.cells[i].column).select();
95
+ }
96
+ }
97
+ dt.state.save();
98
+ }
99
+
100
+ dt.one('init', function() {
101
+ dt.on('stateSaveParams', function(e, settings, data) {
102
+ data.select = {};
103
+ data.select.rows = dt.rows({selected:true}).ids(true).toArray();
104
+ data.select.columns = dt.columns({selected:true})[0];
105
+ data.select.cells = dt.cells({selected:true})[0].map(function(coords) {
106
+ return {row: dt.row(coords.row).id(true), column: coords.column}
107
+ });
108
+ })
109
+
110
+ selectAndSave(undefined, undefined, savedSelected)
111
+ dt.on('stateLoaded stateLoadParams', selectAndSave)
112
+ })
113
+
61
114
  var init = ctx.oInit.select;
62
115
  var defaults = DataTable.defaults.select;
63
116
  var opts = init === undefined ?
@@ -436,6 +489,13 @@ function enableMouseSelection ( dt )
436
489
  return;
437
490
  }
438
491
 
492
+ var event = $.Event('select-blur.dt');
493
+ eventTrigger( dt, event, [ e.target, e ] );
494
+
495
+ if ( event.isDefaultPrevented() ) {
496
+ return;
497
+ }
498
+
439
499
  clear( ctx, true );
440
500
  }
441
501
  } );
@@ -529,6 +589,7 @@ function info ( api )
529
589
  */
530
590
  function init ( ctx ) {
531
591
  var api = new DataTable.Api( ctx );
592
+ ctx._select_init = true;
532
593
 
533
594
  // Row callback so that classes can be added to rows and cells if the item
534
595
  // was selected before the element was created. This will happen with the
@@ -597,6 +658,7 @@ function init ( ctx ) {
597
658
  // Update the table information element with selected item summary
598
659
  api.on( 'draw.dtSelect.dt select.dtSelect.dt deselect.dtSelect.dt info.dt', function () {
599
660
  info( api );
661
+ api.state.save();
600
662
  } );
601
663
 
602
664
  // Clean up and release
@@ -605,6 +667,7 @@ function init ( ctx ) {
605
667
 
606
668
  disableMouseSelection( api );
607
669
  api.off( '.dtSelect' );
670
+ $('body').off('.dtSelect' + _safeId(api.table().node()));
608
671
  } );
609
672
  }
610
673
 
@@ -873,12 +936,16 @@ apiRegister( 'select.style()', function ( style ) {
873
936
  }
874
937
 
875
938
  return this.iterator( 'table', function ( ctx ) {
876
- ctx._select.style = style;
939
+ if ( ! ctx._select ) {
940
+ DataTable.select.init( new DataTable.Api(ctx) );
941
+ }
877
942
 
878
943
  if ( ! ctx._select_init ) {
879
- init( ctx );
944
+ init(ctx);
880
945
  }
881
946
 
947
+ ctx._select.style = style;
948
+
882
949
  // Add / remove mouse event handlers. They aren't required when only
883
950
  // API selection is available
884
951
  var dt = new DataTable.Api( ctx );
@@ -931,6 +998,21 @@ apiRegisterPlural( 'rows().select()', 'row().select()', function ( select ) {
931
998
  return this;
932
999
  } );
933
1000
 
1001
+ apiRegister( 'row().selected()', function () {
1002
+ var ctx = this.context[0];
1003
+
1004
+ if (
1005
+ ctx &&
1006
+ this.length &&
1007
+ ctx.aoData[this[0]] &&
1008
+ ctx.aoData[this[0]]._select_selected
1009
+ ) {
1010
+ return true;
1011
+ }
1012
+
1013
+ return false;
1014
+ } );
1015
+
934
1016
  apiRegisterPlural( 'columns().select()', 'column().select()', function ( select ) {
935
1017
  var api = this;
936
1018
 
@@ -958,6 +1040,21 @@ apiRegisterPlural( 'columns().select()', 'column().select()', function ( select
958
1040
  return this;
959
1041
  } );
960
1042
 
1043
+ apiRegister( 'column().selected()', function () {
1044
+ var ctx = this.context[0];
1045
+
1046
+ if (
1047
+ ctx &&
1048
+ this.length &&
1049
+ ctx.aoColumns[this[0]] &&
1050
+ ctx.aoColumns[this[0]]._select_selected
1051
+ ) {
1052
+ return true;
1053
+ }
1054
+
1055
+ return false;
1056
+ } );
1057
+
961
1058
  apiRegisterPlural( 'cells().select()', 'cell().select()', function ( select ) {
962
1059
  var api = this;
963
1060
 
@@ -988,6 +1085,20 @@ apiRegisterPlural( 'cells().select()', 'cell().select()', function ( select ) {
988
1085
  return this;
989
1086
  } );
990
1087
 
1088
+ apiRegister( 'cell().selected()', function () {
1089
+ var ctx = this.context[0];
1090
+
1091
+ if (ctx && this.length) {
1092
+ var row = ctx.aoData[this[0][0].row];
1093
+
1094
+ if (row && row._selected_cells && row._selected_cells[this[0][0].column]) {
1095
+ return true;
1096
+ }
1097
+ }
1098
+
1099
+ return false;
1100
+ } );
1101
+
991
1102
 
992
1103
  apiRegisterPlural( 'rows().deselect()', 'row().deselect()', function () {
993
1104
  var api = this;
@@ -1043,7 +1154,9 @@ apiRegisterPlural( 'cells().deselect()', 'cell().deselect()', function () {
1043
1154
  this.iterator( 'cell', function ( ctx, rowIdx, colIdx ) {
1044
1155
  var data = ctx.aoData[ rowIdx ];
1045
1156
 
1046
- data._selected_cells[ colIdx ] = false;
1157
+ if(data._selected_cells !== undefined) {
1158
+ data._selected_cells[ colIdx ] = false;
1159
+ }
1047
1160
 
1048
1161
  // Remove class only if the cells exist, and the cell is not column
1049
1162
  // selected, in which case the class should remain (since it is selected
@@ -1,28 +1,41 @@
1
1
  /*!
2
- Select for DataTables 1.3.2
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.4.0-dev
3
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,m){i||(i=window);if(!m||!m.fn.dataTable)m=require("datatables.net")(i,m).$;return e(m,i,i.document)}:e(jQuery,window,document)})(function(e,i,m,h){function x(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 t(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"+z(a.table().node()))}function A(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],k=a.settings()[0].oClasses.sWrapper.trim().replace(/ +/g,".");if(e(b.target).closest("div."+k)[0]==a.table().container()&&(k=a.cell(e(b.target).closest("td, th")),k.any())){var g=e.Event("user-select.dt");l(a,g,[c,k,b]);g.isDefaultPrevented()||(g=k.index(),"row"===c?(c=g.row,u(b,a,d,"row",c)):"column"===c?(c=k.index().column,u(b,a,d,"column",c)):"cell"===c&&(c=k.index(),u(b,a,d,"cell",c)),
9
- d._select_lastCell=g)}});e("body").on("click.dtSelect"+z(a.table().node()),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)&&q(b,!0)})}function l(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 B(a,c,b,d){var f=a[c+"s"]({search:"applied"}).indexes(),d=e.inArray(d,f),n=e.inArray(b,f);if(!a[c+"s"]({selected:!0}).any()&&
10
- -1===d)f.splice(e.inArray(b,f)+1,f.length);else{if(d>n)var g=n,n=d,d=g;f.splice(n+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 q(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 u(a,c,b,d,f){var e=c.select.style(),g=c.select.toggleable(),j=c[d](f,{selected:!0}).any();if(!j||g)"os"===e?a.ctrlKey||
11
- a.metaKey?c[d](f).select(!j):a.shiftKey?"cell"===d?x(c,f,b._select_lastCell||null):B(c,d,f,b._select_lastCell?b._select_lastCell[d]:null):(a=c[d+"s"]({selected:!0}),j&&1===a.flatten().length?c[d](f).deselect():(a.deselect(),c[d](f).select())):"multi+shift"==e?a.shiftKey?"cell"===d?x(c,f,b._select_lastCell||null):B(c,d,f,b._select_lastCell?b._select_lastCell[d]:null):c[d](f).select(!j):c[d](f).select(!j)}function z(a){return a.id.replace(/[^a-zA-Z0-9\-\_]/g,"-")}function r(a,c){return function(b){return b.i18n("buttons."+
12
- a,c)}}function v(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.2";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",n=!1,y=!0,j=!0,k="td, th",i="selected",s=!1;c._select={};if(!0===b)f="os",s=!0;else if("string"===typeof b)f=b,s=!0;else if(e.isPlainObject(b)&&(b.blurable!==h&&(n=b.blurable),b.toggleable!==h&&(y=b.toggleable),b.info!==h&&(j=b.info),
13
- b.items!==h&&(d=b.items),f=b.style!==h?b.style:"os",s=!0,b.selector!==h&&(k=b.selector),b.className!==h))i=b.className;a.select.selector(k);a.select.items(d);a.select.style(f);a.select.blurable(n);a.select.toggleable(y);a.select.info(j);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):
14
- !1})};!s&&e(a.table().node()).hasClass("selectable")&&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 j=0,k=f.length;j<k;j++)e=b[c.prop][f[j]],(!0===a&&!0===e._select_selected||!1===a&&!e._select_selected)&&g.push(f[j]);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<
15
- g;e++)d=a.aoData[b[e].row],(!0===c&&d._selected_cells&&!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 o=g.Api.register,p=g.Api.registerPlural;o("select()",function(){return this.iterator("table",function(a){g.select.init(new g.Api(a))})});o("select.blurable()",function(a){return a===h?this.context[0]._select.blurable:this.iterator("table",function(c){c._select.blurable=a})});o("select.toggleable()",function(a){return a===
16
- h?this.context[0]._select.toggleable:this.iterator("table",function(c){c._select.toggleable=a})});o("select.info()",function(a){return a===h?this.context[0]._select.info:this.iterator("table",function(c){c._select.info=a})});o("select.items()",function(a){return a===h?this.context[0]._select.items:this.iterator("table",function(c){c._select.items=a;l(new g.Api(c),"selectItems",[a])})});o("select.style()",function(a){return a===h?this.context[0]._select.style:this.iterator("table",function(c){c._select.style=
17
- 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||a._selected_cells&&a._selected_cells[b])&&e(a.anCells[b]).addClass(c._select.className)},sName:"select-deferRender"});b.on("preXhr.dt.dtSelect",function(c,a){if(a===b.settings()[0]){var d=b.rows({selected:!0}).ids(!0).filter(function(b){return b!==h}),e=b.cells({selected:!0}).eq(0).map(function(a){var c=
18
- b.row(a.row).id(!0);return c?{row:c,column:a.column}:h}).filter(function(b){return b!==h});b.one("draw.dt.dtSelect",function(){b.rows(d).select();e.any()&&e.each(function(a){b.cells(a.row,a.column).select()})})}});b.on("draw.dtSelect.dt select.dtSelect.dt deselect.dtSelect.dt info.dt",function(){var a=b.settings()[0];if(a._select.info&&a.aanFeatures.i&&"api"!==b.select.style()){var c=b.rows({selected:!0}).flatten().length,d=b.columns({selected:!0}).flatten().length,g=b.cells({selected:!0}).flatten().length,
19
- h=function(a,c,d){a.append(e('<span class="select-item"/>').append(b.i18n("select."+c+"s",{_:"%d "+c+"s selected","0":"",1:"1 "+c+" selected"},d)))};e.each(a.aanFeatures.i,function(b,a){var a=e(a),f=e('<span class="select-info"/>');h(f,"row",c);h(f,"column",d);h(f,"cell",g);var i=a.children("span.select-info");i.length&&i.remove();""!==f.text()&&a.append(f)})}});b.on("destroy.dtSelect",function(){b.rows({selected:!0}).deselect();t(b);b.off(".dtSelect")})}var d=new g.Api(c);t(d);"api"!==a&&A(d);l(new g.Api(c),
20
- "selectStyle",[a])})});o("select.selector()",function(a){return a===h?this.context[0]._select.selector:this.iterator("table",function(c){t(new g.Api(c));c._select.selector=a;"api"!==c._select.style&&A(new g.Api(c))})});p("rows().select()","row().select()",function(a){var c=this;if(!1===a)return this.deselect();this.iterator("row",function(b,a){q(b);b.aoData[a]._select_selected=!0;e(b.aoData[a].nTr).addClass(b._select.className)});this.iterator("table",function(b,a){l(c,"select",["row",c[a]],!0)});
21
- return this});p("columns().select()","column().select()",function(a){var c=this;if(!1===a)return this.deselect();this.iterator("column",function(b,a){q(b);b.aoColumns[a]._select_selected=!0;var c=(new g.Api(b)).column(a);e(c.header()).addClass(b._select.className);e(c.footer()).addClass(b._select.className);c.nodes().to$().addClass(b._select.className)});this.iterator("table",function(b,a){l(c,"select",["column",c[a]],!0)});return this});p("cells().select()","cell().select()",function(a){var c=this;
22
- if(!1===a)return this.deselect();this.iterator("cell",function(b,a,c){q(b);a=b.aoData[a];a._selected_cells===h&&(a._selected_cells=[]);a._selected_cells[c]=!0;a.anCells&&e(a.anCells[c]).addClass(b._select.className)});this.iterator("table",function(a,d){l(c,"select",["cell",c.cells(c[d]).indexes().toArray()],!0)});return this});p("rows().deselect()","row().deselect()",function(){var a=this;this.iterator("row",function(a,b){a.aoData[b]._select_selected=!1;a._select_lastCell=null;e(a.aoData[b].nTr).removeClass(a._select.className)});
23
- this.iterator("table",function(c,b){l(a,"deselect",["row",a[b]],!0)});return this});p("columns().deselect()","column().deselect()",function(){var a=this;this.iterator("column",function(a,b){a.aoColumns[b]._select_selected=!1;var d=new g.Api(a),f=d.column(b);e(f.header()).removeClass(a._select.className);e(f.footer()).removeClass(a._select.className);d.cells(null,b).indexes().each(function(b){var d=a.aoData[b.row],f=d._selected_cells;d.anCells&&(!f||!f[b.column])&&e(d.anCells[b.column]).removeClass(a._select.className)})});
24
- this.iterator("table",function(c,b){l(a,"deselect",["column",a[b]],!0)});return this});p("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){l(a,"deselect",["cell",a[b]],!0)});return this});var w=0;e.extend(g.ext.buttons,{selected:{text:r("selected","Selected"),className:"buttons-selected",
25
- limitTo:["rows","columns","cells"],init:function(a,c,b){var d=this;b._eventNamespace=".select"+w++;a.on(v(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,c,b){a.off(b._eventNamespace)}},selectedSingle:{text:r("selectedSingle","Selected single"),className:"buttons-selected-single",init:function(a,
26
- c,b){var d=this;b._eventNamespace=".select"+w++;a.on(v(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:r("selectAll","Select all"),className:"buttons-select-all",action:function(){this[this.select.items()+"s"]().select()}},selectNone:{text:r("selectNone","Deselect all"),className:"buttons-select-none",action:function(){q(this.settings()[0],
27
- !0)},init:function(a,c,b){var d=this;b._eventNamespace=".select"+w++;a.on(v(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();g.ext.buttons["select"+c+"s"]={text:r("select"+c+"s","Select "+b+"s"),className:"buttons-select-"+b+"s",action:function(){this.select.items(b)},
28
- init:function(a){var c=this;a.on("selectItems.dt.DT",function(a,d,e){c.active(e===b)})}}});e(m).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,w){r||(r=window);w&&w.fn.dataTable||(w=require("datatables.net")(r,w).$);return h(w,r,r.document)}:h(jQuery,window,document)})(function(h,r,w,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){if(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){var f=h.Event("select-blur.dt");u(a,f,[g.target,g]);f.isDefaultPrevented()||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&&
20
+ b.aanFeatures.i&&"api"!==a.select.style()){var c=a.rows({selected:!0}).flatten().length,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();
21
+ ""!==f.text()&&k.append(f)})}}function O(a){var b=new m.Api(a);a._select_init=!0;a.aoRowCreatedCallback.push({fn:function(c,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!==
22
+ 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}: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()))})}
23
+ function K(a,b,c,d){var e=a[b+"s"]({search:"applied"}).indexes();d=h.inArray(d,e);var g=h.inArray(c,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()}
24
+ function E(a,b,c,d,e){var g=b.select.style(),f=b.select.toggleable(),k=b[d](e,{selected:!0}).any();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):
25
+ b[d](e).select(!k)}function D(a){return a.id.replace(/[^a-zA-Z0-9\-_]/g,"-")}function A(a,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=
26
+ "1.4.0-dev";m.select.init=function(a){var b=a.settings()[0];if(!b._select){var c=a.state.loaded(),d=function(t,G,p){if(null!==p&&p.select!==l){a.rows({selected:!0}).any()&&a.rows().deselect();p.select.rows!==l&&a.rows(p.select.rows).select();a.columns({selected:!0}).any()&&a.columns().deselect();p.select.columns!==l&&a.columns(p.select.columns).select();a.cells({selected:!0}).any()&&a.cells().deselect();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();
27
+ 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();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"===
28
+ 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!==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"===
29
+ t._select.items?h(p).parent().hasClass(t._select.className):"cell"===t._select.items?h(p).hasClass(t._select.className):!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})});
30
+ 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<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 v=m.Api.register,x=m.Api.registerPlural;v("select()",function(){return this.iterator("table",function(a){m.select.init(new m.Api(a))})});v("select.blurable()",function(a){return a===l?this.context[0]._select.blurable:
31
+ this.iterator("table",function(b){b._select.blurable=a})});v("select.toggleable()",function(a){return a===l?this.context[0]._select.toggleable:this.iterator("table",function(b){b._select.toggleable=a})});v("select.info()",function(a){return a===l?this.context[0]._select.info:this.iterator("table",function(b){b._select.info=a})});v("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])})});v("select.style()",
32
+ function(a){return a===l?this.context[0]._select.style:this.iterator("table",function(b){b._select||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])})});v("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;
33
+ if(!1===a)return this.deselect();this.iterator("row",function(c,d){z(c);c.aoData[d]._select_selected=!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});v("row().selected()",function(){var a=this.context[0];return a&&this.length&&a.aoData[this[0]]&&a.aoData[this[0]]._select_selected?!0:!1});x("columns().select()","column().select()",function(a){var b=this;if(!1===a)return this.deselect();this.iterator("column",function(c,
34
+ 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,d){u(b,"select",["column",b[d]],!0)});return this});v("column().selected()",function(){var a=this.context[0];return a&&this.length&&a.aoColumns[this[0]]&&a.aoColumns[this[0]]._select_selected?!0:!1});x("cells().select()","cell().select()",function(a){var b=this;
35
+ 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});v("cell().selected()",function(){var a=this.context[0];return a&&this.length&&(a=a.aoData[this[0][0].row])&&a._selected_cells&&a._selected_cells[this[0][0].column]?!0:!1});
36
+ x("rows().deselect()","row().deselect()",function(){var a=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);
37
+ h(e.footer()).removeClass(b._select.className);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&&
38
+ h(c.anCells[d]).removeClass(b._select.className)});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"),
39
+ className:"buttons-selected-single",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(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",
40
+ "Deselect all"),className:"buttons-select-none",action:function(){z(this.settings()[0],!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"+
41
+ b+"s","Select "+c+"s"),className:"buttons-select-"+c+"s",action:function(){this.select.items(c)},init:function(d){var e=this;d.on("selectItems.dt.DT",function(g,f,k){e.active(k===c)})}}});h(w).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,36 +1,45 @@
1
1
  {
2
2
  "name": "datatables.net-select",
3
- "version": "1.3.2",
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.4.0",
5
7
  "files": [
6
- "js/**/*.js"
8
+ "js/**/*.js",
9
+ "types/**/*.d.ts"
7
10
  ],
8
- "main": "js/dataTables.select.js",
9
- "type": "types.d.ts",
10
11
  "keywords": [
11
12
  "select",
12
13
  "selection",
13
- "DataTables",
14
+ "Datatables",
14
15
  "jQuery",
15
16
  "table",
16
- "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"
17
33
  ],
18
- "homepage": "https://datatables.net",
19
- "bugs": "https://datatables.net/forums",
20
- "license": "MIT",
21
34
  "author": {
22
35
  "name": "SpryMedia Ltd",
23
36
  "url": "http://datatables.net"
24
37
  },
25
- "dependencies": {
26
- "jquery": ">=1.7",
27
- "datatables.net": "^1.10.15"
28
- },
38
+ "homepage": "https://datatables.net",
39
+ "bugs": "https://datatables.net/forums",
40
+ "license": "MIT",
29
41
  "repository": {
30
42
  "type": "git",
31
43
  "url": "https://github.com/DataTables/Dist-DataTables-Select.git"
32
- },
33
- "devDependencies": {
34
- "@types/jquery": "^3.5.1"
35
44
  }
36
45
  }
@@ -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
+ }