Bläddra i källkod

Update dependencies (#2748)

* @fullcalendar/bootstrap             ^4.4.0  →    ^4.4.2
* @fullcalendar/core                  ^4.4.0  →    ^4.4.2
* @fullcalendar/daygrid               ^4.4.0  →    ^4.4.2
* @fullcalendar/interaction           ^4.4.0  →    ^4.4.2
* @fullcalendar/timegrid              ^4.4.0  →    ^4.4.2
* @ttskch/select2-bootstrap4-theme     ^1.3.2  →   ^1.4.0
* bootstrap4-duallistbox              ^4.0.1  →    ^4.0.2
* datatables.net                    ^1.10.20  →  ^1.10.21
* datatables.net-autofill-bs4         ^2.3.4  →    ^2.3.5
* datatables.net-bs4                ^1.10.20  →  ^1.10.21
* datatables.net-buttons-bs4          ^1.6.1  →    ^1.6.2
* datatables.net-fixedcolumns-bs4     ^3.3.0  →    ^3.3.1
* datatables.net-fixedheader-bs4      ^3.1.6  →    ^3.1.7
* datatables.net-keytable-bs4         ^2.5.1  →    ^2.5.2
* datatables.net-responsive-bs4       ^2.2.3  →    ^2.2.5
* datatables.net-rowgroup-bs4         ^1.1.1  →    ^1.1.2
* datatables.net-rowreorder-bs4       ^1.2.6  →    ^1.2.7
* datatables.net-scroller-bs4         ^2.0.1  →    ^2.0.2
* filterizr                           ^2.2.3  →    ^2.2.4
* flot                                ^4.2.0  →    ^4.2.1
* jquery-validation                  ^1.19.1  →   ^1.19.2
* jszip                               ^3.3.0  →    ^3.4.0
* overlayscrollbars                  ^1.11.0  →   ^1.12.0
* summernote                         ^0.8.16  →   ^0.8.18
* sweetalert2                        ^9.10.8  →   ^9.14.0
XhmikosR 4 år sedan
förälder
incheckning
8350264bd2
100 ändrade filer med 3033 tillägg och 3738 borttagningar
  1. 849 1863
      package-lock.json
  2. 25 25
      package.json
  3. 80 80
      plugins/bootstrap4-duallistbox/bootstrap-duallistbox.css
  4. 886 883
      plugins/bootstrap4-duallistbox/jquery.bootstrap-duallistbox.js
  5. 2 2
      plugins/bootstrap4-duallistbox/jquery.bootstrap-duallistbox.min.js
  6. 7 7
      plugins/datatables-autofill/js/dataTables.autoFill.js
  7. 8 2
      plugins/datatables-bs4/css/dataTables.bootstrap4.css
  8. 1 1
      plugins/datatables-bs4/css/dataTables.bootstrap4.min.css
  9. 1 1
      plugins/datatables-bs4/js/dataTables.bootstrap4.js
  10. 1 1
      plugins/datatables-bs4/js/dataTables.bootstrap4.min.js
  11. 1 1
      plugins/datatables-buttons/js/buttons.colVis.js
  12. 16 14
      plugins/datatables-buttons/js/buttons.html5.js
  13. 25 24
      plugins/datatables-buttons/js/buttons.html5.min.js
  14. 136 47
      plugins/datatables-buttons/js/dataTables.buttons.js
  15. 41 40
      plugins/datatables-buttons/js/dataTables.buttons.min.js
  16. 27 9
      plugins/datatables-fixedcolumns/js/dataTables.fixedColumns.js
  17. 11 10
      plugins/datatables-fixedcolumns/js/dataTables.fixedColumns.min.js
  18. 23 13
      plugins/datatables-fixedheader/js/dataTables.fixedHeader.js
  19. 14 13
      plugins/datatables-fixedheader/js/dataTables.fixedHeader.min.js
  20. 46 22
      plugins/datatables-keytable/js/dataTables.keyTable.js
  21. 22 22
      plugins/datatables-keytable/js/dataTables.keyTable.min.js
  22. 18 13
      plugins/datatables-responsive/css/responsive.bootstrap4.css
  23. 1 1
      plugins/datatables-responsive/css/responsive.bootstrap4.min.css
  24. 152 73
      plugins/datatables-responsive/js/dataTables.responsive.js
  25. 30 28
      plugins/datatables-responsive/js/dataTables.responsive.min.js
  26. 26 12
      plugins/datatables-rowgroup/js/dataTables.rowGroup.js
  27. 10 10
      plugins/datatables-rowgroup/js/dataTables.rowGroup.min.js
  28. 26 25
      plugins/datatables-rowreorder/js/dataTables.rowReorder.js
  29. 17 16
      plugins/datatables-rowreorder/js/dataTables.rowReorder.min.js
  30. 46 43
      plugins/datatables-scroller/js/dataTables.scroller.js
  31. 26 26
      plugins/datatables-scroller/js/dataTables.scroller.min.js
  32. 37 17
      plugins/datatables/jquery.dataTables.js
  33. 116 116
      plugins/datatables/jquery.dataTables.min.js
  34. 2 0
      plugins/filterizr/FilterItem/StyledFilterItem.d.ts
  35. 1 0
      plugins/filterizr/FilterItems/StyledFilterItems.d.ts
  36. 12 12
      plugins/filterizr/filterizr.min.js
  37. 28 28
      plugins/filterizr/jquery.filterizr.min.js
  38. 11 11
      plugins/filterizr/vanilla.filterizr.min.js
  39. 1 1
      plugins/flot/jquery.flot.js
  40. 1 1
      plugins/fullcalendar-bootstrap/main.css
  41. 11 11
      plugins/fullcalendar-bootstrap/main.esm.js
  42. 11 11
      plugins/fullcalendar-bootstrap/main.js
  43. 2 2
      plugins/fullcalendar-bootstrap/main.min.js
  44. 1 1
      plugins/fullcalendar-daygrid/main.css
  45. 12 11
      plugins/fullcalendar-daygrid/main.esm.js
  46. 12 11
      plugins/fullcalendar-daygrid/main.js
  47. 2 2
      plugins/fullcalendar-daygrid/main.min.js
  48. 11 11
      plugins/fullcalendar-interaction/main.esm.js
  49. 11 11
      plugins/fullcalendar-interaction/main.js
  50. 2 2
      plugins/fullcalendar-interaction/main.min.js
  51. 1 1
      plugins/fullcalendar-timegrid/main.css
  52. 14 12
      plugins/fullcalendar-timegrid/main.esm.js
  53. 14 12
      plugins/fullcalendar-timegrid/main.js
  54. 2 2
      plugins/fullcalendar-timegrid/main.min.js
  55. 1 1
      plugins/fullcalendar/locales-all.min.js
  56. 1 1
      plugins/fullcalendar/main.css
  57. 2 0
      plugins/fullcalendar/main.d.ts
  58. 25 20
      plugins/fullcalendar/main.esm.js
  59. 25 20
      plugins/fullcalendar/main.js
  60. 2 2
      plugins/fullcalendar/main.min.js
  61. 2 2
      plugins/jquery-validation/additional-methods.js
  62. 2 2
      plugins/jquery-validation/additional-methods.min.js
  63. 11 4
      plugins/jquery-validation/jquery.validate.js
  64. 3 3
      plugins/jquery-validation/jquery.validate.min.js
  65. 2 2
      plugins/jquery-validation/localization/messages_ar.min.js
  66. 2 2
      plugins/jquery-validation/localization/messages_az.min.js
  67. 2 2
      plugins/jquery-validation/localization/messages_bg.min.js
  68. 2 2
      plugins/jquery-validation/localization/messages_bn_BD.min.js
  69. 2 2
      plugins/jquery-validation/localization/messages_ca.min.js
  70. 2 2
      plugins/jquery-validation/localization/messages_cs.min.js
  71. 2 2
      plugins/jquery-validation/localization/messages_da.min.js
  72. 2 2
      plugins/jquery-validation/localization/messages_de.min.js
  73. 2 2
      plugins/jquery-validation/localization/messages_el.min.js
  74. 2 2
      plugins/jquery-validation/localization/messages_es.min.js
  75. 2 2
      plugins/jquery-validation/localization/messages_es_AR.min.js
  76. 2 2
      plugins/jquery-validation/localization/messages_es_PE.min.js
  77. 2 2
      plugins/jquery-validation/localization/messages_et.min.js
  78. 2 2
      plugins/jquery-validation/localization/messages_eu.min.js
  79. 2 2
      plugins/jquery-validation/localization/messages_fa.min.js
  80. 2 2
      plugins/jquery-validation/localization/messages_fi.min.js
  81. 2 2
      plugins/jquery-validation/localization/messages_fr.min.js
  82. 2 2
      plugins/jquery-validation/localization/messages_ge.min.js
  83. 2 2
      plugins/jquery-validation/localization/messages_gl.min.js
  84. 2 2
      plugins/jquery-validation/localization/messages_he.min.js
  85. 2 2
      plugins/jquery-validation/localization/messages_hr.min.js
  86. 2 2
      plugins/jquery-validation/localization/messages_hu.min.js
  87. 2 2
      plugins/jquery-validation/localization/messages_hy_AM.min.js
  88. 2 2
      plugins/jquery-validation/localization/messages_id.min.js
  89. 2 2
      plugins/jquery-validation/localization/messages_is.min.js
  90. 2 2
      plugins/jquery-validation/localization/messages_it.min.js
  91. 2 2
      plugins/jquery-validation/localization/messages_ja.min.js
  92. 2 2
      plugins/jquery-validation/localization/messages_ka.min.js
  93. 2 2
      plugins/jquery-validation/localization/messages_kk.min.js
  94. 2 2
      plugins/jquery-validation/localization/messages_ko.min.js
  95. 2 2
      plugins/jquery-validation/localization/messages_lt.min.js
  96. 2 2
      plugins/jquery-validation/localization/messages_lv.min.js
  97. 2 2
      plugins/jquery-validation/localization/messages_mk.min.js
  98. 2 2
      plugins/jquery-validation/localization/messages_my.min.js
  99. 2 2
      plugins/jquery-validation/localization/messages_nl.min.js
  100. 0 0
      plugins/jquery-validation/localization/messages_no.min.js

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 849 - 1863
package-lock.json


+ 25 - 25
package.json

@@ -67,40 +67,40 @@
   },
   "dependencies": {
     "@fortawesome/fontawesome-free": "^5.13.0",
-    "@fullcalendar/bootstrap": "^4.4.0",
-    "@fullcalendar/core": "^4.4.0",
-    "@fullcalendar/daygrid": "^4.4.0",
-    "@fullcalendar/interaction": "^4.4.0",
-    "@fullcalendar/timegrid": "^4.4.0",
+    "@fullcalendar/bootstrap": "^4.4.2",
+    "@fullcalendar/core": "^4.4.2",
+    "@fullcalendar/daygrid": "^4.4.2",
+    "@fullcalendar/interaction": "^4.4.2",
+    "@fullcalendar/timegrid": "^4.4.2",
     "@lgaitan/pace-progress": "^1.0.7",
     "@sweetalert2/theme-bootstrap-4": "^3.1.4",
-    "@ttskch/select2-bootstrap4-theme": "^1.3.2",
+    "@ttskch/select2-bootstrap4-theme": "^1.4.0",
     "bootstrap": "^4.4.1",
     "bootstrap-colorpicker": "^3.2.0",
     "bootstrap-slider": "^10.6.2",
     "bootstrap-switch": "3.3.4",
-    "bootstrap4-duallistbox": "^4.0.1",
+    "bootstrap4-duallistbox": "^4.0.2",
     "bs-custom-file-input": "^1.3.4",
     "chart.js": "^2.9.3",
-    "datatables.net": "^1.10.20",
-    "datatables.net-autofill-bs4": "^2.3.4",
-    "datatables.net-bs4": "^1.10.20",
-    "datatables.net-buttons-bs4": "^1.6.1",
+    "datatables.net": "^1.10.21",
+    "datatables.net-autofill-bs4": "^2.3.5",
+    "datatables.net-bs4": "^1.10.21",
+    "datatables.net-buttons-bs4": "^1.6.2",
     "datatables.net-colreorder-bs4": "^1.5.2",
-    "datatables.net-fixedcolumns-bs4": "^3.3.0",
-    "datatables.net-fixedheader-bs4": "^3.1.6",
-    "datatables.net-keytable-bs4": "^2.5.1",
-    "datatables.net-responsive-bs4": "^2.2.3",
-    "datatables.net-rowgroup-bs4": "^1.1.1",
-    "datatables.net-rowreorder-bs4": "^1.2.6",
-    "datatables.net-scroller-bs4": "^2.0.1",
+    "datatables.net-fixedcolumns-bs4": "^3.3.1",
+    "datatables.net-fixedheader-bs4": "^3.1.7",
+    "datatables.net-keytable-bs4": "^2.5.2",
+    "datatables.net-responsive-bs4": "^2.2.5",
+    "datatables.net-rowgroup-bs4": "^1.1.2",
+    "datatables.net-rowreorder-bs4": "^1.2.7",
+    "datatables.net-scroller-bs4": "^2.0.2",
     "datatables.net-select-bs4": "^1.3.1",
     "daterangepicker": "^3.1.0",
     "ekko-lightbox": "^5.3.0",
     "fastclick": "^1.0.6",
-    "filterizr": "^2.2.3",
+    "filterizr": "^2.2.4",
     "flag-icon-css": "^3.4.6",
-    "flot": "^4.2.0",
+    "flot": "^4.2.1",
     "fs-extra": "^9.0.0",
     "icheck-bootstrap": "^3.0.1",
     "inputmask": "^5.0.3",
@@ -110,19 +110,19 @@
     "jquery-mapael": "^2.2.0",
     "jquery-mousewheel": "^3.1.13",
     "jquery-ui-dist": "^1.12.1",
-    "jquery-validation": "^1.19.1",
+    "jquery-validation": "^1.19.2",
     "jqvmap-novulnerability": "^1.5.1",
     "jsgrid": "^1.5.3",
-    "jszip": "^3.3.0",
+    "jszip": "^3.4.0",
     "moment": "^2.24.0",
-    "overlayscrollbars": "^1.11.0",
+    "overlayscrollbars": "^1.12.0",
     "pdfmake": "^0.1.65",
     "popper.js": "^1.16.1",
     "raphael": "^2.3.0",
     "select2": "^4.0.13",
     "sparklines": "^1.2.0",
-    "summernote": "^0.8.16",
-    "sweetalert2": "^9.10.8",
+    "summernote": "^0.8.18",
+    "sweetalert2": "^9.14.0",
     "tempusdominus-bootstrap-4": "^5.1.2",
     "toastr": "^2.1.4"
   },

+ 80 - 80
plugins/bootstrap4-duallistbox/bootstrap-duallistbox.css

@@ -1,87 +1,87 @@
 /*
- *  Bootstrap Duallistbox - v4.0.1
+ *  Bootstrap Duallistbox - v4.0.2
  *  A responsive dual listbox widget optimized for Twitter Bootstrap. It works on all modern browsers and on touch devices.
  *  http://www.virtuosoft.eu/code/bootstrap-duallistbox/
  *
  *  Made by István Ujj-Mészáros
  *  Under Apache License v2.0 License
  */
-.bootstrap-duallistbox-container .buttons {
-  width: 100%;
-  margin-bottom: -1px;
-}
-
-.bootstrap-duallistbox-container label {
-  display: block;
-}
-
-.bootstrap-duallistbox-container .info {
-  display: inline-block;
-  margin-bottom: 5px;
-  font-size: 11px;
-}
-
-.bootstrap-duallistbox-container .clear1,
-.bootstrap-duallistbox-container .clear2 {
-  display: none;
-  font-size: 10px;
-}
-
-.bootstrap-duallistbox-container .box1.filtered .clear1,
-.bootstrap-duallistbox-container .box2.filtered .clear2 {
-  display: inline-block;
-}
-
-.bootstrap-duallistbox-container .move,
-.bootstrap-duallistbox-container .remove {
-  width: 50%;
-  box-sizing: content-box;
-}
-
-.bootstrap-duallistbox-container .btn-group .btn {
-  border-bottom-left-radius: 0;
-  border-bottom-right-radius: 0;
-}
-.bootstrap-duallistbox-container:not(.moveonselect) select {
-  border-top-left-radius: 0;
-  border-top-right-radius: 0;
-}
-.bootstrap-duallistbox-container .moveall,
-.bootstrap-duallistbox-container .removeall {
-  width: 50%;
-  box-sizing: content-box;
-}
-
-.bootstrap-duallistbox-container.bs2compatible .btn-group > .btn + .btn {
-  margin-left: 0;
-}
-
-.bootstrap-duallistbox-container select {
-  width: 100%;
-  height: 300px;
-  padding: 0;
-}
-
-.bootstrap-duallistbox-container .filter {
-  display: inline-block;
-  width: 100%;
-  height: 31px;
-  margin: 0 0 5px 0;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-
-.bootstrap-duallistbox-container .filter.placeholder {
-  color: #aaa;
-}
-
-.bootstrap-duallistbox-container.moveonselect .move,
-.bootstrap-duallistbox-container.moveonselect .remove {
-  display:none;
-}
-
-.bootstrap-duallistbox-container.moveonselect .moveall,
-.bootstrap-duallistbox-container.moveonselect .removeall {
-  width: 100%;
-}
+.bootstrap-duallistbox-container .buttons {
+  width: 100%;
+  margin-bottom: -1px;
+}
+
+.bootstrap-duallistbox-container label {
+  display: block;
+}
+
+.bootstrap-duallistbox-container .info {
+  display: inline-block;
+  margin-bottom: 5px;
+  font-size: 11px;
+}
+
+.bootstrap-duallistbox-container .clear1,
+.bootstrap-duallistbox-container .clear2 {
+  display: none;
+  font-size: 10px;
+}
+
+.bootstrap-duallistbox-container .box1.filtered .clear1,
+.bootstrap-duallistbox-container .box2.filtered .clear2 {
+  display: inline-block;
+}
+
+.bootstrap-duallistbox-container .move,
+.bootstrap-duallistbox-container .remove {
+  width: 50%;
+  box-sizing: content-box;
+}
+
+.bootstrap-duallistbox-container .btn-group .btn {
+  border-bottom-left-radius: 0;
+  border-bottom-right-radius: 0;
+}
+.bootstrap-duallistbox-container:not(.moveonselect) select {
+  border-top-left-radius: 0;
+  border-top-right-radius: 0;
+}
+.bootstrap-duallistbox-container .moveall,
+.bootstrap-duallistbox-container .removeall {
+  width: 50%;
+  box-sizing: content-box;
+}
+
+.bootstrap-duallistbox-container.bs2compatible .btn-group > .btn + .btn {
+  margin-left: 0;
+}
+
+.bootstrap-duallistbox-container select {
+  width: 100%;
+  height: 300px;
+  padding: 0;
+}
+
+.bootstrap-duallistbox-container .filter {
+  display: inline-block;
+  width: 100%;
+  height: 31px;
+  margin: 0 0 5px 0;
+  -webkit-box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+}
+
+.bootstrap-duallistbox-container .filter.placeholder {
+  color: #aaa;
+}
+
+.bootstrap-duallistbox-container.moveonselect .move,
+.bootstrap-duallistbox-container.moveonselect .remove {
+  display:none;
+}
+
+.bootstrap-duallistbox-container.moveonselect .moveall,
+.bootstrap-duallistbox-container.moveonselect .removeall {
+  width: 100%;
+}

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 886 - 883
plugins/bootstrap4-duallistbox/jquery.bootstrap-duallistbox.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/bootstrap4-duallistbox/jquery.bootstrap-duallistbox.min.js


+ 7 - 7
plugins/datatables-autofill/js/dataTables.autoFill.js

@@ -1,15 +1,15 @@
-/*! AutoFill 2.3.4
- * ©2008-2019 SpryMedia Ltd - datatables.net/license
+/*! AutoFill 2.3.5
+ * ©2008-2020 SpryMedia Ltd - datatables.net/license
  */
 
 /**
  * @summary     AutoFill
  * @description Add Excel like click and drag auto-fill options to DataTables
- * @version     2.3.4
+ * @version     2.3.5
  * @file        dataTables.autoFill.js
  * @author      SpryMedia Ltd (www.sprymedia.co.uk)
  * @contact     www.sprymedia.co.uk/contact
- * @copyright   Copyright 2010-2019 SpryMedia Ltd.
+ * @copyright   Copyright 2010-2020 SpryMedia Ltd.
  *
  * This source file is free software, available under the following license:
  *   MIT license - http://datatables.net/license/mit
@@ -294,7 +294,7 @@ $.extend( AutoFill.prototype, {
 			var result = actions[ available[0] ].execute( dt, cells );
 			this._update( result, cells );
 		}
-		else {
+		else if ( available.length > 1 ) {
 			// Multiple actions available - ask the end user what they want to do
 			var list = this.dom.list.children('ul').empty();
 
@@ -1061,7 +1061,7 @@ AutoFill.actions = {
 
 	fillVertical: {
 		available: function ( dt, cells ) {
-			return cells.length > 1 && cells[0].length > 1;
+			return cells.length > 1;
 		},
 
 		option: function ( dt, cells ) {
@@ -1102,7 +1102,7 @@ AutoFill.actions = {
  * @static
  * @type      String
  */
-AutoFill.version = '2.3.4';
+AutoFill.version = '2.3.5';
 
 
 /**

+ 8 - 2
plugins/datatables-bs4/css/dataTables.bootstrap4.css

@@ -161,8 +161,11 @@ div.dataTables_scrollFoot > .dataTables_scrollFootInner > table {
   div.dataTables_wrapper div.dataTables_paginate {
     text-align: center;
   }
+  div.dataTables_wrapper div.dataTables_paginate ul.pagination {
+    justify-content: center !important;
+  }
 }
-table.dataTable.table-sm > thead > tr > th {
+table.dataTable.table-sm > thead > tr > th :not(.sorting_disabled) {
   padding-right: 20px;
 }
 table.dataTable.table-sm .sorting:before,
@@ -177,6 +180,9 @@ table.dataTable.table-sm .sorting_desc:after {
   top: 5px;
 }
 
+table.table-bordered.dataTable {
+  border-right-width: 0;
+}
 table.table-bordered.dataTable th,
 table.table-bordered.dataTable td {
   border-left-width: 0;
@@ -184,7 +190,7 @@ table.table-bordered.dataTable td {
 table.table-bordered.dataTable th:last-child, table.table-bordered.dataTable th:last-child,
 table.table-bordered.dataTable td:last-child,
 table.table-bordered.dataTable td:last-child {
-  border-right-width: 0;
+  border-right-width: 1px;
 }
 table.table-bordered.dataTable tbody th,
 table.table-bordered.dataTable tbody td {

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 1 - 1
plugins/datatables-bs4/css/dataTables.bootstrap4.min.css


+ 1 - 1
plugins/datatables-bs4/js/dataTables.bootstrap4.js

@@ -175,7 +175,7 @@ DataTable.ext.renderer.pageButton.bootstrap = function ( settings, host, idx, bu
 	);
 
 	if ( activeEl !== undefined ) {
-		$(host).find( '[data-dt-idx='+activeEl+']' ).focus();
+		$(host).find( '[data-dt-idx='+activeEl+']' ).trigger('focus');
 	}
 };
 

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 1 - 1
plugins/datatables-bs4/js/dataTables.bootstrap4.min.js


+ 1 - 1
plugins/datatables-buttons/js/buttons.colVis.js

@@ -123,7 +123,7 @@ $.extend( DataTable.ext.buttons, {
 
 					// This button controls the same column index but the text for the column has
 					// changed
-					button.text( conf._columnText( dt, conf ) );
+					that.text( conf._columnText( dt, conf ) );
 
 					// Since its a different column, we need to check its visibility
 					that.active( dt.column( conf.columns ).visible() );

+ 16 - 14
plugins/datatables-buttons/js/buttons.html5.js

@@ -52,7 +52,7 @@ DataTable.Buttons.pdfMake = function (_) {
 	if ( ! _ ) {
 		return _pdfMake();
 	}
-	pdfmake = m_ake;
+	pdfmake = _;
 }
 
 DataTable.Buttons.jszip = function (_) {
@@ -386,7 +386,7 @@ function _addToZip( zip, obj ) {
 		// drop attributes
 		_ieExcel = _serialiser
 			.serializeToString(
-				$.parseXML( excelStrings['xl/worksheets/sheet1.xml'] )
+				( new window.DOMParser() ).parseFromString( excelStrings['xl/worksheets/sheet1.xml'], 'text/xml' )
 			)
 			.indexOf( 'xmlns:r' ) === -1;
 	}
@@ -675,7 +675,7 @@ var excelStrings = {
 			'<cellStyleXfs count="1">'+
 				'<xf numFmtId="0" fontId="0" fillId="0" borderId="0" />'+
 			'</cellStyleXfs>'+
-			'<cellXfs count="67">'+
+			'<cellXfs count="68">'+
 				'<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
 				'<xf numFmtId="0" fontId="1" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
 				'<xf numFmtId="0" fontId="2" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
@@ -755,6 +755,7 @@ var excelStrings = {
 				'<xf numFmtId="4" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+
 				'<xf numFmtId="1" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+
 				'<xf numFmtId="2" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+
+				'<xf numFmtId="14" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+
 			'</cellXfs>'+
 			'<cellStyles count="1">'+
 				'<cellStyle name="Normal" xfId="0" builtinId="0" />'+
@@ -771,17 +772,18 @@ var excelStrings = {
 // Ref: section 3.8.30 - built in formatters in open spreadsheet
 //   https://www.ecma-international.org/news/TC45_current_work/Office%20Open%20XML%20Part%204%20-%20Markup%20Language%20Reference.pdf
 var _excelSpecials = [
-	{ match: /^\-?\d+\.\d%$/,       style: 60, fmt: function (d) { return d/100; } }, // Precent with d.p.
-	{ match: /^\-?\d+\.?\d*%$/,     style: 56, fmt: function (d) { return d/100; } }, // Percent
-	{ match: /^\-?\$[\d,]+.?\d*$/,  style: 57 }, // Dollars
-	{ match: /^\-?£[\d,]+.?\d*$/,   style: 58 }, // Pounds
-	{ match: /^\-?€[\d,]+.?\d*$/,   style: 59 }, // Euros
-	{ match: /^\-?\d+$/,            style: 65 }, // Numbers without thousand separators
-	{ match: /^\-?\d+\.\d{2}$/,     style: 66 }, // Numbers 2 d.p. without thousands separators
-	{ match: /^\([\d,]+\)$/,        style: 61, fmt: function (d) { return -1 * d.replace(/[\(\)]/g, ''); } },  // Negative numbers indicated by brackets
-	{ match: /^\([\d,]+\.\d{2}\)$/, style: 62, fmt: function (d) { return -1 * d.replace(/[\(\)]/g, ''); } },  // Negative numbers indicated by brackets - 2d.p.
-	{ match: /^\-?[\d,]+$/,         style: 63 }, // Numbers with thousand separators
-	{ match: /^\-?[\d,]+\.\d{2}$/,  style: 64 }  // Numbers with 2 d.p. and thousands separators
+	{ match: /^\-?\d+\.\d%$/,               style: 60, fmt: function (d) { return d/100; } }, // Precent with d.p.
+	{ match: /^\-?\d+\.?\d*%$/,             style: 56, fmt: function (d) { return d/100; } }, // Percent
+	{ match: /^\-?\$[\d,]+.?\d*$/,          style: 57 }, // Dollars
+	{ match: /^\-?£[\d,]+.?\d*$/,           style: 58 }, // Pounds
+	{ match: /^\-?€[\d,]+.?\d*$/,           style: 59 }, // Euros
+	{ match: /^\-?\d+$/,                    style: 65 }, // Numbers without thousand separators
+	{ match: /^\-?\d+\.\d{2}$/,             style: 66 }, // Numbers 2 d.p. without thousands separators
+	{ match: /^\([\d,]+\)$/,                style: 61, fmt: function (d) { return -1 * d.replace(/[\(\)]/g, ''); } },  // Negative numbers indicated by brackets
+	{ match: /^\([\d,]+\.\d{2}\)$/,         style: 62, fmt: function (d) { return -1 * d.replace(/[\(\)]/g, ''); } },  // Negative numbers indicated by brackets - 2d.p.
+	{ match: /^\-?[\d,]+$/,                 style: 63 }, // Numbers with thousand separators
+	{ match: /^\-?[\d,]+\.\d{2}$/,          style: 64 },
+	{ match: /^[\d]{4}\-[\d]{2}\-[\d]{2}$/, style: 67, fmt: function (d) {return Math.round(25569 + (Date.parse(d) / (86400 * 1000)));}} //Date yyyy-mm-dd
 ];
 
 

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 25 - 24
plugins/datatables-buttons/js/buttons.html5.min.js


+ 136 - 47
plugins/datatables-buttons/js/dataTables.buttons.js

@@ -1,5 +1,5 @@
-/*! Buttons for DataTables 1.6.1
- * ©2016-2019 SpryMedia Ltd - datatables.net/license
+/*! Buttons for DataTables 1.6.2
+ * ©2016-2020 SpryMedia Ltd - datatables.net/license
  */
 
 (function( factory ){
@@ -41,6 +41,37 @@ var _buttonCounter = 0;
 
 var _dtButtons = DataTable.ext.buttons;
 
+// Allow for jQuery slim
+function _fadeIn(el, duration, fn) {
+	if ($.fn.animate) {
+		el
+			.stop()
+			.fadeIn( duration, fn );
+	}
+	else {
+		el.css('display', 'block');
+
+		if (fn) {
+			fn.call(el);
+		}
+	}
+}
+
+function _fadeOut(el, duration, fn) {
+	if ($.fn.animate) {
+		el
+			.stop()
+			.fadeOut( duration, fn );
+	}
+	else {
+		el.css('display', 'none');
+		
+		if (fn) {
+			fn.call(el);
+		}
+	}
+}
+
 /**
  * [Buttons description]
  * @param {[type]}
@@ -189,7 +220,9 @@ $.extend( Buttons.prototype, {
 	disable: function ( node ) {
 		var button = this._nodeToButton( node );
 
-		$(button.node).addClass( this.c.dom.button.disabled );
+		$(button.node)
+			.addClass( this.c.dom.button.disabled )
+			.attr('disabled', true);
 
 		return this;
 	},
@@ -242,7 +275,9 @@ $.extend( Buttons.prototype, {
 		}
 
 		var button = this._nodeToButton( node );
-		$(button.node).removeClass( this.c.dom.button.disabled );
+		$(button.node)
+			.removeClass( this.c.dom.button.disabled )
+			.removeAttr('disabled');
 
 		return this;
 	},
@@ -496,7 +531,7 @@ $.extend( Buttons.prototype, {
 				continue;
 			}
 
-			if ( attachPoint !== undefined ) {
+			if ( attachPoint !== undefined && attachPoint !== null ) {
 				attachTo.splice( attachPoint, 0, built );
 				attachPoint++;
 			}
@@ -576,7 +611,7 @@ $.extend( Buttons.prototype, {
 					action( e, dt, button, config );
 				}
 				if( clickBlurs ) {
-					button.blur();
+					button.trigger('blur');
 				}
 			} )
 			.on( 'keyup.dtb', function (e) {
@@ -945,9 +980,13 @@ $.extend( Buttons.prototype, {
 		var hostNode = hostButton.node();
 
 		var close = function () {
-			$('.dt-button-collection').stop().fadeOut( options.fade, function () {
-				$(this).detach();
-			} );
+			_fadeOut(
+				$('.dt-button-collection'),
+				options.fade,
+				function () {
+					$(this).detach();
+				}
+			);
 
 			$(dt.buttons( '[aria-haspopup="true"][aria-expanded="true"]' ).nodes())
 				.attr('aria-expanded', 'false');
@@ -990,9 +1029,7 @@ $.extend( Buttons.prototype, {
 			display.prepend('<div class="dt-button-collection-title">'+options.collectionTitle+'</div>');
 		}
 
-		display
-			.insertAfter( hostNode )
-			.fadeIn( options.fade );
+		_fadeIn( display.insertAfter( hostNode ) );
 
 		var tableContainer = $( hostButton.table().container() );
 		var position = display.css( 'position' );
@@ -1003,6 +1040,7 @@ $.extend( Buttons.prototype, {
 		}
 
 		if ( position === 'absolute' ) {
+
 			var hostPosition = hostNode.position();
 
 			display.css( {
@@ -1028,24 +1066,63 @@ $.extend( Buttons.prototype, {
 				display.css( 'top', moveTop);
 			}
 
-			// Right alignment is enabled on a class, e.g. bootstrap:
-			// $.fn.dataTable.Buttons.defaults.dom.collection.className += " dropdown-menu-right"; 
+			// Get the size of the container (left and width - and thus also right)
+			var tableLeft = tableContainer.offset().left;
+			var tableWidth = tableContainer.width();
+			var tableRight = tableLeft + tableWidth;
+
+			// Get the size of the popover (left and width - and ...)
+			var popoverLeft = display.offset().left;
+			var popoverWidth = display.width();
+			var popoverRight = popoverLeft + popoverWidth;
+
+			// Get the size of the host buttons (left and width - and ...)
+			var buttonsLeft = hostNode.offset().left;
+			var buttonsWidth = hostNode.outerWidth()
+			var buttonsRight = buttonsLeft + buttonsWidth;
+			
+			// You've then got all the numbers you need to do some calculations and if statements,
+			//  so we can do some quick JS maths and apply it only once
+			// If it has the right align class OR the buttons are right aligned,
+			//  then calculate left position for the popover to align the popover to the right hand
+			//  side of the button - check to see if the left of the popover is inside the table container.
+			// If not, move the popover so it is, but not more than it means that the popover is to the right of the table container
+			var popoverShuffle = 0;
 			if ( display.hasClass( options.rightAlignClassName ) || options.align === 'button-right' ) {
-				display.css( 'left', hostPosition.left + hostNode.outerWidth() - collectionWidth );
+				popoverShuffle = buttonsRight - popoverRight;
+				if(tableLeft > (popoverLeft + popoverShuffle)){
+					var leftGap = tableLeft - (popoverLeft + popoverShuffle);
+					var rightGap = tableRight - (popoverRight + popoverShuffle);
+	
+					if(leftGap > rightGap){
+						popoverShuffle += rightGap; 
+					}
+					else {
+						popoverShuffle += leftGap;
+					}
+				}
 			}
+			// else attempt to left align the popover to the button. Similar to above, if the popover's right goes past the table container's right,
+			//  then move it back, but not so much that it goes past the left of the table container
+			else {
+				popoverShuffle = tableLeft - popoverLeft;
 
-			// Right alignment in table container
-			var listRight = hostPosition.left + collectionWidth;
-			var tableRight = tableContainer.offset().left + tableContainer.width();
-			if ( listRight > tableRight ) {
-				display.css( 'left', hostPosition.left - ( listRight - tableRight ) );
-			}
+				if(tableRight < (popoverRight + popoverShuffle)){
+					var leftGap = tableLeft - (popoverLeft + popoverShuffle);
+					var rightGap = tableRight - (popoverRight + popoverShuffle);
 
-			// Right alignment to window
-			var listOffsetRight = hostNode.offset().left + collectionWidth;
-			if ( listOffsetRight > $(window).width() ) {
-				display.css( 'left', hostPosition.left - (listOffsetRight-$(window).width()) );
+					if(leftGap > rightGap ){
+						popoverShuffle += rightGap;
+					}
+					else {
+						popoverShuffle += leftGap;
+					}
+
+				}
 			}
+
+			display.css('left', display.position().left + popoverShuffle);
+			
 		}
 		else {
 			// Fix position - centre on screen
@@ -1092,6 +1169,8 @@ $.extend( Buttons.prototype, {
 				} );
 			}, 0);
 		}
+
+		$(display).trigger('buttons-popover.dt');
 	}
 } );
 
@@ -1117,21 +1196,24 @@ Buttons.background = function ( show, className, fade, insertPoint ) {
 	}
 
 	if ( show ) {
-		$('<div/>')
-			.addClass( className )
-			.css( 'display', 'none' )
-			.insertAfter( insertPoint )
-			.stop()
-			.fadeIn( fade );
+		_fadeIn(
+			$('<div/>')
+				.addClass( className )
+				.css( 'display', 'none' )
+				.insertAfter( insertPoint ),
+			fade
+		);
 	}
 	else {
-		$('div.'+className)
-			.stop()
-			.fadeOut( fade, function () {
+		_fadeOut(
+			$('div.'+className),
+			fade,
+			function () {
 				$(this)
 					.removeClass( className )
 					.remove();
-			} );
+			}
+		);
 	}
 };
 
@@ -1370,7 +1452,7 @@ Buttons.defaults = {
  * @type {string}
  * @static
  */
-Buttons.version = '1.6.1';
+Buttons.version = '1.6.2';
 
 
 $.extend( _dtButtons, {
@@ -1683,9 +1765,13 @@ DataTable.Api.register( 'buttons.info()', function ( title, message, time ) {
 
 	if ( title === false ) {
 		this.off('destroy.btn-info');
-		$('#datatables_buttons_info').fadeOut( function () {
-			$(this).remove();
-		} );
+		_fadeOut(
+			$('#datatables_buttons_info'),
+			400,
+			function () {
+				$(this).remove();
+			}
+		);
 		clearTimeout( _infoTimer );
 		_infoTimer = null;
 
@@ -1702,12 +1788,13 @@ DataTable.Api.register( 'buttons.info()', function ( title, message, time ) {
 
 	title = title ? '<h2>'+title+'</h2>' : '';
 
-	$('<div id="datatables_buttons_info" class="dt-button-info"/>')
-		.html( title )
-		.append( $('<div/>')[ typeof message === 'string' ? 'html' : 'append' ]( message ) )
-		.css( 'display', 'none' )
-		.appendTo( 'body' )
-		.fadeIn();
+	_fadeIn(
+		$('<div id="datatables_buttons_info" class="dt-button-info"/>')
+			.html( title )
+			.append( $('<div/>')[ typeof message === 'string' ? 'html' : 'append' ]( message ) )
+			.css( 'display', 'none' )
+			.appendTo( 'body' )
+	);
 
 	if ( time !== undefined && time !== 0 ) {
 		_infoTimer = setTimeout( function () {
@@ -1992,9 +2079,11 @@ $(document).on( 'init.dt plugin-init.dt', function (e, settings) {
 	}
 } );
 
-function _init ( settings ) {
+function _init ( settings, options ) {
 	var api = new DataTable.Api( settings );
-	var opts = api.init().buttons || DataTable.defaults.buttons;
+	var opts = options
+		? options
+		: api.init().buttons || DataTable.defaults.buttons;
 
 	return new Buttons( api, opts ).container();
 }

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 41 - 40
plugins/datatables-buttons/js/dataTables.buttons.min.js


+ 27 - 9
plugins/datatables-fixedcolumns/js/dataTables.fixedColumns.js

@@ -1,15 +1,15 @@
-/*! FixedColumns 3.8.0
- * ©2010-2018 SpryMedia Ltd - datatables.net/license
+/*! FixedColumns 3.3.1
+ * ©2010-2020 SpryMedia Ltd - datatables.net/license
  */
 
 /**
  * @summary     FixedColumns
  * @description Freeze columns in place on a scrolling DataTable
- * @version     3.8.0
+ * @version     3.3.1
  * @file        dataTables.fixedColumns.js
  * @author      SpryMedia Ltd (www.sprymedia.co.uk)
  * @contact     www.sprymedia.co.uk/contact
- * @copyright   Copyright 2010-2018 SpryMedia Ltd.
+ * @copyright   Copyright 2010-2020 SpryMedia Ltd.
  *
  * This source file is free software, available under the following license:
  *   MIT license - http://datatables.net/license/mit
@@ -542,7 +542,7 @@ $.extend( FixedColumns.prototype , {
 					mouseController = 'main';
 				}
 
-				if ( mouseController === 'main' ) {
+				if ( mouseController === 'main' || mouseController === 'key' ) {
 					if ( that.s.iLeftColumns > 0 ) {
 						that.dom.grid.left.liner.scrollTop = that.dom.scroller.scrollTop;
 					}
@@ -560,7 +560,7 @@ $.extend( FixedColumns.prototype , {
 			// When scrolling the left column, scroll the body and right column
 			$(that.dom.grid.left.liner)
 				.on( 'mouseover.DTFC touchstart.DTFC', function () {
-					if ( ! mouseDown ) {
+					if ( ! mouseDown && mouseController !== 'key' ) {
 						mouseController = 'left';
 					}
 				} )
@@ -577,6 +577,8 @@ $.extend( FixedColumns.prototype , {
 					}
 				} )
 				.on( wheelType, function(e) {
+					mouseController = 'left';
+
 					// Pass horizontal scrolling through
 					var xDelta = e.type === 'wheel' ?
 						-e.originalEvent.deltaX :
@@ -589,7 +591,7 @@ $.extend( FixedColumns.prototype , {
 			// When scrolling the right column, scroll the body and the left column
 			$(that.dom.grid.right.liner)
 				.on( 'mouseover.DTFC touchstart.DTFC', function () {
-					if ( ! mouseDown ) {
+					if ( ! mouseDown && mouseController !== 'key' ) {
 						mouseController = 'right';
 					}
 				} )
@@ -606,6 +608,8 @@ $.extend( FixedColumns.prototype , {
 					}
 				} )
 				.on( wheelType, function(e) {
+					mouseController = 'left';
+
 					// Pass horizontal scrolling through
 					var xDelta = e.type === 'wheel' ?
 						-e.originalEvent.deltaX :
@@ -627,6 +631,10 @@ $.extend( FixedColumns.prototype , {
 				that._fnDraw.call( that, bFirstDraw );
 				bFirstDraw = false;
 			} )
+			.on('key-focus.dt.DTFC', function () {
+				// KeyTable navigation needs to be main focused
+				mouseController = 'key';
+			})
 			.on( 'column-sizing.dt.DTFC', function () {
 				that._fnColCalc();
 				that._fnGridLayout( that );
@@ -643,6 +651,16 @@ $.extend( FixedColumns.prototype , {
 					that._fnDraw( false );
 				}
 			} )
+			.on( 'position.dts.dt.DTFC', function (e, tableTop) {
+				// Sync up with Scroller
+				if (that.dom.grid.left.body) {
+					$(that.dom.grid.left.body).find('table').eq(0).css('top', tableTop);
+				}
+
+				if (that.dom.grid.right.body) {
+					$(that.dom.grid.right.body).find('table').eq(0).css('top', tableTop);
+				}
+			} )
 			.on( 'destroy.dt.DTFC', function () {
 				jqTable.off( '.DTFC' );
 
@@ -1544,7 +1562,7 @@ FixedColumns.defaults = /** @lends FixedColumns.defaults */{
  *  @default   See code
  *  @static
  */
-FixedColumns.version = "3.8.0";
+FixedColumns.version = "3.3.1";
 
 
 
@@ -1619,7 +1637,7 @@ DataTable.Api.registerPlural( 'cells().fixedNodes()', 'cell().fixedNode()', func
 	return this.iterator( 'cell', function ( settings, row, column ) {
 		return settings._oFixedColumns
 			? settings._oFixedColumns.fnToFixedNode( row, column )
-			: this.node();
+			: this.cell(row, column).node();
 	}, 1 );
 } );
 

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 11 - 10
plugins/datatables-fixedcolumns/js/dataTables.fixedColumns.min.js


+ 23 - 13
plugins/datatables-fixedheader/js/dataTables.fixedHeader.js

@@ -1,16 +1,16 @@
-/*! FixedHeader 3.1.6-dev
- * ©2009-2018 SpryMedia Ltd - datatables.net/license
+/*! FixedHeader 3.1.7
+ * ©2009-2020 SpryMedia Ltd - datatables.net/license
  */
 
 /**
  * @summary     FixedHeader
  * @description Fix a table's header or footer, so it is always visible while
  *              scrolling
- * @version     3.1.6-dev
+ * @version     3.1.7
  * @file        dataTables.fixedHeader.js
  * @author      SpryMedia Ltd (www.sprymedia.co.uk)
  * @contact     www.sprymedia.co.uk/contact
- * @copyright   Copyright 2009-2018 SpryMedia Ltd.
+ * @copyright   Copyright 2009-2020 SpryMedia Ltd.
  *
  * This source file is free software, available under the following license:
  *   MIT license - http://datatables.net/license/mit
@@ -425,6 +425,13 @@ $.extend( FixedHeader.prototype, {
 		var itemDom = this.dom[ item ];
 		var position = this.s.position;
 
+		// It isn't trivial to add a !important css attribute...
+		var importantWidth = function (w) {
+			itemDom.floating.attr('style', function(i,s) {
+				return (s || '') + 'width: '+w+'px !important;';
+			});
+		};
+
 		// Record focus. Browser's will cause input elements to loose focus if
 		// they are inserted else where in the doc
 		var tablePart = this.dom[ item==='footer' ? 'tfoot' : 'thead' ];
@@ -465,8 +472,9 @@ $.extend( FixedHeader.prototype, {
 			itemDom.floating
 				.addClass( 'fixedHeader-floating' )
 				.css( item === 'header' ? 'top' : 'bottom', this.c[item+'Offset'] )
-				.css( 'left', position.left+'px' )
-				.css( 'width', position.width+'px' );
+				.css( 'left', position.left+'px' );
+
+			importantWidth(position.width);
 
 			if ( item === 'footer' ) {
 				itemDom.floating.css( 'top', '' );
@@ -479,8 +487,9 @@ $.extend( FixedHeader.prototype, {
 			itemDom.floating
 				.addClass( 'fixedHeader-locked' )
 				.css( 'top', position.tfootTop - position.theadHeight )
-				.css( 'left', position.left+'px' )
-				.css( 'width', position.width+'px' );
+				.css( 'left', position.left+'px' );
+
+			importantWidth(position.width);
 		}
 		else if ( mode === 'above' ) { // only used for the footer
 			// Fix the position of the floating footer at top of the table body
@@ -489,8 +498,9 @@ $.extend( FixedHeader.prototype, {
 			itemDom.floating
 				.addClass( 'fixedHeader-locked' )
 				.css( 'top', position.tbodyTop )
-				.css( 'left', position.left+'px' )
-				.css( 'width', position.width+'px' );
+				.css( 'left', position.left+'px' );
+
+			importantWidth(position.width);
 		}
 
 		// Restore focus if it was lost
@@ -585,7 +595,7 @@ $.extend( FixedHeader.prototype, {
 
 		if ( this.c.footer && this.dom.tfoot.length ) {
 			if ( ! this.s.enable ) {
-				headerMode = 'in-place';
+				footerMode = 'in-place';
 			}
 			else if ( ! position.visible || windowTop + position.windowHeight >= position.tfootBottom + this.c.footerOffset ) {
 				footerMode = 'in-place';
@@ -612,7 +622,7 @@ $.extend( FixedHeader.prototype, {
  * @type {String}
  * @static
  */
-FixedHeader.version = "3.1.6-dev";
+FixedHeader.version = "3.1.7";
 
 /**
  * Defaults
@@ -681,7 +691,7 @@ DataTable.Api.register( 'fixedHeader.enable()', function ( flag ) {
 
 DataTable.Api.register( 'fixedHeader.enabled()', function () {
 	if ( this.context.length ) {
-		var fx = this.content[0]._fixedHeader;
+		var fh = this.content[0]._fixedHeader;
 
 		if ( fh ) {
 			return fh.enabled();

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 14 - 13
plugins/datatables-fixedheader/js/dataTables.fixedHeader.min.js


+ 46 - 22
plugins/datatables-keytable/js/dataTables.keyTable.js

@@ -1,15 +1,15 @@
-/*! KeyTable 2.5.1
- * ©2009-2019 SpryMedia Ltd - datatables.net/license
+/*! KeyTable 2.5.2
+ * ©2009-2020 SpryMedia Ltd - datatables.net/license
  */
 
 /**
  * @summary     KeyTable
  * @description Spreadsheet like keyboard navigation for DataTables
- * @version     2.5.1
+ * @version     2.5.2
  * @file        dataTables.keyTable.js
  * @author      SpryMedia Ltd (www.sprymedia.co.uk)
  * @contact     www.sprymedia.co.uk/contact
- * @copyright   Copyright 2009-2019 SpryMedia Ltd.
+ * @copyright   Copyright 2009-2020 SpryMedia Ltd.
  *
  * This source file is free software, available under the following license:
  *   MIT license - http://datatables.net/license/mit
@@ -84,7 +84,10 @@ var KeyTable = function ( dt, opts ) {
 		lastFocus: null,
 
 		/** @type {string} Unique namespace per instance */
-		namespace: '.keyTable-'+(namespaceCounter++)
+		namespace: '.keyTable-'+(namespaceCounter++),
+
+		/** @type {Node} Input element for tabbing into the table */
+		tabInput: null
 	};
 
 	// DOM items
@@ -297,8 +300,14 @@ $.extend( KeyTable.prototype, {
 			} );
 		}
 
+		dt.on( 'column-visibility'+namespace, function (e) {
+			that._tabInput();
+		} );
+
 		// Redraw - retain focus on the current cell
 		dt.on( 'draw'+namespace, function (e) {
+			that._tabInput();
+
 			if ( that.s.focusDraw ) {
 				return;
 			}
@@ -494,6 +503,11 @@ $.extend( KeyTable.prototype, {
 	 */
 	_editor: function ( key, orig, hardEdit )
 	{
+		// If nothing focused, we can't take any action
+		if (! this.s.lastFocus) {
+			return;	
+		}
+
 		var that = this;
 		var dt = this.s.dt;
 		var editor = this.c.editor;
@@ -1020,8 +1034,8 @@ $.extend( KeyTable.prototype, {
 
 
 	/**
-	 * Create a hidden input element that can receive focus on behalf of the
-	 * table
+	 * Create and insert a hidden input element that can receive focus on behalf
+	 * of the table
 	 *
 	 * @private
 	 */
@@ -1037,22 +1051,32 @@ $.extend( KeyTable.prototype, {
 			return;
 		}
 
-		var div = $('<div><input type="text" tabindex="'+tabIndex+'"/></div>')
-			.css( {
-				position: 'absolute',
-				height: 1,
-				width: 0,
-				overflow: 'hidden'
-			} )
-			.insertBefore( dt.table().node() );
+		// Only create the input element once on first class
+		if (! this.s.tabInput) {
+			var div = $('<div><input type="text" tabindex="'+tabIndex+'"/></div>')
+				.css( {
+					position: 'absolute',
+					height: 1,
+					width: 0,
+					overflow: 'hidden'
+				} );
 
-		div.children().on( 'focus', function (e) {
-			var cell = dt.cell(':eq(0)', that._columns(), {page: 'current'});
+			div.children().on( 'focus', function (e) {
+				var cell = dt.cell(':eq(0)', that._columns(), {page: 'current'});
+	
+				if ( cell.any() ) {
+					that._focus( cell, null, true, e );
+				}
+			} );
 
-			if ( cell.any() ) {
-				that._focus( cell, null, true, e );
-			}
-		} );
+			this.s.tabInput = div;
+		}
+
+		// Insert the input element into the first cell in the table's body
+		var cell = this.s.dt.cell(':eq(0)', '0:visible', {page: 'current', order: 'current'}).node();
+		if (cell) {
+			$(cell).prepend(this.s.tabInput);
+		}
 	},
 
 	/**
@@ -1151,7 +1175,7 @@ KeyTable.defaults = {
 
 
 
-KeyTable.version = "2.5.1";
+KeyTable.version = "2.5.2";
 
 
 $.fn.dataTable.KeyTable = KeyTable;

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 22 - 22
plugins/datatables-keytable/js/dataTables.keyTable.min.js


+ 18 - 13
plugins/datatables-responsive/css/responsive.bootstrap4.css

@@ -8,18 +8,19 @@ table.dataTable.dtr-inline.collapsed > tbody > tr > th.child:before,
 table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty:before {
   display: none !important;
 }
-table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td:first-child,
-table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > th:first-child {
+table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td.dtr-control,
+table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > th.dtr-control {
   position: relative;
   padding-left: 30px;
   cursor: pointer;
 }
-table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td:first-child:before,
-table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > th:first-child:before {
-  top: 12px;
-  left: 4px;
+table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td.dtr-control:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > th.dtr-control:before {
+  top: 50%;
+  left: 5px;
   height: 14px;
   width: 14px;
+  margin-top: -9px;
   display: block;
   position: absolute;
   color: white;
@@ -34,18 +35,17 @@ table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > th:first-child:b
   content: '+';
   background-color: #0275d8;
 }
-table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td:first-child:before,
-table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th:first-child:before {
+table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td.dtr-control:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th.dtr-control:before {
   content: '-';
   background-color: #d33333;
 }
-table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td:first-child,
-table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th:first-child {
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td.dtr-control,
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th.dtr-control {
   padding-left: 27px;
 }
-table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td:first-child:before,
-table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th:first-child:before {
-  top: 5px;
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td.dtr-control:before,
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th.dtr-control:before {
   left: 4px;
   height: 14px;
   width: 14px;
@@ -178,3 +178,8 @@ div.dtr-modal div.dtr-modal-background {
 div.dtr-bs-modal table.table tr:first-child td {
   border-top: none;
 }
+
+table.dataTable.dtr-inline.collapsed.table-sm > tbody > tr > td:first-child:before,
+table.dataTable.dtr-inline.collapsed.table-sm > tbody > tr > th:first-child:before {
+  top: 5px;
+}

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 1 - 1
plugins/datatables-responsive/css/responsive.bootstrap4.min.css


+ 152 - 73
plugins/datatables-responsive/js/dataTables.responsive.js

@@ -1,15 +1,15 @@
-/*! Responsive 2.2.3
- * 2014-2018 SpryMedia Ltd - datatables.net/license
+/*! Responsive 2.2.5
+ * 2014-2020 SpryMedia Ltd - datatables.net/license
  */
 
 /**
  * @summary     Responsive
  * @description Responsive tables plug-in for DataTables
- * @version     2.2.3
+ * @version     2.2.5
  * @file        dataTables.responsive.js
  * @author      SpryMedia Ltd (www.sprymedia.co.uk)
  * @contact     www.sprymedia.co.uk/contact
- * @copyright   Copyright 2014-2018 SpryMedia Ltd.
+ * @copyright   Copyright 2014-2020 SpryMedia Ltd.
  *
  * This source file is free software, available under the following license:
  *   MIT license - http://datatables.net/license/mit
@@ -144,7 +144,7 @@ $.extend( Responsive.prototype, {
 		var that = this;
 		var dt = this.s.dt;
 		var dtPrivateSettings = dt.settings()[0];
-		var oldWindowWidth = $(window).width();
+		var oldWindowWidth = $(window).innerWidth();
 
 		dt.settings()[0]._responsive = this;
 
@@ -153,7 +153,7 @@ $.extend( Responsive.prototype, {
 		$(window).on( 'resize.dtr orientationchange.dtr', DataTable.util.throttle( function () {
 			// iOS has a bug whereby resize can fire when only scrolling
 			// See: http://stackoverflow.com/questions/8898412
-			var width = $(window).width();
+			var width = $(window).innerWidth();
 
 			if ( width !== oldWindowWidth ) {
 				that._resize();
@@ -181,6 +181,7 @@ $.extend( Responsive.prototype, {
 			dt.off( '.dtr' );
 			$( dt.table().body() ).off( '.dtr' );
 			$(window).off( 'resize.dtr orientationchange.dtr' );
+			dt.cells('.dtr-control').nodes().to$().removeClass('dtr-control');
 
 			// Restore the columns that we've hidden
 			$.each( that.s.current, function ( i, val ) {
@@ -238,7 +239,7 @@ $.extend( Responsive.prototype, {
 		dt.on( 'column-reorder.dtr', function (e, settings, details) {
 			that._classLogic();
 			that._resizeAuto();
-			that._resize();
+			that._resize(true);
 		} );
 
 		// Change in column sizes means we need to calc
@@ -267,16 +268,24 @@ $.extend( Responsive.prototype, {
 			} );
 		});
 
-		dt.on( 'init.dtr', function (e, settings, details) {
-			that._resizeAuto();
-			that._resize();
+		dt
+			.on( 'draw.dtr', function () {
+				that._controlClass();
+			})
+			.on( 'init.dtr', function (e, settings, details) {
+				if ( e.namespace !== 'dt' ) {
+					return;
+				}
 
-			// If columns were hidden, then DataTables needs to adjust the
-			// column sizing
-			if ( $.inArray( false, that.s.current ) ) {
-				dt.columns.adjust();
-			}
-		} );
+				that._resizeAuto();
+				that._resize();
+
+				// If columns were hidden, then DataTables needs to adjust the
+				// column sizing
+				if ( $.inArray( false, that.s.current ) ) {
+					dt.columns.adjust();
+				}
+			} );
 
 		// First pass - draw the table for the current viewport size
 		this._resize();
@@ -441,13 +450,12 @@ $.extend( Responsive.prototype, {
 			var column = this.column(i);
 			var className = column.header().className;
 			var priority = dt.settings()[0].aoColumns[i].responsivePriority;
+			var dataPriority = column.header().getAttribute('data-priority');
 
 			if ( priority === undefined ) {
-				var dataPriority = $(column.header()).data('priority');
-
-				priority = dataPriority !== undefined ?
-					dataPriority * 1 :
-					10000;
+				priority = dataPriority === undefined || dataPriority === null?
+					10000 :
+					dataPriority * 1;
 			}
 
 			return {
@@ -567,6 +575,36 @@ $.extend( Responsive.prototype, {
 		this.s.columns = columns;
 	},
 
+	/**
+	 * Update the cells to show the correct control class / button
+	 * @private
+	 */
+	_controlClass: function ()
+	{
+		if ( this.c.details.type === 'inline' ) {
+			var dt = this.s.dt;
+			var columnsVis = this.s.current;
+			var firstVisible = $.inArray(true, columnsVis);
+
+			// Remove from any cells which shouldn't have it
+			dt.cells(
+				null,
+				function(idx) {
+					return idx !== firstVisible;
+				},
+				{page: 'current'}
+			)
+				.nodes()
+				.to$()
+				.filter('.dtr-control')
+				.removeClass('dtr-control');
+
+			dt.cells(null, firstVisible, {page: 'current'})
+				.nodes()
+				.to$()
+				.addClass('dtr-control');
+		}
+	},
 
 	/**
 	 * Show the details for the child row
@@ -608,7 +646,7 @@ $.extend( Responsive.prototype, {
 
 		// The inline type always uses the first child as the target
 		if ( details.type === 'inline' ) {
-			details.target = 'td:first-child, th:first-child';
+			details.target = 'td.dtr-control, th.dtr-control';
 		}
 
 		// Keyboard accessibility
@@ -627,51 +665,53 @@ $.extend( Responsive.prototype, {
 		var target   = details.target;
 		var selector = typeof target === 'string' ? target : 'td, th';
 
-		// Click handler to show / hide the details rows when they are available
-		$( dt.table().body() )
-			.on( 'click.dtr mousedown.dtr mouseup.dtr', selector, function (e) {
-				// If the table is not collapsed (i.e. there is no hidden columns)
-				// then take no action
-				if ( ! $(dt.table().node()).hasClass('collapsed' ) ) {
-					return;
-				}
+		if ( target !== undefined || target !== null ) {
+			// Click handler to show / hide the details rows when they are available
+			$( dt.table().body() )
+				.on( 'click.dtr mousedown.dtr mouseup.dtr', selector, function (e) {
+					// If the table is not collapsed (i.e. there is no hidden columns)
+					// then take no action
+					if ( ! $(dt.table().node()).hasClass('collapsed' ) ) {
+						return;
+					}
 
-				// Check that the row is actually a DataTable's controlled node
-				if ( $.inArray( $(this).closest('tr').get(0), dt.rows().nodes().toArray() ) === -1 ) {
-					return;
-				}
+					// Check that the row is actually a DataTable's controlled node
+					if ( $.inArray( $(this).closest('tr').get(0), dt.rows().nodes().toArray() ) === -1 ) {
+						return;
+					}
 
-				// For column index, we determine if we should act or not in the
-				// handler - otherwise it is already okay
-				if ( typeof target === 'number' ) {
-					var targetIdx = target < 0 ?
-						dt.columns().eq(0).length + target :
-						target;
+					// For column index, we determine if we should act or not in the
+					// handler - otherwise it is already okay
+					if ( typeof target === 'number' ) {
+						var targetIdx = target < 0 ?
+							dt.columns().eq(0).length + target :
+							target;
 
-					if ( dt.cell( this ).index().column !== targetIdx ) {
-						return;
+						if ( dt.cell( this ).index().column !== targetIdx ) {
+							return;
+						}
 					}
-				}
 
-				// $().closest() includes itself in its check
-				var row = dt.row( $(this).closest('tr') );
+					// $().closest() includes itself in its check
+					var row = dt.row( $(this).closest('tr') );
 
-				// Check event type to do an action
-				if ( e.type === 'click' ) {
-					// The renderer is given as a function so the caller can execute it
-					// only when they need (i.e. if hiding there is no point is running
-					// the renderer)
-					that._detailsDisplay( row, false );
-				}
-				else if ( e.type === 'mousedown' ) {
-					// For mouse users, prevent the focus ring from showing
-					$(this).css('outline', 'none');
-				}
-				else if ( e.type === 'mouseup' ) {
-					// And then re-allow at the end of the click
-					$(this).blur().css('outline', '');
-				}
-			} );
+					// Check event type to do an action
+					if ( e.type === 'click' ) {
+						// The renderer is given as a function so the caller can execute it
+						// only when they need (i.e. if hiding there is no point is running
+						// the renderer)
+						that._detailsDisplay( row, false );
+					}
+					else if ( e.type === 'mousedown' ) {
+						// For mouse users, prevent the focus ring from showing
+						$(this).css('outline', 'none');
+					}
+					else if ( e.type === 'mouseup' ) {
+						// And then re-allow at the end of the click
+						$(this).trigger('blur').css('outline', '');
+					}
+				} );
+		}
 	},
 
 
@@ -691,12 +731,17 @@ $.extend( Responsive.prototype, {
 				return;
 			}
 
+			var dtCol = dt.settings()[0].aoColumns[ i ];
+
 			return {
-				title:       dt.settings()[0].aoColumns[ i ].sTitle,
+				className:   dtCol.sClass,
+				columnIndex: i,
 				data:        dt.cell( rowIdx, i ).render( that.c.orthogonal ),
 				hidden:      dt.column( i ).visible() && !that.s.current[ i ],
-				columnIndex: i,
-				rowIndex:    rowIdx
+				rowIndex:    rowIdx,
+				title:       dtCol.sTitle !== null ?
+					dtCol.sTitle :
+					$(dt.column(i).header()).text()
 			};
 		} );
 	},
@@ -745,13 +790,14 @@ $.extend( Responsive.prototype, {
 	 * determining what breakpoint the window currently is in, getting the
 	 * column visibilities to apply and then setting them.
 	 *
+	 * @param  {boolean} forceRedraw Force a redraw
 	 * @private
 	 */
-	_resize: function ()
+	_resize: function (forceRedraw)
 	{
 		var that = this;
 		var dt = this.s.dt;
-		var width = $(window).width();
+		var width = $(window).innerWidth();
 		var breakpoints = this.c.breakpoints;
 		var breakpoint = breakpoints[0].name;
 		var columns = this.s.columns;
@@ -774,6 +820,7 @@ $.extend( Responsive.prototype, {
 		// listeners know what the state is. Need to determine if there are
 		// any columns that are not visible but can be shown
 		var collapsedClass = false;
+	
 		for ( i=0, ien=columns.length ; i<ien ; i++ ) {
 			if ( columnsVis[i] === false && ! columns[i].never && ! columns[i].control && ! dt.column(i).visible() === false ) {
 				collapsedClass = true;
@@ -791,7 +838,7 @@ $.extend( Responsive.prototype, {
 				visible++;
 			}
 
-			if ( columnsVis[i] !== oldVis[i] ) {
+			if ( forceRedraw || columnsVis[i] !== oldVis[i] ) {
 				changed = true;
 				that._setColumnVis( colIdx, columnsVis[i] );
 			}
@@ -851,6 +898,8 @@ $.extend( Responsive.prototype, {
 		var clonedHeader = $( dt.table().header().cloneNode( false ) ).appendTo( clonedTable );
 		var clonedBody   = $( dt.table().body() ).clone( false, false ).empty().appendTo( clonedTable ); // use jQuery because of IE8
 
+		clonedTable.style.width = 'auto';
+
 		// Header
 		var headerCells = dt.columns()
 			.header()
@@ -860,6 +909,7 @@ $.extend( Responsive.prototype, {
 			.to$()
 			.clone( false )
 			.css( 'display', 'table-cell' )
+			.css( 'width', 'auto' )
 			.css( 'min-width', 0 );
 
 		// Body rows - we don't need to take account of DataTables' column
@@ -927,6 +977,23 @@ $.extend( Responsive.prototype, {
 	},
 
 	/**
+	 * Get the state of the current hidden columns - controlled by Responsive only
+	 */
+	_responsiveOnlyHidden: function ()
+	{
+		var dt = this.s.dt;
+
+		return $.map( this.s.current, function (v, i) {
+			// If the column is hidden by DataTables then it can't be hidden by
+			// Responsive!
+			if ( dt.column(i).visible() === false ) {
+				return true;
+			}
+			return v;
+		} );
+	},
+
+	/**
 	 * Set a column's visibility.
 	 *
 	 * We don't use DataTables' column visibility controls in order to ensure
@@ -1179,8 +1246,12 @@ Responsive.renderer = {
 
 			var data = $.each( columns, function ( i, col ) {
 				if ( col.hidden ) {
+					var klass = col.className ?
+						'class="'+ col.className +'"' :
+						'';
+	
 					$(
-						'<li data-dtr-index="'+col.columnIndex+'" data-dt-row="'+col.rowIndex+'" data-dt-column="'+col.columnIndex+'">'+
+						'<li '+klass+' data-dtr-index="'+col.columnIndex+'" data-dt-row="'+col.rowIndex+'" data-dt-column="'+col.columnIndex+'">'+
 							'<span class="dtr-title">'+
 								col.title+
 							'</span> '+
@@ -1202,8 +1273,12 @@ Responsive.renderer = {
 	listHidden: function () {
 		return function ( api, rowIdx, columns ) {
 			var data = $.map( columns, function ( col ) {
+				var klass = col.className ?
+					'class="'+ col.className +'"' :
+					'';
+
 				return col.hidden ?
-					'<li data-dtr-index="'+col.columnIndex+'" data-dt-row="'+col.rowIndex+'" data-dt-column="'+col.columnIndex+'">'+
+					'<li '+klass+' data-dtr-index="'+col.columnIndex+'" data-dt-row="'+col.rowIndex+'" data-dt-column="'+col.columnIndex+'">'+
 						'<span class="dtr-title">'+
 							col.title+
 						'</span> '+
@@ -1227,7 +1302,11 @@ Responsive.renderer = {
 
 		return function ( api, rowIdx, columns ) {
 			var data = $.map( columns, function ( col ) {
-				return '<tr data-dt-row="'+col.rowIndex+'" data-dt-column="'+col.columnIndex+'">'+
+				var klass = col.className ?
+					'class="'+ col.className +'"' :
+					'';
+
+				return '<tr '+klass+' data-dt-row="'+col.rowIndex+'" data-dt-column="'+col.columnIndex+'">'+
 						'<td>'+col.title+':'+'</td> '+
 						'<td>'+col.data+'</td>'+
 					'</tr>';
@@ -1343,14 +1422,14 @@ Api.register( 'responsive.hasHidden()', function () {
 	var ctx = this.context[0];
 
 	return ctx._responsive ?
-		$.inArray( false, ctx._responsive.s.current ) !== -1 :
+		$.inArray( false, ctx._responsive._responsiveOnlyHidden() ) !== -1 :
 		false;
 } );
 
 Api.registerPlural( 'columns().responsiveHidden()', 'column().responsiveHidden()', function () {
 	return this.iterator( 'column', function ( settings, column ) {
 		return settings._responsive ?
-			settings._responsive.s.current[ column ] :
+			settings._responsive._responsiveOnlyHidden()[ column ] :
 			false;
 	}, 1 );
 } );
@@ -1362,7 +1441,7 @@ Api.registerPlural( 'columns().responsiveHidden()', 'column().responsiveHidden()
  * @name Responsive.version
  * @static
  */
-Responsive.version = '2.2.3';
+Responsive.version = '2.2.5';
 
 
 $.fn.dataTable.Responsive = Responsive;

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 30 - 28
plugins/datatables-responsive/js/dataTables.responsive.min.js


+ 26 - 12
plugins/datatables-rowgroup/js/dataTables.rowGroup.js

@@ -1,15 +1,15 @@
-/*! RowGroup 1.1.1
- * ©2017-2019 SpryMedia Ltd - datatables.net/license
+/*! RowGroup 1.1.2
+ * ©2017-2020 SpryMedia Ltd - datatables.net/license
  */
 
 /**
  * @summary     RowGroup
  * @description RowGrouping for DataTables
- * @version     1.1.1
+ * @version     1.1.2
  * @file        dataTables.rowGroup.js
  * @author      SpryMedia Ltd (www.sprymedia.co.uk)
  * @contact     datatables.net
- * @copyright   Copyright 2017-2019 SpryMedia Ltd.
+ * @copyright   Copyright 2017-2020 SpryMedia Ltd.
  *
  * This source file is free software, available under the following license:
  *   MIT license - http://datatables.net/license/mit
@@ -135,6 +135,15 @@ $.extend( RowGroup.prototype, {
 		return this;
 	},
 
+	/**
+	 * Get enabled flag
+	 * @returns boolean
+	 */
+	enabled: function ()
+	{
+		return this.c.enable;
+	},
+
 
 	/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 	 * Constructor
@@ -143,9 +152,10 @@ $.extend( RowGroup.prototype, {
 	{
 		var that = this;
 		var dt = this.s.dt;
+		var hostSettings = dt.settings()[0];
 
-		dt.on( 'draw.dtrg', function () {
-			if ( that.c.enable ) {
+		dt.on( 'draw.dtrg', function (e, s) {
+			if ( that.c.enable && hostSettings === s ) {
 				that._draw();
 			}
 		} );
@@ -157,10 +167,6 @@ $.extend( RowGroup.prototype, {
 		dt.on( 'destroy', function () {
 			dt.off( '.dtrg' );
 		} );
-
-		dt.on('responsive-resize.dt', function () {
-			that._adjustColspan();
-		})
 	},
 
 
@@ -174,7 +180,7 @@ $.extend( RowGroup.prototype, {
 	 */
 	_adjustColspan: function ()
 	{
-		$( 'tr.'+this.c.className, this.s.dt.table().body() ).find('td')
+		$( 'tr.'+this.c.className, this.s.dt.table().body() ).find('td:visible')
 			.attr( 'colspan', this._colspan() );
 	},
 
@@ -407,7 +413,7 @@ RowGroup.defaults = {
 };
 
 
-RowGroup.version = "1.1.1";
+RowGroup.version = "1.1.2";
 
 
 $.fn.dataTable.RowGroup = RowGroup;
@@ -434,6 +440,14 @@ DataTable.Api.register( 'rowGroup().enable()', function ( opts ) {
 	} );
 } );
 
+DataTable.Api.register( 'rowGroup().enabled()', function () {
+	var ctx = this.context;
+
+	return ctx.length && ctx[0].rowGroup ?
+		ctx[0].rowGroup.enabled() :
+		false;
+} );
+
 DataTable.Api.register( 'rowGroup().dataSrc()', function ( val ) {
 	if ( val === undefined ) {
 		return this.context[0].rowGroup.dataSrc();

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 10 - 10
plugins/datatables-rowgroup/js/dataTables.rowGroup.min.js


+ 26 - 25
plugins/datatables-rowreorder/js/dataTables.rowReorder.js

@@ -1,15 +1,15 @@
-/*! RowReorder 1.2.6
- * 2015-2019 SpryMedia Ltd - datatables.net/license
+/*! RowReorder 1.2.7
+ * 2015-2020 SpryMedia Ltd - datatables.net/license
  */
 
 /**
  * @summary     RowReorder
  * @description Row reordering extension for DataTables
- * @version     1.2.6
+ * @version     1.2.7
  * @file        dataTables.rowReorder.js
  * @author      SpryMedia Ltd (www.sprymedia.co.uk)
  * @contact     www.sprymedia.co.uk/contact
- * @copyright   Copyright 2015-2019 SpryMedia Ltd.
+ * @copyright   Copyright 2015-2020 SpryMedia Ltd.
  *
  * This source file is free software, available under the following license:
  *   MIT license - http://datatables.net/license/mit
@@ -139,10 +139,15 @@ var RowReorder = function ( dt, opts ) {
 	// Check if row reorder has already been initialised on this table
 	var settings = this.s.dt.settings()[0];
 	var exisiting = settings.rowreorder;
+
 	if ( exisiting ) {
 		return exisiting;
 	}
 
+	if ( !this.dom.dtScroll.length ) {
+		this.dom.dtScroll = $(this.s.dt.table().container(), 'tbody')
+	}
+
 	settings.rowreorder = this;
 	this._constructor();
 };
@@ -230,14 +235,10 @@ $.extend( RowReorder.prototype, {
 		// not what DataTables thinks it is, since we have been altering the
 		// order
 		var nodes = $.unique( dt.rows( { page: 'current' } ).nodes().toArray() );
-		var tops = $.map( nodes, function ( node, i ) {
-			return $(node).position().top - headerHeight;
-		} );
+		var middles = $.map( nodes, function ( node, i ) {
+			var top = $(node).position().top - headerHeight;
 
-		var middles = $.map( tops, function ( top, i ) {
-			return tops.length < i-1 ?
-				(top + tops[i+1]) / 2 :
-				(top + top + $( dt.row( ':last-child' ).node() ).outerHeight() ) / 2;
+			return (top + top + $(node).outerHeight() ) / 2;
 		} );
 
 		this.s.middles = middles;
@@ -429,7 +430,6 @@ $.extend( RowReorder.prototype, {
 		var middles = this.s.middles;
 		var insertPoint = null;
 		var dt = this.s.dt;
-		var body = dt.table().body();
 
 		// Determine where the row should be inserted based on the mouse
 		// position
@@ -446,18 +446,13 @@ $.extend( RowReorder.prototype, {
 
 		// Perform the DOM shuffle if it has changed from last time
 		if ( this.s.lastInsert === null || this.s.lastInsert !== insertPoint ) {
-			if ( insertPoint === 0 ) {
-				this.dom.target.prependTo( body );
+			var nodes = $.unique( dt.rows( { page: 'current' } ).nodes().toArray() );
+
+			if ( insertPoint > this.s.lastInsert ) {
+				this.dom.target.insertAfter( nodes[ insertPoint-1 ] );
 			}
 			else {
-				var nodes = $.unique( dt.rows( { page: 'current' } ).nodes().toArray() );
-
-				if ( insertPoint > this.s.lastInsert ) {
-					this.dom.target.insertAfter( nodes[ insertPoint-1 ] );
-				}
-				else {
-					this.dom.target.insertBefore( nodes[ insertPoint ] );
-				}
+				this.dom.target.insertBefore( nodes[ insertPoint ] );
 			}
 
 			this._cachePositions();
@@ -621,10 +616,10 @@ $.extend( RowReorder.prototype, {
 
 		// Window calculations - based on the mouse position in the window,
 		// regardless of scrolling
-		if ( windowY < buffer ) {
+		if ( windowY < $(window).scrollTop() + buffer ) {
 			windowVert = scrollSpeed * -1;
 		}
-		else if ( windowY > scroll.windowHeight - buffer ) {
+		else if ( windowY > scroll.windowHeight + $(window).scrollTop() - buffer ) {
 			windowVert = scrollSpeed;
 		}
 
@@ -663,7 +658,13 @@ $.extend( RowReorder.prototype, {
 				// Don't need to worry about setting scroll <0 or beyond the
 				// scroll bound as the browser will just reject that.
 				if ( scroll.windowVert ) {
-					document.body.scrollTop += scroll.windowVert;
+					var top = $(document).scrollTop();
+					$(document).scrollTop(top + scroll.windowVert);
+
+					if ( top !== $(document).scrollTop() ) {
+						var move = parseFloat(that.dom.clone.css("top"));
+						that.dom.clone.css("top", move + scroll.windowVert);					
+					}
 				}
 
 				// DataTables scrolling

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 17 - 16
plugins/datatables-rowreorder/js/dataTables.rowReorder.min.js


+ 46 - 43
plugins/datatables-scroller/js/dataTables.scroller.js

@@ -1,15 +1,15 @@
-/*! Scroller 2.0.1
- * ©2011-2019 SpryMedia Ltd - datatables.net/license
+/*! Scroller 2.0.2
+ * ©2011-2020 SpryMedia Ltd - datatables.net/license
  */
 
 /**
  * @summary     Scroller
  * @description Virtual rendering for DataTables
- * @version     2.0.1
+ * @version     2.0.2
  * @file        dataTables.scroller.js
  * @author      SpryMedia Ltd (www.sprymedia.co.uk)
  * @contact     www.sprymedia.co.uk/contact
- * @copyright   Copyright 2011-2019 SpryMedia Ltd.
+ * @copyright   Copyright 2011-2020 SpryMedia Ltd.
  *
  * This source file is free software, available under the following license:
  *   MIT license - http://datatables.net/license/mit
@@ -187,6 +187,8 @@ var Scroller = function ( dt, opts ) {
 		 */
 		stateTO: null,
 
+		stateSaveThrottle: function () {},
+
 		/**
 		 * setTimeout reference for the redraw, used when server-side processing is enabled in the
 		 * DataTables in order to prevent DoSing the server
@@ -286,14 +288,7 @@ $.extend( Scroller.prototype, {
 		var heights = this.s.heights;
 
 		if ( heights.row ) {
-			heights.viewport = $.contains(document, this.dom.scroller) ?
-				this.dom.scroller.clientHeight :
-				this._parseHeight($(this.dom.scroller).css('height'));
-
-			// If collapsed (no height) use the max-height parameter
-			if ( ! heights.viewport ) {
-				heights.viewport = this._parseHeight($(this.dom.scroller).css('max-height'));
-			}
+			heights.viewport = this._parseHeight($(this.dom.scroller).css('max-height'));
 
 			this.s.viewportRows = parseInt( heights.viewport / heights.row, 10 )+1;
 			this.s.dt._iDisplayLength = this.s.viewportRows * this.s.displayBuffer;
@@ -497,15 +492,9 @@ $.extend( Scroller.prototype, {
 		{
 			this.s.autoHeight = false;
 		}
-		this.measure( false );
 
-		// Scrolling callback to see if a page change is needed - use a throttled
-		// function for the save save callback so we aren't hitting it on every
-		// scroll
+		// Scrolling callback to see if a page change is needed
 		this.s.ingnoreScroll = true;
-		this.s.stateSaveThrottle = this.s.dt.oApi._fnThrottle( function () {
-			that.s.dtApi.state.save();
-		}, 500 );
 		$(this.dom.scroller).on( 'scroll.dt-scroller', function (e) {
 			that._scroll.call( that );
 		} );
@@ -521,7 +510,8 @@ $.extend( Scroller.prototype, {
 				that.s.mousedown = true;
 			})
 			.on('mouseup.dt-scroller', function () {
-				that.s.mouseup = false;
+				that.s.labelVisible = false;
+				that.s.mousedown = false;
 				that.dom.label.css('display', 'none');
 			});
 
@@ -532,23 +522,24 @@ $.extend( Scroller.prototype, {
 		} );
 
 		// Add a state saving parameter to the DT state saving so we can restore the exact
-		// position of the scrolling. Slightly surprisingly the scroll position isn't actually
-		// stored, but rather tha base units which are needed to calculate it. This allows for
-		// virtual scrolling as well.
+		// position of the scrolling.
 		var initialStateSave = true;
 		var loadedState = dt.state.loaded();
 
 		dt.on( 'stateSaveParams.scroller', function ( e, settings, data ) {
-			// Need to used the saved position on init
-			data.scroller = {
-				topRow: initialStateSave && loadedState && loadedState.scroller ?
-					loadedState.scroller.topRow :
-					that.s.topRowFloat,
-				baseScrollTop: that.s.baseScrollTop,
-				baseRowTop: that.s.baseRowTop
-			};
-
-			initialStateSave = false;
+			if ( initialStateSave ) {
+				data.scroller = loadedState.scroller;
+				initialStateSave = false;
+			}
+			else {
+				// Need to used the saved position on init
+				data.scroller = {
+					topRow: that.s.topRowFloat,
+					baseScrollTop: that.s.baseScrollTop,
+					baseRowTop: that.s.baseRowTop,
+					scrollTop: that.s.lastScrollTop
+				};
+			}
 		} );
 
 		if ( loadedState && loadedState.scroller ) {
@@ -557,6 +548,12 @@ $.extend( Scroller.prototype, {
 			this.s.baseRowTop = loadedState.scroller.baseRowTop;
 		}
 
+		this.measure( false );
+	
+		that.s.stateSaveThrottle = that.s.dt.oApi._fnThrottle( function () {
+			that.s.dtApi.state.save();
+		}, 500 );
+
 		dt.on( 'init.scroller', function () {
 			that.measure( false );
 
@@ -643,6 +640,9 @@ $.extend( Scroller.prototype, {
 			insertEl = 'body';
 		}
 
+		// Remove form element links as they might select over others (particularly radio and checkboxes)
+		container.find("input").removeAttr("name");
+
 		container.appendTo( insertEl );
 		this.s.heights.row = $('tr', tbody).eq(1).outerHeight();
 
@@ -713,7 +713,7 @@ $.extend( Scroller.prototype, {
 		// saving Note that this is done on the second draw when data is Ajax
 		// sourced, and the first draw when DOM soured
 		if ( this.s.dt.oFeatures.bStateSave && this.s.dt.oLoadedState !== null &&
-			 typeof this.s.dt.oLoadedState.iScroller != 'undefined' )
+			 typeof this.s.dt.oLoadedState.scroller != 'undefined' )
 		{
 			// A quirk of DataTables is that the draw callback will occur on an
 			// empty set if Ajax sourced, but not if server-side processing.
@@ -725,8 +725,7 @@ $.extend( Scroller.prototype, {
 			     (!ajaxSourced && this.s.dt.iDraw == 1) )
 			{
 				setTimeout( function () {
-					$(that.dom.scroller).scrollTop( that.s.dt.oLoadedState.iScroller );
-					that.s.redrawTop = that.s.dt.oLoadedState.iScroller - (heights.viewport/2);
+					$(that.dom.scroller).scrollTop( that.s.dt.oLoadedState.scroller.scrollTop );
 
 					// In order to prevent layout thrashing we need another
 					// small delay
@@ -1023,18 +1022,17 @@ $.extend( Scroller.prototype, {
 				iTopRow++;
 			}
 
+			// Store calcuated value, in case the following condition is not met, but so
+			// that the draw function will still use it.
+			this.s.targetTop = iTopRow;
 
 			if ( iTopRow != this.s.dt._iDisplayStart ) {
 				/* Cache the new table position for quick lookups */
 				this.s.tableTop = $(this.s.dt.nTable).offset().top;
 				this.s.tableBottom = $(this.s.dt.nTable).height() + this.s.tableTop;
 
-				var draw =  function () {
-					if ( that.s.scrollDrawReq === null ) {
-						that.s.scrollDrawReq = iScrollTop;
-					}
-
-					that.s.dt._iDisplayStart = iTopRow;
+				var draw = function () {
+					that.s.dt._iDisplayStart = that.s.targetTop;
 					that.s.dt.oApi._fnDraw( that.s.dt );
 				};
 
@@ -1042,6 +1040,8 @@ $.extend( Scroller.prototype, {
 				 * using server-side processing we introduce a small delay to not DoS the server...
 				 */
 				if ( this.s.dt.oFeatures.bServerSide ) {
+					this.s.forceReposition = true;
+
 					clearTimeout( this.s.drawTO );
 					this.s.drawTO = setTimeout( draw, this.s.serverWait );
 				}
@@ -1063,6 +1063,9 @@ $.extend( Scroller.prototype, {
 		this.s.stateSaveThrottle();
 
 		if ( this.s.scrollType === 'jump' && this.s.mousedown ) {
+			this.s.labelVisible = true;
+		}
+		if (this.s.labelVisible) {
 			this.dom.label
 				.html( this.s.dt.fnFormatNumber( parseInt( this.s.topRowFloat, 10 )+1 ) )
 				.css( 'top', iScrollTop + (iScrollTop * heights.labelFactor ) )
@@ -1188,7 +1191,7 @@ Scroller.oDefaults = Scroller.defaults;
  *  @name      Scroller.version
  *  @static
  */
-Scroller.version = "2.0.1";
+Scroller.version = "2.0.2";
 
 
 

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 26 - 26
plugins/datatables-scroller/js/dataTables.scroller.min.js


+ 37 - 17
plugins/datatables/jquery.dataTables.js

@@ -1,15 +1,15 @@
-/*! DataTables 1.10.20
- * ©2008-2019 SpryMedia Ltd - datatables.net/license
+/*! DataTables 1.10.21
+ * ©2008-2020 SpryMedia Ltd - datatables.net/license
  */
 
 /**
  * @summary     DataTables
  * @description Paginate, search and order HTML tables
- * @version     1.10.20
+ * @version     1.10.21
  * @file        jquery.dataTables.js
  * @author      SpryMedia Ltd
  * @contact     www.datatables.net
- * @copyright   Copyright 2008-2019 SpryMedia Ltd.
+ * @copyright   Copyright 2008-2020 SpryMedia Ltd.
  *
  * This source file is free software, available under the following license:
  *   MIT license - http://datatables.net/license
@@ -4112,7 +4112,7 @@
 		var recordsTotal    = compat( 'iTotalRecords',        'recordsTotal' );
 		var recordsFiltered = compat( 'iTotalDisplayRecords', 'recordsFiltered' );
 	
-		if ( draw ) {
+		if ( draw !== undefined ) {
 			// Protect against out of sequence returns
 			if ( draw*1 < settings.iDraw ) {
 				return;
@@ -4227,6 +4227,14 @@
 					_fnThrottle( searchFn, searchDelay ) :
 					searchFn
 			)
+			.on( 'mouseup', function(e) {
+				// Edge fix! Edge 17 does not trigger anything other than mouse events when clicking
+				// on the clear icon (Edge bug 17584515). This is safe in other browsers as `searchFn`
+				// checks the value to see if it has changed. In other browsers it won't have.
+				setTimeout( function () {
+					searchFn.call(jqFilter[0]);
+				}, 10);
+			} )
 			.on( 'keypress.DT', function(e) {
 				/* Prevent form submission */
 				if ( e.keyCode == 13 ) {
@@ -5161,10 +5169,10 @@
 			} );
 		}
 	
-		$(scrollBody).css(
-			scrollY && scroll.bCollapse ? 'max-height' : 'height', 
-			scrollY
-		);
+		$(scrollBody).css('max-height', scrollY);
+		if (! scroll.bCollapse) {
+			$(scrollBody).css('height', scrollY);
+		}
 	
 		settings.nScrollHead = scrollHead;
 		settings.nScrollBody = scrollBody;
@@ -6578,7 +6586,7 @@
 	{
 		$(n)
 			.on( 'click.DT', oData, function (e) {
-					$(n).blur(); // Remove focus outline for mouse users
+					$(n).trigger('blur'); // Remove focus outline for mouse users
 					fn(e);
 				} )
 			.on( 'keypress.DT', oData, function (e){
@@ -7347,6 +7355,12 @@
 	 */
 	var __table_selector = function ( selector, a )
 	{
+		if ( $.isArray(selector) ) {
+			return $.map( selector, function (item) {
+				return __table_selector(item, a);
+			} );
+		}
+	
 		// Integer is used to pick out a table by index
 		if ( typeof selector === 'number' ) {
 			return [ a[ selector ] ];
@@ -7382,7 +7396,7 @@
 	 */
 	_api_register( 'tables()', function ( selector ) {
 		// A new instance is created if there was a selector specified
-		return selector ?
+		return selector !== undefined && selector !== null ?
 			new _Api( __table_selector( selector, this.context ) ) :
 			this;
 	} );
@@ -8156,7 +8170,7 @@
 		row._aData = data;
 	
 		// If the DOM has an id, and the data source is an array
-		if ( $.isArray( data ) && row.nTr.id ) {
+		if ( $.isArray( data ) && row.nTr && row.nTr.id ) {
 			_fnSetObjectDataFn( ctx[0].rowId )( data, row.nTr.id );
 		}
 	
@@ -9487,7 +9501,7 @@
 	 *  @type string
 	 *  @default Version number
 	 */
-	DataTable.version = "1.10.20";
+	DataTable.version = "1.10.21";
 
 	/**
 	 * Private data store, containing all of the settings objects that are
@@ -11005,7 +11019,9 @@
 						'DataTables_'+settings.sInstance+'_'+location.pathname
 					)
 				);
-			} catch (e) {}
+			} catch (e) {
+				return {};
+			}
 		},
 	
 	
@@ -14595,7 +14611,7 @@
 								case 'next':
 									btnDisplay = lang.sNext;
 	
-									if ( page === pages-1 ) {
+									if ( pages === 0 || page === pages-1 ) {
 										tabIndex = -1;
 										btnClass += ' ' + disabledClass;
 									}
@@ -14658,7 +14674,7 @@
 				attach( $(host).empty(), buttons );
 	
 				if ( activeEl !== undefined ) {
-					$(host).find( '[data-dt-idx='+activeEl+']' ).focus();
+					$(host).find( '[data-dt-idx='+activeEl+']' ).trigger('focus');
 				}
 			}
 		}
@@ -14944,7 +14960,11 @@
 	
 	var __htmlEscapeEntities = function ( d ) {
 		return typeof d === 'string' ?
-			d.replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;') :
+			d
+				.replace(/&/g, '&amp;')
+				.replace(/</g, '&lt;')
+				.replace(/>/g, '&gt;')
+				.replace(/"/g, '&quot;') :
 			d;
 	};
 	

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 116 - 116
plugins/datatables/jquery.dataTables.min.js


+ 2 - 0
plugins/filterizr/FilterItem/StyledFilterItem.d.ts

@@ -27,4 +27,6 @@ export default class StyledFilterItem extends StyledFilterizrElement {
     setZIndex(zIndex: number): void;
     removeZIndex(): void;
     removeWidth(): void;
+    setHidden(): void;
+    setVisible(): void;
 }

+ 1 - 0
plugins/filterizr/FilterItems/StyledFilterItems.d.ts

@@ -3,6 +3,7 @@ import FilterItem from '../FilterItem/FilterItem';
 export default class StyledFilterItems extends StyledFilterizrElements {
     private _filterItems;
     constructor(elements: FilterItem[]);
+    resetDisplay(): void;
     removeWidth(): void;
     updateWidth(): void;
     updateTransitionStyle(): void;

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 12 - 12
plugins/filterizr/filterizr.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 28 - 28
plugins/filterizr/jquery.filterizr.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 11 - 11
plugins/filterizr/vanilla.filterizr.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 1 - 1
plugins/flot/jquery.flot.js


+ 1 - 1
plugins/fullcalendar-bootstrap/main.css

@@ -33,4 +33,4 @@
 .fc-bootstrap .fc-time-grid .fc-slats table {
   /* some themes have background color. see through to slats */
   background: none;
-}
+}

+ 11 - 11
plugins/fullcalendar-bootstrap/main.esm.js

@@ -1,5 +1,5 @@
 /*!
-FullCalendar Bootstrap Plugin v4.4.0
+FullCalendar Bootstrap Plugin v4.4.2
 Docs & License: https://fullcalendar.io/
 (c) 2019 Adam Shaw
 */
@@ -7,18 +7,18 @@ Docs & License: https://fullcalendar.io/
 import { createPlugin, Theme } from '@fullcalendar/core';
 
 /*! *****************************************************************************
-Copyright (c) Microsoft Corporation. All rights reserved.
-Licensed under the Apache License, Version 2.0 (the "License"); you may not use
-this file except in compliance with the License. You may obtain a copy of the
-License at http://www.apache.org/licenses/LICENSE-2.0
+Copyright (c) Microsoft Corporation.
 
-THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
-WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
-MERCHANTABLITY OR NON-INFRINGEMENT.
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
 
-See the Apache Version 2.0 License for specific language governing permissions
-and limitations under the License.
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
 ***************************************************************************** */
 /* global Reflect, Promise */
 

+ 11 - 11
plugins/fullcalendar-bootstrap/main.js

@@ -1,5 +1,5 @@
 /*!
-FullCalendar Bootstrap Plugin v4.4.0
+FullCalendar Bootstrap Plugin v4.4.2
 Docs & License: https://fullcalendar.io/
 (c) 2019 Adam Shaw
 */
@@ -11,18 +11,18 @@ Docs & License: https://fullcalendar.io/
 }(this, function (exports, core) { 'use strict';
 
     /*! *****************************************************************************
-    Copyright (c) Microsoft Corporation. All rights reserved.
-    Licensed under the Apache License, Version 2.0 (the "License"); you may not use
-    this file except in compliance with the License. You may obtain a copy of the
-    License at http://www.apache.org/licenses/LICENSE-2.0
+    Copyright (c) Microsoft Corporation.
 
-    THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
-    WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
-    MERCHANTABLITY OR NON-INFRINGEMENT.
+    Permission to use, copy, modify, and/or distribute this software for any
+    purpose with or without fee is hereby granted.
 
-    See the Apache Version 2.0 License for specific language governing permissions
-    and limitations under the License.
+    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+    PERFORMANCE OF THIS SOFTWARE.
     ***************************************************************************** */
     /* global Reflect, Promise */
 

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/fullcalendar-bootstrap/main.min.js


+ 1 - 1
plugins/fullcalendar-daygrid/main.css

@@ -75,4 +75,4 @@
   /* work around the way we do column resizing and ensure a minimum width */
   display: inline-block;
   min-width: 1.25em;
-}
+}

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 12 - 11
plugins/fullcalendar-daygrid/main.esm.js


+ 12 - 11
plugins/fullcalendar-daygrid/main.js

@@ -1,5 +1,5 @@
 /*!
-FullCalendar Day Grid Plugin v4.4.0
+FullCalendar Day Grid Plugin v4.4.2
 Docs & License: https://fullcalendar.io/
 (c) 2019 Adam Shaw
 */
@@ -11,18 +11,18 @@ Docs & License: https://fullcalendar.io/
 }(this, function (exports, core) { 'use strict';
 
     /*! *****************************************************************************
-    Copyright (c) Microsoft Corporation. All rights reserved.
-    Licensed under the Apache License, Version 2.0 (the "License"); you may not use
-    this file except in compliance with the License. You may obtain a copy of the
-    License at http://www.apache.org/licenses/LICENSE-2.0
+    Copyright (c) Microsoft Corporation.
 
-    THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
-    WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
-    MERCHANTABLITY OR NON-INFRINGEMENT.
+    Permission to use, copy, modify, and/or distribute this software for any
+    purpose with or without fee is hereby granted.
 
-    See the Apache Version 2.0 License for specific language governing permissions
-    and limitations under the License.
+    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+    PERFORMANCE OF THIS SOFTWARE.
     ***************************************************************************** */
     /* global Reflect, Promise */
 
@@ -1543,6 +1543,7 @@ Docs & License: https://fullcalendar.io/
         SimpleDayGrid.prototype.render = function (props, context) {
             var dayGrid = this.dayGrid;
             var dateProfile = props.dateProfile, dayTable = props.dayTable;
+            dayGrid.receiveContext(context); // hack because context is used in sliceProps
             dayGrid.receiveProps(__assign({}, this.slicer.sliceProps(props, dateProfile, props.nextDayThreshold, context.calendar, dayGrid, dayTable), { dateProfile: dateProfile, cells: dayTable.cells, isRigid: props.isRigid }), context);
         };
         SimpleDayGrid.prototype.buildPositionCaches = function () {

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/fullcalendar-daygrid/main.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 11 - 11
plugins/fullcalendar-interaction/main.esm.js


+ 11 - 11
plugins/fullcalendar-interaction/main.js

@@ -1,5 +1,5 @@
 /*!
-FullCalendar Interaction Plugin v4.4.0
+FullCalendar Interaction Plugin v4.4.2
 Docs & License: https://fullcalendar.io/
 (c) 2019 Adam Shaw
 */
@@ -11,18 +11,18 @@ Docs & License: https://fullcalendar.io/
 }(this, function (exports, core) { 'use strict';
 
     /*! *****************************************************************************
-    Copyright (c) Microsoft Corporation. All rights reserved.
-    Licensed under the Apache License, Version 2.0 (the "License"); you may not use
-    this file except in compliance with the License. You may obtain a copy of the
-    License at http://www.apache.org/licenses/LICENSE-2.0
+    Copyright (c) Microsoft Corporation.
 
-    THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
-    WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
-    MERCHANTABLITY OR NON-INFRINGEMENT.
+    Permission to use, copy, modify, and/or distribute this software for any
+    purpose with or without fee is hereby granted.
 
-    See the Apache Version 2.0 License for specific language governing permissions
-    and limitations under the License.
+    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+    PERFORMANCE OF THIS SOFTWARE.
     ***************************************************************************** */
     /* global Reflect, Promise */
 

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/fullcalendar-interaction/main.min.js


+ 1 - 1
plugins/fullcalendar-timegrid/main.css

@@ -306,4 +306,4 @@ be a descendant of the grid when it is being dragged.
   border-width: 5px 6px 5px 0;
   border-top-color: transparent;
   border-bottom-color: transparent;
-}
+}

+ 14 - 12
plugins/fullcalendar-timegrid/main.esm.js

@@ -1,5 +1,5 @@
 /*!
-FullCalendar Time Grid Plugin v4.4.0
+FullCalendar Time Grid Plugin v4.4.2
 Docs & License: https://fullcalendar.io/
 (c) 2019 Adam Shaw
 */
@@ -8,18 +8,18 @@ import { createFormatter, removeElement, computeEventDraggable, computeEventStar
 import { DayBgRow, DayGrid, SimpleDayGrid } from '@fullcalendar/daygrid';
 
 /*! *****************************************************************************
-Copyright (c) Microsoft Corporation. All rights reserved.
-Licensed under the Apache License, Version 2.0 (the "License"); you may not use
-this file except in compliance with the License. You may obtain a copy of the
-License at http://www.apache.org/licenses/LICENSE-2.0
+Copyright (c) Microsoft Corporation.
 
-THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
-WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
-MERCHANTABLITY OR NON-INFRINGEMENT.
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
 
-See the Apache Version 2.0 License for specific language governing permissions
-and limitations under the License.
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
 ***************************************************************************** */
 /* global Reflect, Promise */
 
@@ -1243,7 +1243,9 @@ var SimpleTimeGrid = /** @class */ (function (_super) {
         var dateEnv = this.context.dateEnv;
         var dateProfile = props.dateProfile, dayTable = props.dayTable;
         var dayRanges = this.dayRanges = this.buildDayRanges(dayTable, dateProfile, dateEnv);
-        this.timeGrid.receiveProps(__assign({}, this.slicer.sliceProps(props, dateProfile, null, context.calendar, this.timeGrid, dayRanges), { dateProfile: dateProfile, cells: dayTable.cells[0] }), context);
+        var timeGrid = this.timeGrid;
+        timeGrid.receiveContext(context); // hack because context is used in sliceProps
+        timeGrid.receiveProps(__assign({}, this.slicer.sliceProps(props, dateProfile, null, context.calendar, timeGrid, dayRanges), { dateProfile: dateProfile, cells: dayTable.cells[0] }), context);
     };
     SimpleTimeGrid.prototype.renderNowIndicator = function (date) {
         this.timeGrid.renderNowIndicator(this.slicer.sliceNowDate(date, this.timeGrid, this.dayRanges), date);

+ 14 - 12
plugins/fullcalendar-timegrid/main.js

@@ -1,5 +1,5 @@
 /*!
-FullCalendar Time Grid Plugin v4.4.0
+FullCalendar Time Grid Plugin v4.4.2
 Docs & License: https://fullcalendar.io/
 (c) 2019 Adam Shaw
 */
@@ -11,18 +11,18 @@ Docs & License: https://fullcalendar.io/
 }(this, function (exports, core, daygrid) { 'use strict';
 
     /*! *****************************************************************************
-    Copyright (c) Microsoft Corporation. All rights reserved.
-    Licensed under the Apache License, Version 2.0 (the "License"); you may not use
-    this file except in compliance with the License. You may obtain a copy of the
-    License at http://www.apache.org/licenses/LICENSE-2.0
+    Copyright (c) Microsoft Corporation.
 
-    THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
-    WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
-    MERCHANTABLITY OR NON-INFRINGEMENT.
+    Permission to use, copy, modify, and/or distribute this software for any
+    purpose with or without fee is hereby granted.
 
-    See the Apache Version 2.0 License for specific language governing permissions
-    and limitations under the License.
+    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+    PERFORMANCE OF THIS SOFTWARE.
     ***************************************************************************** */
     /* global Reflect, Promise */
 
@@ -1246,7 +1246,9 @@ Docs & License: https://fullcalendar.io/
             var dateEnv = this.context.dateEnv;
             var dateProfile = props.dateProfile, dayTable = props.dayTable;
             var dayRanges = this.dayRanges = this.buildDayRanges(dayTable, dateProfile, dateEnv);
-            this.timeGrid.receiveProps(__assign({}, this.slicer.sliceProps(props, dateProfile, null, context.calendar, this.timeGrid, dayRanges), { dateProfile: dateProfile, cells: dayTable.cells[0] }), context);
+            var timeGrid = this.timeGrid;
+            timeGrid.receiveContext(context); // hack because context is used in sliceProps
+            timeGrid.receiveProps(__assign({}, this.slicer.sliceProps(props, dateProfile, null, context.calendar, timeGrid, dayRanges), { dateProfile: dateProfile, cells: dayTable.cells[0] }), context);
         };
         SimpleTimeGrid.prototype.renderNowIndicator = function (date) {
             this.timeGrid.renderNowIndicator(this.slicer.sliceNowDate(date, this.timeGrid, this.dayRanges), date);

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/fullcalendar-timegrid/main.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 1 - 1
plugins/fullcalendar/locales-all.min.js


+ 1 - 1
plugins/fullcalendar/main.css

@@ -1049,4 +1049,4 @@ Lots taken from Flatly (MIT): https://bootswatch.com/4/flatly/bootstrap.css
     display: none;
     /* don't display any button-related controls */
   }
-}
+}

+ 2 - 0
plugins/fullcalendar/main.d.ts

@@ -984,10 +984,12 @@ declare module '@fullcalendar/core/component/Component' {
         equalityFuncs: EqualityFuncHash;
         uid: string;
         props: PropsType | null;
+        everRendered: boolean;
         context: ComponentContext;
         constructor();
         static addEqualityFuncs(newFuncs: EqualityFuncHash): void;
         receiveProps(props: PropsType, context: ComponentContext): void;
+        receiveContext(context: ComponentContext): void;
         protected render(props: PropsType, context: ComponentContext): void;
         firstContext(context: ComponentContext): void;
         beforeUpdate(): void;

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 25 - 20
plugins/fullcalendar/main.esm.js


+ 25 - 20
plugins/fullcalendar/main.js

@@ -1,5 +1,5 @@
 /*!
-FullCalendar Core Package v4.4.0
+FullCalendar Core Package v4.4.2
 Docs & License: https://fullcalendar.io/
 (c) 2019 Adam Shaw
 */
@@ -1131,18 +1131,18 @@ Docs & License: https://fullcalendar.io/
     }
 
     /*! *****************************************************************************
-    Copyright (c) Microsoft Corporation. All rights reserved.
-    Licensed under the Apache License, Version 2.0 (the "License"); you may not use
-    this file except in compliance with the License. You may obtain a copy of the
-    License at http://www.apache.org/licenses/LICENSE-2.0
+    Copyright (c) Microsoft Corporation.
 
-    THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
-    WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
-    MERCHANTABLITY OR NON-INFRINGEMENT.
+    Permission to use, copy, modify, and/or distribute this software for any
+    purpose with or without fee is hereby granted.
 
-    See the Apache Version 2.0 License for specific language governing permissions
-    and limitations under the License.
+    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+    PERFORMANCE OF THIS SOFTWARE.
     ***************************************************************************** */
     /* global Reflect, Promise */
 
@@ -2463,7 +2463,7 @@ Docs & License: https://fullcalendar.io/
                 ]);
             }
         }
-        if (!calendar.state.loadingLevel) { // avoid initial empty state while pending
+        if (!calendar.state.eventSourceLoadingLevel) { // avoid initial empty state while pending
             calendar.afterSizingTriggers._eventsPositioned = [null]; // fire once
         }
     }
@@ -3937,28 +3937,33 @@ Docs & License: https://fullcalendar.io/
     }());
     var Component = /** @class */ (function () {
         function Component() {
+            this.everRendered = false;
             this.uid = String(guid++);
         }
         Component.addEqualityFuncs = function (newFuncs) {
             this.prototype.equalityFuncs = __assign({}, this.prototype.equalityFuncs, newFuncs);
         };
         Component.prototype.receiveProps = function (props, context) {
-            var oldContext = this.context;
-            this.context = context;
-            if (!oldContext) {
-                this.firstContext(context);
-            }
+            this.receiveContext(context);
             var _a = recycleProps(this.props || {}, props, this.equalityFuncs), anyChanges = _a.anyChanges, comboProps = _a.comboProps;
             this.props = comboProps;
             if (anyChanges) {
-                if (oldContext) {
+                if (this.everRendered) {
                     this.beforeUpdate();
                 }
                 this.render(comboProps, context);
-                if (oldContext) {
+                if (this.everRendered) {
                     this.afterUpdate();
                 }
             }
+            this.everRendered = true;
+        };
+        Component.prototype.receiveContext = function (context) {
+            var oldContext = this.context;
+            this.context = context;
+            if (!oldContext) {
+                this.firstContext(context);
+            }
         };
         Component.prototype.render = function (props, context) {
         };
@@ -8578,7 +8583,7 @@ Docs & License: https://fullcalendar.io/
 
     // exports
     // --------------------------------------------------------------------------------------------------
-    var version = '4.4.0';
+    var version = '4.4.2';
 
     exports.Calendar = Calendar;
     exports.Component = Component;

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/fullcalendar/main.min.js


+ 2 - 2
plugins/jquery-validation/additional-methods.js

@@ -1,9 +1,9 @@
 /*!
- * jQuery Validation Plugin v1.19.1
+ * jQuery Validation Plugin v1.19.2
  *
  * https://jqueryvalidation.org/
  *
- * Copyright (c) 2019 Jörn Zaefferer
+ * Copyright (c) 2020 Jörn Zaefferer
  * Released under the MIT license
  */
 (function( factory ) {

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/additional-methods.min.js


+ 11 - 4
plugins/jquery-validation/jquery.validate.js

@@ -1,9 +1,9 @@
 /*!
- * jQuery Validation Plugin v1.19.1
+ * jQuery Validation Plugin v1.19.2
  *
  * https://jqueryvalidation.org/
  *
- * Copyright (c) 2019 Jörn Zaefferer
+ * Copyright (c) 2020 Jörn Zaefferer
  * Released under the MIT license
  */
 (function( factory ) {
@@ -216,18 +216,25 @@ $.extend( $.fn, {
 	}
 } );
 
+// JQuery trim is deprecated, provide a trim method based on String.prototype.trim
+var trim = function( str ) {
+
+	// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/trim#Polyfill
+	return str.replace( /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "" );
+};
+
 // Custom selectors
 $.extend( $.expr.pseudos || $.expr[ ":" ], {		// '|| $.expr[ ":" ]' here enables backwards compatibility to jQuery 1.7. Can be removed when dropping jQ 1.7.x support
 
 	// https://jqueryvalidation.org/blank-selector/
 	blank: function( a ) {
-		return !$.trim( "" + $( a ).val() );
+		return !trim( "" + $( a ).val() );
 	},
 
 	// https://jqueryvalidation.org/filled-selector/
 	filled: function( a ) {
 		var val = $( a ).val();
-		return val !== null && !!$.trim( "" + val );
+		return val !== null && !!trim( "" + val );
 	},
 
 	// https://jqueryvalidation.org/unchecked-selector/

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 3 - 3
plugins/jquery-validation/jquery.validate.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_ar.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_az.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_bg.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_bn_BD.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_ca.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_cs.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_da.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_de.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_el.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_es.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_es_AR.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_es_PE.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_et.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_eu.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_fa.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_fi.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_fr.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_ge.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_gl.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_he.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_hr.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_hu.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_hy_AM.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_id.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_is.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_it.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_ja.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_ka.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_kk.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_ko.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_lt.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_lv.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_mk.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_my.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 2
plugins/jquery-validation/localization/messages_nl.min.js


+ 0 - 0
plugins/jquery-validation/localization/messages_no.min.js


Vissa filer visades inte eftersom för många filer har ändrats