jquery-datatables 1.10.19 → 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.
Files changed (88) hide show
  1. checksums.yaml +4 -4
  2. data/.gitattributes +1 -0
  3. data/README.md +28 -1
  4. data/app/assets/javascripts/datatables/dataTables.uikit.js +2 -2
  5. data/app/assets/javascripts/datatables/extensions/AutoFill/dataTables.autoFill.js +42 -29
  6. data/app/assets/javascripts/datatables/extensions/Buttons/buttons.bootstrap.js +1 -1
  7. data/app/assets/javascripts/datatables/extensions/Buttons/buttons.bootstrap4.js +8 -2
  8. data/app/assets/javascripts/datatables/extensions/Buttons/buttons.colVis.js +6 -3
  9. data/app/assets/javascripts/datatables/extensions/Buttons/buttons.foundation.js +5 -4
  10. data/app/assets/javascripts/datatables/extensions/Buttons/buttons.html5.js +58 -6
  11. data/app/assets/javascripts/datatables/extensions/Buttons/buttons.print.js +16 -5
  12. data/app/assets/javascripts/datatables/extensions/Buttons/buttons.semanticui.js +1 -1
  13. data/app/assets/javascripts/datatables/extensions/Buttons/dataTables.buttons.js +267 -152
  14. data/app/assets/javascripts/datatables/extensions/ColReorder/colReorder.foundation.js +1 -1
  15. data/app/assets/javascripts/datatables/extensions/ColReorder/dataTables.colReorder.js +121 -52
  16. data/app/assets/javascripts/datatables/extensions/FixedColumns/dataTables.fixedColumns.js +32 -5
  17. data/app/assets/javascripts/datatables/extensions/KeyTable/dataTables.keyTable.js +166 -63
  18. data/app/assets/javascripts/datatables/extensions/KeyTable/keyTable.foundation.js +1 -1
  19. data/app/assets/javascripts/datatables/extensions/RowGroup/dataTables.rowGroup.js +105 -53
  20. data/app/assets/javascripts/datatables/extensions/RowGroup/rowGroup.foundation.js +1 -1
  21. data/app/assets/javascripts/datatables/extensions/RowReorder/dataTables.rowReorder.js +10 -9
  22. data/app/assets/javascripts/datatables/extensions/RowReorder/rowReorder.foundation.js +1 -1
  23. data/app/assets/javascripts/datatables/extensions/Scroller/dataTables.scroller.js +519 -636
  24. data/app/assets/javascripts/datatables/extensions/Scroller/scroller.foundation.js +1 -1
  25. data/app/assets/javascripts/datatables/extensions/Select/dataTables.select.js +49 -18
  26. data/app/assets/javascripts/datatables/extensions/Select/select.foundation.js +1 -1
  27. data/app/assets/javascripts/datatables/jquery.dataTables.js +97 -60
  28. data/app/assets/javascripts/datatables/plugins/api/average.js +7 -6
  29. data/app/assets/javascripts/datatables/plugins/api/sum.js +7 -6
  30. data/app/assets/javascripts/datatables/plugins/pagination/ellipses.js +160 -0
  31. data/app/assets/javascripts/datatables/plugins/pagination/extjs.js +137 -0
  32. data/app/assets/javascripts/datatables/plugins/pagination/four_button.js +110 -0
  33. data/app/assets/javascripts/datatables/plugins/pagination/full_numbers_no_ellipses.js +59 -0
  34. data/app/assets/javascripts/datatables/plugins/pagination/input.js +22 -19
  35. data/app/assets/javascripts/datatables/plugins/pagination/scrolling.js +130 -0
  36. data/app/assets/javascripts/datatables/plugins/pagination/select.js +97 -0
  37. data/app/assets/javascripts/datatables/plugins/pagination/simple_incremental_bootstrap.js +154 -0
  38. data/app/assets/javascripts/datatables/plugins/pagination/simple_numbers_no_ellipses.js +59 -0
  39. data/app/assets/javascripts/datatables/plugins/search/dataTables.alphabetSearch.js +440 -399
  40. data/app/assets/javascripts/datatables/plugins/sorting/enum.js +51 -0
  41. data/app/assets/javascripts/datatables/plugins/type-detection/date-dd-MMM-yyyy.js +63 -0
  42. data/app/assets/javascripts/datatables/plugins/type-detection/date-de.js +125 -0
  43. data/app/assets/javascripts/datatables/plugins/type-detection/date-eu.js +64 -0
  44. data/app/assets/javascripts/datatables/plugins/type-detection/date-euro.js +48 -0
  45. data/app/assets/javascripts/datatables/plugins/type-detection/date-uk.js +35 -12
  46. data/app/assets/javascripts/datatables/plugins/type-detection/datetime-moment.js +74 -0
  47. data/app/assets/javascripts/datatables/plugins/type-detection/datetime-us.js +86 -0
  48. data/app/assets/javascripts/datatables/plugins/type-detection/file-size.js +37 -13
  49. data/app/assets/javascripts/datatables/plugins/type-detection/ip-address.js +113 -11
  50. data/app/assets/javascripts/datatables/plugins/type-detection/numString.js +63 -0
  51. data/app/assets/javascripts/datatables/plugins/type-detection/percent.js +34 -0
  52. data/app/assets/javascripts/datatables/plugins/type-detection/time-elapsed-dhms.js +42 -0
  53. data/app/assets/javascripts/datatables/plugins/type-detection/time.js +56 -0
  54. data/app/assets/javascripts/datatables/plugins/type-detection/title-numeric.js +40 -0
  55. data/app/assets/javascripts/datatables/plugins/type-detection/title-string.js +36 -0
  56. data/app/assets/stylesheets/datatables/dataTables.foundation.scss +5 -5
  57. data/app/assets/stylesheets/datatables/dataTables.material.scss +1 -1
  58. data/app/assets/stylesheets/datatables/extensions/AutoFill/autoFill.dataTables.scss +10 -3
  59. data/app/assets/stylesheets/datatables/extensions/Buttons/buttons.bootstrap.scss +12 -3
  60. data/app/assets/stylesheets/datatables/extensions/Buttons/buttons.bootstrap4.scss +13 -6
  61. data/app/assets/stylesheets/datatables/extensions/Buttons/buttons.dataTables.scss +2 -0
  62. data/app/assets/stylesheets/datatables/extensions/Buttons/buttons.foundation.scss +5 -1
  63. data/app/assets/stylesheets/datatables/extensions/Buttons/buttons.jqueryui.scss +1 -0
  64. data/app/assets/stylesheets/datatables/extensions/Buttons/buttons.semanticui.scss +2 -1
  65. data/app/assets/stylesheets/datatables/extensions/Buttons/common.scss +10 -0
  66. data/app/assets/stylesheets/datatables/extensions/Buttons/mixins.scss +42 -30
  67. data/app/assets/stylesheets/datatables/extensions/FixedColumns/fixedColumns.bootstrap.scss +11 -7
  68. data/app/assets/stylesheets/datatables/extensions/FixedColumns/fixedColumns.foundation.scss +1 -0
  69. data/app/assets/stylesheets/datatables/extensions/KeyTable/keyTable.dataTables.scss +13 -5
  70. data/app/assets/stylesheets/datatables/extensions/RowGroup/rowGroup.dataTables.scss +20 -2
  71. data/app/assets/stylesheets/datatables/extensions/Scroller/scroller.dataTables.scss +15 -2
  72. data/app/assets/stylesheets/datatables/jquery.dataTables.scss +5 -5
  73. data/jquery-datatables.gemspec +0 -3
  74. data/lib/generators/jquery/datatables/templates/stylesheets/foundation.scss.tt +0 -18
  75. data/lib/generators/jquery/datatables/templates/stylesheets/regular.scss.tt +0 -18
  76. data/lib/generators/jquery/datatables/templates/views/index.json.jbuilder +2 -2
  77. data/lib/jquery-datatables/engine.rb +0 -2
  78. data/lib/jquery-datatables/version.rb +1 -1
  79. data/lib/jquery-datatables.rb +3 -8
  80. metadata +26 -40
  81. data/app/assets/javascripts/datatables/dataTables.bootstrap2.js +0 -162
  82. data/app/assets/javascripts/datatables/extensions/ColReorder/colReorder.semanicui.js +0 -38
  83. data/app/assets/javascripts/datatables/extensions/FixedColumns/fixedColumns.semanicui.js +0 -38
  84. data/app/assets/javascripts/datatables/extensions/FixedHeader/fixedHeader.semanicui.js +0 -38
  85. data/app/assets/javascripts/datatables/extensions/KeyTable/keyTable.semanicui.js +0 -38
  86. data/app/assets/javascripts/datatables/extensions/RowReorder/rowReorder.semanicui.js +0 -38
  87. data/app/assets/stylesheets/datatables/dataTables.bootstrap2.scss +0 -178
  88. /data/app/assets/javascripts/datatables/extensions/RowGroup/{rowGroup.semanicui.js → rowGroup.semanticui.js} +0 -0
@@ -1,15 +1,15 @@
1
- /*! ColReorder 1.5.1
2
- * ©2010-2018 SpryMedia Ltd - datatables.net/license
1
+ /*! ColReorder 1.5.2
2
+ * ©2010-2019 SpryMedia Ltd - datatables.net/license
3
3
  */
4
4
 
5
5
  /**
6
6
  * @summary ColReorder
7
7
  * @description Provide the ability to reorder columns in a DataTable
8
- * @version 1.5.1
8
+ * @version 1.5.2
9
9
  * @file dataTables.colReorder.js
10
10
  * @author SpryMedia Ltd (www.sprymedia.co.uk)
11
11
  * @contact www.sprymedia.co.uk/contact
12
- * @copyright Copyright 2010-2018 SpryMedia Ltd.
12
+ * @copyright Copyright 2010-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/mit
@@ -917,7 +917,7 @@ $.extend( ColReorder.prototype, {
917
917
  var that = this;
918
918
  $(nTh)
919
919
  .on( 'mousedown.ColReorder', function (e) {
920
- if ( that.s.enable ) {
920
+ if ( that.s.enable && e.which === 1 ) {
921
921
  that._fnMouseDown.call( that, e, nTh );
922
922
  }
923
923
  } )
@@ -1004,26 +1004,68 @@ $.extend( ColReorder.prototype, {
1004
1004
  } );
1005
1005
 
1006
1006
  /* Based on the current mouse position, calculate where the insert should go */
1007
- var bSet = false;
1007
+ var target;
1008
1008
  var lastToIndex = this.s.mouse.toIndex;
1009
+ var cursorXPosiotion = this._fnCursorPosition(e, 'pageX');
1010
+ var targetsPrev = function (i) {
1011
+ while (i >= 0) {
1012
+ i--;
1009
1013
 
1010
- for ( var i=1, iLen=this.s.aoTargets.length ; i<iLen ; i++ )
1011
- {
1012
- if ( this._fnCursorPosition(e, 'pageX') < this.s.aoTargets[i-1].x + ((this.s.aoTargets[i].x-this.s.aoTargets[i-1].x)/2) )
1013
- {
1014
- this.dom.pointer.css( 'left', this.s.aoTargets[i-1].x );
1015
- this.s.mouse.toIndex = this.s.aoTargets[i-1].to;
1016
- bSet = true;
1017
- break;
1014
+ if (i <= 0) {
1015
+ return null;
1016
+ }
1017
+
1018
+ if (that.s.aoTargets[i+1].x !== that.s.aoTargets[i].x) {
1019
+ return that.s.aoTargets[i];
1020
+ }
1021
+ }
1022
+ };
1023
+ var firstNotHidden = function () {
1024
+ for (var i=0 ; i<that.s.aoTargets.length-1 ; i++) {
1025
+ if (that.s.aoTargets[i].x !== that.s.aoTargets[i+1].x) {
1026
+ return that.s.aoTargets[i];
1027
+ }
1018
1028
  }
1029
+ };
1030
+ var lastNotHidden = function () {
1031
+ for (var i=that.s.aoTargets.length-1 ; i>0 ; i--) {
1032
+ if (that.s.aoTargets[i].x !== that.s.aoTargets[i-1].x) {
1033
+ return that.s.aoTargets[i];
1034
+ }
1035
+ }
1036
+ };
1037
+
1038
+ for (var i = 1; i < this.s.aoTargets.length; i++) {
1039
+ var prevTarget = targetsPrev(i);
1040
+ if (! prevTarget) {
1041
+ prevTarget = firstNotHidden();
1042
+ }
1043
+
1044
+ var prevTargetMiddle = prevTarget.x + (this.s.aoTargets[i].x - prevTarget.x) / 2;
1045
+
1046
+ if (this._fnIsLtr()) {
1047
+ if (cursorXPosiotion < prevTargetMiddle ) {
1048
+ target = prevTarget;
1049
+ break;
1050
+ }
1051
+ }
1052
+ else {
1053
+ if (cursorXPosiotion > prevTargetMiddle) {
1054
+ target = prevTarget;
1055
+ break;
1056
+ }
1057
+ }
1019
1058
  }
1020
1059
 
1021
- // The insert element wasn't positioned in the array (less than
1022
- // operator), so we put it at the end
1023
- if ( !bSet )
1024
- {
1025
- this.dom.pointer.css( 'left', this.s.aoTargets[this.s.aoTargets.length-1].x );
1026
- this.s.mouse.toIndex = this.s.aoTargets[this.s.aoTargets.length-1].to;
1060
+ if (target) {
1061
+ this.dom.pointer.css('left', target.x);
1062
+ this.s.mouse.toIndex = target.to;
1063
+ }
1064
+ else {
1065
+ // The insert element wasn't positioned in the array (less than
1066
+ // operator), so we put it at the end
1067
+ this.dom.pointer.css( 'left', lastNotHidden().x );
1068
+ this.s.mouse.toIndex = lastNotHidden().to;
1027
1069
  }
1028
1070
 
1029
1071
  // Perform reordering if realtime updating is on and the column has moved
@@ -1094,38 +1136,60 @@ $.extend( ColReorder.prototype, {
1094
1136
  "_fnRegions": function ()
1095
1137
  {
1096
1138
  var aoColumns = this.s.dt.aoColumns;
1097
-
1098
- this.s.aoTargets.splice( 0, this.s.aoTargets.length );
1099
-
1100
- this.s.aoTargets.push( {
1101
- "x": $(this.s.dt.nTable).offset().left,
1102
- "to": 0
1103
- } );
1104
-
1105
- var iToPoint = 0;
1106
- var total = this.s.aoTargets[0].x;
1107
-
1108
- for ( var i=0, iLen=aoColumns.length ; i<iLen ; i++ )
1109
- {
1110
- /* For the column / header in question, we want it's position to remain the same if the
1111
- * position is just to it's immediate left or right, so we only increment the counter for
1112
- * other columns
1113
- */
1114
- if ( i != this.s.mouse.fromIndex )
1115
- {
1116
- iToPoint++;
1139
+ var isLTR = this._fnIsLtr();
1140
+ this.s.aoTargets.splice(0, this.s.aoTargets.length);
1141
+ var lastBound = $(this.s.dt.nTable).offset().left;
1142
+
1143
+ var aoColumnBounds = [];
1144
+ $.each(aoColumns, function (i, column) {
1145
+ if (column.bVisible && column.nTh.style.display !== 'none') {
1146
+ var nth = $(column.nTh);
1147
+ var bound = nth.offset().left;
1148
+
1149
+ if (isLTR) {
1150
+ bound += nth.outerWidth();
1151
+ }
1152
+
1153
+ aoColumnBounds.push({
1154
+ index: i,
1155
+ bound: bound
1156
+ });
1157
+
1158
+ lastBound = bound;
1117
1159
  }
1118
-
1119
- if ( aoColumns[i].bVisible && aoColumns[i].nTh.style.display !=='none' )
1120
- {
1121
- total += $(aoColumns[i].nTh).outerWidth();
1122
-
1123
- this.s.aoTargets.push( {
1124
- "x": total,
1125
- "to": iToPoint
1126
- } );
1160
+ else {
1161
+ aoColumnBounds.push({
1162
+ index: i,
1163
+ bound: lastBound
1164
+ });
1127
1165
  }
1128
- }
1166
+ });
1167
+
1168
+ var firstColumn = aoColumnBounds[0];
1169
+ var firstColumnWidth = $(aoColumns[firstColumn.index].nTh).outerWidth();
1170
+
1171
+ this.s.aoTargets.push({
1172
+ to: 0,
1173
+ x: firstColumn.bound - firstColumnWidth
1174
+ });
1175
+
1176
+ for (var i = 0; i < aoColumnBounds.length; i++) {
1177
+ var columnBound = aoColumnBounds[i];
1178
+ var iToPoint = columnBound.index;
1179
+
1180
+ /* For the column / header in question, we want it's position to remain the same if the
1181
+ * position is just to it's immediate left or right, so we only increment the counter for
1182
+ * other columns
1183
+ */
1184
+ if (columnBound.index < this.s.mouse.fromIndex) {
1185
+ iToPoint++;
1186
+ }
1187
+
1188
+ this.s.aoTargets.push({
1189
+ to: iToPoint,
1190
+ x: columnBound.bound
1191
+ });
1192
+ }
1129
1193
 
1130
1194
  /* Disallow columns for being reordered by drag and drop, counting right to left */
1131
1195
  if ( this.s.fixedRight !== 0 )
@@ -1219,7 +1283,11 @@ $.extend( ColReorder.prototype, {
1219
1283
  return e.originalEvent.touches[0][ prop ];
1220
1284
  }
1221
1285
  return e[ prop ];
1222
- }
1286
+ },
1287
+
1288
+ _fnIsLtr: function () {
1289
+ return $(this.s.dt.nTable).css('direction') !== "rtl";
1290
+ }
1223
1291
  } );
1224
1292
 
1225
1293
 
@@ -1306,7 +1374,7 @@ ColReorder.defaults = {
1306
1374
  * @type String
1307
1375
  * @default As code
1308
1376
  */
1309
- ColReorder.version = "1.5.1";
1377
+ ColReorder.version = "1.5.2";
1310
1378
 
1311
1379
 
1312
1380
 
@@ -1397,6 +1465,7 @@ $.fn.dataTable.Api.register( 'colReorder.transpose()', function ( idx, dir ) {
1397
1465
  $.fn.dataTable.Api.register( 'colReorder.move()', function( from, to, drop, invalidateRows ) {
1398
1466
  if (this.context.length) {
1399
1467
  this.context[0]._colReorder.s.dt.oInstance.fnColReorder( from, to, drop, invalidateRows );
1468
+ this.context[0]._colReorder._fnSetColumnIndexes();
1400
1469
  }
1401
1470
  return this;
1402
1471
  } );
@@ -1,11 +1,11 @@
1
- /*! FixedColumns 3.2.6
1
+ /*! FixedColumns 3.3.0
2
2
  * ©2010-2018 SpryMedia Ltd - datatables.net/license
3
3
  */
4
4
 
5
5
  /**
6
6
  * @summary FixedColumns
7
7
  * @description Freeze columns in place on a scrolling DataTable
8
- * @version 3.2.6
8
+ * @version 3.3.0
9
9
  * @file dataTables.fixedColumns.js
10
10
  * @author SpryMedia Ltd (www.sprymedia.co.uk)
11
11
  * @contact www.sprymedia.co.uk/contact
@@ -449,6 +449,25 @@ $.extend( FixedColumns.prototype , {
449
449
  }
450
450
  },
451
451
 
452
+ fnToFixedNode: function ( rowIdx, colIdx )
453
+ {
454
+ var found;
455
+
456
+ if ( colIdx < this.s.iLeftColumns ) {
457
+ found = $(this.dom.clone.left.body).find('[data-dt-row='+rowIdx+'][data-dt-column='+colIdx+']');
458
+ }
459
+ else if ( colIdx >= this.s.iRightColumns ) {
460
+ found = $(this.dom.clone.right.body).find('[data-dt-row='+rowIdx+'][data-dt-column='+colIdx+']');
461
+ }
462
+
463
+ if ( found && found.length ) {
464
+ return found[0];
465
+ }
466
+
467
+ // Fallback - non-fixed node
468
+ var table = new $.fn.dataTable.Api(this.s.dt);
469
+ return table.cell(rowIdx, colIdx).node();
470
+ },
452
471
 
453
472
 
454
473
  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
@@ -735,7 +754,7 @@ $.extend( FixedColumns.prototype , {
735
754
  $('<div class="DTFC_ScrollWrapper" style="position:relative; clear:both;">'+
736
755
  '<div class="DTFC_LeftWrapper" style="position:absolute; top:0; left:0;" aria-hidden="true">'+
737
756
  '<div class="DTFC_LeftHeadWrapper" style="position:relative; top:0; left:0; overflow:hidden;"></div>'+
738
- '<div class="DTFC_LeftBodyWrapper" style="position:relative; top:0; left:0; overflow:hidden;">'+
757
+ '<div class="DTFC_LeftBodyWrapper" style="position:relative; top:0; left:0; height:0; overflow:hidden;">'+
739
758
  '<div class="DTFC_LeftBodyLiner" style="position:relative; top:0; left:0; overflow-y:scroll;"></div>'+
740
759
  '</div>'+
741
760
  '<div class="DTFC_LeftFootWrapper" style="position:relative; top:0; left:0; overflow:hidden;"></div>'+
@@ -744,7 +763,7 @@ $.extend( FixedColumns.prototype , {
744
763
  '<div class="DTFC_RightHeadWrapper" style="position:relative; top:0; left:0;">'+
745
764
  '<div class="DTFC_RightHeadBlocker DTFC_Blocker" style="position:absolute; top:0; bottom:0;"></div>'+
746
765
  '</div>'+
747
- '<div class="DTFC_RightBodyWrapper" style="position:relative; top:0; left:0; overflow:hidden;">'+
766
+ '<div class="DTFC_RightBodyWrapper" style="position:relative; top:0; left:0; height:0; overflow:hidden;">'+
748
767
  '<div class="DTFC_RightBodyLiner" style="position:relative; top:0; left:0; overflow-y:scroll;"></div>'+
749
768
  '</div>'+
750
769
  '<div class="DTFC_RightFootWrapper" style="position:relative; top:0; left:0;">'+
@@ -1525,7 +1544,7 @@ FixedColumns.defaults = /** @lends FixedColumns.defaults */{
1525
1544
  * @default See code
1526
1545
  * @static
1527
1546
  */
1528
- FixedColumns.version = "3.2.6";
1547
+ FixedColumns.version = "3.3.0";
1529
1548
 
1530
1549
 
1531
1550
 
@@ -1596,6 +1615,14 @@ DataTable.Api.register( 'fixedColumns().cellIndex()', function ( cell ) {
1596
1615
  }
1597
1616
  } );
1598
1617
 
1618
+ DataTable.Api.registerPlural( 'cells().fixedNodes()', 'cell().fixedNode()', function () {
1619
+ return this.iterator( 'cell', function ( settings, row, column ) {
1620
+ return settings._oFixedColumns
1621
+ ? settings._oFixedColumns.fnToFixedNode( row, column )
1622
+ : this.node();
1623
+ }, 1 );
1624
+ } );
1625
+
1599
1626
 
1600
1627
 
1601
1628