Browse Source

update plugin files

REJack 4 years ago
parent
commit
1ac5eeaaa1

+ 7 - 7
plugins/codemirror/codemirror.js

@@ -4798,19 +4798,19 @@
     });
     });
   }
   }
 
 
-  function History(startGen) {
+  function History(prev) {
     // Arrays of change events and selections. Doing something adds an
     // Arrays of change events and selections. Doing something adds an
     // event to done and clears undo. Undoing moves events from done
     // event to done and clears undo. Undoing moves events from done
     // to undone, redoing moves them in the other direction.
     // to undone, redoing moves them in the other direction.
     this.done = []; this.undone = [];
     this.done = []; this.undone = [];
-    this.undoDepth = Infinity;
+    this.undoDepth = prev ? prev.undoDepth : Infinity;
     // Used to track when changes can be merged into a single undo
     // Used to track when changes can be merged into a single undo
     // event
     // event
     this.lastModTime = this.lastSelTime = 0;
     this.lastModTime = this.lastSelTime = 0;
     this.lastOp = this.lastSelOp = null;
     this.lastOp = this.lastSelOp = null;
     this.lastOrigin = this.lastSelOrigin = null;
     this.lastOrigin = this.lastSelOrigin = null;
     // Used by the isClean() method
     // Used by the isClean() method
-    this.generation = this.maxGeneration = startGen || 1;
+    this.generation = this.maxGeneration = prev ? prev.maxGeneration : 1;
   }
   }
 
 
   // Create a history change event from an updateDoc-style change
   // Create a history change event from an updateDoc-style change
@@ -6244,7 +6244,7 @@
     clearHistory: function() {
     clearHistory: function() {
       var this$1 = this;
       var this$1 = this;
 
 
-      this.history = new History(this.history.maxGeneration);
+      this.history = new History(this.history);
       linkedDocs(this, function (doc) { return doc.history = this$1.history; }, true);
       linkedDocs(this, function (doc) { return doc.history = this$1.history; }, true);
     },
     },
 
 
@@ -6265,7 +6265,7 @@
               undone: copyHistoryArray(this.history.undone)}
               undone: copyHistoryArray(this.history.undone)}
     },
     },
     setHistory: function(histData) {
     setHistory: function(histData) {
-      var hist = this.history = new History(this.history.maxGeneration);
+      var hist = this.history = new History(this.history);
       hist.done = copyHistoryArray(histData.done.slice(0), null, true);
       hist.done = copyHistoryArray(histData.done.slice(0), null, true);
       hist.undone = copyHistoryArray(histData.undone.slice(0), null, true);
       hist.undone = copyHistoryArray(histData.undone.slice(0), null, true);
     },
     },
@@ -7708,7 +7708,7 @@
       for (var i = newBreaks.length - 1; i >= 0; i--)
       for (var i = newBreaks.length - 1; i >= 0; i--)
         { replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length)); }
         { replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length)); }
     });
     });
-    option("specialChars", /[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200c\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g, function (cm, val, old) {
+    option("specialChars", /[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g, function (cm, val, old) {
       cm.state.specialChars = new RegExp(val.source + (val.test("\t") ? "" : "|\t"), "g");
       cm.state.specialChars = new RegExp(val.source + (val.test("\t") ? "" : "|\t"), "g");
       if (old != Init) { cm.refresh(); }
       if (old != Init) { cm.refresh(); }
     });
     });
@@ -9793,7 +9793,7 @@
 
 
   addLegacyProps(CodeMirror);
   addLegacyProps(CodeMirror);
 
 
-  CodeMirror.version = "5.59.2";
+  CodeMirror.version = "5.59.3";
 
 
   return CodeMirror;
   return CodeMirror;
 
 

+ 11 - 1
plugins/codemirror/keymap/emacs.js

@@ -233,9 +233,19 @@
     cm.setCursor(cm.getCursor());
     cm.setCursor(cm.getCursor());
   }
   }
 
 
+  function makePrompt(msg) {
+    var fragment = document.createDocumentFragment();
+    var input = document.createElement("input");
+    input.setAttribute("type", "text");
+    input.style.width = "10em";
+    fragment.appendChild(document.createTextNode(msg + ": "));
+    fragment.appendChild(input);
+    return fragment;
+  }
+
   function getInput(cm, msg, f) {
   function getInput(cm, msg, f) {
     if (cm.openDialog)
     if (cm.openDialog)
-      cm.openDialog(msg + ": <input type=\"text\" style=\"width: 10em\"/>", f, {bottom: true});
+      cm.openDialog(makePrompt(msg), f, {bottom: true});
     else
     else
       f(prompt(msg, ""));
       f(prompt(msg, ""));
   }
   }

+ 89 - 50
plugins/codemirror/keymap/vim.js

@@ -244,6 +244,7 @@
     { name: 'yank', shortName: 'y' },
     { name: 'yank', shortName: 'y' },
     { name: 'delmarks', shortName: 'delm' },
     { name: 'delmarks', shortName: 'delm' },
     { name: 'registers', shortName: 'reg', excludeFromCommandHistory: true },
     { name: 'registers', shortName: 'reg', excludeFromCommandHistory: true },
+    { name: 'vglobal', shortName: 'v' },
     { name: 'global', shortName: 'g' }
     { name: 'global', shortName: 'g' }
   ];
   ];
 
 
@@ -353,7 +354,7 @@
       return cmd;
       return cmd;
     }
     }
 
 
-    var modifiers = {'Shift': 'S', 'Ctrl': 'C', 'Alt': 'A', 'Cmd': 'D', 'Mod': 'A'};
+    var modifiers = {Shift:'S',Ctrl:'C',Alt:'A',Cmd:'D',Mod:'A',CapsLock:''};
     var specialKeys = {Enter:'CR',Backspace:'BS',Delete:'Del',Insert:'Ins'};
     var specialKeys = {Enter:'CR',Backspace:'BS',Delete:'Del',Insert:'Ins'};
     function cmKeyToVimKey(key) {
     function cmKeyToVimKey(key) {
       if (key.charAt(0) == '\'') {
       if (key.charAt(0) == '\'') {
@@ -1450,7 +1451,7 @@
               showPrompt(cm, {
               showPrompt(cm, {
                   onClose: onPromptClose,
                   onClose: onPromptClose,
                   prefix: promptPrefix,
                   prefix: promptPrefix,
-                  desc: searchPromptDesc,
+                  desc: '(JavaScript regexp)',
                   onKeyUp: onPromptKeyUp,
                   onKeyUp: onPromptKeyUp,
                   onKeyDown: onPromptKeyDown
                   onKeyDown: onPromptKeyDown
               });
               });
@@ -4110,16 +4111,6 @@
       var vim = cm.state.vim;
       var vim = cm.state.vim;
       return vim.searchState_ || (vim.searchState_ = new SearchState());
       return vim.searchState_ || (vim.searchState_ = new SearchState());
     }
     }
-    function dialog(cm, template, shortText, onClose, options) {
-      if (cm.openDialog) {
-        cm.openDialog(template, onClose, { bottom: true, value: options.value,
-            onKeyDown: options.onKeyDown, onKeyUp: options.onKeyUp,
-            selectValueOnOpen: false});
-      }
-      else {
-        onClose(prompt(shortText, ''));
-      }
-    }
     function splitBySlash(argString) {
     function splitBySlash(argString) {
       return splitBySeparator(argString, '/');
       return splitBySeparator(argString, '/');
     }
     }
@@ -4306,28 +4297,64 @@
           (ignoreCase || forceIgnoreCase) ? 'i' : undefined);
           (ignoreCase || forceIgnoreCase) ? 'i' : undefined);
       return regexp;
       return regexp;
     }
     }
-    function showConfirm(cm, text) {
+
+    /**
+     * dom - Document Object Manipulator
+     * Usage:
+     *   dom('<tag>'|<node>[, ...{<attributes>|<$styles>}|<child-node>|'<text>'])
+     * Examples:
+     *   dom('div', {id:'xyz'}, dom('p', 'CM rocks!', {$color:'red'}))
+     *   dom(document.head, dom('script', 'alert("hello!")'))
+     * Not supported:
+     *   dom('p', ['arrays are objects'], Error('objects specify attributes'))
+     */
+    function dom(n) {
+      if (typeof n === 'string') n = document.createElement(n);
+      for (var a, i = 1; i < arguments.length; i++) {
+        if (!(a = arguments[i])) continue;
+        if (typeof a !== 'object') a = document.createTextNode(a);
+        if (a.nodeType) n.appendChild(a);
+        else for (var key in a) {
+          if (!Object.prototype.hasOwnProperty.call(a, key)) continue;
+          if (key[0] === '$') n.style[key.slice(1)] = a[key];
+          else n.setAttribute(key, a[key]);
+        }
+      }
+      return n;
+    }
+
+    function showConfirm(cm, template) {
+      var pre = dom('pre', {$color: 'red'}, template);
       if (cm.openNotification) {
       if (cm.openNotification) {
-        cm.openNotification('<span style="color: red">' + text + '</span>',
-                            {bottom: true, duration: 5000});
+        cm.openNotification(pre, {bottom: true, duration: 5000});
       } else {
       } else {
-        alert(text);
+        alert(pre.innerText);
       }
       }
     }
     }
+
     function makePrompt(prefix, desc) {
     function makePrompt(prefix, desc) {
-      var raw = '<span style="font-family: monospace; white-space: pre">' +
-          (prefix || "") + '<input type="text" autocorrect="off" ' +
-          'autocapitalize="off" spellcheck="false"></span>';
-      if (desc)
-        raw += ' <span style="color: #888">' + desc + '</span>';
-      return raw;
+      return dom(document.createDocumentFragment(),
+               dom('span', {$fontFamily: 'monospace', $whiteSpace: 'pre'},
+                 prefix,
+                 dom('input', {type: 'text', autocorrect: 'off',
+                               autocapitalize: 'off', spellcheck: 'false'})),
+               desc && dom('span', {$color: '#888'}, desc));
     }
     }
-    var searchPromptDesc = '(JavaScript regexp)';
+
     function showPrompt(cm, options) {
     function showPrompt(cm, options) {
       var shortText = (options.prefix || '') + ' ' + (options.desc || '');
       var shortText = (options.prefix || '') + ' ' + (options.desc || '');
-      var prompt = makePrompt(options.prefix, options.desc);
-      dialog(cm, prompt, shortText, options.onClose, options);
+      var template = makePrompt(options.prefix, options.desc);
+      if (cm.openDialog) {
+        cm.openDialog(template, options.onClose, {
+          onKeyDown: options.onKeyDown, onKeyUp: options.onKeyUp,
+          bottom: true, selectValueOnOpen: false, value: options.value
+        });
+      }
+      else {
+        options.onClose(prompt(shortText, ''));
+      }
     }
     }
+
     function regexEqual(r1, r2) {
     function regexEqual(r1, r2) {
       if (r1 instanceof RegExp && r2 instanceof RegExp) {
       if (r1 instanceof RegExp && r2 instanceof RegExp) {
           var props = ['global', 'multiline', 'ignoreCase', 'source'];
           var props = ['global', 'multiline', 'ignoreCase', 'source'];
@@ -4501,7 +4528,7 @@
       if (start instanceof Array) {
       if (start instanceof Array) {
         return inArray(pos, start);
         return inArray(pos, start);
       } else {
       } else {
-        if (end) {
+        if (typeof end == 'number') {
           return (pos >= start && pos <= end);
           return (pos >= start && pos <= end);
         } else {
         } else {
           return pos == start;
           return pos == start;
@@ -4564,7 +4591,7 @@
         try {
         try {
           this.parseInput_(cm, inputStream, params);
           this.parseInput_(cm, inputStream, params);
         } catch(e) {
         } catch(e) {
-          showConfirm(cm, e);
+          showConfirm(cm, e.toString());
           throw e;
           throw e;
         }
         }
         var command;
         var command;
@@ -4608,7 +4635,7 @@
             params.callback();
             params.callback();
           }
           }
         } catch(e) {
         } catch(e) {
-          showConfirm(cm, e);
+          showConfirm(cm, e.toString());
           throw e;
           throw e;
         }
         }
       },
       },
@@ -4880,12 +4907,12 @@
       registers: function(cm, params) {
       registers: function(cm, params) {
         var regArgs = params.args;
         var regArgs = params.args;
         var registers = vimGlobalState.registerController.registers;
         var registers = vimGlobalState.registerController.registers;
-        var regInfo = '----------Registers----------<br><br>';
+        var regInfo = '----------Registers----------\n\n';
         if (!regArgs) {
         if (!regArgs) {
           for (var registerName in registers) {
           for (var registerName in registers) {
             var text = registers[registerName].toString();
             var text = registers[registerName].toString();
             if (text.length) {
             if (text.length) {
-              regInfo += '"' + registerName + '    ' + text + '<br>';
+              regInfo += '"' + registerName + '    ' + text + '\n'
             }
             }
           }
           }
         } else {
         } else {
@@ -4897,7 +4924,7 @@
               continue;
               continue;
             }
             }
             var register = registers[registerName] || new Register();
             var register = registers[registerName] || new Register();
-            regInfo += '"' + registerName + '    ' + register.toString() + '<br>';
+            regInfo += '"' + registerName + '    ' + register.toString() + '\n'
           }
           }
         }
         }
         showConfirm(cm, regInfo);
         showConfirm(cm, regInfo);
@@ -4992,6 +5019,10 @@
         }
         }
         cm.replaceRange(text.join('\n'), curStart, curEnd);
         cm.replaceRange(text.join('\n'), curStart, curEnd);
       },
       },
+      vglobal: function(cm, params) {
+        // global inspects params.commandName
+        this.global(cm, params);
+      },
       global: function(cm, params) {
       global: function(cm, params) {
         // a global command is of the form
         // a global command is of the form
         // :[range]g/pattern/[cmd]
         // :[range]g/pattern/[cmd]
@@ -5001,6 +5032,7 @@
           showConfirm(cm, 'Regular Expression missing from global');
           showConfirm(cm, 'Regular Expression missing from global');
           return;
           return;
         }
         }
+        var inverted = params.commandName[0] === 'v';
         // range is specified here
         // range is specified here
         var lineStart = (params.line !== undefined) ? params.line : cm.firstLine();
         var lineStart = (params.line !== undefined) ? params.line : cm.firstLine();
         var lineEnd = params.lineEnd || params.line || cm.lastLine();
         var lineEnd = params.lineEnd || params.line || cm.lastLine();
@@ -5025,28 +5057,33 @@
         // now that we have the regexPart, search for regex matches in the
         // now that we have the regexPart, search for regex matches in the
         // specified range of lines
         // specified range of lines
         var query = getSearchState(cm).getQuery();
         var query = getSearchState(cm).getQuery();
-        var matchedLines = [], content = '';
+        var matchedLines = [];
         for (var i = lineStart; i <= lineEnd; i++) {
         for (var i = lineStart; i <= lineEnd; i++) {
-          var matched = query.test(cm.getLine(i));
-          if (matched) {
-            matchedLines.push(i+1);
-            content+= cm.getLine(i) + '<br>';
+          var line = cm.getLineHandle(i);
+          var matched = query.test(line.text);
+          if (matched !== inverted) {
+            matchedLines.push(cmd ? line : line.text);
           }
           }
         }
         }
         // if there is no [cmd], just display the list of matched lines
         // if there is no [cmd], just display the list of matched lines
         if (!cmd) {
         if (!cmd) {
-          showConfirm(cm, content);
+          showConfirm(cm, matchedLines.join('\n'));
           return;
           return;
         }
         }
         var index = 0;
         var index = 0;
         var nextCommand = function() {
         var nextCommand = function() {
           if (index < matchedLines.length) {
           if (index < matchedLines.length) {
-            var command = matchedLines[index] + cmd;
+            var line = matchedLines[index++];
+            var lineNum = cm.getLineNumber(line);
+            if (lineNum == null) {
+              nextCommand();
+              return;
+            }
+            var command = (lineNum + 1) + cmd;
             exCommandDispatcher.processCommand(cm, command, {
             exCommandDispatcher.processCommand(cm, command, {
               callback: nextCommand
               callback: nextCommand
             });
             });
           }
           }
-          index++;
         };
         };
         nextCommand();
         nextCommand();
       },
       },
@@ -5066,9 +5103,11 @@
               regexPart = new RegExp(regexPart).source; //normalize not escaped characters
               regexPart = new RegExp(regexPart).source; //normalize not escaped characters
           }
           }
           replacePart = tokens[1];
           replacePart = tokens[1];
-          if (regexPart && regexPart[regexPart.length - 1] === '$') {
-            regexPart = regexPart.slice(0, regexPart.length - 1) + '\\n';
-            replacePart = replacePart ? replacePart + '\n' : '\n';
+          // If the pattern ends with $ (line boundary assertion), change $ to \n.
+          // Caveat: this workaround cannot match on the last line of the document.
+          if (/(^|[^\\])(\\\\)*\$$/.test(regexPart)) {
+            regexPart = regexPart.slice(0, -1) + '\\n';
+            replacePart = (replacePart || '') + '\n';
           }
           }
           if (replacePart !== undefined) {
           if (replacePart !== undefined) {
             if (getOption('pcre')) {
             if (getOption('pcre')) {
@@ -5097,11 +5136,9 @@
           if (flagsPart) {
           if (flagsPart) {
             if (flagsPart.indexOf('c') != -1) {
             if (flagsPart.indexOf('c') != -1) {
               confirm = true;
               confirm = true;
-              flagsPart.replace('c', '');
             }
             }
             if (flagsPart.indexOf('g') != -1) {
             if (flagsPart.indexOf('g') != -1) {
               global = true;
               global = true;
-              flagsPart.replace('g', '');
             }
             }
             if (getOption('pcre')) {
             if (getOption('pcre')) {
                regexPart = regexPart + '/' + flagsPart;
                regexPart = regexPart + '/' + flagsPart;
@@ -5242,7 +5279,7 @@
       // Set up all the functions.
       // Set up all the functions.
       cm.state.vim.exMode = true;
       cm.state.vim.exMode = true;
       var done = false;
       var done = false;
-      var lastPos = searchCursor.from();
+      var lastPos, modifiedLineNumber, joined;
       function replaceAll() {
       function replaceAll() {
         cm.operation(function() {
         cm.operation(function() {
           while (!done) {
           while (!done) {
@@ -5255,14 +5292,18 @@
       function replace() {
       function replace() {
         var text = cm.getRange(searchCursor.from(), searchCursor.to());
         var text = cm.getRange(searchCursor.from(), searchCursor.to());
         var newText = text.replace(query, replaceWith);
         var newText = text.replace(query, replaceWith);
+        var unmodifiedLineNumber = searchCursor.to().line;
         searchCursor.replace(newText);
         searchCursor.replace(newText);
+        modifiedLineNumber = searchCursor.to().line;
+        lineEnd += modifiedLineNumber - unmodifiedLineNumber;
+        joined = modifiedLineNumber < unmodifiedLineNumber;
       }
       }
       function next() {
       function next() {
         // The below only loops to skip over multiple occurrences on the same
         // The below only loops to skip over multiple occurrences on the same
         // line when 'global' is not true.
         // line when 'global' is not true.
         while(searchCursor.findNext() &&
         while(searchCursor.findNext() &&
               isInRange(searchCursor.from(), lineStart, lineEnd)) {
               isInRange(searchCursor.from(), lineStart, lineEnd)) {
-          if (!global && lastPos && searchCursor.from().line == lastPos.line) {
+          if (!global && searchCursor.from().line == modifiedLineNumber && !joined) {
             continue;
             continue;
           }
           }
           cm.scrollIntoView(searchCursor.from(), 30);
           cm.scrollIntoView(searchCursor.from(), 30);
@@ -5327,7 +5368,7 @@
         return;
         return;
       }
       }
       showPrompt(cm, {
       showPrompt(cm, {
-        prefix: 'replace with <strong>' + replaceWith + '</strong> (y/n/a/q/l)',
+        prefix: dom('span', 'replace with ', dom('strong', replaceWith), ' (y/n/a/q/l)'),
         onKeyDown: onPromptKeyDown
         onKeyDown: onPromptKeyDown
       });
       });
     }
     }
@@ -5535,9 +5576,7 @@
       clearFakeCursor(vim);
       clearFakeCursor(vim);
       // In visual mode, the cursor may be positioned over EOL.
       // In visual mode, the cursor may be positioned over EOL.
       if (from.ch == cm.getLine(from.line).length) {
       if (from.ch == cm.getLine(from.line).length) {
-        var widget = document.createElement("span");
-        widget.textContent = "\u00a0";
-        widget.className = className;
+        var widget = dom('span', { 'class': className }, '\u00a0');
         vim.fakeCursorBookmark = cm.setBookmark(from, {widget: widget});
         vim.fakeCursorBookmark = cm.setBookmark(from, {widget: widget});
       } else {
       } else {
         vim.fakeCursor = cm.markText(from, to, {className: className});
         vim.fakeCursor = cm.markText(from, to, {className: className});

+ 1 - 1
plugins/codemirror/mode/markdown/markdown.js

@@ -735,7 +735,7 @@ CodeMirror.defineMode("markdown", function(cmCfg, modeCfg) {
     if (stream.peek() === undefined) { // End of line, set flag to check next line
     if (stream.peek() === undefined) { // End of line, set flag to check next line
       state.linkTitle = true;
       state.linkTitle = true;
     } else { // More content on line, check if link title
     } else { // More content on line, check if link title
-      stream.match(/^(?:\s+(?:"(?:[^"\\]|\\\\|\\.)+"|'(?:[^'\\]|\\\\|\\.)+'|\((?:[^)\\]|\\\\|\\.)+\)))?/, true);
+      stream.match(/^(?:\s+(?:"(?:[^"\\]|\\\\|\\.)+"|'(?:[^'\\]|\\\\|\\.)+'|\((?:[^)\\]|\\.)+\)))?/, true);
     }
     }
     state.f = state.inline = inlineNormal;
     state.f = state.inline = inlineNormal;
     return tokenTypes.linkHref + " url";
     return tokenTypes.linkHref + " url";

+ 13 - 10
plugins/datatables-keytable/js/dataTables.keyTable.js

@@ -1,11 +1,11 @@
-/*! KeyTable 2.6.0
+/*! KeyTable 2.6.1
  * ©2009-2021 SpryMedia Ltd - datatables.net/license
  * ©2009-2021 SpryMedia Ltd - datatables.net/license
  */
  */
 
 
 /**
 /**
  * @summary     KeyTable
  * @summary     KeyTable
  * @description Spreadsheet like keyboard navigation for DataTables
  * @description Spreadsheet like keyboard navigation for DataTables
- * @version     2.6.0
+ * @version     2.6.1
  * @file        dataTables.keyTable.js
  * @file        dataTables.keyTable.js
  * @author      SpryMedia Ltd (www.sprymedia.co.uk)
  * @author      SpryMedia Ltd (www.sprymedia.co.uk)
  * @contact     www.sprymedia.co.uk/contact
  * @contact     www.sprymedia.co.uk/contact
@@ -524,7 +524,7 @@ $.extend( KeyTable.prototype, {
 		}
 		}
 
 
 		// DataTables draw event
 		// DataTables draw event
-		if (orig.type === 'draw') {
+		if (orig && orig.type === 'draw') {
 			return;
 			return;
 		}
 		}
 
 
@@ -551,12 +551,14 @@ $.extend( KeyTable.prototype, {
 			return;
 			return;
 		}
 		}
 
 
-		orig.stopPropagation();
+		if ( orig ) {
+			orig.stopPropagation();
 
 
-		// Return key should do nothing - for textareas it would empty the
-		// contents
-		if ( key === 13 ) {
-			orig.preventDefault();
+			// Return key should do nothing - for textareas it would empty the
+			// contents
+			if ( key === 13 ) {
+				orig.preventDefault();
+			}
 		}
 		}
 
 
 		var editInline = function () {
 		var editInline = function () {
@@ -604,6 +606,7 @@ $.extend( KeyTable.prototype, {
 						$( dt.table().container() ).removeClass('dtk-focus-alt');
 						$( dt.table().container() ).removeClass('dtk-focus-alt');
 
 
 						if (that.s.returnSubmit) {
 						if (that.s.returnSubmit) {
+							that.s.returnSubmit = false;
 							that._emitEvent( 'key-return-submit', [dt, editCell] );
 							that._emitEvent( 'key-return-submit', [dt, editCell] );
 						}
 						}
 					} );
 					} );
@@ -1207,7 +1210,7 @@ KeyTable.defaults = {
 
 
 
 
 
 
-KeyTable.version = "2.6.0";
+KeyTable.version = "2.6.1";
 
 
 
 
 $.fn.dataTable.KeyTable = KeyTable;
 $.fn.dataTable.KeyTable = KeyTable;
@@ -1247,7 +1250,7 @@ DataTable.Api.register( 'keys.enable()', function ( opts ) {
 } );
 } );
 
 
 DataTable.Api.register( 'keys.enabled()', function ( opts ) {
 DataTable.Api.register( 'keys.enabled()', function ( opts ) {
-	let ctx = this.context;
+	var ctx = this.context;
 
 
 	if (ctx.length) {
 	if (ctx.length) {
 		return ctx[0].keytable
 		return ctx[0].keytable

File diff suppressed because it is too large
+ 26 - 0
plugins/datatables-keytable/js/dataTables.keyTable.min.js


+ 2 - 2
plugins/sweetalert2-theme-bootstrap-4/bootstrap-4.css

@@ -1,5 +1,5 @@
 /*
 /*
-* @sweetalert2/themes v4.0.2
+* @sweetalert2/themes v4.0.3
 * Released under the MIT License.
 * Released under the MIT License.
 */
 */
 
 
@@ -529,7 +529,7 @@
   width: 5em;
   width: 5em;
   height: 5em;
   height: 5em;
   margin: 1.25em auto 1.875em;
   margin: 1.25em auto 1.875em;
-  border: .25em solid transparent;
+  border: 0.25em solid transparent;
   border-radius: 50%;
   border-radius: 50%;
   font-family: inherit;
   font-family: inherit;
   line-height: 5em;
   line-height: 5em;

File diff suppressed because it is too large
+ 48 - 47
plugins/sweetalert2/sweetalert2.all.js


File diff suppressed because it is too large
+ 2 - 2
plugins/sweetalert2/sweetalert2.all.min.js


+ 1 - 6
plugins/sweetalert2/sweetalert2.css

@@ -594,6 +594,7 @@
   margin: 1.25em auto 1.875em;
   margin: 1.25em auto 1.875em;
   border: 0.25em solid transparent;
   border: 0.25em solid transparent;
   border-radius: 50%;
   border-radius: 50%;
+  border-color: #000;
   font-family: inherit;
   font-family: inherit;
   line-height: 5em;
   line-height: 5em;
   cursor: default;
   cursor: default;
@@ -614,7 +615,6 @@
 .swal2-icon.swal2-error .swal2-x-mark {
 .swal2-icon.swal2-error .swal2-x-mark {
   position: relative;
   position: relative;
   flex-grow: 1;
   flex-grow: 1;
-  zoom: 1;
 }
 }
 .swal2-icon.swal2-error [class^=swal2-x-mark-line] {
 .swal2-icon.swal2-error [class^=swal2-x-mark-line] {
   display: block;
   display: block;
@@ -667,7 +667,6 @@
 .swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left] {
 .swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left] {
   top: -0.4375em;
   top: -0.4375em;
   left: -2.0635em;
   left: -2.0635em;
-  zoom: 1;
   transform: rotate(-45deg);
   transform: rotate(-45deg);
   transform-origin: 3.75em 3.75em;
   transform-origin: 3.75em 3.75em;
   border-radius: 7.5em 0 0 7.5em;
   border-radius: 7.5em 0 0 7.5em;
@@ -675,7 +674,6 @@
 .swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right] {
 .swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right] {
   top: -0.6875em;
   top: -0.6875em;
   left: 1.875em;
   left: 1.875em;
-  zoom: 1;
   transform: rotate(-45deg);
   transform: rotate(-45deg);
   transform-origin: 0 3.75em;
   transform-origin: 0 3.75em;
   border-radius: 0 7.5em 7.5em 0;
   border-radius: 0 7.5em 7.5em 0;
@@ -688,7 +686,6 @@
   box-sizing: content-box;
   box-sizing: content-box;
   width: 100%;
   width: 100%;
   height: 100%;
   height: 100%;
-  zoom: 1;
   border: 0.25em solid rgba(165, 220, 134, 0.3);
   border: 0.25em solid rgba(165, 220, 134, 0.3);
   border-radius: 50%;
   border-radius: 50%;
 }
 }
@@ -699,7 +696,6 @@
   left: 1.625em;
   left: 1.625em;
   width: 0.4375em;
   width: 0.4375em;
   height: 5.625em;
   height: 5.625em;
-  zoom: 1;
   transform: rotate(-45deg);
   transform: rotate(-45deg);
 }
 }
 .swal2-icon.swal2-success [class^=swal2-success-line] {
 .swal2-icon.swal2-success [class^=swal2-success-line] {
@@ -707,7 +703,6 @@
   position: absolute;
   position: absolute;
   z-index: 2;
   z-index: 2;
   height: 0.3125em;
   height: 0.3125em;
-  zoom: 1;
   border-radius: 0.125em;
   border-radius: 0.125em;
   background-color: #a5dc86;
   background-color: #a5dc86;
 }
 }

File diff suppressed because it is too large
+ 47 - 46
plugins/sweetalert2/sweetalert2.js


File diff suppressed because it is too large
+ 1 - 1
plugins/sweetalert2/sweetalert2.min.css


File diff suppressed because it is too large
+ 1 - 1
plugins/sweetalert2/sweetalert2.min.js