Procházet zdrojové kódy

chore(plugins): update plugin dist files

REJack před 3 roky
rodič
revize
4cf2de7fac
100 změnil soubory, kde provedl 5210 přidání a 4261 odebrání
  1. 1 1
      plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.css
  2. 1 1
      plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css
  3. 20 11
      plugins/codemirror/addon/search/searchcursor.js
  4. 7 13
      plugins/codemirror/codemirror.css
  5. 42 18
      plugins/codemirror/codemirror.js
  6. 152 191
      plugins/codemirror/keymap/vim.js
  7. 4 2
      plugins/codemirror/mode/css/css.js
  8. 8 0
      plugins/codemirror/mode/gas/gas.js
  9. 2 2
      plugins/codemirror/mode/nsis/nsis.js
  10. 3 3
      plugins/codemirror/mode/php/php.js
  11. 5 5
      plugins/codemirror/mode/soy/soy.js
  12. 2 2
      plugins/codemirror/mode/sql/sql.js
  13. 2 2
      plugins/codemirror/mode/stylus/stylus.js
  14. 11 7
      plugins/codemirror/mode/xml/xml.js
  15. 0 3
      plugins/codemirror/theme/solarized.css
  16. 1 1
      plugins/datatables-colreorder/js/colReorder.bootstrap4.min.js
  17. 46 49
      plugins/datatables-fixedcolumns/css/fixedColumns.bootstrap4.css
  18. 1 1
      plugins/datatables-fixedcolumns/css/fixedColumns.bootstrap4.min.css
  19. 556 1687
      plugins/datatables-fixedcolumns/js/dataTables.fixedColumns.js
  20. 17 35
      plugins/datatables-fixedcolumns/js/dataTables.fixedColumns.min.js
  21. 40 35
      plugins/datatables-fixedcolumns/js/fixedColumns.bootstrap4.js
  22. 3 3
      plugins/datatables-fixedcolumns/js/fixedColumns.bootstrap4.min.js
  23. 0 4
      plugins/datatables-fixedheader/css/fixedHeader.bootstrap4.css
  24. 1 1
      plugins/datatables-fixedheader/css/fixedHeader.bootstrap4.min.css
  25. 347 41
      plugins/datatables-fixedheader/js/dataTables.fixedHeader.js
  26. 39 16
      plugins/datatables-fixedheader/js/dataTables.fixedHeader.min.js
  27. 1 1
      plugins/datatables-fixedheader/js/fixedHeader.bootstrap4.min.js
  28. 1 1
      plugins/datatables-rowgroup/js/rowGroup.bootstrap4.min.js
  29. 3 3
      plugins/datatables-rowreorder/js/dataTables.rowReorder.js
  30. 2 2
      plugins/datatables-rowreorder/js/dataTables.rowReorder.min.js
  31. 10 5
      plugins/datatables-searchbuilder/js/dataTables.searchBuilder.js
  32. 116 116
      plugins/datatables-searchbuilder/js/dataTables.searchBuilder.min.js
  33. 55 48
      plugins/datatables-searchbuilder/js/searchBuilder.bootstrap4.js
  34. 2 2
      plugins/datatables-searchbuilder/js/searchBuilder.bootstrap4.min.js
  35. 142 83
      plugins/datatables/jquery.dataTables.js
  36. 144 143
      plugins/datatables/jquery.dataTables.min.js
  37. 2 2
      plugins/dropzone/dropzone-amd-module.js
  38. 2 2
      plugins/dropzone/dropzone.js
  39. 1 1
      plugins/dropzone/min/dropzone-amd-module.min.js
  40. 1 1
      plugins/dropzone/min/dropzone.min.js
  41. 1610 0
      plugins/flag-icon-css/css/flag-icons.css
  42. 1 0
      plugins/flag-icon-css/css/flag-icons.min.css
  43. 81 0
      plugins/flag-icon-css/flags/1x1/ac.svg
  44. 96 96
      plugins/flag-icon-css/flags/1x1/ad.svg
  45. 1 1
      plugins/flag-icon-css/flags/1x1/ae.svg
  46. 26 26
      plugins/flag-icon-css/flags/1x1/af.svg
  47. 4 4
      plugins/flag-icon-css/flags/1x1/ag.svg
  48. 748 748
      plugins/flag-icon-css/flags/1x1/ai.svg
  49. 3 3
      plugins/flag-icon-css/flags/1x1/al.svg
  50. 1 1
      plugins/flag-icon-css/flags/1x1/am.svg
  51. 7 7
      plugins/flag-icon-css/flags/1x1/ao.svg
  52. 4 4
      plugins/flag-icon-css/flags/1x1/aq.svg
  53. 22 22
      plugins/flag-icon-css/flags/1x1/ar.svg
  54. 2 2
      plugins/flag-icon-css/flags/1x1/at.svg
  55. 3 3
      plugins/flag-icon-css/flags/1x1/au.svg
  56. 178 178
      plugins/flag-icon-css/flags/1x1/aw.svg
  57. 3 3
      plugins/flag-icon-css/flags/1x1/ax.svg
  58. 2 2
      plugins/flag-icon-css/flags/1x1/az.svg
  59. 5 5
      plugins/flag-icon-css/flags/1x1/ba.svg
  60. 3 3
      plugins/flag-icon-css/flags/1x1/bb.svg
  61. 1 1
      plugins/flag-icon-css/flags/1x1/bd.svg
  62. 1 1
      plugins/flag-icon-css/flags/1x1/be.svg
  63. 2 2
      plugins/flag-icon-css/flags/1x1/bf.svg
  64. 1 1
      plugins/flag-icon-css/flags/1x1/bg.svg
  65. 7 7
      plugins/flag-icon-css/flags/1x1/bi.svg
  66. 3 3
      plugins/flag-icon-css/flags/1x1/bj.svg
  67. 1 1
      plugins/flag-icon-css/flags/1x1/bl.svg
  68. 98 97
      plugins/flag-icon-css/flags/1x1/bm.svg
  69. 25 25
      plugins/flag-icon-css/flags/1x1/bn.svg
  70. 259 259
      plugins/flag-icon-css/flags/1x1/bo.svg
  71. 1 1
      plugins/flag-icon-css/flags/1x1/bq.svg
  72. 25 25
      plugins/flag-icon-css/flags/1x1/br.svg
  73. 3 3
      plugins/flag-icon-css/flags/1x1/bs.svg
  74. 30 30
      plugins/flag-icon-css/flags/1x1/bt.svg
  75. 3 3
      plugins/flag-icon-css/flags/1x1/bv.svg
  76. 1 1
      plugins/flag-icon-css/flags/1x1/bw.svg
  77. 3 3
      plugins/flag-icon-css/flags/1x1/by.svg
  78. 67 67
      plugins/flag-icon-css/flags/1x1/bz.svg
  79. 1 1
      plugins/flag-icon-css/flags/1x1/ca.svg
  80. 9 9
      plugins/flag-icon-css/flags/1x1/cc.svg
  81. 5 5
      plugins/flag-icon-css/flags/1x1/cd.svg
  82. 4 4
      plugins/flag-icon-css/flags/1x1/cf.svg
  83. 3 3
      plugins/flag-icon-css/flags/1x1/cg.svg
  84. 1 1
      plugins/flag-icon-css/flags/1x1/ch.svg
  85. 1 1
      plugins/flag-icon-css/flags/1x1/ci.svg
  86. 3 3
      plugins/flag-icon-css/flags/1x1/ck.svg
  87. 4 4
      plugins/flag-icon-css/flags/1x1/cl.svg
  88. 7 7
      plugins/flag-icon-css/flags/1x1/cm.svg
  89. 7 7
      plugins/flag-icon-css/flags/1x1/cn.svg
  90. 1 1
      plugins/flag-icon-css/flags/1x1/co.svg
  91. 7 0
      plugins/flag-icon-css/flags/1x1/cp.svg
  92. 1 1
      plugins/flag-icon-css/flags/1x1/cr.svg
  93. 5 5
      plugins/flag-icon-css/flags/1x1/cu.svg
  94. 4 4
      plugins/flag-icon-css/flags/1x1/cv.svg
  95. 6 6
      plugins/flag-icon-css/flags/1x1/cw.svg
  96. 9 9
      plugins/flag-icon-css/flags/1x1/cx.svg
  97. 4 4
      plugins/flag-icon-css/flags/1x1/cy.svg
  98. 3 3
      plugins/flag-icon-css/flags/1x1/cz.svg
  99. 1 1
      plugins/flag-icon-css/flags/1x1/de.svg
  100. 0 0
      plugins/flag-icon-css/flags/1x1/dg.svg

+ 1 - 1
plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.css

@@ -1,7 +1,7 @@
 /*!
  * Bootstrap Colorpicker - Bootstrap Colorpicker is a modular color picker plugin for Bootstrap 4.
  * @package bootstrap-colorpicker
- * @version v3.2.0
+ * @version v3.4.0
  * @license MIT
  * @link https://itsjavi.com/bootstrap-colorpicker/
  * @link https://github.com/itsjavi/bootstrap-colorpicker.git

+ 1 - 1
plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css

@@ -1,7 +1,7 @@
 /*!
  * Bootstrap Colorpicker - Bootstrap Colorpicker is a modular color picker plugin for Bootstrap 4.
  * @package bootstrap-colorpicker
- * @version v3.2.0
+ * @version v3.4.0
  * @license MIT
  * @link https://itsjavi.com/bootstrap-colorpicker/
  * @link https://github.com/itsjavi/bootstrap-colorpicker.git

+ 20 - 11
plugins/codemirror/addon/search/searchcursor.js

@@ -202,6 +202,7 @@
 
   function SearchCursor(doc, query, pos, options) {
     this.atOccurrence = false
+    this.afterEmptyMatch = false
     this.doc = doc
     pos = pos ? doc.clipPos(pos) : Pos(0, 0)
     this.pos = {from: pos, to: pos}
@@ -237,21 +238,29 @@
     findPrevious: function() {return this.find(true)},
 
     find: function(reverse) {
-      var result = this.matches(reverse, this.doc.clipPos(reverse ? this.pos.from : this.pos.to))
-
-      // Implements weird auto-growing behavior on null-matches for
-      // backwards-compatibility with the vim code (unfortunately)
-      while (result && CodeMirror.cmpPos(result.from, result.to) == 0) {
+      var head = this.doc.clipPos(reverse ? this.pos.from : this.pos.to);
+      if (this.afterEmptyMatch && this.atOccurrence) {
+        // do not return the same 0 width match twice
+        head = Pos(head.line, head.ch)
         if (reverse) {
-          if (result.from.ch) result.from = Pos(result.from.line, result.from.ch - 1)
-          else if (result.from.line == this.doc.firstLine()) result = null
-          else result = this.matches(reverse, this.doc.clipPos(Pos(result.from.line - 1)))
+          head.ch--;
+          if (head.ch < 0) {
+            head.line--;
+            head.ch = (this.doc.getLine(head.line) || "").length;
+          }
         } else {
-          if (result.to.ch < this.doc.getLine(result.to.line).length) result.to = Pos(result.to.line, result.to.ch + 1)
-          else if (result.to.line == this.doc.lastLine()) result = null
-          else result = this.matches(reverse, Pos(result.to.line + 1, 0))
+          head.ch++;
+          if (head.ch > (this.doc.getLine(head.line) || "").length) {
+            head.ch = 0;
+            head.line++;
+          }
+        }
+        if (CodeMirror.cmpPos(head, this.doc.clipPos(head)) != 0) {
+           return this.atOccurrence = false
         }
       }
+      var result = this.matches(reverse, head)
+      this.afterEmptyMatch = result && CodeMirror.cmpPos(result.from, result.to) == 0
 
       if (result) {
         this.pos = result

+ 7 - 13
plugins/codemirror/codemirror.css

@@ -60,19 +60,13 @@
 .cm-fat-cursor div.CodeMirror-cursors {
   z-index: 1;
 }
-.cm-fat-cursor-mark {
-  background-color: rgba(20, 255, 20, 0.5);
-  -webkit-animation: blink 1.06s steps(1) infinite;
-  -moz-animation: blink 1.06s steps(1) infinite;
-  animation: blink 1.06s steps(1) infinite;
-}
-.cm-animate-fat-cursor {
-  width: auto;
-  -webkit-animation: blink 1.06s steps(1) infinite;
-  -moz-animation: blink 1.06s steps(1) infinite;
-  animation: blink 1.06s steps(1) infinite;
-  background-color: #7e7;
-}
+.cm-fat-cursor .CodeMirror-line::selection,
+.cm-fat-cursor .CodeMirror-line > span::selection, 
+.cm-fat-cursor .CodeMirror-line > span > span::selection { background: transparent; }
+.cm-fat-cursor .CodeMirror-line::-moz-selection,
+.cm-fat-cursor .CodeMirror-line > span::-moz-selection,
+.cm-fat-cursor .CodeMirror-line > span > span::-moz-selection { background: transparent; }
+.cm-fat-cursor { caret-color: transparent; }
 @-moz-keyframes blink {
   0% {}
   50% { background-color: transparent; }

+ 42 - 18
plugins/codemirror/codemirror.js

@@ -2351,12 +2351,14 @@
   function mapFromLineView(lineView, line, lineN) {
     if (lineView.line == line)
       { return {map: lineView.measure.map, cache: lineView.measure.cache} }
-    for (var i = 0; i < lineView.rest.length; i++)
-      { if (lineView.rest[i] == line)
-        { return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]} } }
-    for (var i$1 = 0; i$1 < lineView.rest.length; i$1++)
-      { if (lineNo(lineView.rest[i$1]) > lineN)
-        { return {map: lineView.measure.maps[i$1], cache: lineView.measure.caches[i$1], before: true} } }
+    if (lineView.rest) {
+      for (var i = 0; i < lineView.rest.length; i++)
+        { if (lineView.rest[i] == line)
+          { return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]} } }
+      for (var i$1 = 0; i$1 < lineView.rest.length; i$1++)
+        { if (lineNo(lineView.rest[i$1]) > lineN)
+          { return {map: lineView.measure.maps[i$1], cache: lineView.measure.caches[i$1], before: true} } }
+    }
   }
 
   // Render a line into the hidden node display.externalMeasured. Used
@@ -3150,13 +3152,19 @@
     var curFragment = result.cursors = document.createDocumentFragment();
     var selFragment = result.selection = document.createDocumentFragment();
 
+    var customCursor = cm.options.$customCursor;
+    if (customCursor) { primary = true; }
     for (var i = 0; i < doc.sel.ranges.length; i++) {
       if (!primary && i == doc.sel.primIndex) { continue }
       var range = doc.sel.ranges[i];
       if (range.from().line >= cm.display.viewTo || range.to().line < cm.display.viewFrom) { continue }
       var collapsed = range.empty();
-      if (collapsed || cm.options.showCursorWhenSelecting)
-        { drawSelectionCursor(cm, range.head, curFragment); }
+      if (customCursor) {
+        var head = customCursor(cm, range);
+        if (head) { drawSelectionCursor(cm, head, curFragment); }
+      } else if (collapsed || cm.options.showCursorWhenSelecting) {
+        drawSelectionCursor(cm, range.head, curFragment);
+      }
       if (!collapsed)
         { drawSelectionRange(cm, range, selFragment); }
     }
@@ -3174,7 +3182,8 @@
 
     if (/\bcm-fat-cursor\b/.test(cm.getWrapperElement().className)) {
       var charPos = charCoords(cm, head, "div", null, null);
-      cursor.style.width = Math.max(0, charPos.right - charPos.left) + "px";
+      var width = charPos.right - charPos.left;
+      cursor.style.width = (width > 0 ? width : cm.defaultCharWidth()) + "px";
     }
 
     if (pos.other) {
@@ -3349,10 +3358,14 @@
   function updateHeightsInViewport(cm) {
     var display = cm.display;
     var prevBottom = display.lineDiv.offsetTop;
+    var viewTop = Math.max(0, display.scroller.getBoundingClientRect().top);
+    var oldHeight = display.lineDiv.getBoundingClientRect().top;
+    var mustScroll = 0;
     for (var i = 0; i < display.view.length; i++) {
       var cur = display.view[i], wrapping = cm.options.lineWrapping;
       var height = (void 0), width = 0;
       if (cur.hidden) { continue }
+      oldHeight += cur.line.height;
       if (ie && ie_version < 8) {
         var bot = cur.node.offsetTop + cur.node.offsetHeight;
         height = bot - prevBottom;
@@ -3367,6 +3380,7 @@
       }
       var diff = cur.line.height - height;
       if (diff > .005 || diff < -.005) {
+        if (oldHeight < viewTop) { mustScroll -= diff; }
         updateLineHeight(cur.line, height);
         updateWidgetHeight(cur.line);
         if (cur.rest) { for (var j = 0; j < cur.rest.length; j++)
@@ -3381,6 +3395,7 @@
         }
       }
     }
+    if (Math.abs(mustScroll) > 2) { display.scroller.scrollTop += mustScroll; }
   }
 
   // Read and store the height of line widgets associated with the
@@ -3641,6 +3656,7 @@
       this.vert.firstChild.style.height =
         Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + "px";
     } else {
+      this.vert.scrollTop = 0;
       this.vert.style.display = "";
       this.vert.firstChild.style.height = "0";
     }
@@ -4492,6 +4508,12 @@
 
   function onScrollWheel(cm, e) {
     var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y;
+    var pixelsPerUnit = wheelPixelsPerUnit;
+    if (e.deltaMode === 0) {
+      dx = e.deltaX;
+      dy = e.deltaY;
+      pixelsPerUnit = 1;
+    }
 
     var display = cm.display, scroll = display.scroller;
     // Quit if there's nothing to scroll here
@@ -4520,10 +4542,10 @@
     // estimated pixels/delta value, we just handle horizontal
     // scrolling entirely here. It'll be slightly off from native, but
     // better than glitching out.
-    if (dx && !gecko && !presto && wheelPixelsPerUnit != null) {
+    if (dx && !gecko && !presto && pixelsPerUnit != null) {
       if (dy && canScrollY)
-        { updateScrollTop(cm, Math.max(0, scroll.scrollTop + dy * wheelPixelsPerUnit)); }
-      setScrollLeft(cm, Math.max(0, scroll.scrollLeft + dx * wheelPixelsPerUnit));
+        { updateScrollTop(cm, Math.max(0, scroll.scrollTop + dy * pixelsPerUnit)); }
+      setScrollLeft(cm, Math.max(0, scroll.scrollLeft + dx * pixelsPerUnit));
       // Only prevent default scrolling if vertical scrolling is
       // actually possible. Otherwise, it causes vertical scroll
       // jitter on OSX trackpads when deltaX is small and deltaY
@@ -4536,15 +4558,15 @@
 
     // 'Project' the visible viewport to cover the area that is being
     // scrolled into view (if we know enough to estimate it).
-    if (dy && wheelPixelsPerUnit != null) {
-      var pixels = dy * wheelPixelsPerUnit;
+    if (dy && pixelsPerUnit != null) {
+      var pixels = dy * pixelsPerUnit;
       var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight;
       if (pixels < 0) { top = Math.max(0, top + pixels - 50); }
       else { bot = Math.min(cm.doc.height, bot + pixels + 50); }
       updateDisplaySimple(cm, {top: top, bottom: bot});
     }
 
-    if (wheelSamples < 20) {
+    if (wheelSamples < 20 && e.deltaMode !== 0) {
       if (display.wheelStartX == null) {
         display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop;
         display.wheelDX = dx; display.wheelDY = dy;
@@ -8221,7 +8243,7 @@
   }
 
   function hiddenTextarea() {
-    var te = elt("textarea", null, null, "position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none");
+    var te = elt("textarea", null, null, "position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; min-height: 1em; outline: none");
     var div = elt("div", [te], null, "overflow: hidden; position: relative; width: 3px; height: 0px;");
     // The textarea is kept positioned near the cursor to prevent the
     // fact that it'll be scrolled into view on input from scrolling
@@ -8985,9 +9007,11 @@
   ContentEditableInput.prototype.supportsTouch = function () { return true };
 
   ContentEditableInput.prototype.receivedFocus = function () {
+      var this$1 = this;
+
     var input = this;
     if (this.selectionInEditor())
-      { this.pollSelection(); }
+      { setTimeout(function () { return this$1.pollSelection(); }, 20); }
     else
       { runInOp(this.cm, function () { return input.cm.curOp.selectionChanged = true; }); }
 
@@ -9816,7 +9840,7 @@
 
   addLegacyProps(CodeMirror);
 
-  CodeMirror.version = "5.62.3";
+  CodeMirror.version = "5.64.0";
 
   return CodeMirror;
 

+ 152 - 191
plugins/codemirror/keymap/vim.js

@@ -44,6 +44,27 @@
 })(function(CodeMirror) {
   'use strict';
 
+  var Pos = CodeMirror.Pos;
+
+  function transformCursor(cm, range) {
+    var vim = cm.state.vim;
+    if (!vim || vim.insertMode) return range.head;
+    var head = vim.sel.head;
+    if (!head)  return range.head;
+
+    if (vim.visualBlock) {
+      if (range.head.line != head.line) {
+        return;
+      }
+    }
+    if (range.from() == range.anchor && !range.empty()) {
+      if (range.head.line == head.line && range.head.ch != head.ch)
+        return new Pos(range.head.line, range.head.ch - 1);
+    }
+
+    return range.head;
+  }
+
   var defaultKeymap = [
     // Key to key mapping. This goes first to make it possible to override
     // existing mappings.
@@ -154,6 +175,7 @@
     { keys: 'C', type: 'operator', operator: 'change', operatorArgs: { linewise: true }, context: 'visual'},
     { keys: '~', type: 'operatorMotion', operator: 'changeCase', motion: 'moveByCharacters', motionArgs: { forward: true }, operatorArgs: { shouldMoveCursor: true }, context: 'normal'},
     { keys: '~', type: 'operator', operator: 'changeCase', context: 'visual'},
+    { keys: '<C-u>', type: 'operatorMotion', operator: 'delete', motion: 'moveToStartOfLine', context: 'insert' },
     { keys: '<C-w>', type: 'operatorMotion', operator: 'delete', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: false }, context: 'insert' },
     //ignore C-w in normal mode
     { keys: '<C-w>', type: 'idle', context: 'normal' },
@@ -248,8 +270,6 @@
     { name: 'global', shortName: 'g' }
   ];
 
-  var Pos = CodeMirror.Pos;
-
   var Vim = function() {
     function enterVimMode(cm) {
       cm.setOption('disableInput', true);
@@ -265,15 +285,13 @@
       cm.off('cursorActivity', onCursorActivity);
       CodeMirror.off(cm.getInputField(), 'paste', getOnPasteFn(cm));
       cm.state.vim = null;
+      if (highlightTimeout) clearTimeout(highlightTimeout);
     }
 
     function detachVimMap(cm, next) {
       if (this == CodeMirror.keyMap.vim) {
+        cm.options.$customCursor = null;
         CodeMirror.rmClass(cm.getWrapperElement(), "cm-fat-cursor");
-        if (cm.getOption("inputStyle") == "contenteditable" && document.body.style.caretColor != null) {
-          disableFatCursorMark(cm);
-          cm.getInputField().style.caretColor = "";
-        }
       }
 
       if (!next || next.attach != attachVimMap)
@@ -281,57 +299,15 @@
     }
     function attachVimMap(cm, prev) {
       if (this == CodeMirror.keyMap.vim) {
+        if (cm.curOp) cm.curOp.selectionChanged = true;
+        cm.options.$customCursor = transformCursor;
         CodeMirror.addClass(cm.getWrapperElement(), "cm-fat-cursor");
-        if (cm.getOption("inputStyle") == "contenteditable" && document.body.style.caretColor != null) {
-          enableFatCursorMark(cm);
-          cm.getInputField().style.caretColor = "transparent";
-        }
       }
 
       if (!prev || prev.attach != attachVimMap)
         enterVimMode(cm);
     }
 
-    function updateFatCursorMark(cm) {
-      if (!cm.state.fatCursorMarks) return;
-      clearFatCursorMark(cm);
-      var ranges = cm.listSelections(), result = []
-      for (var i = 0; i < ranges.length; i++) {
-        var range = ranges[i];
-        if (range.empty()) {
-          var lineLength = cm.getLine(range.anchor.line).length;
-          if (range.anchor.ch < lineLength) {
-            result.push(cm.markText(range.anchor, Pos(range.anchor.line, range.anchor.ch + 1),
-                                    {className: "cm-fat-cursor-mark"}));
-          } else {
-            result.push(cm.markText(Pos(range.anchor.line, lineLength - 1),
-                                    Pos(range.anchor.line, lineLength),
-                                    {className: "cm-fat-cursor-mark"}));
-          }
-        }
-      }
-      cm.state.fatCursorMarks = result;
-    }
-
-    function clearFatCursorMark(cm) {
-      var marks = cm.state.fatCursorMarks;
-      if (marks) for (var i = 0; i < marks.length; i++) marks[i].clear();
-    }
-
-    function enableFatCursorMark(cm) {
-      cm.state.fatCursorMarks = [];
-      updateFatCursorMark(cm)
-      cm.on("cursorActivity", updateFatCursorMark)
-    }
-
-    function disableFatCursorMark(cm) {
-      clearFatCursorMark(cm);
-      cm.off("cursorActivity", updateFatCursorMark);
-      // explicitly set fatCursorMarks to null because event listener above
-      // can be invoke after removing it, if off is called from operation
-      cm.state.fatCursorMarks = null;
-    }
-
     // Deprecated, simply setting the keymap works again.
     CodeMirror.defineOption('vimMode', false, function(cm, val, prev) {
       if (val && cm.getOption("keyMap") != "vim")
@@ -347,7 +323,7 @@
       if (!vimKey) {
         return false;
       }
-      var cmd = CodeMirror.Vim.findKey(cm, vimKey);
+      var cmd = vimApi.findKey(cm, vimKey);
       if (typeof cmd == 'function') {
         CodeMirror.signal(cm, 'vim-keypress', vimKey);
       }
@@ -691,8 +667,6 @@
           // executed in between.
           lastMotion: null,
           marks: {},
-          // Mark for rendering fake cursor for visual mode.
-          fakeCursor: null,
           insertMode: false,
           // Repeat count for changes made in insert mode, triggered by key
           // sequences like 3,i. Only exists when insertMode is true.
@@ -764,7 +738,7 @@
         exCommandDispatcher.map(lhs, rhs, ctx);
       },
       unmap: function(lhs, ctx) {
-        exCommandDispatcher.unmap(lhs, ctx);
+        return exCommandDispatcher.unmap(lhs, ctx);
       },
       // Non-recursive map function.
       // NOTE: This will not create mappings to key maps that aren't present
@@ -904,7 +878,7 @@
             match = (/<\w+-.+?>|<\w+>|./).exec(keys);
             key = match[0];
             keys = keys.substring(match.index + key.length);
-            CodeMirror.Vim.handleKey(cm, key, 'mapping');
+            vimApi.handleKey(cm, key, 'mapping');
           }
         }
 
@@ -951,7 +925,12 @@
           if (!keysMatcher) { clearInputState(cm); return false; }
           var context = vim.visualMode ? 'visual' :
                                          'normal';
-          var match = commandDispatcher.matchCommand(keysMatcher[2] || keysMatcher[1], defaultKeymap, vim.inputState, context);
+          var mainKey = keysMatcher[2] || keysMatcher[1];
+          if (vim.inputState.operatorShortcut && vim.inputState.operatorShortcut.slice(-1) == mainKey) {
+            // multikey operators act linewise by repeating only the last character
+            mainKey = vim.inputState.operatorShortcut;
+          }
+          var match = commandDispatcher.matchCommand(mainKey, defaultKeymap, vim.inputState, context);
           if (match.type == 'none') { clearInputState(cm); return false; }
           else if (match.type == 'partial') { return true; }
 
@@ -987,7 +966,7 @@
                 // clear VIM state in case it's in a bad state.
                 cm.state.vim = undefined;
                 maybeInitVimState(cm);
-                if (!CodeMirror.Vim.suppressErrorLogging) {
+                if (!vimApi.suppressErrorLogging) {
                   console['log'](e);
                 }
                 throw e;
@@ -1311,6 +1290,9 @@
         }
         inputState.operator = command.operator;
         inputState.operatorArgs = copyArgs(command.operatorArgs);
+        if (command.keys.length > 1) {
+          inputState.operatorShortcut = command.keys;
+        }
         if (command.exitVisualBlock) {
             vim.visualBlock = false;
             updateCmSelection(cm);
@@ -1639,17 +1621,17 @@
             var chOffset = Math.abs(lastSel.head.ch - lastSel.anchor.ch);
             if (lastSel.visualLine) {
               // Linewise Visual mode: The same number of lines.
-              newHead = Pos(oldAnchor.line + lineOffset, oldAnchor.ch);
+              newHead = new Pos(oldAnchor.line + lineOffset, oldAnchor.ch);
             } else if (lastSel.visualBlock) {
               // Blockwise Visual mode: The same number of lines and columns.
-              newHead = Pos(oldAnchor.line + lineOffset, oldAnchor.ch + chOffset);
+              newHead = new Pos(oldAnchor.line + lineOffset, oldAnchor.ch + chOffset);
             } else if (lastSel.head.line == lastSel.anchor.line) {
               // Normal Visual mode within one line: The same number of characters.
-              newHead = Pos(oldAnchor.line, oldAnchor.ch + chOffset);
+              newHead = new Pos(oldAnchor.line, oldAnchor.ch + chOffset);
             } else {
               // Normal Visual mode with several lines: The same number of lines, in the
               // last line the same number of characters as in the last line the last time.
-              newHead = Pos(oldAnchor.line + lineOffset, oldAnchor.ch);
+              newHead = new Pos(oldAnchor.line + lineOffset, oldAnchor.ch);
             }
             vim.visualMode = true;
             vim.visualLine = lastSel.visualLine;
@@ -1689,7 +1671,7 @@
                   ranges[i].head.ch = lineLength(cm, ranges[i].head.line);
                 }
               } else if (mode == 'line') {
-                ranges[0].head = Pos(ranges[0].head.line + 1, 0);
+                ranges[0].head = new Pos(ranges[0].head.line + 1, 0);
               }
             }
           } else {
@@ -1751,22 +1733,22 @@
     var motions = {
       moveToTopLine: function(cm, _head, motionArgs) {
         var line = getUserVisibleLines(cm).top + motionArgs.repeat -1;
-        return Pos(line, findFirstNonWhiteSpaceCharacter(cm.getLine(line)));
+        return new Pos(line, findFirstNonWhiteSpaceCharacter(cm.getLine(line)));
       },
       moveToMiddleLine: function(cm) {
         var range = getUserVisibleLines(cm);
         var line = Math.floor((range.top + range.bottom) * 0.5);
-        return Pos(line, findFirstNonWhiteSpaceCharacter(cm.getLine(line)));
+        return new Pos(line, findFirstNonWhiteSpaceCharacter(cm.getLine(line)));
       },
       moveToBottomLine: function(cm, _head, motionArgs) {
         var line = getUserVisibleLines(cm).bottom - motionArgs.repeat +1;
-        return Pos(line, findFirstNonWhiteSpaceCharacter(cm.getLine(line)));
+        return new Pos(line, findFirstNonWhiteSpaceCharacter(cm.getLine(line)));
       },
       expandToLine: function(_cm, head, motionArgs) {
         // Expands forward to end of line, and then to next line if repeat is
         // >1. Does not handle backward motion!
         var cur = head;
-        return Pos(cur.line + motionArgs.repeat - 1, Infinity);
+        return new Pos(cur.line + motionArgs.repeat - 1, Infinity);
       },
       findNext: function(cm, _head, motionArgs) {
         var state = getSearchState(cm);
@@ -1823,7 +1805,7 @@
         // For whatever reason, when we use the "to" as returned by searchcursor.js directly,
         // the resulting selection is extended by 1 char. Let's shrink it so that only the
         // match is selected.
-        var to = Pos(next[1].line, next[1].ch - 1);
+        var to = new Pos(next[1].line, next[1].ch - 1);
 
         if (vim.visualMode) {
           // If we were in visualLine or visualBlock mode, get out of it.
@@ -1872,8 +1854,8 @@
         if (vim.visualBlock && motionArgs.sameLine) {
           var sel = vim.sel;
           return [
-            clipCursorToContent(cm, Pos(sel.anchor.line, sel.head.ch)),
-            clipCursorToContent(cm, Pos(sel.head.line, sel.anchor.ch))
+            clipCursorToContent(cm, new Pos(sel.anchor.line, sel.head.ch)),
+            clipCursorToContent(cm, new Pos(sel.head.line, sel.anchor.ch))
           ];
         } else {
           return ([vim.sel.head, vim.sel.anchor]);
@@ -1913,7 +1895,7 @@
           // Vim places the cursor on the first non-whitespace character of
           // the line if there is one, else it places the cursor at the end
           // of the line, regardless of whether a mark was found.
-          best = Pos(best.line, findFirstNonWhiteSpaceCharacter(cm.getLine(best.line)));
+          best = new Pos(best.line, findFirstNonWhiteSpaceCharacter(cm.getLine(best.line)));
         }
         return best;
       },
@@ -1921,7 +1903,7 @@
         var cur = head;
         var repeat = motionArgs.repeat;
         var ch = motionArgs.forward ? cur.ch + repeat : cur.ch - repeat;
-        return Pos(cur.line, ch);
+        return new Pos(cur.line, ch);
       },
       moveByLines: function(cm, head, motionArgs, vim) {
         var cur = head;
@@ -1963,8 +1945,8 @@
           endCh=findFirstNonWhiteSpaceCharacter(cm.getLine(line));
           vim.lastHPos = endCh;
         }
-        vim.lastHSPos = cm.charCoords(Pos(line, endCh),'div').left;
-        return Pos(line, endCh);
+        vim.lastHSPos = cm.charCoords(new Pos(line, endCh),'div').left;
+        return new Pos(line, endCh);
       },
       moveByDisplayLines: function(cm, head, motionArgs, vim) {
         var cur = head;
@@ -1986,7 +1968,7 @@
             var goalCoords = { top: lastCharCoords.top + 8, left: vim.lastHSPos };
             var res = cm.coordsChar(goalCoords, 'div');
           } else {
-            var resCoords = cm.charCoords(Pos(cm.firstLine(), 0), 'div');
+            var resCoords = cm.charCoords(new Pos(cm.firstLine(), 0), 'div');
             resCoords.left = vim.lastHSPos;
             res = cm.coordsChar(resCoords, 'div');
           }
@@ -2066,7 +2048,7 @@
         // Go to the start of the line where the text begins, or the end for
         // whitespace-only lines
         var cursor = head;
-        return Pos(cursor.line,
+        return new Pos(cursor.line,
                    findFirstNonWhiteSpaceCharacter(cm.getLine(cursor.line)));
       },
       moveToMatchedSymbol: function(cm, head) {
@@ -2078,7 +2060,7 @@
         for (; ch < lineText.length; ch++) {
           symbol = lineText.charAt(ch);
           if (symbol && isMatchableSymbol(symbol)) {
-            var style = cm.getTokenTypeAt(Pos(line, ch + 1));
+            var style = cm.getTokenTypeAt(new Pos(line, ch + 1));
             if (style !== "string" && style !== "comment") {
               break;
             }
@@ -2087,21 +2069,21 @@
         if (ch < lineText.length) {
           // Only include angle brackets in analysis if they are being matched.
           var re = (ch === '<' || ch === '>') ? /[(){}[\]<>]/ : /[(){}[\]]/;
-          var matched = cm.findMatchingBracket(Pos(line, ch), {bracketRegex: re});
+          var matched = cm.findMatchingBracket(new Pos(line, ch), {bracketRegex: re});
           return matched.to;
         } else {
           return cursor;
         }
       },
       moveToStartOfLine: function(_cm, head) {
-        return Pos(head.line, 0);
+        return new Pos(head.line, 0);
       },
       moveToLineOrEdgeOfDocument: function(cm, _head, motionArgs) {
         var lineNum = motionArgs.forward ? cm.lastLine() : cm.firstLine();
         if (motionArgs.repeatIsExplicit) {
           lineNum = motionArgs.repeat - cm.getOption('firstLineNumber');
         }
-        return Pos(lineNum,
+        return new Pos(lineNum,
                    findFirstNonWhiteSpaceCharacter(cm.getLine(lineNum)));
       },
       textObjectManipulation: function(cm, head, motionArgs, vim) {
@@ -2264,7 +2246,7 @@
             if (anchor.line == cm.firstLine()) {
               anchor.ch = 0;
             } else {
-              anchor = Pos(anchor.line - 1, lineLength(cm, anchor.line - 1));
+              anchor = new Pos(anchor.line - 1, lineLength(cm, anchor.line - 1));
             }
           }
           text = cm.getRange(anchor, head);
@@ -2277,7 +2259,7 @@
           text = cm.getSelection();
           var replacement = fillArray('', ranges.length);
           cm.replaceSelections(replacement);
-          finalHead = ranges[0].anchor;
+          finalHead = cursorMin(ranges[0].head, ranges[0].anchor);
         }
         vimGlobalState.registerController.pushText(
             args.registerName, 'delete', text,
@@ -2411,7 +2393,7 @@
       },
       scrollToCursor: function(cm, actionArgs) {
         var lineNum = cm.getCursor().line;
-        var charCoords = cm.charCoords(Pos(lineNum, 0), 'local');
+        var charCoords = cm.charCoords(new Pos(lineNum, 0), 'local');
         var height = cm.getScrollInfo().clientHeight;
         var y = charCoords.top;
         var lineHeight = charCoords.bottom - y;
@@ -2463,9 +2445,9 @@
         var head = actionArgs.head || cm.getCursor('head');
         var height = cm.listSelections().length;
         if (insertAt == 'eol') {
-          head = Pos(head.line, lineLength(cm, head.line));
+          head = new Pos(head.line, lineLength(cm, head.line));
         } else if (insertAt == 'bol') {
-          head = Pos(head.line, 0);
+          head = new Pos(head.line, 0);
         } else if (insertAt == 'charAfter') {
           head = offsetCursor(head, 0, 1);
         } else if (insertAt == 'firstNonBlank') {
@@ -2477,10 +2459,10 @@
             if (sel.head.line < sel.anchor.line) {
               head = sel.head;
             } else {
-              head = Pos(sel.anchor.line, 0);
+              head = new Pos(sel.anchor.line, 0);
             }
           } else {
-            head = Pos(
+            head = new Pos(
                 Math.min(sel.head.line, sel.anchor.line),
                 Math.min(sel.head.ch, sel.anchor.ch));
             height = Math.abs(sel.head.line - sel.anchor.line) + 1;
@@ -2492,12 +2474,12 @@
             if (sel.head.line >= sel.anchor.line) {
               head = offsetCursor(sel.head, 0, 1);
             } else {
-              head = Pos(sel.anchor.line, 0);
+              head = new Pos(sel.anchor.line, 0);
             }
           } else {
-            head = Pos(
+            head = new Pos(
                 Math.min(sel.head.line, sel.anchor.line),
-                Math.max(sel.head.ch + 1, sel.anchor.ch));
+                Math.max(sel.head.ch, sel.anchor.ch) + 1);
             height = Math.abs(sel.head.line - sel.anchor.line) + 1;
           }
         } else if (insertAt == 'inplace') {
@@ -2541,7 +2523,7 @@
           vim.visualLine = !!actionArgs.linewise;
           vim.visualBlock = !!actionArgs.blockwise;
           head = clipCursorToContent(
-              cm, Pos(anchor.line, anchor.ch + repeat - 1));
+              cm, new Pos(anchor.line, anchor.ch + repeat - 1));
           vim.sel = {
             anchor: anchor,
             head: head
@@ -2604,13 +2586,13 @@
           // Repeat is the number of lines to join. Minimum 2 lines.
           var repeat = Math.max(actionArgs.repeat, 2);
           curStart = cm.getCursor();
-          curEnd = clipCursorToContent(cm, Pos(curStart.line + repeat - 1,
+          curEnd = clipCursorToContent(cm, new Pos(curStart.line + repeat - 1,
                                                Infinity));
         }
         var finalCh = 0;
         for (var i = curStart.line; i < curEnd.line; i++) {
           finalCh = lineLength(cm, curStart.line);
-          var tmp = Pos(curStart.line + 1,
+          var tmp = new Pos(curStart.line + 1,
                         lineLength(cm, curStart.line + 1));
           var text = cm.getRange(curStart, tmp);
           text = actionArgs.keepSpaces
@@ -2618,7 +2600,7 @@
             : text.replace(/\n\s*/g, ' ');
           cm.replaceRange(text, curStart, tmp);
         }
-        var curFinalPos = Pos(curStart.line, finalCh);
+        var curFinalPos = new Pos(curStart.line, finalCh);
         if (vim.visualMode) {
           exitVisualMode(cm, false);
         }
@@ -2629,7 +2611,7 @@
         var insertAt = copyCursor(cm.getCursor());
         if (insertAt.line === cm.firstLine() && !actionArgs.after) {
           // Special case for inserting newline before start of document.
-          cm.replaceRange('\n', Pos(cm.firstLine(), 0));
+          cm.replaceRange('\n', new Pos(cm.firstLine(), 0));
           cm.setCursor(cm.firstLine(), 0);
         } else {
           insertAt.line = (actionArgs.after) ? insertAt.line :
@@ -2730,7 +2712,7 @@
             // first delete the selected text
             cm.replaceSelections(emptyStrings);
             // Set new selections as per the block length of the yanked text
-            selectionEnd = Pos(selectionStart.line + text.length-1, selectionStart.ch);
+            selectionEnd = new Pos(selectionStart.line + text.length-1, selectionStart.ch);
             cm.setCursor(selectionStart);
             selectBlock(cm, selectionEnd);
             cm.replaceSelections(text);
@@ -2757,7 +2739,7 @@
             for (var i = 0; i < text.length; i++) {
               var line = cur.line+i;
               if (line > cm.lastLine()) {
-                cm.replaceRange('\n',  Pos(line, 0));
+                cm.replaceRange('\n',  new Pos(line, 0));
               }
               var lastCh = lineLength(cm, line);
               if (lastCh < cur.ch) {
@@ -2765,18 +2747,18 @@
               }
             }
             cm.setCursor(cur);
-            selectBlock(cm, Pos(cur.line + text.length-1, cur.ch));
+            selectBlock(cm, new Pos(cur.line + text.length-1, cur.ch));
             cm.replaceSelections(text);
             curPosFinal = cur;
           } else {
             cm.replaceRange(text, cur);
             // Now fine tune the cursor to where we want it.
             if (linewise && actionArgs.after) {
-              curPosFinal = Pos(
+              curPosFinal = new Pos(
               cur.line + 1,
               findFirstNonWhiteSpaceCharacter(cm.getLine(cur.line + 1)));
             } else if (linewise && !actionArgs.after) {
-              curPosFinal = Pos(
+              curPosFinal = new Pos(
                 cur.line,
                 findFirstNonWhiteSpaceCharacter(cm.getLine(cur.line)));
             } else if (!linewise && actionArgs.after) {
@@ -2824,7 +2806,7 @@
           if (replaceTo > line.length) {
             replaceTo=line.length;
           }
-          curEnd = Pos(curStart.line, replaceTo);
+          curEnd = new Pos(curStart.line, replaceTo);
         }
         if (replaceWith=='\n') {
           if (!vim.visualMode) cm.replaceRange('', curStart, curEnd);
@@ -2880,13 +2862,13 @@
           } else {
             numberStr = baseStr + zeroPadding + numberStr;
           }
-          var from = Pos(cur.line, start);
-          var to = Pos(cur.line, end);
+          var from = new Pos(cur.line, start);
+          var to = new Pos(cur.line, end);
           cm.replaceRange(numberStr, from, to);
         } else {
           return;
         }
-        cm.setCursor(Pos(cur.line, start + numberStr.length - 1));
+        cm.setCursor(new Pos(cur.line, start + numberStr.length - 1));
       },
       repeatLastEdit: function(cm, actionArgs, vim) {
         var lastEditInputState = vim.lastEditInputState;
@@ -2923,7 +2905,7 @@
       var line = Math.min(Math.max(cm.firstLine(), cur.line), cm.lastLine() );
       var maxCh = lineLength(cm, line) - 1 + !!includeLineBreak;
       var ch = Math.min(Math.max(0, cur.ch), maxCh);
-      return Pos(line, ch);
+      return new Pos(line, ch);
     }
     function copyArgs(args) {
       var ret = {};
@@ -2939,7 +2921,7 @@
         offsetCh = offsetLine.ch;
         offsetLine = offsetLine.line;
       }
-      return Pos(cur.line + offsetLine, cur.ch + offsetCh);
+      return new Pos(cur.line + offsetLine, cur.ch + offsetCh);
     }
     function commandMatches(keys, keyMap, context, inputState) {
       // Partial matches are not applied. They inform the key handler
@@ -2999,7 +2981,7 @@
       };
     }
     function copyCursor(cur) {
-      return Pos(cur.line, cur.ch);
+      return new Pos(cur.line, cur.ch);
     }
     function cursorEqual(cur1, cur2) {
       return cur1.ch == cur2.ch && cur1.line == cur2.line;
@@ -3046,7 +3028,7 @@
     function extendLineToColumn(cm, lineNum, column) {
       var endCh = lineLength(cm, lineNum);
       var spaces = new Array(column-endCh+1).join(' ');
-      cm.setCursor(Pos(lineNum, endCh));
+      cm.setCursor(new Pos(lineNum, endCh));
       cm.replaceRange(spaces, cm.getCursor());
     }
     // This functions selects a rectangular block
@@ -3127,13 +3109,13 @@
         if (block) {
           var width = block.width;
           var height = block.height;
-          selectionEnd = Pos(selectionStart.line + height, selectionStart.ch + width);
+          selectionEnd = new Pos(selectionStart.line + height, selectionStart.ch + width);
           var selections = [];
           // selectBlock creates a 'proper' rectangular block.
           // We do not want that in all cases, so we manually set selections.
           for (var i = selectionStart.line; i < selectionEnd.line; i++) {
-            var anchor = Pos(i, selectionStart.ch);
-            var head = Pos(i, selectionEnd.ch);
+            var anchor = new Pos(i, selectionStart.ch);
+            var head = new Pos(i, selectionEnd.ch);
             var range = {anchor: anchor, head: head};
             selections.push(range);
           }
@@ -3145,8 +3127,8 @@
           var ch = end.ch - start.ch;
           selectionEnd = {line: selectionEnd.line + line, ch: line ? selectionEnd.ch : ch + selectionEnd.ch};
           if (lastSelection.visualLine) {
-            selectionStart = Pos(selectionStart.line, 0);
-            selectionEnd = Pos(selectionEnd.line, lineLength(cm, selectionEnd.line));
+            selectionStart = new Pos(selectionStart.line, 0);
+            selectionEnd = new Pos(selectionEnd.line, lineLength(cm, selectionEnd.line));
           }
           cm.setSelection(selectionStart, selectionEnd);
         }
@@ -3195,7 +3177,7 @@
         head = cursorMax(head, end);
         head = offsetCursor(head, 0, -1);
         if (head.ch == -1 && head.line != cm.firstLine()) {
-          head = Pos(head.line - 1, lineLength(cm, head.line - 1));
+          head = new Pos(head.line - 1, lineLength(cm, head.line - 1));
         }
       }
       return [anchor, head];
@@ -3211,7 +3193,6 @@
         vim.visualLine ? 'line' : vim.visualBlock ? 'block' : 'char';
       var cmSel = makeCmSelection(cm, sel, mode);
       cm.setSelections(cmSel.ranges, cmSel.primary);
-      updateFakeCursor(cm);
     }
     function makeCmSelection(cm, sel, mode, exclusive) {
       var head = copyCursor(sel.head);
@@ -3244,16 +3225,18 @@
         };
       } else if (mode == 'block') {
         var top = Math.min(anchor.line, head.line),
-            left = Math.min(anchor.ch, head.ch),
+            fromCh = anchor.ch,
             bottom = Math.max(anchor.line, head.line),
-            right = Math.max(anchor.ch, head.ch) + 1;
+            toCh = head.ch;
+        if (fromCh < toCh) { toCh += 1 }
+        else { fromCh += 1 };
         var height = bottom - top + 1;
         var primary = head.line == top ? 0 : height - 1;
         var ranges = [];
         for (var i = 0; i < height; i++) {
           ranges.push({
-            anchor: Pos(top + i, left),
-            head: Pos(top + i, right)
+            anchor: new Pos(top + i, fromCh),
+            head: new Pos(top + i, toCh)
           });
         }
         return {
@@ -3287,7 +3270,6 @@
       vim.visualLine = false;
       vim.visualBlock = false;
       if (!vim.insertMode) CodeMirror.signal(cm, "vim-mode-change", {mode: "normal"});
-      clearFakeCursor(vim);
     }
 
     // Remove any trailing newlines from the selection. For
@@ -3375,7 +3357,7 @@
           if (!start) { start = wordStart; }
         }
       }
-      return { start: Pos(cur.line, start), end: Pos(cur.line, end) };
+      return { start: new Pos(cur.line, start), end: new Pos(cur.line, end) };
     }
 
     /**
@@ -3549,7 +3531,7 @@
         }
       }
       if (state.nextCh || state.curMoveThrough) {
-        return Pos(line, state.index);
+        return new Pos(line, state.index);
       }
       return cur;
     }
@@ -3661,7 +3643,7 @@
           break;
         }
         words.push(word);
-        cur = Pos(word.line, forward ? (word.to - 1) : word.from);
+        cur = new Pos(word.line, forward ? (word.to - 1) : word.from);
       }
       var shortCircuit = words.length != repeat;
       var firstWord = words[0];
@@ -3672,25 +3654,25 @@
           // We did not start in the middle of a word. Discard the extra word at the end.
           lastWord = words.pop();
         }
-        return Pos(lastWord.line, lastWord.from);
+        return new Pos(lastWord.line, lastWord.from);
       } else if (forward && wordEnd) {
-        return Pos(lastWord.line, lastWord.to - 1);
+        return new Pos(lastWord.line, lastWord.to - 1);
       } else if (!forward && wordEnd) {
         // ge
         if (!shortCircuit && (firstWord.to != curStart.ch || firstWord.line != curStart.line)) {
           // We did not start in the middle of a word. Discard the extra word at the end.
           lastWord = words.pop();
         }
-        return Pos(lastWord.line, lastWord.to);
+        return new Pos(lastWord.line, lastWord.to);
       } else {
         // b
-        return Pos(lastWord.line, lastWord.from);
+        return new Pos(lastWord.line, lastWord.from);
       }
     }
 
     function moveToEol(cm, head, motionArgs, vim, keepHPos) {
       var cur = head;
-      var retval= Pos(cur.line + motionArgs.repeat - 1, Infinity);
+      var retval= new Pos(cur.line + motionArgs.repeat - 1, Infinity);
       var end=cm.clipPos(retval);
       end.ch--;
       if (!keepHPos) {
@@ -3712,14 +3694,14 @@
         }
         start = idx;
       }
-      return Pos(cm.getCursor().line, idx);
+      return new Pos(cm.getCursor().line, idx);
     }
 
     function moveToColumn(cm, repeat) {
       // repeat is always >= 1, so repeat - 1 always corresponds
       // to the column we want to go to.
       var line = cm.getCursor().line;
-      return clipCursorToContent(cm, Pos(line, repeat - 1));
+      return clipCursorToContent(cm, new Pos(line, repeat - 1));
     }
 
     function updateMark(cm, vim, markName, pos) {
@@ -3971,7 +3953,7 @@
         repeat--;
       }
 
-      return Pos(curr_index.ln, curr_index.pos);
+      return new Pos(curr_index.ln, curr_index.pos);
     }
 
     // TODO: perhaps this finagling of start and end positions belongs
@@ -3994,8 +3976,8 @@
       // cursor is on a matching open bracket.
       var offset = curChar === openSym ? 1 : 0;
 
-      start = cm.scanForBracket(Pos(cur.line, cur.ch + offset), -1, undefined, {'bracketRegex': bracketRegexp});
-      end = cm.scanForBracket(Pos(cur.line, cur.ch + offset), 1, undefined, {'bracketRegex': bracketRegexp});
+      start = cm.scanForBracket(new Pos(cur.line, cur.ch + offset), -1, undefined, {'bracketRegex': bracketRegexp});
+      end = cm.scanForBracket(new Pos(cur.line, cur.ch + offset), 1, undefined, {'bracketRegex': bracketRegexp});
 
       if (!start || !end) {
         return { start: cur, end: cur };
@@ -4076,8 +4058,8 @@
       }
 
       return {
-        start: Pos(cur.line, start),
-        end: Pos(cur.line, end)
+        start: new Pos(cur.line, start),
+        end: new Pos(cur.line, end)
       };
     }
 
@@ -4297,7 +4279,7 @@
         ignoreCase = (/^[^A-Z]*$/).test(regexPart);
       }
       var regexp = new RegExp(regexPart,
-          (ignoreCase || forceIgnoreCase) ? 'i' : undefined);
+          (ignoreCase || forceIgnoreCase) ? 'im' : 'm');
       return regexp;
     }
 
@@ -4327,7 +4309,7 @@
     }
 
     function showConfirm(cm, template) {
-      var pre = dom('pre', {$color: 'red'}, template);
+      var pre = dom('pre', {$color: 'red', class: 'cm-vim-message'}, template);
       if (cm.openNotification) {
         cm.openNotification(pre, {bottom: true, duration: 5000});
       } else {
@@ -4345,7 +4327,6 @@
     }
 
     function showPrompt(cm, options) {
-      var shortText = (options.prefix || '') + ' ' + (options.desc || '');
       var template = makePrompt(options.prefix, options.desc);
       if (cm.openDialog) {
         cm.openDialog(template, options.onClose, {
@@ -4354,6 +4335,9 @@
         });
       }
       else {
+        var shortText = '';
+        if (typeof options.prefix != "string" && options.prefix) shortText += options.prefix.textContent;
+        if (options.desc) shortText += " " + options.desc;
         options.onClose(prompt(shortText, ''));
       }
     }
@@ -4428,6 +4412,7 @@
     function highlightSearchMatches(cm, query) {
       clearTimeout(highlightTimeout);
       highlightTimeout = setTimeout(function() {
+        if (!cm.state.vim) return;
         var searchState = getSearchState(cm);
         var overlay = searchState.getOverlay();
         if (!overlay || query != overlay.query) {
@@ -4453,12 +4438,19 @@
         var cursor = cm.getSearchCursor(query, pos);
         for (var i = 0; i < repeat; i++) {
           var found = cursor.find(prev);
-          if (i == 0 && found && cursorEqual(cursor.from(), pos)) { found = cursor.find(prev); }
+          if (i == 0 && found && cursorEqual(cursor.from(), pos)) {
+            var lastEndPos = prev ? cursor.from() : cursor.to();
+            found = cursor.find(prev);
+            if (found && !found[0] && cursorEqual(cursor.from(), lastEndPos)) {
+              if (cm.getLine(lastEndPos.line).length == lastEndPos.ch)
+                found = cursor.find(prev);
+            }
+          }
           if (!found) {
             // SearchCursor may have returned null because it hit EOF, wrap
             // around and try again.
             cursor = cm.getSearchCursor(query,
-                (prev) ? Pos(cm.lastLine()) : Pos(cm.firstLine(), 0) );
+                (prev) ? new Pos(cm.lastLine()) : new Pos(cm.firstLine(), 0) );
             if (!cursor.find(prev)) {
               return;
             }
@@ -4494,7 +4486,7 @@
             // SearchCursor may have returned null because it hit EOF, wrap
             // around and try again.
             cursor = cm.getSearchCursor(query,
-                (prev) ? Pos(cm.lastLine()) : Pos(cm.firstLine(), 0) );
+                (prev) ? new Pos(cm.lastLine()) : new Pos(cm.firstLine(), 0) );
             if (!cursor.find(prev)) {
               return;
             }
@@ -4550,7 +4542,7 @@
 
     function getMarkPos(cm, vim, markName) {
       if (markName == '\'' || markName == '`') {
-        return vimGlobalState.jumpList.find(cm, -1) || Pos(0, 0);
+        return vimGlobalState.jumpList.find(cm, -1) || new Pos(0, 0);
       } else if (markName == '.') {
         return getLastEditPos(cm);
       }
@@ -4615,7 +4607,7 @@
             if (command.type == 'exToKey') {
               // Handle Ex to Key mapping.
               for (var i = 0; i < command.toKeys.length; i++) {
-                CodeMirror.Vim.handleKey(cm, command.toKeys[i], 'mapping');
+                vimApi.handleKey(cm, command.toKeys[i], 'mapping');
               }
               return;
             } else if (command.type == 'exToEx') {
@@ -4790,7 +4782,7 @@
           var commandName = lhs.substring(1);
           if (this.commandMap_[commandName] && this.commandMap_[commandName].user) {
             delete this.commandMap_[commandName];
-            return;
+            return true;
           }
         } else {
           // Key to Ex or key to key mapping
@@ -4799,11 +4791,10 @@
             if (keys == defaultKeymap[i].keys
                 && defaultKeymap[i].context === ctx) {
               defaultKeymap.splice(i, 1);
-              return;
+              return true;
             }
           }
         }
-        throw Error('No such mapping.');
       }
     };
 
@@ -4830,13 +4821,11 @@
       vmap: function(cm, params) { this.map(cm, params, 'visual'); },
       unmap: function(cm, params, ctx) {
         var mapArgs = params.args;
-        if (!mapArgs || mapArgs.length < 1) {
+        if (!mapArgs || mapArgs.length < 1 || !exCommandDispatcher.unmap(mapArgs[0], ctx)) {
           if (cm) {
             showConfirm(cm, 'No such mapping: ' + params.input);
           }
-          return;
         }
-        exCommandDispatcher.unmap(mapArgs[0], ctx);
       },
       move: function(cm, params) {
         commandDispatcher.processCommand(cm, cm.state.vim, {
@@ -4964,8 +4953,8 @@
         var lineStart = params.line || cm.firstLine();
         var lineEnd = params.lineEnd || params.line || cm.lastLine();
         if (lineStart == lineEnd) { return; }
-        var curStart = Pos(lineStart, 0);
-        var curEnd = Pos(lineEnd, lineLength(cm, lineEnd));
+        var curStart = new Pos(lineStart, 0);
+        var curEnd = new Pos(lineEnd, lineLength(cm, lineEnd));
         var text = cm.getRange(curStart, curEnd).split('\n');
         var numberRegex = pattern ? pattern :
            (number == 'decimal') ? /(-?)([\d]+)/ :
@@ -5106,12 +5095,6 @@
               regexPart = new RegExp(regexPart).source; //normalize not escaped characters
           }
           replacePart = tokens[1];
-          // 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 (getOption('pcre')) {
               replacePart = unescapeRegexReplace(replacePart.replace(/([^\\])&/g,"$1$$&"));
@@ -5177,7 +5160,7 @@
           lineStart = lineEnd;
           lineEnd = lineStart + count - 1;
         }
-        var startPos = clipCursorToContent(cm, Pos(lineStart, 0));
+        var startPos = clipCursorToContent(cm, new Pos(lineStart, 0));
         var cursor = cm.getSearchCursor(query, startPos);
         doReplace(cm, confirm, global, lineStart, lineEnd, cursor, query, replacePart, params.callback);
       },
@@ -5301,10 +5284,18 @@
         lineEnd += modifiedLineNumber - unmodifiedLineNumber;
         joined = modifiedLineNumber < unmodifiedLineNumber;
       }
+      function findNextValidMatch() {
+        var lastMatchTo = lastPos && copyCursor(searchCursor.to());
+        var match = searchCursor.findNext();
+        if (match && !match[0] && lastMatchTo && cursorEqual(searchCursor.from(), lastMatchTo)) {
+          match = searchCursor.findNext();
+        }
+        return match;
+      }
       function next() {
         // The below only loops to skip over multiple occurrences on the same
         // line when 'global' is not true.
-        while(searchCursor.findNext() &&
+        while(findNextValidMatch() &&
               isInRange(searchCursor.from(), lineStart, lineEnd)) {
           if (!global && searchCursor.from().line == modifiedLineNumber && !joined) {
             continue;
@@ -5469,7 +5460,7 @@
           match = (/<\w+-.+?>|<\w+>|./).exec(text);
           key = match[0];
           text = text.substring(match.index + key.length);
-          CodeMirror.Vim.handleKey(cm, key, 'macro');
+          vimApi.handleKey(cm, key, 'macro');
           if (vim.insertMode) {
             var changes = register.insertModeChanges[imc++].changes;
             vimGlobalState.macroModeState.lastInsertModeChanges.changes =
@@ -5564,36 +5555,6 @@
       } else if (!cm.curOp.isVimOp) {
         handleExternalSelection(cm, vim);
       }
-      if (vim.visualMode) {
-        updateFakeCursor(cm);
-      }
-    }
-    /**
-     * Keeps track of a fake cursor to support visual mode cursor behavior.
-     */
-    function updateFakeCursor(cm) {
-      var className = 'cm-animate-fat-cursor';
-      var vim = cm.state.vim;
-      var from = clipCursorToContent(cm, copyCursor(vim.sel.head));
-      var to = offsetCursor(from, 0, 1);
-      clearFakeCursor(vim);
-      // In visual mode, the cursor may be positioned over EOL.
-      if (from.ch == cm.getLine(from.line).length) {
-        var widget = dom('span', { 'class': className }, '\u00a0');
-        vim.fakeCursorBookmark = cm.setBookmark(from, {widget: widget});
-      } else {
-        vim.fakeCursor = cm.markText(from, to, {className: className});
-      }
-    }
-    function clearFakeCursor(vim) {
-      if (vim.fakeCursor) {
-        vim.fakeCursor.clear();
-        vim.fakeCursor = null;
-      }
-      if (vim.fakeCursorBookmark) {
-        vim.fakeCursorBookmark.clear();
-        vim.fakeCursorBookmark = null;
-      }
     }
     function handleExternalSelection(cm, vim) {
       var anchor = cm.getCursor('anchor');
@@ -5735,12 +5696,12 @@
           if (change instanceof InsertModeKey) {
             CodeMirror.lookupKey(change.keyName, 'vim-insert', keyHandler);
           } else if (typeof change == "string") {
-            var cur = cm.getCursor();
-            cm.replaceRange(change, cur, cur);
+            cm.replaceSelection(change);
           } else {
             var start = cm.getCursor();
             var end = offsetCursor(start, 0, change[0].length);
             cm.replaceRange(change[0], start, end);
+            cm.setCursor(end);
           }
         }
       }

+ 4 - 2
plugins/codemirror/mode/css/css.js

@@ -443,13 +443,15 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
     "monochrome", "min-monochrome", "max-monochrome", "resolution",
     "min-resolution", "max-resolution", "scan", "grid", "orientation",
     "device-pixel-ratio", "min-device-pixel-ratio", "max-device-pixel-ratio",
-    "pointer", "any-pointer", "hover", "any-hover", "prefers-color-scheme"
+    "pointer", "any-pointer", "hover", "any-hover", "prefers-color-scheme",
+    "dynamic-range", "video-dynamic-range"
   ], mediaFeatures = keySet(mediaFeatures_);
 
   var mediaValueKeywords_ = [
     "landscape", "portrait", "none", "coarse", "fine", "on-demand", "hover",
     "interlace", "progressive",
-    "dark", "light"
+    "dark", "light",
+    "standard", "high"
   ], mediaValueKeywords = keySet(mediaValueKeywords_);
 
   var propertyKeywords_ = [

+ 8 - 0
plugins/codemirror/mode/gas/gas.js

@@ -144,18 +144,26 @@ CodeMirror.defineMode("gas", function(_config, parserConfig) {
   function x86(_parserConfig) {
     lineCommentStartSymbol = "#";
 
+    registers.al  = "variable";
+    registers.ah  = "variable";
     registers.ax  = "variable";
     registers.eax = "variable-2";
     registers.rax = "variable-3";
 
+    registers.bl  = "variable";
+    registers.bh  = "variable";
     registers.bx  = "variable";
     registers.ebx = "variable-2";
     registers.rbx = "variable-3";
 
+    registers.cl  = "variable";
+    registers.ch  = "variable";
     registers.cx  = "variable";
     registers.ecx = "variable-2";
     registers.rcx = "variable-3";
 
+    registers.dl  = "variable";
+    registers.dh  = "variable";
     registers.dx  = "variable";
     registers.edx = "variable-2";
     registers.rdx = "variable-3";

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 2 - 2
plugins/codemirror/mode/nsis/nsis.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 3 - 3
plugins/codemirror/mode/php/php.js


+ 5 - 5
plugins/codemirror/mode/soy/soy.js

@@ -140,10 +140,10 @@
         state.context = new Context(state.context, "list-literal", state.variables);
         state.lookupVariables = false;
         return null;
-      } else if (stream.match(/map\b/)) {
+      } else if (stream.match(/\bmap(?=\()/)) {
         state.soyState.push("map-literal");
         return "keyword";
-      } else if (stream.match(/record\b/)) {
+      } else if (stream.match(/\brecord(?=\()/)) {
         state.soyState.push("record-literal");
         return "keyword";
       } else if (stream.match(/([\w]+)(?=\()/)) {
@@ -454,11 +454,11 @@
               state.indent -= 2 * config.indentUnit;
               return null;
             }
-            if (stream.match(/\w+(?=\s+as)/)) {
+            if (stream.match(/\w+(?=\s+as\b)/)) {
               return "variable";
             }
             if (match = stream.match(/\w+/)) {
-              return /(from|as)/.test(match[0]) ? "keyword" : "def";
+              return /\b(from|as)\b/.test(match[0]) ? "keyword" : "def";
             }
             if (match = stream.match(/^["']/)) {
               state.soyState.push("string");
@@ -605,7 +605,7 @@
           state.indent += 2 * config.indentUnit;
           state.soyState.push("tag");
           return "keyword";
-        } else if (!state.context && stream.match(/\bimport\b/)) {
+        } else if (!state.context && stream.sol() && stream.match(/import\b/)) {
           state.soyState.push("import");
           state.indent += 2 * config.indentUnit;
           return "keyword";

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 2 - 2
plugins/codemirror/mode/sql/sql.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 2 - 2
plugins/codemirror/mode/stylus/stylus.js


+ 11 - 7
plugins/codemirror/mode/xml/xml.js

@@ -187,6 +187,10 @@ CodeMirror.defineMode("xml", function(editorConf, config_) {
     };
   }
 
+  function lower(tagName) {
+    return tagName && tagName.toLowerCase();
+  }
+
   function Context(state, tagName, startOfLine) {
     this.prev = state.context;
     this.tagName = tagName || "";
@@ -205,8 +209,8 @@ CodeMirror.defineMode("xml", function(editorConf, config_) {
         return;
       }
       parentTagName = state.context.tagName;
-      if (!config.contextGrabbers.hasOwnProperty(parentTagName) ||
-          !config.contextGrabbers[parentTagName].hasOwnProperty(nextTagName)) {
+      if (!config.contextGrabbers.hasOwnProperty(lower(parentTagName)) ||
+          !config.contextGrabbers[lower(parentTagName)].hasOwnProperty(lower(nextTagName))) {
         return;
       }
       popContext(state);
@@ -240,7 +244,7 @@ CodeMirror.defineMode("xml", function(editorConf, config_) {
     if (type == "word") {
       var tagName = stream.current();
       if (state.context && state.context.tagName != tagName &&
-          config.implicitlyClosed.hasOwnProperty(state.context.tagName))
+          config.implicitlyClosed.hasOwnProperty(lower(state.context.tagName)))
         popContext(state);
       if ((state.context && state.context.tagName == tagName) || config.matchClosing === false) {
         setStyle = "tag";
@@ -279,7 +283,7 @@ CodeMirror.defineMode("xml", function(editorConf, config_) {
       var tagName = state.tagName, tagStart = state.tagStart;
       state.tagName = state.tagStart = null;
       if (type == "selfcloseTag" ||
-          config.autoSelfClosers.hasOwnProperty(tagName)) {
+          config.autoSelfClosers.hasOwnProperty(lower(tagName))) {
         maybePopContext(state, tagName);
       } else {
         maybePopContext(state, tagName);
@@ -359,7 +363,7 @@ CodeMirror.defineMode("xml", function(editorConf, config_) {
           if (context.tagName == tagAfter[2]) {
             context = context.prev;
             break;
-          } else if (config.implicitlyClosed.hasOwnProperty(context.tagName)) {
+          } else if (config.implicitlyClosed.hasOwnProperty(lower(context.tagName))) {
             context = context.prev;
           } else {
             break;
@@ -367,8 +371,8 @@ CodeMirror.defineMode("xml", function(editorConf, config_) {
         }
       } else if (tagAfter) { // Opening tag spotted
         while (context) {
-          var grabbers = config.contextGrabbers[context.tagName];
-          if (grabbers && grabbers.hasOwnProperty(tagAfter[2]))
+          var grabbers = config.contextGrabbers[lower(context.tagName)];
+          if (grabbers && grabbers.hasOwnProperty(lower(tagAfter[2])))
             context = context.prev;
           else
             break;

+ 0 - 3
plugins/codemirror/theme/solarized.css

@@ -35,12 +35,10 @@ http://ethanschoonover.com/solarized/img/solarized-palette.png
 .cm-s-solarized.cm-s-dark {
   color: #839496;
   background-color: #002b36;
-  text-shadow: #002b36 0 1px;
 }
 .cm-s-solarized.cm-s-light {
   background-color: #fdf6e3;
   color: #657b83;
-  text-shadow: #eee8d5 0 1px;
 }
 
 .cm-s-solarized .CodeMirror-widget {
@@ -126,7 +124,6 @@ http://ethanschoonover.com/solarized/img/solarized-palette.png
 
 .cm-s-solarized.cm-s-dark .CodeMirror-linenumber {
   color: #586e75;
-  text-shadow: #021014 0 -1px;
 }
 
 /* Light */

+ 1 - 1
plugins/datatables-colreorder/js/colReorder.bootstrap4.min.js

@@ -2,4 +2,4 @@
  Bootstrap 4 styling wrapper for ColReorder
  ©2018 SpryMedia Ltd - datatables.net/license
 */
-(function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net-bs4","datatables.net-colreorder"],function(a){return c(a,window,document)}):"object"===typeof exports?module.exports=function(a,b){a||(a=window);if(!b||!b.fn.dataTable)b=require("datatables.net-bs4")(a,b).$;b.fn.dataTable.ColReorder||require("datatables.net-colreorder")(a,b);return c(b,a,a.document)}:c(jQuery,window,document)})(function(c){return c.fn.dataTable});
+(function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net-bs4","datatables.net-colreorder"],function(a){return c(a,window,document)}):"object"===typeof exports?module.exports=function(a,b){a||(a=window);b&&b.fn.dataTable||(b=require("datatables.net-bs4")(a,b).$);b.fn.dataTable.ColReorder||require("datatables.net-colreorder")(a,b);return c(b,a,a.document)}:c(jQuery,window,document)})(function(c,a,b,d){return c.fn.dataTable});

+ 46 - 49
plugins/datatables-fixedcolumns/css/fixedColumns.bootstrap4.css

@@ -1,64 +1,61 @@
-table.DTFC_Cloned tr {
+tr.even td {
+  background-color: #ffffff;
+}
+
+tr.odd td {
+  background-color: #f9f9f9;
+}
+
+tr.selected td {
+  background-color: #0088cc;
+}
+
+thead th {
   background-color: white;
-  margin-bottom: 0;
 }
 
-div.DTFC_LeftHeadWrapper table,
-div.DTFC_RightHeadWrapper table {
-  border-bottom: none !important;
-  margin-bottom: 0 !important;
+tfoot th {
   background-color: white;
 }
 
-div.DTFC_LeftBodyWrapper table,
-div.DTFC_RightBodyWrapper table {
-  border-top: none;
-  margin: 0 !important;
-  z-index: 2;
+th.dtfc-fixed-left,
+th.dtfc-fixed-right,
+td.dtfc-fixed-left,
+td.dtfc-fixed-right {
+  z-index: 1;
 }
-div.DTFC_LeftBodyWrapper table thead .sorting:before, div.DTFC_LeftBodyWrapper table thead .sorting:after,
-div.DTFC_LeftBodyWrapper table thead .sorting_asc:before,
-div.DTFC_LeftBodyWrapper table thead .sorting_asc:after,
-div.DTFC_LeftBodyWrapper table thead .sorting_desc:before,
-div.DTFC_LeftBodyWrapper table thead .sorting_desc:after,
-div.DTFC_LeftBodyWrapper table thead .sorting:before,
-div.DTFC_LeftBodyWrapper table thead .sorting:after,
-div.DTFC_LeftBodyWrapper table thead .sorting_asc:before,
-div.DTFC_LeftBodyWrapper table thead .sorting_asc:after,
-div.DTFC_LeftBodyWrapper table thead .sorting_desc:before,
-div.DTFC_LeftBodyWrapper table thead .sorting_desc:after,
-div.DTFC_RightBodyWrapper table thead .sorting:before,
-div.DTFC_RightBodyWrapper table thead .sorting:after,
-div.DTFC_RightBodyWrapper table thead .sorting_asc:before,
-div.DTFC_RightBodyWrapper table thead .sorting_asc:after,
-div.DTFC_RightBodyWrapper table thead .sorting_desc:before,
-div.DTFC_RightBodyWrapper table thead .sorting_desc:after,
-div.DTFC_RightBodyWrapper table thead .sorting:before,
-div.DTFC_RightBodyWrapper table thead .sorting:after,
-div.DTFC_RightBodyWrapper table thead .sorting_asc:before,
-div.DTFC_RightBodyWrapper table thead .sorting_asc:after,
-div.DTFC_RightBodyWrapper table thead .sorting_desc:before,
-div.DTFC_RightBodyWrapper table thead .sorting_desc:after {
-  display: none;
+
+div.dtfc-right-top-blocker,
+div.dtfc-left-top-blocker {
+  margin-top: 6px;
+  border-bottom: 0px solid #ddd !important;
 }
-div.DTFC_LeftBodyWrapper table tbody tr:first-child th,
-div.DTFC_LeftBodyWrapper table tbody tr:first-child td,
-div.DTFC_RightBodyWrapper table tbody tr:first-child th,
-div.DTFC_RightBodyWrapper table tbody tr:first-child td {
-  border-top: none;
+
+table.dataTable.table-bordered.dtfc-has-left {
+  border-left: none;
 }
 
-div.DTFC_LeftFootWrapper table,
-div.DTFC_RightFootWrapper table {
-  border-top: none;
-  margin-top: 0 !important;
-  background-color: white;
+div.dataTables_scroll.dtfc-has-left table.table-bordered {
+  border-left: none;
 }
 
-div.DTFC_Blocker {
-  background-color: white;
+div.dataTables_scrollBody {
+  border-left: 1px solid #ddd !important;
 }
 
-table.dataTable.table-striped.DTFC_Cloned tbody {
-  background-color: white;
+div.dataTables_scrollFootInner table.table-bordered tr th:first-child,
+div.dataTables_scrollHeadInner table.table-bordered tr th:first-child {
+  border-left: 1px solid #ddd !important;
+}
+
+tr.dt-rowReorder-moving td.dtfc-fixed-left,
+tr.dt-rowReorder-moving td.dtfc-fixed-right {
+  border-top: 2px solid #888 !important;
+  border-bottom: 2px solid #888 !important;
+}
+tr.dt-rowReorder-moving td.dtfc-fixed-left:first-child {
+  border-left: 2px solid #888 !important;
+}
+tr.dt-rowReorder-moving td.dtfc-fixed-right:last-child {
+  border-right: 2px solid #888 !important;
 }

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
plugins/datatables-fixedcolumns/css/fixedColumns.bootstrap4.min.css


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 556 - 1687
plugins/datatables-fixedcolumns/js/dataTables.fixedColumns.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 17 - 35
plugins/datatables-fixedcolumns/js/dataTables.fixedColumns.min.js


+ 40 - 35
plugins/datatables-fixedcolumns/js/fixedColumns.bootstrap4.js

@@ -1,38 +1,43 @@
-/*! Bootstrap 4 styling wrapper for FixedColumns
- * ©2018 SpryMedia Ltd - datatables.net/license
+/*! FixedColumns 4.0.1
+ * 2019-2021 SpryMedia Ltd - datatables.net/license
  */
+(function () {
+    'use strict';
 
-(function( factory ){
-	if ( typeof define === 'function' && define.amd ) {
-		// AMD
-		define( ['jquery', 'datatables.net-bs4', 'datatables.net-fixedcolumns'], function ( $ ) {
-			return factory( $, window, document );
-		} );
-	}
-	else if ( typeof exports === 'object' ) {
-		// CommonJS
-		module.exports = function (root, $) {
-			if ( ! root ) {
-				root = window;
-			}
+    /*! Bootstrap 4 integration for DataTables' FixedColumns
+     * ©2016 SpryMedia Ltd - datatables.net/license
+     */
+    (function (factory) {
+        if (typeof define === 'function' && define.amd) {
+            // AMD
+            define(['jquery', 'datatables.net-bs4', 'datatables.net-fixedcolumns'], function ($) {
+                return factory($);
+            });
+        }
+        else if (typeof exports === 'object') {
+            // CommonJS
+            module.exports = function (root, $) {
+                if (!root) {
+                    root = window;
+                }
+                if (!$ || !$.fn.dataTable) {
+                    // eslint-disable-next-line @typescript-eslint/no-var-requires
+                    $ = require('datatables.net-bs4')(root, $).$;
+                }
+                if (!$.fn.dataTable.SearchPanes) {
+                    // eslint-disable-next-line @typescript-eslint/no-var-requires
+                    require('datatables.net-fixedcolumns')(root, $);
+                }
+                return factory($);
+            };
+        }
+        else {
+            // Browser
+            factory(jQuery);
+        }
+    }(function ($) {
+        var dataTable = $.fn.dataTable;
+        return dataTable.fixedColumns;
+    }));
 
-			if ( ! $ || ! $.fn.dataTable ) {
-				$ = require('datatables.net-bs4')(root, $).$;
-			}
-
-			if ( ! $.fn.dataTable.FixedColumns ) {
-				require('datatables.net-fixedcolumns')(root, $);
-			}
-
-			return factory( $, root, root.document );
-		};
-	}
-	else {
-		// Browser
-		factory( jQuery, window, document );
-	}
-}(function( $, window, document, undefined ) {
-
-return $.fn.dataTable;
-
-}));
+}());

+ 3 - 3
plugins/datatables-fixedcolumns/js/fixedColumns.bootstrap4.min.js

@@ -1,5 +1,5 @@
 /*!
- Bootstrap 4 styling wrapper for FixedColumns
- ©2018 SpryMedia Ltd - datatables.net/license
+ Bootstrap 4 integration for DataTables' FixedColumns
+ ©2016 SpryMedia Ltd - datatables.net/license
 */
-(function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net-bs4","datatables.net-fixedcolumns"],function(a){return c(a,window,document)}):"object"===typeof exports?module.exports=function(a,b){a||(a=window);if(!b||!b.fn.dataTable)b=require("datatables.net-bs4")(a,b).$;b.fn.dataTable.FixedColumns||require("datatables.net-fixedcolumns")(a,b);return c(b,a,a.document)}:c(jQuery,window,document)})(function(c){return c.fn.dataTable});
+(function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net-bs4","datatables.net-fixedcolumns"],function(b){return c(b)}):"object"===typeof exports?module.exports=function(b,a){b||(b=window);a&&a.fn.dataTable||(a=require("datatables.net-bs4")(b,a).$);a.fn.dataTable.SearchPanes||require("datatables.net-fixedcolumns")(b,a);return c(a)}:c(jQuery)})(function(c){return c.fn.dataTable.fixedColumns});

+ 0 - 4
plugins/datatables-fixedheader/css/fixedHeader.bootstrap4.css

@@ -5,10 +5,6 @@ table.dataTable.fixedHeader-locked {
   margin-bottom: 0 !important;
 }
 
-table.dataTable.fixedHeader-floating {
-  position: fixed !important;
-}
-
 table.dataTable.fixedHeader-locked {
   position: absolute !important;
 }

+ 1 - 1
plugins/datatables-fixedheader/css/fixedHeader.bootstrap4.min.css

@@ -1 +1 @@
-table.dataTable.fixedHeader-floating,table.dataTable.fixedHeader-locked{background-color:white;margin-top:0 !important;margin-bottom:0 !important}table.dataTable.fixedHeader-floating{position:fixed !important}table.dataTable.fixedHeader-locked{position:absolute !important}@media print{table.fixedHeader-floating{display:none}}
+table.dataTable.fixedHeader-floating,table.dataTable.fixedHeader-locked{background-color:white;margin-top:0 !important;margin-bottom:0 !important}table.dataTable.fixedHeader-locked{position:absolute !important}@media print{table.fixedHeader-floating{display:none}}

+ 347 - 41
plugins/datatables-fixedheader/js/dataTables.fixedHeader.js

@@ -1,4 +1,4 @@
-/*! FixedHeader 3.1.9
+/*! FixedHeader 3.2.0
  * ©2009-2021 SpryMedia Ltd - datatables.net/license
  */
 
@@ -6,7 +6,7 @@
  * @summary     FixedHeader
  * @description Fix a table's header or footer, so it is always visible while
  *              scrolling
- * @version     3.1.9
+ * @version     3.2.0
  * @file        dataTables.fixedHeader.js
  * @author      SpryMedia Ltd (www.sprymedia.co.uk)
  * @contact     www.sprymedia.co.uk/contact
@@ -102,11 +102,13 @@ var FixedHeader = function ( dt, config ) {
 		header: {
 			host: null,
 			floating: null,
+			floatingParent: $('<div class="dtfh-floatingparent">'),
 			placeholder: null
 		},
 		footer: {
 			host: null,
 			floating: null,
+			floatingParent: $('<div class="dtfh-floatingparent">'),
 			placeholder: null
 		}
 	};
@@ -208,7 +210,7 @@ $.extend( FixedHeader.prototype, {
 	/**
 	 * Recalculate the position of the fixed elements and force them into place
 	 */
-	update: function ()
+	update: function (force)
 	{
 		var table = this.s.dt.table().node();
 
@@ -219,8 +221,14 @@ $.extend( FixedHeader.prototype, {
 			this.enable( false, false );
 		}
 
+		// Don't update if header is not in the document atm (due to
+		// async events)
+		if ($(table).children('thead').length === 0) {
+			return;
+		}
+
 		this._positions();
-		this._scroll( true );
+		this._scroll( force !== undefined ? force : true );
 	},
 
 
@@ -258,15 +266,21 @@ $.extend( FixedHeader.prototype, {
 			this.c.footerOffset = autoFooter.outerHeight();
 		}
 
-		dt.on( 'column-reorder.dt.dtfc column-visibility.dt.dtfc draw.dt.dtfc column-sizing.dt.dtfc responsive-display.dt.dtfc', function () {
-			that.update();
-		} );
+		dt
+			.on( 'column-reorder.dt.dtfc column-visibility.dt.dtfc column-sizing.dt.dtfc responsive-display.dt.dtfc', function (e, ctx) {
+				that.update();
+			} )
+			.on( 'draw.dt.dtfc', function (e, ctx) {
+				// For updates from our own table, don't reclone, but for all others, do
+				that.update(ctx === dt.settings()[0] ? false : true);
+			} );
 
 		dt.on( 'destroy.dtfc', function () {
 			that.destroy();
 		} );
 
 		this._positions();
+		$('div.dataTables_scrollHeadInner').height(this.s.position.theadHeight);
 		this._scroll();
 	},
 
@@ -293,25 +307,74 @@ $.extend( FixedHeader.prototype, {
 			this.dom.thead :
 			this.dom.tfoot;
 
+		// If footer and scrolling is enabled then we don't clone
+		// Instead the table's height is decreased accordingly - see `_scroll()`
+		if (item === 'footer' && this._scrollEnabled()) {
+			return;
+		}	
+
 		if ( ! force && itemDom.floating ) {
 			// existing floating element - reuse it
 			itemDom.floating.removeClass( 'fixedHeader-floating fixedHeader-locked' );
 		}
 		else {
 			if ( itemDom.floating ) {
-				itemDom.placeholder.remove();
+				if(itemDom.placeholder !== null) {
+					itemDom.placeholder.remove();
+				}
 				this._unsize( item );
 				itemDom.floating.children().detach();
 				itemDom.floating.remove();
 			}
 
+			var tableNode = $(dt.table().node()); 
+			var scrollBody = $(tableNode.parent());
+			var scrollEnabled = this._scrollEnabled();
+
 			itemDom.floating = $( dt.table().node().cloneNode( false ) )
-				.css( 'table-layout', 'fixed' )
 				.attr( 'aria-hidden', 'true' )
+				.css({
+					'table-layout': 'fixed',
+					top: 0,
+					left: 0
+				})
 				.removeAttr( 'id' )
-				.append( itemElement )
+				.append( itemElement );
+
+			itemDom.floatingParent
+				.css({
+					width: scrollBody.width(),
+					overflow: 'hidden',
+					height: 'fit-content',
+					position: 'fixed',
+					left: scrollEnabled ? tableNode.offset().left + scrollBody.scrollLeft() : 0
+				})
+				.css(
+					item === 'header' ?
+						{
+							top: this.c.headerOffset,
+							bottom: ''
+						} :
+						{
+							top: '',
+							bottom: this.c.footerOffset
+						}
+				)
+				.addClass(item === 'footer' ? 'dtfh-floatingparentfoot' : 'dtfh-floatingparenthead')
+				.append(itemDom.floating)
 				.appendTo( 'body' );
 
+			this._stickyPosition(itemDom.floating, '-');
+
+			var scrollLeftUpdate = () => {
+				var scrollLeft = scrollBody.scrollLeft()
+				this.s.scrollLeft = {footer: scrollLeft, header: scrollLeft};
+				itemDom.floatingParent.scrollLeft(this.s.scrollLeft.header);
+			}
+
+			scrollLeftUpdate();
+			scrollBody.scroll(scrollLeftUpdate)
+
 			// Insert a fake thead/tfoot into the DataTable to stop it jumping around
 			itemDom.placeholder = itemElement.clone( false );
 			itemDom.placeholder
@@ -326,6 +389,35 @@ $.extend( FixedHeader.prototype, {
 	},
 
 	/**
+	 * This method sets the sticky position of the header elements to match fixed columns
+	 * @param {JQuery<HTMLElement>} el 
+	 * @param {string} sign 
+	 */
+	_stickyPosition(el, sign) {
+		if (this._scrollEnabled()) {
+			var that = this
+			var rtl = $(that.s.dt.table().node()).css('direction') === 'rtl';
+
+			el.find('th').each(function() {
+				// Find out if fixed header has previously set this column
+				if ($(this).css('position') === 'sticky') {
+					var right = $(this).css('right');
+					var left = $(this).css('left');
+					if (right !== 'auto' && !rtl) {
+						// New position either adds or dismisses the barWidth
+						var potential = +right.replace(/px/g, '') + (sign === '-' ? -1 : 1) * that.s.dt.settings()[0].oBrowser.barWidth;
+						$(this).css('right', potential > 0 ? potential : 0);
+					}
+					else if(left !== 'auto' && rtl) {
+						var potential = +left.replace(/px/g, '') + (sign === '-' ? -1 : 1) * that.s.dt.settings()[0].oBrowser.barWidth;
+						$(this).css('left', potential > 0 ? potential : 0);
+					}
+				}
+			});
+		}
+	},
+
+	/**
 	 * Copy widths from the cells in one element to another. This is required
 	 * for the footer as the footer in the main table takes its sizes from the
 	 * header columns. That isn't present in the footer so to have it still
@@ -398,7 +490,12 @@ $.extend( FixedHeader.prototype, {
 		var lastScrollLeft = this.s.scrollLeft;
 
 		if ( itemDom.floating && lastScrollLeft[ item ] !== scrollLeft ) {
-			itemDom.floating.css( 'left', position.left - scrollLeft );
+			// If scrolling is enabled we need to match the floating header to the body
+			if (this._scrollEnabled()) {
+				var newScrollLeft = $($(this.s.dt.table().node()).parent()).scrollLeft()
+				itemDom.floating.scrollLeft(newScrollLeft);
+				itemDom.floatingParent.scrollLeft(newScrollLeft);
+			}
 
 			lastScrollLeft[ item ] = scrollLeft;
 		}
@@ -425,11 +522,27 @@ $.extend( FixedHeader.prototype, {
 		var itemDom = this.dom[ item ];
 		var position = this.s.position;
 
+		// Just determine if scroll is enabled once
+		var scrollEnabled = this._scrollEnabled();
+
+		// If footer and scrolling is enabled then we don't clone
+		// Instead the table's height is decreased accordingly - see `_scroll()`
+		if (item === 'footer' && scrollEnabled) {
+			return;
+		}		
+
 		// 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;';
 			});
+
+			// If not scrolling also have to update the floatingParent
+			if (!scrollEnabled) {
+				itemDom.floatingParent.attr('style', function(i,s) {
+					return (s || '') + 'width: '+w+'px !important;';
+				});
+			}
 		};
 
 		// Record focus. Browser's will cause input elements to loose focus if
@@ -438,10 +551,7 @@ $.extend( FixedHeader.prototype, {
 		var focus = $.contains( tablePart[0], document.activeElement ) ?
 			document.activeElement :
 			null;
-		
-		if ( focus ) {
-			focus.blur();
-		}
+		var scrollBody = $($(this.s.dt.table().node()).parent());
 
 		if ( mode === 'in-place' ) {
 			// Insert the header back into the table's real header
@@ -462,17 +572,53 @@ $.extend( FixedHeader.prototype, {
 			if ( itemDom.floating ) {
 				itemDom.floating.remove();
 				itemDom.floating = null;
+				this._stickyPosition(itemDom.host, '+');
 			}
+
+			if ( itemDom.floatingParent ) {
+				itemDom.floatingParent.remove();
+			}
+
+			$($(itemDom.host.parent()).parent()).scrollLeft(scrollBody.scrollLeft())
 		}
 		else if ( mode === 'in' ) {
 			// Remove the header from the read header and insert into a fixed
 			// positioned floating table clone
 			this._clone( item, forceChange );
 
-			itemDom.floating
-				.addClass( 'fixedHeader-floating' )
-				.css( item === 'header' ? 'top' : 'bottom', this.c[item+'Offset'] )
-				.css( 'left', position.left+'px' );
+			// Get useful position values
+			var scrollOffset = scrollBody.offset();
+			var windowTop = $(document).scrollTop();
+			var windowHeight = $(window).height();
+			var windowBottom = windowTop + windowHeight;
+			var bodyTop = scrollEnabled ? scrollOffset.top : position.tbodyTop;
+			var bodyBottom = scrollEnabled ? scrollOffset.top + scrollBody.outerHeight() : position.tfootTop
+
+			// Calculate the amount that the footer or header needs to be shuffled
+			var shuffle = item === 'footer' ?
+				// footer and top of body isn't on screen
+				bodyTop > windowBottom ?
+					// Yes - push the footer below
+					position.tfootHeight :
+					// No - bottom set to the gap between the top of the body and the bottom of the window
+					bodyTop + position.tfootHeight - windowBottom :
+				// Otherwise must be a header so get the difference from the bottom of the
+				//  desired floating header and the bottom of the table body
+				windowTop + this.c.headerOffset + position.theadHeight - bodyBottom
+				
+			// Set the top or bottom based off of the offset and the shuffle value
+			var prop = item === 'header' ? 'top' : 'bottom';
+			var val = this.c[item+'Offset'] - (shuffle > 0 ? shuffle : 0);
+
+			itemDom.floating.addClass( 'fixedHeader-floating' );
+			itemDom.floatingParent
+				.css(prop, val)
+				.css( {
+					'left': position.left,
+					'height': item === 'header' ? position.theadHeight : position.tfootHeight,
+					'z-index': 2
+				})
+				.append(itemDom.floating);
 
 			importantWidth(position.width);
 
@@ -484,10 +630,12 @@ $.extend( FixedHeader.prototype, {
 			// Fix the position of the floating header at base of the table body
 			this._clone( item, forceChange );
 
-			itemDom.floating
-				.addClass( 'fixedHeader-locked' )
-				.css( 'top', position.tfootTop - position.theadHeight )
-				.css( 'left', position.left+'px' );
+			itemDom.floating.addClass( 'fixedHeader-locked' );
+			itemDom.floatingParent.css({
+				position: 'absolute',
+				top: position.tfootTop - position.theadHeight,
+				left: position.left+'px'
+			});
 
 			importantWidth(position.width);
 		}
@@ -495,10 +643,12 @@ $.extend( FixedHeader.prototype, {
 			// Fix the position of the floating footer at top of the table body
 			this._clone( item, forceChange );
 
-			itemDom.floating
-				.addClass( 'fixedHeader-locked' )
-				.css( 'top', position.tbodyTop )
-				.css( 'left', position.left+'px' );
+			itemDom.floating.addClass( 'fixedHeader-locked' );
+			itemDom.floatingParent.css({
+				position: 'absolute',
+				top: position.tbodyTop,
+				left: position.left+'px'
+			});
 
 			importantWidth(position.width);
 		}
@@ -528,26 +678,29 @@ $.extend( FixedHeader.prototype, {
 		var position = this.s.position;
 		var dom = this.dom;
 		var tableNode = $(table.node());
+		var scrollEnabled = this._scrollEnabled();
 
 		// Need to use the header and footer that are in the main table,
 		// regardless of if they are clones, since they hold the positions we
 		// want to measure from
-		var thead = tableNode.children('thead');
-		var tfoot = tableNode.children('tfoot');
+		var thead = $(dt.table().header());
+		var tfoot = $(dt.table().footer());
 		var tbody = dom.tbody;
+		var scrollBody = tableNode.parent();
 
 		position.visible = tableNode.is(':visible');
 		position.width = tableNode.outerWidth();
 		position.left = tableNode.offset().left;
 		position.theadTop = thead.offset().top;
-		position.tbodyTop = tbody.offset().top;
-		position.tbodyHeight = tbody.outerHeight();
-		position.theadHeight = position.tbodyTop - position.theadTop;
+		position.tbodyTop = scrollEnabled ? scrollBody.offset().top : tbody.offset().top;
+		position.tbodyHeight = scrollEnabled ? scrollBody.outerHeight() : tbody.outerHeight();
+		position.theadHeight = thead.outerHeight();
+		position.theadBottom = position.theadTop + position.theadHeight;
 
 		if ( tfoot.length ) {
-			position.tfootTop = tfoot.offset().top;
+			position.tfootTop = position.tbodyTop + position.tbodyHeight; //tfoot.offset().top;
 			position.tfootBottom = position.tfootTop + tfoot.outerHeight();
-			position.tfootHeight = position.tfootBottom - position.tfootTop;
+			position.tfootHeight = tfoot.outerHeight();
 		}
 		else {
 			position.tfootTop = position.tbodyTop + tbody.outerHeight();
@@ -567,21 +720,64 @@ $.extend( FixedHeader.prototype, {
 	 */
 	_scroll: function ( forceChange )
 	{
-		var windowTop = $(document).scrollTop();
+		// ScrollBody details
+		var scrollEnabled = this._scrollEnabled();
+		var scrollBody = $(this.s.dt.table().node()).parent();
+		var scrollOffset =  scrollBody.offset();
+		var scrollHeight =  scrollBody.outerHeight();
+
+		// Window details
 		var windowLeft = $(document).scrollLeft();
+		var windowTop = $(document).scrollTop();
+		var windowHeight = $(window).height();
+		var windowBottom = windowHeight + windowTop
+
+
 		var position = this.s.position;
 		var headerMode, footerMode;
 
+		// Body Details
+		var bodyTop = (scrollEnabled ? scrollOffset.top : position.tbodyTop);
+		var bodyLeft = (scrollEnabled ? scrollOffset.left : position.left);
+		var bodyBottom = (scrollEnabled ? scrollOffset.top + scrollHeight : position.tfootTop);
+		var bodyWidth = (scrollEnabled ? scrollBody.outerWidth() : position.tbodyWidth);
+
+		var windowBottom = windowTop + windowHeight;
+
 		if ( this.c.header ) {
 			if ( ! this.s.enable ) {
 				headerMode = 'in-place';
 			}
-			else if ( ! position.visible || windowTop <= position.theadTop - this.c.headerOffset ) {
+			// The header is in it's normal place if the body top is lower than
+			//  the scroll of the window plus the headerOffset and the height of the header
+			else if ( ! position.visible || windowTop + this.c.headerOffset + position.theadHeight <= bodyTop) {
 				headerMode = 'in-place';
 			}
-			else if ( windowTop <= position.tfootTop - position.theadHeight - this.c.headerOffset ) {
+			// The header should be floated if
+			else if (
+				// The scrolling plus the header offset plus the height of the header is lower than the top of the body
+				windowTop + this.c.headerOffset + position.theadHeight > bodyTop &&
+				// And the scrolling at the top plus the header offset is above the bottom of the body
+				windowTop + this.c.headerOffset < bodyBottom
+			) {
 				headerMode = 'in';
+				var scrollBody = $($(this.s.dt.table().node()).parent());
+
+				// Further to the above, If the scrolling plus the header offset plus the header height is lower
+				// than the bottom of the table a shuffle is required so have to force the calculation
+				if(windowTop + this.c.headerOffset + position.theadHeight > bodyBottom || this.dom.header.floatingParent === undefined){
+					forceChange = true;
+				}
+				else {
+					this.dom.header.floatingParent
+						.css({
+							'top': this.c.headerOffset,
+							'position': 'fixed'
+						})
+						.append(this.dom.header.floating);
+				}
 			}
+			// Anything else and the view is below the table
 			else {
 				headerMode = 'below';
 			}
@@ -593,26 +789,136 @@ $.extend( FixedHeader.prototype, {
 			this._horizontal( 'header', windowLeft );
 		}
 
+		var header = {
+			offset: {top: 0, left: 0},
+			height: 0
+		}
+		var footer = {
+			offset: {top: 0, left: 0},
+			height: 0
+		}
+
 		if ( this.c.footer && this.dom.tfoot.length ) {
 			if ( ! this.s.enable ) {
 				footerMode = 'in-place';
 			}
-			else if ( ! position.visible || windowTop + position.windowHeight >= position.tfootBottom + this.c.footerOffset ) {
+			else if ( ! position.visible || position.tfootBottom + this.c.footerOffset <= windowBottom ) {
 				footerMode = 'in-place';
 			}
-			else if ( position.windowHeight + windowTop > position.tbodyTop + position.tfootHeight + this.c.footerOffset ) {
+			else if (
+				bodyBottom + position.tfootHeight + this.c.footerOffset > windowBottom &&
+				bodyTop + this.c.footerOffset < windowBottom
+			) {
 				footerMode = 'in';
+				forceChange = true;
 			}
 			else {
 				footerMode = 'above';
 			}
-
+			
 			if ( forceChange || footerMode !== this.s.footerMode ) {
 				this._modeChange( footerMode, 'footer', forceChange );
 			}
 
 			this._horizontal( 'footer', windowLeft );
+			
+			var getOffsetHeight = (el) => {
+				return {
+					offset: el.offset(),
+					height: el.outerHeight()
+				}
+			}
+		
+			header = this.dom.header.floating ? getOffsetHeight(this.dom.header.floating) : getOffsetHeight(this.dom.thead);
+			footer = this.dom.footer.floating ? getOffsetHeight(this.dom.footer.floating) : getOffsetHeight(this.dom.tfoot);
+
+			// If scrolling is enabled and the footer is off the screen
+			if (scrollEnabled && footer.offset.top > windowTop){// && footer.offset.top >= windowBottom) {
+				// Calculate the gap between the top of the scrollBody and the top of the window
+				var overlap = windowTop - scrollOffset.top;
+				// The new height is the bottom of the window
+				var newHeight = windowBottom +
+					// If the gap between the top of the scrollbody and the window is more than
+					//  the height of the header then the top of the table is still visible so add that gap
+					// Doing this has effectively calculated the height from the top of the table to the bottom of the current page
+					(overlap > -header.height ? overlap : 0) -
+					// Take from that
+					(
+						// The top of the header plus
+						header.offset.top +
+						// The header height if the standard header is present
+						(overlap < -header.height ? header.height : 0) +
+						// And the height of the footer
+						footer.height
+					)
+
+					// Don't want a negative height
+				if (newHeight < 0) {
+					newHeight = 0;
+				}
+
+				// At the end of the above calculation the space between the header (top of the page if floating)
+				// and the point just above the footer should be the new value for the height of the table.
+				scrollBody.outerHeight(newHeight);
+				
+				// Need some rounding here as sometimes very small decimal places are encountered
+				// If the actual height is bigger or equal to the height we just applied then the footer is "Floating"
+				if(Math.round(scrollBody.outerHeight()) >= Math.round(newHeight)) {
+					$(this.dom.tfoot.parent()).addClass("fixedHeader-floating");
+				}
+				// Otherwise max-width has kicked in so it is not floating
+				else {
+					$(this.dom.tfoot.parent()).removeClass("fixedHeader-floating");
+				}
+			}
+		}
+
+		if(this.dom.header.floating){
+			this.dom.header.floatingParent.css('left', bodyLeft-windowLeft);
+		}
+		if(this.dom.footer.floating){
+			this.dom.footer.floatingParent.css('left', bodyLeft-windowLeft);
+		}
+
+		// If fixed columns is being used on this table then the blockers need to be copied across
+		// Cloning these is cleaner than creating as our own as it will keep consistency with fixedColumns automatically
+		// ASSUMING that the class remains the same
+		if (this.s.dt.settings()[0]._fixedColumns !== undefined) {
+			var adjustBlocker = (side, end, el) => {
+				if (el === undefined) {
+					let blocker = $('div.dtfc-'+side+'-'+end+'-blocker');
+					el = blocker.length === 0 ?
+						null :
+						blocker.clone().appendTo('body').css('z-index', 1);
+				}
+				if(el !== null) {
+					el.css({
+						top: end === 'top' ? header.offset.top : footer.offset.top,
+						left: side === 'right' ? bodyLeft + bodyWidth - el.width() : bodyLeft
+					});
+				}
+
+				return el;
+			}
+
+			// Adjust all blockers
+			this.dom.header.rightBlocker = adjustBlocker('right', 'top', this.dom.header.rightBlocker);
+			this.dom.header.leftBlocker = adjustBlocker('left', 'top', this.dom.header.leftBlocker);
+			this.dom.footer.rightBlocker = adjustBlocker('right', 'bottom', this.dom.footer.rightBlocker);
+			this.dom.footer.leftBlocker = adjustBlocker('left', 'bottom', this.dom.footer.leftBlocker);
+		}
+	},
+
+	/**
+	 * Function to check if scrolling is enabled on the table or not
+	 * @returns Boolean value indicating if scrolling on the table is enabled or not
+	 */
+	_scrollEnabled: function() {
+		var oScroll = this.s.dt.settings()[0].oScroll;
+		if(oScroll.sY !== "" || oScroll.sX !== "") {
+			return true;
 		}
+		return false
 	}
 } );
 
@@ -622,7 +928,7 @@ $.extend( FixedHeader.prototype, {
  * @type {String}
  * @static
  */
-FixedHeader.version = "3.1.9";
+FixedHeader.version = "3.2.0";
 
 /**
  * Defaults

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 39 - 16
plugins/datatables-fixedheader/js/dataTables.fixedHeader.min.js


+ 1 - 1
plugins/datatables-fixedheader/js/fixedHeader.bootstrap4.min.js

@@ -2,4 +2,4 @@
  Bootstrap 4 styling wrapper for FixedHeader
  ©2018 SpryMedia Ltd - datatables.net/license
 */
-(function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net-bs4","datatables.net-fixedheader"],function(a){return c(a,window,document)}):"object"===typeof exports?module.exports=function(a,b){a||(a=window);if(!b||!b.fn.dataTable)b=require("datatables.net-bs4")(a,b).$;b.fn.dataTable.FixedHeader||require("datatables.net-fixedheader")(a,b);return c(b,a,a.document)}:c(jQuery,window,document)})(function(c){return c.fn.dataTable});
+(function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net-bs4","datatables.net-fixedheader"],function(a){return c(a,window,document)}):"object"===typeof exports?module.exports=function(a,b){a||(a=window);b&&b.fn.dataTable||(b=require("datatables.net-bs4")(a,b).$);b.fn.dataTable.FixedHeader||require("datatables.net-fixedheader")(a,b);return c(b,a,a.document)}:c(jQuery,window,document)})(function(c,a,b,d){return c.fn.dataTable});

+ 1 - 1
plugins/datatables-rowgroup/js/rowGroup.bootstrap4.min.js

@@ -2,4 +2,4 @@
  Bootstrap 4 styling wrapper for RowGroup
  ©2018 SpryMedia Ltd - datatables.net/license
 */
-(function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net-bs4","datatables.net-rowgroup"],function(a){return c(a,window,document)}):"object"===typeof exports?module.exports=function(a,b){a||(a=window);if(!b||!b.fn.dataTable)b=require("datatables.net-bs4")(a,b).$;b.fn.dataTable.RowGroup||require("datatables.net-rowgroup")(a,b);return c(b,a,a.document)}:c(jQuery,window,document)})(function(c){return c.fn.dataTable});
+(function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net-bs4","datatables.net-rowgroup"],function(a){return c(a,window,document)}):"object"===typeof exports?module.exports=function(a,b){a||(a=window);b&&b.fn.dataTable||(b=require("datatables.net-bs4")(a,b).$);b.fn.dataTable.RowGroup||require("datatables.net-rowgroup")(a,b);return c(b,a,a.document)}:c(jQuery,window,document)})(function(c,a,b,d){return c.fn.dataTable});

+ 3 - 3
plugins/datatables-rowreorder/js/dataTables.rowReorder.js

@@ -1,11 +1,11 @@
-/*! RowReorder 1.2.7
+/*! RowReorder 1.2.8
  * 2015-2020 SpryMedia Ltd - datatables.net/license
  */
 
 /**
  * @summary     RowReorder
  * @description Row reordering extension for DataTables
- * @version     1.2.7
+ * @version     1.2.8
  * @file        dataTables.rowReorder.js
  * @author      SpryMedia Ltd (www.sprymedia.co.uk)
  * @contact     www.sprymedia.co.uk/contact
@@ -790,7 +790,7 @@ Api.register( 'rowReorder.disable()', function () {
  * @name RowReorder.version
  * @static
  */
-RowReorder.version = '1.2.6';
+RowReorder.version = '1.2.8';
 
 
 $.fn.dataTable.RowReorder = RowReorder;

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 2 - 2
plugins/datatables-rowreorder/js/dataTables.rowReorder.min.js


+ 10 - 5
plugins/datatables-searchbuilder/js/dataTables.searchBuilder.js

@@ -241,7 +241,6 @@
          */
         Criteria.prototype.getDetails = function (deFormatDates) {
             if (deFormatDates === void 0) { deFormatDates = false; }
-            this.s.value;
             // This check is in place for if a custom decimal character is in place
             if (this.s.type !== null &&
                 this.s.type.includes('num') &&
@@ -377,7 +376,6 @@
                         if (option.val() !== this.s.condition) {
                             option.removeProp('selected');
                         }
-                        if (option.prop('selected')) ;
                     }
                     this._populateValue(loadedCriteria);
                 }
@@ -2404,6 +2402,7 @@
                 isChild: isChild,
                 logic: undefined,
                 opts: opts,
+                preventRedraw: false,
                 toDrop: undefined,
                 topGroup: topGroup
             };
@@ -2515,6 +2514,9 @@
          * Redraws the Contents of the searchBuilder Groups and Criteria
          */
         Group.prototype.redrawContents = function () {
+            if (this.s.preventRedraw) {
+                return;
+            }
             // Clear the container out and add the basic elements
             this.dom.container.children().detach();
             this.dom.container
@@ -3177,7 +3179,10 @@
             if (details === undefined || details === null) {
                 return this;
             }
+            this.s.topGroup.s.preventRedraw = true;
             this.s.topGroup.rebuild(details);
+            this.s.topGroup.s.preventRedraw = false;
+            this.s.topGroup.redrawContents();
             this.s.dt.draw(false);
             this.s.topGroup.setListeners();
             return this;
@@ -3219,7 +3224,7 @@
             var _this = this;
             if (loadState === void 0) { loadState = true; }
             // Register an Api method for getting the column type
-            $.fn.DataTable.Api.registerPlural('columns().type()', 'column().type()', function (selector, opts) {
+            $.fn.DataTable.Api.registerPlural('columns().type()', 'column().type()', function () {
                 return this.iterator('column', function (settings, column) {
                     return settings.aoColumns[column].sType;
                 }, 1);
@@ -3343,7 +3348,7 @@
             var tableNode = this.s.dt.table(0).node();
             if (!$.fn.dataTable.ext.search.includes(this.s.search)) {
                 // Custom search function for SearchBuilder
-                this.s.search = function (settings, searchData, dataIndex, origData) {
+                this.s.search = function (settings, searchData, dataIndex) {
                     if (settings.nTable !== tableNode) {
                         return true;
                     }
@@ -3677,7 +3682,7 @@
         }
         // Attach a listener to the document which listens for DataTables initialisation
         // events so we can automatically initialise
-        $(document).on('preInit.dt.dtsp', function (e, settings, json) {
+        $(document).on('preInit.dt.dtsp', function (e, settings) {
             if (e.namespace !== 'dt') {
                 return;
             }

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 116 - 116
plugins/datatables-searchbuilder/js/dataTables.searchBuilder.min.js


+ 55 - 48
plugins/datatables-searchbuilder/js/searchBuilder.bootstrap4.js

@@ -1,49 +1,56 @@
-(function (factory) {
-    if (typeof define === 'function' && define.amd) {
-        // AMD
-        define(['jquery', 'datatables.net-bs4', 'datatables.net-searchbuilder'], function ($) {
-            return factory($, window, document);
-        });
-    }
-    else if (typeof exports === 'object') {
-        // CommonJS
-        module.exports = function (root, $) {
-            if (!root) {
-                root = window;
-            }
-            if (!$ || !$.fn.dataTable) {
-                // eslint-disable-next-line @typescript-eslint/no-var-requires
-                $ = require('datatables.net-bs4')(root, $).$;
-            }
-            if (!$.fn.dataTable.searchBuilder) {
-                // eslint-disable-next-line @typescript-eslint/no-var-requires
-                require('datatables.net-searchbuilder')(root, $);
-            }
-            return factory($, root, root.document);
-        };
-    }
-    else {
-        // Browser
-        factory(jQuery, window, document);
-    }
-}(function ($, window, document) {
+/*! SearchBuilder 1.3.0
+ * ©SpryMedia Ltd - datatables.net/license/mit
+ */
+(function () {
     'use strict';
-    var dataTable = $.fn.dataTable;
-    $.extend(true, dataTable.SearchBuilder.classes, {
-        clearAll: 'btn btn-light dtsb-clearAll'
-    });
-    $.extend(true, dataTable.Group.classes, {
-        add: 'btn btn-light dtsb-add',
-        clearGroup: 'btn btn-light dtsb-clearGroup',
-        logic: 'btn btn-light dtsb-logic'
-    });
-    $.extend(true, dataTable.Criteria.classes, {
-        condition: 'form-control dtsb-condition',
-        data: 'form-control dtsb-data',
-        "delete": 'btn btn-light dtsb-delete',
-        left: 'btn btn-light dtsb-left',
-        right: 'btn btn-light dtsb-right',
-        value: 'form-control dtsb-value'
-    });
-    return dataTable.searchPanes;
-}));
+
+    (function (factory) {
+        if (typeof define === 'function' && define.amd) {
+            // AMD
+            define(['jquery', 'datatables.net-bs4', 'datatables.net-searchbuilder'], function ($) {
+                return factory($);
+            });
+        }
+        else if (typeof exports === 'object') {
+            // CommonJS
+            module.exports = function (root, $) {
+                if (!root) {
+                    root = window;
+                }
+                if (!$ || !$.fn.dataTable) {
+                    // eslint-disable-next-line @typescript-eslint/no-var-requires
+                    $ = require('datatables.net-bs4')(root, $).$;
+                }
+                if (!$.fn.dataTable.searchBuilder) {
+                    // eslint-disable-next-line @typescript-eslint/no-var-requires
+                    require('datatables.net-searchbuilder')(root, $);
+                }
+                return factory($);
+            };
+        }
+        else {
+            // Browser
+            factory(jQuery);
+        }
+    }(function ($) {
+        var dataTable = $.fn.dataTable;
+        $.extend(true, dataTable.SearchBuilder.classes, {
+            clearAll: 'btn btn-light dtsb-clearAll'
+        });
+        $.extend(true, dataTable.Group.classes, {
+            add: 'btn btn-light dtsb-add',
+            clearGroup: 'btn btn-light dtsb-clearGroup',
+            logic: 'btn btn-light dtsb-logic'
+        });
+        $.extend(true, dataTable.Criteria.classes, {
+            condition: 'form-control dtsb-condition',
+            data: 'form-control dtsb-data',
+            "delete": 'btn btn-light dtsb-delete',
+            left: 'btn btn-light dtsb-left',
+            right: 'btn btn-light dtsb-right',
+            value: 'form-control dtsb-value'
+        });
+        return dataTable.searchPanes;
+    }));
+
+}());

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 2 - 2
plugins/datatables-searchbuilder/js/searchBuilder.bootstrap4.min.js


+ 142 - 83
plugins/datatables/jquery.dataTables.js

@@ -1,11 +1,11 @@
-/*! DataTables 1.11.0
+/*! DataTables 1.11.3
  * ©2008-2021 SpryMedia Ltd - datatables.net/license
  */
 
 /**
  * @summary     DataTables
  * @description Paginate, search and order HTML tables
- * @version     1.11.0
+ * @version     1.11.3
  * @file        jquery.dataTables.js
  * @author      SpryMedia Ltd
  * @contact     www.datatables.net
@@ -1094,8 +1094,8 @@
 					dataType: 'json',
 					url: oLanguage.sUrl,
 					success: function ( json ) {
-						_fnLanguageCompat( json );
 						_fnCamelToHungarian( defaults.oLanguage, json );
+						_fnLanguageCompat( json );
 						$.extend( true, oLanguage, json );
 			
 						_fnCallbackFire( oSettings, null, 'i18n', [oSettings]);
@@ -1614,6 +1614,14 @@
 		return out;
 	}
 	
+	var _includes = function (search, start) {
+		if (start === undefined) {
+			start = 0;
+		}
+	
+		return this.indexOf(search, start) !== -1;	
+	};
+	
 	// Array.isArray polyfill.
 	// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray
 	if (! Array.isArray) {
@@ -1622,6 +1630,10 @@
 	    };
 	}
 	
+	if (! Array.prototype.includes) {
+		Array.prototype.includes = _includes;
+	}
+	
 	// .trim() polyfill
 	// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/trim
 	if (!String.prototype.trim) {
@@ -1630,6 +1642,10 @@
 	  };
 	}
 	
+	if (! String.prototype.includes) {
+		String.prototype.includes = _includes;
+	}
+	
 	/**
 	 * DataTables utility methods
 	 * 
@@ -2796,9 +2812,18 @@
 			return cellData.call( rowData );
 		}
 	
-		if ( cellData === null && type == 'display' ) {
+		if ( cellData === null && type === 'display' ) {
 			return '';
 		}
+	
+		if ( type === 'filter' ) {
+			var fomatters = DataTable.ext.type.search;
+	
+			if ( fomatters[ col.sType ] ) {
+				cellData = fomatters[ col.sType ]( cellData );
+			}
+		}
+	
 		return cellData;
 	}
 	
@@ -4553,7 +4578,6 @@
 		var columns = settings.aoColumns;
 		var column;
 		var i, j, ien, jen, filterData, cellData, row;
-		var fomatters = DataTable.ext.type.search;
 		var wasInvalidated = false;
 	
 		for ( i=0, ien=settings.aoData.length ; i<ien ; i++ ) {
@@ -4568,10 +4592,6 @@
 					if ( column.bSearchable ) {
 						cellData = _fnGetCellData( settings, i, j, 'filter' );
 	
-						if ( fomatters[ column.sType ] ) {
-							cellData = fomatters[ column.sType ]( cellData );
-						}
-	
 						// Search in DataTables 1.10 is string based. In 1.11 this
 						// should be altered to also allow strict type checking.
 						if ( cellData === null ) {
@@ -5395,7 +5415,7 @@
 	
 		// Read all widths in next pass
 		_fnApplyToChildren( function(nSizer) {
-			let style = window.getComputedStyle ?
+			var style = window.getComputedStyle ?
 				window.getComputedStyle(nSizer).width :
 				_fnStringToCss( $(nSizer).width() );
 	
@@ -6362,6 +6382,10 @@
 	 */
 	function _fnSaveState ( settings )
 	{
+		if (settings._bLoadingState) {
+			return;
+		}
+	
 		/* Store the interesting variables */
 		var state = {
 			time:    +new Date(),
@@ -6396,98 +6420,128 @@
 	 */
 	function _fnLoadState ( settings, oInit, callback )
 	{
+		if ( ! settings.oFeatures.bStateSave ) {
+			callback();
+			return;
+		}
+	
+		var loaded = function(state) {
+			_fnImplementState(settings, state, callback);
+		}
+	
+		var state = settings.fnStateLoadCallback.call( settings.oInstance, settings, loaded );
+	
+		if ( state !== undefined ) {
+			_fnImplementState( settings, state, callback );
+		}
+		// otherwise, wait for the loaded callback to be executed
+	
+		return true;
+	}
+	
+	function _fnImplementState ( settings, s, callback) {
 		var i, ien;
 		var columns = settings.aoColumns;
-		var loaded = function ( s ) {
-			if ( ! s || ! s.time ) {
-				callback();
-				return;
-			}
+		settings._bLoadingState = true;
 	
-			// Allow custom and plug-in manipulation functions to alter the saved data set and
-			// cancelling of loading by returning false
-			var abStateLoad = _fnCallbackFire( settings, 'aoStateLoadParams', 'stateLoadParams', [settings, s] );
-			if ( $.inArray( false, abStateLoad ) !== -1 ) {
-				callback();
-				return;
-			}
+		// When StateRestore was introduced the state could now be implemented at any time
+		// Not just initialisation. To do this an api instance is required in some places
+		var api = settings._bInitComplete ? new DataTable.Api(settings) : null;
 	
-			// Reject old data
-			var duration = settings.iStateDuration;
-			if ( duration > 0 && s.time < +new Date() - (duration*1000) ) {
-				callback();
-				return;
-			}
+		if ( ! s || ! s.time ) {
+			settings._bLoadingState = false;
+			callback();
+			return;
+		}
 	
-			// Number of columns have changed - all bets are off, no restore of settings
-			if ( s.columns && columns.length !== s.columns.length ) {
-				callback();
-				return;
-			}
+		// Allow custom and plug-in manipulation functions to alter the saved data set and
+		// cancelling of loading by returning false
+		var abStateLoad = _fnCallbackFire( settings, 'aoStateLoadParams', 'stateLoadParams', [settings, s] );
+		if ( $.inArray( false, abStateLoad ) !== -1 ) {
+			settings._bLoadingState = false;
+			callback();
+			return;
+		}
+	
+		// Reject old data
+		var duration = settings.iStateDuration;
+		if ( duration > 0 && s.time < +new Date() - (duration*1000) ) {
+			settings._bLoadingState = false;
+			callback();
+			return;
+		}
+	
+		// Number of columns have changed - all bets are off, no restore of settings
+		if ( s.columns && columns.length !== s.columns.length ) {
+			settings._bLoadingState = false;
+			callback();
+			return;
+		}
 	
-			// Store the saved state so it might be accessed at any time
-			settings.oLoadedState = $.extend( true, {}, s );
+		// Store the saved state so it might be accessed at any time
+		settings.oLoadedState = $.extend( true, {}, s );
 	
-			// Restore key features - todo - for 1.11 this needs to be done by
-			// subscribed events
-			if ( s.start !== undefined ) {
-				settings._iDisplayStart    = s.start;
+		// Restore key features - todo - for 1.11 this needs to be done by
+		// subscribed events
+		if ( s.start !== undefined ) {
+			settings._iDisplayStart    = s.start;
+			if(api === null) {
 				settings.iInitDisplayStart = s.start;
 			}
-			if ( s.length !== undefined ) {
-				settings._iDisplayLength   = s.length;
-			}
+		}
+		if ( s.length !== undefined ) {
+			settings._iDisplayLength   = s.length;
+		}
 	
-			// Order
-			if ( s.order !== undefined ) {
-				settings.aaSorting = [];
-				$.each( s.order, function ( i, col ) {
-					settings.aaSorting.push( col[0] >= columns.length ?
-						[ 0, col[1] ] :
-						col
-					);
-				} );
-			}
+		// Order
+		if ( s.order !== undefined ) {
+			settings.aaSorting = [];
+			$.each( s.order, function ( i, col ) {
+				settings.aaSorting.push( col[0] >= columns.length ?
+					[ 0, col[1] ] :
+					col
+				);
+			} );
+		}
 	
-			// Search
-			if ( s.search !== undefined ) {
-				$.extend( settings.oPreviousSearch, _fnSearchToHung( s.search ) );
-			}
+		// Search
+		if ( s.search !== undefined ) {
+			$.extend( settings.oPreviousSearch, _fnSearchToHung( s.search ) );
+		}
 	
-			// Columns
-			//
-			if ( s.columns ) {
-				for ( i=0, ien=s.columns.length ; i<ien ; i++ ) {
-					var col = s.columns[i];
+		// Columns
+		if ( s.columns ) {
+			for ( i=0, ien=s.columns.length ; i<ien ; i++ ) {
+				var col = s.columns[i];
 	
-					// Visibility
-					if ( col.visible !== undefined ) {
+				// Visibility
+				if ( col.visible !== undefined ) {
+					// If the api is defined, the table has been initialised so we need to use it rather than internal settings
+					if (api) {
+						// Don't redraw the columns on every iteration of this loop, we will do this at the end instead
+						api.column(i).visible(col.visible, false);
+					}
+					else {
 						columns[i].bVisible = col.visible;
 					}
+				}
 	
-					// Search
-					if ( col.search !== undefined ) {
-						$.extend( settings.aoPreSearchCols[i], _fnSearchToHung( col.search ) );
-					}
+				// Search
+				if ( col.search !== undefined ) {
+					$.extend( settings.aoPreSearchCols[i], _fnSearchToHung( col.search ) );
 				}
 			}
-	
-			_fnCallbackFire( settings, 'aoStateLoaded', 'stateLoaded', [settings, s] );
-			callback();
-		};
-	
-		if ( ! settings.oFeatures.bStateSave ) {
-			callback();
-			return;
+			
+			// If the api is defined then we need to adjust the columns once the visibility has been changed
+			if (api) {
+				api.columns.adjust();
+			}
 		}
 	
-		var state = settings.fnStateLoadCallback.call( settings.oInstance, settings, loaded );
-	
-		if ( state !== undefined ) {
-			loaded( state );
-		}
-		// otherwise, wait for the loaded callback to be executed
-	}
+		settings._bLoadingState = false;
+		_fnCallbackFire( settings, 'aoStateLoaded', 'stateLoaded', [settings, s] );
+		callback();
+	};
 	
 	
 	/**
@@ -9578,7 +9632,7 @@
 	 *  @type string
 	 *  @default Version number
 	 */
-	DataTable.version = "1.11.0";
+	DataTable.version = "1.11.3";
 
 	/**
 	 * Private data store, containing all of the settings objects that are
@@ -15036,6 +15090,10 @@
 	 */
 	
 	var __htmlEscapeEntities = function ( d ) {
+		if (Array.isArray(d)) {
+			d = d.join(',');
+		}
+	
 		return typeof d === 'string' ?
 			d
 				.replace(/&/g, '&amp;')
@@ -15230,6 +15288,7 @@
 		_fnSortData: _fnSortData,
 		_fnSaveState: _fnSaveState,
 		_fnLoadState: _fnLoadState,
+		_fnImplementState: _fnImplementState,
 		_fnSettingsFromNode: _fnSettingsFromNode,
 		_fnLog: _fnLog,
 		_fnMap: _fnMap,

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 144 - 143
plugins/datatables/jquery.dataTables.min.js


+ 2 - 2
plugins/dropzone/dropzone-amd-module.js

@@ -8902,7 +8902,7 @@ var Dropzone = /*#__PURE__*/function (_Emitter) {
         };
 
         mockFile.dataURL = imageUrl;
-        this.createThumbnailFromUrl(mockFile, this.options.thumbnailWidth, this.options.thumbnailHeight, this.options.resizeMethod, this.options.fixOrientation, onDone, crossOrigin);
+        this.createThumbnailFromUrl(mockFile, this.options.thumbnailWidth, this.options.thumbnailHeight, this.options.thumbnailMethod, this.options.fixOrientation, onDone, crossOrigin);
       }
     }
   }, {
@@ -9731,7 +9731,7 @@ var Dropzone = /*#__PURE__*/function (_Emitter) {
 
 
 Dropzone.initClass();
-Dropzone.version = "5.9.2"; // This is a map of options for your different dropzones. Add configurations
+Dropzone.version = "5.9.3"; // This is a map of options for your different dropzones. Add configurations
 // to this object for your different dropzone elemens.
 //
 // Example:

+ 2 - 2
plugins/dropzone/dropzone.js

@@ -8902,7 +8902,7 @@ var Dropzone = /*#__PURE__*/function (_Emitter) {
         };
 
         mockFile.dataURL = imageUrl;
-        this.createThumbnailFromUrl(mockFile, this.options.thumbnailWidth, this.options.thumbnailHeight, this.options.resizeMethod, this.options.fixOrientation, onDone, crossOrigin);
+        this.createThumbnailFromUrl(mockFile, this.options.thumbnailWidth, this.options.thumbnailHeight, this.options.thumbnailMethod, this.options.fixOrientation, onDone, crossOrigin);
       }
     }
   }, {
@@ -9731,7 +9731,7 @@ var Dropzone = /*#__PURE__*/function (_Emitter) {
 
 
 Dropzone.initClass();
-Dropzone.version = "5.9.2"; // This is a map of options for your different dropzones. Add configurations
+Dropzone.version = "5.9.3"; // This is a map of options for your different dropzones. Add configurations
 // to this object for your different dropzone elemens.
 //
 // Example:

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
plugins/dropzone/min/dropzone-amd-module.min.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
plugins/dropzone/min/dropzone.min.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1610 - 0
plugins/flag-icon-css/css/flag-icons.css


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
plugins/flag-icon-css/css/flag-icons.min.css


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 81 - 0
plugins/flag-icon-css/flags/1x1/ac.svg


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 96 - 96
plugins/flag-icon-css/flags/1x1/ad.svg


+ 1 - 1
plugins/flag-icon-css/flags/1x1/ae.svg

@@ -1,4 +1,4 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ae" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ae" viewBox="0 0 512 512">
   <path fill="#00732f" d="M0 0h512v170.7H0z"/>
   <path fill="#fff" d="M0 170.7h512v170.6H0z"/>
   <path d="M0 341.3h512V512H0z"/>

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 26 - 26
plugins/flag-icon-css/flags/1x1/af.svg


+ 4 - 4
plugins/flag-icon-css/flags/1x1/ag.svg

@@ -1,14 +1,14 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ag" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ag" viewBox="0 0 512 512">
   <defs>
-    <clipPath id="a">
+    <clipPath id="ag-a">
       <path fill="#25ff01" d="M109 47.6h464.8v464.9H109z"/>
     </clipPath>
   </defs>
-  <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-120 -52.4) scale(1.1014)">
+  <g fill-rule="evenodd" clip-path="url(#ag-a)" transform="translate(-120 -52.4) scale(1.1014)">
     <path fill="#fff" d="M0 47.6h693V512H0z"/>
     <path d="M1.5 48.2h690.9v196.2H1.5z"/>
     <path fill="#0061ff" d="M128.3 232.1h458.5v103.4H128.3z"/>
     <path fill="#e20000" d="M692.5 49.2v463.3H347L692.5 49.2zm-691.3 0v463.3h345.7L1.2 49.2z"/>
-    <path fill="#ffd600" d="M508.8 232.2l-69.3-17.6 59-44.4-72.5 10.3 37.3-63-64.1 37.2 11.3-73.5-43.4 58-17.6-67.3-19.6 69.3-43.4-59 12.4 75.6-64.1-39.3 37.2 63-70.3-11.3 57.9 43.4-72.4 18.6h321.6z"/>
+    <path fill="#ffd600" d="m508.8 232.2-69.3-17.6 59-44.4-72.5 10.3 37.3-63-64.1 37.2 11.3-73.5-43.4 58-17.6-67.3-19.6 69.3-43.4-59 12.4 75.6-64.1-39.3 37.2 63-70.3-11.3 57.9 43.4-72.4 18.6h321.6z"/>
   </g>
 </svg>

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 748 - 748
plugins/flag-icon-css/flags/1x1/ai.svg


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 3 - 3
plugins/flag-icon-css/flags/1x1/al.svg


+ 1 - 1
plugins/flag-icon-css/flags/1x1/am.svg

@@ -1,4 +1,4 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-am" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-am" viewBox="0 0 512 512">
   <path fill="red" d="M0 0h512v170.7H0z"/>
   <path fill="#00f" d="M0 170.7h512v170.6H0z"/>
   <path fill="orange" d="M0 341.3h512V512H0z"/>

+ 7 - 7
plugins/flag-icon-css/flags/1x1/ao.svg

@@ -1,13 +1,13 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ao" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ao" viewBox="0 0 512 512">
   <g fill-rule="evenodd" stroke-width="1pt">
     <path fill="red" d="M0 0h512v259.8H0z"/>
     <path d="M0 252.2h512V512H0z"/>
   </g>
   <path fill="#ffec00" fill-rule="evenodd" d="M228.7 148.2c165.2 43.3 59 255.6-71.3 167.2l-8.8 13.6c76.7 54.6 152.6 10.6 174-46.4 22.2-58.8-7.6-141.5-92.6-150l-1.3 15.6z"/>
-  <path fill="#ffec00" fill-rule="evenodd" d="M170 330.8l21.7 10.1-10.2 21.8-21.7-10.2zm149-99.5h24v24h-24zm-11.7-38.9l22.3-8.6 8.7 22.3-22.3 8.7zm-26-29.1l17.1-16.9 16.9 17-17 16.9zm-26.2-39.8l22.4 8.4-8.5 22.4-22.4-8.4zM316 270l22.3 8.9-9 22.2-22.2-8.9zm-69.9 70l22-9.3 9.5 22-22 9.4zm-39.5 2.8h24v24h-24zm41.3-116l-20.3-15-20.3 14.6 8-23-20.3-15h24.5l8.5-22.6 7.8 22.7 24.7-.3-19.6 15.3 7 23.4z"/>
-  <path fill="#fe0" fill-rule="evenodd" d="M336 346.4c-1.2.4-6.2 12.4-9.7 18.2l3.7 1c13.6 4.8 20.4 9.2 26.2 17.5a7.9 7.9 0 0010.2.7s2.8-1 6.4-5c3-4.5 2.2-8-1.4-11.1-11-8-22.9-14-35.4-21.3z"/>
-  <path fill-rule="evenodd" d="M365.3 372.8a4.3 4.3 0 11-8.7 0 4.3 4.3 0 018.6 0zm-21.4-13.6a4.3 4.3 0 11-8.7 0 4.3 4.3 0 018.7 0zm10.9 7a4.3 4.3 0 11-8.7 0 4.3 4.3 0 018.7 0z"/>
-  <path fill="#fe0" fill-rule="evenodd" d="M324.5 363.7c-42.6-24.3-87.3-50.5-130-74.8-18.7-11.7-19.6-33.4-7-49.9 1.2-2.3 2.8-1.8 3.4-.5 1.5 8 6 16.3 11.4 21.5A5288 5288 0 01334 345.6c-3.4 5.8-6 12.3-9.5 18z"/>
-  <path fill="#ffec00" fill-rule="evenodd" d="M297.2 305.5l17.8 16-16 17.8-17.8-16z"/>
-  <path fill="none" stroke="#000" stroke-width="3" d="M331.5 348.8l-125-75.5m109.6 58.1L274 304.1m18.2 42.7L249.3 322"/>
+  <path fill="#ffec00" fill-rule="evenodd" d="m170 330.8 21.7 10.1-10.2 21.8-21.7-10.2zm149-99.5h24v24h-24zm-11.7-38.9 22.3-8.6 8.7 22.3-22.3 8.7zm-26-29.1 17.1-16.9 16.9 17-17 16.9zm-26.2-39.8 22.4 8.4-8.5 22.4-22.4-8.4zM316 270l22.3 8.9-9 22.2-22.2-8.9zm-69.9 70 22-9.3 9.5 22-22 9.4zm-39.5 2.8h24v24h-24zm41.3-116-20.3-15-20.3 14.6 8-23-20.3-15h24.5l8.5-22.6 7.8 22.7 24.7-.3-19.6 15.3 7 23.4z"/>
+  <path fill="#fe0" fill-rule="evenodd" d="M336 346.4c-1.2.4-6.2 12.4-9.7 18.2l3.7 1c13.6 4.8 20.4 9.2 26.2 17.5a7.9 7.9 0 0 0 10.2.7s2.8-1 6.4-5c3-4.5 2.2-8-1.4-11.1-11-8-22.9-14-35.4-21.3z"/>
+  <path fill-rule="evenodd" d="M365.3 372.8a4.3 4.3 0 1 1-8.7 0 4.3 4.3 0 0 1 8.6 0zm-21.4-13.6a4.3 4.3 0 1 1-8.7 0 4.3 4.3 0 0 1 8.7 0zm10.9 7a4.3 4.3 0 1 1-8.7 0 4.3 4.3 0 0 1 8.7 0z"/>
+  <path fill="#fe0" fill-rule="evenodd" d="M324.5 363.7c-42.6-24.3-87.3-50.5-130-74.8-18.7-11.7-19.6-33.4-7-49.9 1.2-2.3 2.8-1.8 3.4-.5 1.5 8 6 16.3 11.4 21.5A5288 5288 0 0 1 334 345.6c-3.4 5.8-6 12.3-9.5 18z"/>
+  <path fill="#ffec00" fill-rule="evenodd" d="m297.2 305.5 17.8 16-16 17.8-17.8-16z"/>
+  <path fill="none" stroke="#000" stroke-width="3" d="m331.5 348.8-125-75.5m109.6 58.1L274 304.1m18.2 42.7L249.3 322"/>
 </svg>

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 4 - 4
plugins/flag-icon-css/flags/1x1/aq.svg


+ 22 - 22
plugins/flag-icon-css/flags/1x1/ar.svg

@@ -1,31 +1,31 @@
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-ar" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-ar" viewBox="0 0 512 512">
   <path fill="#74acdf" d="M0 0h512v512H0z"/>
   <path fill="#fff" d="M0 170.7h512v170.6H0z"/>
   <g id="c" transform="translate(-153.6) scale(1.024)">
-    <path id="a" fill="#f6b40e" stroke="#85340a" stroke-width="1.1" d="M396.8 251.3l28.5 62s.5 1.2 1.3.9c.8-.4.3-1.5.3-1.5l-23.7-64m-.7 24.1c-.4 9.4 5.4 14.6 4.7 23-.8 8.5 3.8 13.2 5 16.5 1 3.3-1.3 5.2-.3 5.7s3-2.1 2.4-6.8c-.7-4.6-4.2-6-3.4-16.3.8-10.3-4.2-12.7-3-22"/>
-    <use width="100%" height="100%" transform="rotate(22.5 400 250)" xlink:href="#a"/>
-    <use width="100%" height="100%" transform="rotate(45 400 250)" xlink:href="#a"/>
-    <use width="100%" height="100%" transform="rotate(67.5 400 250)" xlink:href="#a"/>
-    <path id="b" fill="#85340a" d="M404.3 274.4c.5 9 5.6 13 4.6 21.3 2.2-6.5-3.1-11.6-2.8-21.2m-7.7-23.8l19.5 42.6-16.3-43.9"/>
-    <use width="100%" height="100%" transform="rotate(22.5 400 250)" xlink:href="#b"/>
-    <use width="100%" height="100%" transform="rotate(45 400 250)" xlink:href="#b"/>
-    <use width="100%" height="100%" transform="rotate(67.5 400 250)" xlink:href="#b"/>
+    <path id="a" fill="#f6b40e" stroke="#85340a" stroke-width="1.1" d="m396.8 251.3 28.5 62s.5 1.2 1.3.9c.8-.4.3-1.5.3-1.5l-23.7-64m-.7 24.1c-.4 9.4 5.4 14.6 4.7 23-.8 8.5 3.8 13.2 5 16.5 1 3.3-1.3 5.2-.3 5.7s3-2.1 2.4-6.8c-.7-4.6-4.2-6-3.4-16.3.8-10.3-4.2-12.7-3-22"/>
+    <use xlink:href="#a" width="100%" height="100%" transform="rotate(22.5 400 250)"/>
+    <use xlink:href="#a" width="100%" height="100%" transform="rotate(45 400 250)"/>
+    <use xlink:href="#a" width="100%" height="100%" transform="rotate(67.5 400 250)"/>
+    <path id="b" fill="#85340a" d="M404.3 274.4c.5 9 5.6 13 4.6 21.3 2.2-6.5-3.1-11.6-2.8-21.2m-7.7-23.8 19.5 42.6-16.3-43.9"/>
+    <use xlink:href="#b" width="100%" height="100%" transform="rotate(22.5 400 250)"/>
+    <use xlink:href="#b" width="100%" height="100%" transform="rotate(45 400 250)"/>
+    <use xlink:href="#b" width="100%" height="100%" transform="rotate(67.5 400 250)"/>
   </g>
-  <use width="100%" height="100%" transform="rotate(90 256 256)" xlink:href="#c"/>
-  <use width="100%" height="100%" transform="rotate(180 256 256)" xlink:href="#c"/>
-  <use width="100%" height="100%" transform="rotate(-90 256 256)" xlink:href="#c"/>
+  <use xlink:href="#c" width="100%" height="100%" transform="rotate(90 256 256)"/>
+  <use xlink:href="#c" width="100%" height="100%" transform="rotate(180 256 256)"/>
+  <use xlink:href="#c" width="100%" height="100%" transform="rotate(-90 256 256)"/>
   <circle cx="256" cy="256" r="28.4" fill="#f6b40e" stroke="#85340a" stroke-width="1.5"/>
-  <path id="h" fill="#843511" d="M265.7 250c-2 0-3.8.8-4.9 2.5 2.2 2 7 2.2 10.3-.2a7.5 7.5 0 00-5.4-2.4zm0 .4c1.9 0 3.6.8 3.9 1.7-2.2 2.4-5.7 2.2-7.9.4a4.6 4.6 0 014-2.1z"/>
-  <use width="100%" height="100%" transform="matrix(-1 0 0 1 512.3 0)" xlink:href="#d"/>
-  <use width="100%" height="100%" transform="matrix(-1 0 0 1 512.3 0)" xlink:href="#e"/>
-  <use width="100%" height="100%" transform="translate(19.3)" xlink:href="#f"/>
-  <use width="100%" height="100%" transform="matrix(-1 0 0 1 512.3 0)" xlink:href="#g"/>
-  <path fill="#85340a" d="M251.7 260a2 2 0 102 3c.7.6 1.7.6 2.3.6h.3a4.2 4.2 0 002.3-.6 2 2 0 102-3c.5.1.9.6.9 1.2a1.3 1.3 0 01-1.3 1.3 1.3 1.3 0 01-1.3-1.3 3.3 3.3 0 01-2.8 1.8 3.3 3.3 0 01-2.7-1.8 1.3 1.3 0 01-1.3 1.3 1.3 1.3 0 01-1.3-1.3c0-.6.3-1 .8-1.3zm2 5.8c-2.1 0-3 2-5 3.3 1.2-.5 2-1.3 3.6-2.2 1.5-.9 2.8.2 3.7.2.9 0 2.2-1.1 3.7-.2 1.5.9 2.4 1.7 3.5 2.2-2-1.4-2.8-3.3-5-3.3a6 6 0 00-2.2.6 5.8 5.8 0 00-2.2-.6z"/>
-  <path fill="#85340a" d="M253 268.4a15 15 0 00-3.6.7c4-1 4.8.4 6.6.4 1.8 0 2.6-1.3 6.6-.5-4.4-1.2-5.3-.4-6.6-.4-.9 0-1.5-.3-3-.3z"/>
-  <path fill="#85340a" d="M249.6 269h-.8c4.6.5 2.3 3.1 7.2 3.1 4.8 0 2.6-2.6 7.2-3-4.8-.5-3.3 2.4-7.2 2.4-3.7 0-2.6-2.5-6.4-2.5zm10.3 7.1a4 4 0 00-3.9-4 4 4 0 00-4 4 4 4 0 014-3 4 4 0 014 3z"/>
-  <path id="e" fill="#85340a" d="M238.3 249.9c5-4.4 11.4-5 14.9-1.8a8.6 8.6 0 011.6 3.7c.5 2.5-.3 5.2-2.3 8 .3 0 .7.1 1 .4 1.6-3.4 2.3-6.8 1.7-10a14.2 14.2 0 00-.7-2.5c-4.8-4-11.4-4.4-16.2 2.2z"/>
+  <path id="h" fill="#843511" d="M265.7 250c-2 0-3.8.8-4.9 2.5 2.2 2 7 2.2 10.3-.2a7.5 7.5 0 0 0-5.4-2.4zm0 .4c1.9 0 3.6.8 3.9 1.7-2.2 2.4-5.7 2.2-7.9.4a4.6 4.6 0 0 1 4-2.1z"/>
+  <use xlink:href="#d" width="100%" height="100%" transform="matrix(-1 0 0 1 512.3 0)"/>
+  <use xlink:href="#e" width="100%" height="100%" transform="matrix(-1 0 0 1 512.3 0)"/>
+  <use xlink:href="#f" width="100%" height="100%" transform="translate(19.3)"/>
+  <use xlink:href="#g" width="100%" height="100%" transform="matrix(-1 0 0 1 512.3 0)"/>
+  <path fill="#85340a" d="M251.7 260a2 2 0 1 0 2 3c.7.6 1.7.6 2.3.6h.3a4.2 4.2 0 0 0 2.3-.6 2 2 0 1 0 2-3c.5.1.9.6.9 1.2a1.3 1.3 0 0 1-1.3 1.3 1.3 1.3 0 0 1-1.3-1.3 3.3 3.3 0 0 1-2.8 1.8 3.3 3.3 0 0 1-2.7-1.8 1.3 1.3 0 0 1-1.3 1.3 1.3 1.3 0 0 1-1.3-1.3c0-.6.3-1 .8-1.3zm2 5.8c-2.1 0-3 2-5 3.3 1.2-.5 2-1.3 3.6-2.2 1.5-.9 2.8.2 3.7.2.9 0 2.2-1.1 3.7-.2 1.5.9 2.4 1.7 3.5 2.2-2-1.4-2.8-3.3-5-3.3a6 6 0 0 0-2.2.6 5.8 5.8 0 0 0-2.2-.6z"/>
+  <path fill="#85340a" d="M253 268.4a15 15 0 0 0-3.6.7c4-1 4.8.4 6.6.4 1.8 0 2.6-1.3 6.6-.5-4.4-1.2-5.3-.4-6.6-.4-.9 0-1.5-.3-3-.3z"/>
+  <path fill="#85340a" d="M249.6 269h-.8c4.6.5 2.3 3.1 7.2 3.1 4.8 0 2.6-2.6 7.2-3-4.8-.5-3.3 2.4-7.2 2.4-3.7 0-2.6-2.5-6.4-2.5zm10.3 7.1a4 4 0 0 0-3.9-4 4 4 0 0 0-4 4 4 4 0 0 1 4-3 4 4 0 0 1 4 3z"/>
+  <path id="e" fill="#85340a" d="M238.3 249.9c5-4.4 11.4-5 14.9-1.8a8.6 8.6 0 0 1 1.6 3.7c.5 2.5-.3 5.2-2.3 8 .3 0 .7.1 1 .4 1.6-3.4 2.3-6.8 1.7-10a14.2 14.2 0 0 0-.7-2.5c-4.8-4-11.4-4.4-16.2 2.2z"/>
   <path id="d" fill="#85340a" d="M246.2 248.6c2.8 0 3.5.6 4.8 1.7 1.3 1.1 2 .9 2.2 1.1.2.2 0 .9-.5.7-.4-.3-1.2-.7-2.6-1.8-1.3-1-2.6-1-4-1-3.8 0-6 3.2-6.5 3-.4-.2 2.2-3.7 6.6-3.7z"/>
-  <use width="100%" height="100%" transform="translate(-19.6)" xlink:href="#h"/>
+  <use xlink:href="#h" width="100%" height="100%" transform="translate(-19.6)"/>
   <circle id="f" cx="246.3" cy="252.1" r="2" fill="#85340a"/>
   <path id="g" fill="#85340a" d="M241 253.4c3.7 2.8 7.4 2.6 9.6 1.3 2.2-1.3 2.2-1.8 1.7-1.8-.4 0-.9.5-2.6 1.3-1.8 1-4.4 1-8.8-.8z"/>
 </svg>

+ 2 - 2
plugins/flag-icon-css/flags/1x1/at.svg

@@ -1,6 +1,6 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-at" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-at" viewBox="0 0 512 512">
   <g fill-rule="evenodd">
     <path fill="#fff" d="M512 512H0V0h512z"/>
-    <path fill="#ed2939" d="M512 512H0V341.3h512zm0-341.2H0V.1h512z"/>
+    <path fill="#c8102e" d="M512 512H0V341.3h512zm0-341.2H0V.1h512z"/>
   </g>
 </svg>

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 3 - 3
plugins/flag-icon-css/flags/1x1/au.svg


+ 178 - 178
plugins/flag-icon-css/flags/1x1/aw.svg

@@ -1,186 +1,186 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-aw" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-aw" viewBox="0 0 512 512">
   <defs>
-    <clipPath id="a">
+    <clipPath id="aw-a">
       <path fill="gray" d="M0 0h512v512H0z"/>
     </clipPath>
   </defs>
-  <g clip-path="url(#a)">
+  <g clip-path="url(#aw-a)">
     <path fill="#39c" d="M0 0v512h768V0H0z"/>
     <path fill="#ff0" d="M0 341.3v28.5h768v-28.5H0zm0 57v28.4h768v-28.5H0z"/>
-    <path fill="#9cc" d="M122 28l2.4 2.5-2.3-2.4zm-2.3 4.8l2.4 2.4-2.4-2.4m4.7 0l2.4 2.4-2.3-2.4z"/>
-    <path fill="#ccf" d="M119.7 35.2l2.4 2.4-2.4-2.4m4.7 0l2.4 2.4-2.3-2.4z"/>
-    <path fill="#6cc" d="M117.3 40l2.4 2.3-2.4-2.3z"/>
-    <path fill="#c66" d="M122 40l2.4 2.3-2.3-2.3z"/>
-    <path fill="#6cc" d="M126.8 40l2.4 2.3-2.4-2.3z"/>
-    <path fill="#ccf" d="M117.3 42.4l2.4 2.3-2.4-2.3zm9.5 0l2.4 2.3-2.4-2.3z"/>
-    <path fill="#fcc" d="M119.7 44.7l2.4 2.4-2.4-2.4m4.7 0l2.4 2.4-2.3-2.4z"/>
-    <path fill="#6cc" d="M115 47.1l2.3 2.4-2.4-2.4z"/>
-    <path fill="#c00" stroke="#fff" stroke-width="3" d="M121.7 32.9L105 96.2l-63.5 17.2 63.3 16.5 16.9 63.3 16.9-63.3 63.2-16.9-63.3-16.8-16.8-63.3z"/>
-    <path fill="#6cc" d="M129.2 47.1l2.4 2.4-2.4-2.4z"/>
-    <path fill="#9cf" d="M115 49.5l2.3 2.4-2.4-2.4m14.3 0l2.4 2.4-2.4-2.4z"/>
-    <path fill="#fcc" d="M117.3 51.9l2.4 2.3-2.4-2.3m9.5 0l2.4 2.3-2.4-2.3z"/>
-    <path fill="#69c" d="M112.5 54.3l2.4 2.3-2.4-2.3z"/>
-    <path fill="#c33" d="M118.1 55.8l.8 1.6-.8-1.6m9.5 0l.8 1.6-.8-1.6z"/>
-    <path fill="#69c" d="M131.6 54.3l2.4 2.3-2.4-2.3z"/>
-    <path fill="#9cf" d="M112.5 56.6L115 59l-2.4-2.4m19 0L134 59l-2.4-2.4z"/>
-    <path fill="#fcc" d="M115 59l2.3 2.4-2.4-2.4m14.3 0l2.4 2.4-2.4-2.4z"/>
-    <path fill="#69c" d="M110.2 61.4l2.3 2.4-2.3-2.4zm23.8 0l2.4 2.4-2.4-2.4z"/>
-    <path fill="#9cc" d="M110.2 63.8l2.3 2.4-2.3-2.4m23.8 0l2.4 2.4-2.4-2.4z"/>
-    <path fill="#cff" d="M110.2 66.2l2.3 2.3-2.3-2.3m23.8 0l2.4 2.3-2.4-2.3z"/>
-    <path fill="#69c" d="M107.8 68.5l2.4 2.4-2.4-2.4z"/>
-    <path fill="#fcc" d="M112.5 68.5L115 71l-2.4-2.4m19 0L134 71l-2.4-2.4z"/>
-    <path fill="#69c" d="M136.3 68.5l2.4 2.4-2.3-2.4z"/>
-    <path fill="#9cc" d="M107.8 71l2.4 2.3-2.4-2.4z"/>
-    <path fill="#c33" d="M113.3 72.5l.8 1.6-.8-1.6m19 0l.9 1.6-.8-1.6z"/>
-    <path fill="#9cc" d="M136.3 71l2.4 2.3-2.3-2.4z"/>
-    <path fill="#cff" d="M107.8 73.3l2.4 2.4-2.4-2.4m28.6 0l2.3 2.4-2.3-2.4z"/>
-    <path fill="#fcc" d="M110.2 75.7l2.3 2.3-2.3-2.3m23.8 0l2.4 2.3-2.4-2.3z"/>
-    <path fill="#9cc" d="M105.4 78l2.4 2.4-2.4-2.3z"/>
-    <path fill="#c33" d="M111 79.6l.7 1.6-.8-1.6m23.9 0l.8 1.6-.8-1.6z"/>
-    <path fill="#9cc" d="M138.7 78l2.4 2.4-2.4-2.3z"/>
-    <path fill="#ccf" d="M105.4 80.4l2.4 2.4-2.4-2.4m33.3 0l2.4 2.4-2.4-2.4z"/>
-    <path fill="#fcc" d="M107.8 82.8l2.4 2.4-2.4-2.4m28.6 0l2.3 2.4-2.3-2.4z"/>
-    <path fill="#9cc" d="M103 85.2l2.4 2.4-2.4-2.4z"/>
-    <path fill="#c33" d="M108.6 86.8l.8 1.6-.8-1.6m28.5 0l.8 1.6-.8-1.6z"/>
-    <path fill="#9cc" d="M141.1 85.2l2.4 2.4-2.4-2.4z"/>
-    <path fill="#ccf" d="M103 87.6l2.4 2.4-2.4-2.4m38.1 0l2.4 2.4-2.4-2.4z"/>
-    <path fill="#fcc" d="M105.4 90l2.4 2.3-2.4-2.3m33.3 0l2.4 2.3-2.4-2.3z"/>
-    <path fill="#9cc" d="M100.6 92.3l2.4 2.4-2.4-2.4z"/>
-    <path fill="#c33" d="M105.4 92.3l2.4 2.4-2.4-2.4m33.3 0l2.4 2.4-2.4-2.4z"/>
-    <path fill="#9cc" d="M143.5 92.3l2.4 2.4-2.4-2.4m-50 2.4l2.4 2.4-2.4-2.4z"/>
-    <path fill="#ccf" d="M95.9 94.7l2.4 2.4-2.4-2.4m52.3 0l2.4 2.4-2.3-2.4z"/>
-    <path fill="#9cc" d="M150.6 94.7l2.4 2.4-2.4-2.4m-64.2 2.4l2.3 2.4-2.3-2.4z"/>
-    <path fill="#ccf" d="M88.7 97.1l2.4 2.4-2.4-2.4z"/>
-    <path fill="#fcc" d="M98.3 97.1l2.3 2.4-2.3-2.4z"/>
-    <path fill="#c33" d="M100.6 97.1l2.4 2.4-2.4-2.4m42.9 0l2.4 2.4-2.4-2.4z"/>
-    <path fill="#fcc" d="M145.9 97.1l2.3 2.4L146 97z"/>
-    <path fill="#ccf" d="M155.4 97.1l2.4 2.4-2.4-2.4z"/>
-    <path fill="#9cc" d="M157.8 97.1l2.3 2.4-2.3-2.4z"/>
-    <path fill="#69c" d="M76.8 99.5l2.4 2.4-2.4-2.4z"/>
-    <path fill="#9cc" d="M79.2 99.5l2.4 2.4-2.4-2.4z"/>
-    <path fill="#cff" d="M81.6 99.5l2.4 2.4-2.4-2.4z"/>
-    <path fill="#fcc" d="M91.1 99.5l2.4 2.4-2.4-2.4z"/>
-    <path fill="#c33" d="M95 100.3l1.7.8-1.6-.8m54.7 0l1.6.8-1.6-.8z"/>
-    <path fill="#fcc" d="M153 99.5l2.4 2.4-2.4-2.4z"/>
-    <path fill="#cff" d="M162.5 99.5l2.4 2.4-2.4-2.4z"/>
-    <path fill="#9cc" d="M165 99.5l2.3 2.4-2.4-2.4z"/>
-    <path fill="#69c" d="M167.3 99.5l2.4 2.4-2.4-2.4m-97.6 2.4l2.4 2.3-2.4-2.3z"/>
-    <path fill="#9cc" d="M72 101.9l2.5 2.3L72 102z"/>
-    <path fill="#cff" d="M74.5 101.9l2.3 2.3-2.3-2.3z"/>
-    <path fill="#fcc" d="M84 101.9l2.4 2.3L84 102z"/>
-    <path fill="#c33" d="M88 102.7l1.5.8-1.5-.8m69 0l1.6.8-1.6-.8z"/>
-    <path fill="#fcc" d="M160.2 101.9l2.3 2.3-2.3-2.3z"/>
-    <path fill="#cff" d="M169.7 101.9l2.3 2.3-2.3-2.3z"/>
-    <path fill="#9cc" d="M172 101.9l2.4 2.3-2.3-2.3z"/>
-    <path fill="#69c" d="M174.4 101.9l2.4 2.3-2.4-2.3m-111.8 2.3l2.3 2.4-2.3-2.4z"/>
-    <path fill="#9cf" d="M65 104.2l2.3 2.4-2.4-2.4z"/>
-    <path fill="#fcc" d="M76.8 104.2l2.4 2.4-2.4-2.4z"/>
-    <path fill="#c33" d="M80.8 105l1.6.8-1.6-.8m83.3 0l1.6.8-1.6-.8z"/>
-    <path fill="#fcc" d="M167.3 104.2l2.4 2.4-2.4-2.4z"/>
-    <path fill="#9cf" d="M179.2 104.2l2.4 2.4-2.4-2.4z"/>
-    <path fill="#69c" d="M181.6 104.2l2.3 2.4-2.3-2.4z"/>
-    <path fill="#6cc" d="M55.4 106.6l2.4 2.4-2.4-2.4z"/>
-    <path fill="#9cf" d="M57.8 106.6l2.4 2.4-2.4-2.4z"/>
-    <path fill="#fcc" d="M67.3 106.6l2.4 2.4-2.4-2.4zm109.5 0l2.4 2.4-2.4-2.4z"/>
-    <path fill="#9cf" d="M186.3 106.6l2.4 2.4-2.4-2.4z"/>
-    <path fill="#6cc" d="M188.7 106.6l2.4 2.4-2.4-2.4M48.3 109l2.4 2.4-2.4-2.4z"/>
-    <path fill="#ccf" d="M50.6 109l2.4 2.4-2.3-2.4z"/>
-    <path fill="#fcc" d="M60.2 109l2.3 2.4-2.3-2.4z"/>
-    <path fill="#c33" d="M64.1 109.8l1.6.8-1.6-.8m116.7 0l1.6.8-1.6-.8z"/>
-    <path fill="#fcc" d="M184 109l2.3 2.4-2.3-2.4z"/>
-    <path fill="#ccf" d="M193.5 109l2.4 2.4-2.4-2.4z"/>
-    <path fill="#6cc" d="M195.9 109l2.3 2.4-2.3-2.4z"/>
-    <path fill="#9cc" d="M41.1 111.4l2.4 2.4-2.4-2.4z"/>
-    <path fill="#ccf" d="M43.5 111.4l2.4 2.4-2.4-2.4z"/>
-    <path fill="#fcc" d="M53 111.4l2.4 2.4-2.4-2.4zm138.1 0l2.4 2.4-2.4-2.4z"/>
-    <path fill="#ccf" d="M200.6 111.4l2.4 2.4-2.4-2.4z"/>
-    <path fill="#9cc" d="M203 111.4l2.4 2.4-2.4-2.4m-166.6 2.4l2.4 2.3-2.4-2.3z"/>
-    <path fill="#c66" d="M48.3 113.8l2.4 2.3-2.4-2.3zm147.6 0l2.3 2.3-2.3-2.3z"/>
-    <path fill="#9cc" d="M207.8 113.8l2.3 2.3-2.3-2.3M41 116l2.4 2.4L41 116z"/>
-    <path fill="#ccf" d="M43.5 116.1l2.4 2.4-2.4-2.4z"/>
-    <path fill="#fcc" d="M53 116.1l2.4 2.4-2.4-2.4m138.1 0l2.4 2.4-2.4-2.4z"/>
-    <path fill="#ccf" d="M200.6 116.1l2.4 2.4-2.4-2.4z"/>
-    <path fill="#9cc" d="M203 116.1l2.4 2.4-2.4-2.4z"/>
-    <path fill="#6cc" d="M48.3 118.5l2.4 2.4-2.4-2.4z"/>
-    <path fill="#ccf" d="M50.6 118.5L53 121l-2.3-2.4z"/>
-    <path fill="#fcc" d="M60.2 118.5l2.3 2.4-2.3-2.4z"/>
-    <path fill="#c33" d="M64.1 119.3l1.6.8-1.6-.8m116.7 0l1.6.8-1.6-.8z"/>
-    <path fill="#fcc" d="M184 118.5l2.3 2.4-2.3-2.4z"/>
-    <path fill="#ccf" d="M193.5 118.5l2.4 2.4-2.4-2.4z"/>
-    <path fill="#6cc" d="M195.9 118.5l2.3 2.4-2.3-2.4M55.4 121l2.4 2.4-2.4-2.4z"/>
-    <path fill="#9cf" d="M57.8 120.9l2.4 2.4-2.4-2.4z"/>
-    <path fill="#fcc" d="M67.3 120.9l2.4 2.4-2.4-2.4zm109.5 0l2.4 2.4-2.4-2.4z"/>
-    <path fill="#9cf" d="M186.3 120.9l2.4 2.4-2.4-2.4z"/>
-    <path fill="#6cc" d="M188.7 120.9l2.4 2.4-2.4-2.4z"/>
-    <path fill="#69c" d="M62.5 123.3l2.4 2.4-2.3-2.4z"/>
-    <path fill="#9cf" d="M65 123.3l2.3 2.4-2.4-2.4z"/>
-    <path fill="#fcc" d="M76.8 123.3l2.4 2.4-2.4-2.4z"/>
-    <path fill="#c33" d="M80.8 124l1.6.9-1.6-.8m83.3 0l1.6.8-1.6-.8z"/>
-    <path fill="#fcc" d="M167.3 123.3l2.4 2.4-2.4-2.4z"/>
-    <path fill="#9cf" d="M179.2 123.3l2.4 2.4-2.4-2.4z"/>
-    <path fill="#69c" d="M181.6 123.3l2.3 2.4-2.3-2.4m-111.9 2.4l2.4 2.3-2.4-2.3z"/>
-    <path fill="#9cc" d="M72 125.7l2.5 2.3-2.4-2.3z"/>
-    <path fill="#cff" d="M74.5 125.7l2.3 2.3-2.3-2.3z"/>
-    <path fill="#fcc" d="M84 125.7l2.4 2.3-2.4-2.3z"/>
-    <path fill="#c33" d="M88 126.5l1.5.7-1.5-.8m69 0l1.6.8-1.6-.8z"/>
-    <path fill="#fcc" d="M160.2 125.7l2.3 2.3-2.3-2.3z"/>
-    <path fill="#cff" d="M169.7 125.7l2.3 2.3-2.3-2.3z"/>
-    <path fill="#9cc" d="M172 125.7l2.4 2.3-2.3-2.3z"/>
-    <path fill="#69c" d="M174.4 125.7l2.4 2.3-2.4-2.3M76.8 128l2.4 2.4-2.4-2.4z"/>
-    <path fill="#9cc" d="M79.2 128l2.4 2.4-2.4-2.4z"/>
-    <path fill="#cff" d="M81.6 128l2.4 2.4-2.4-2.4z"/>
-    <path fill="#fcc" d="M91.1 128l2.4 2.4-2.4-2.4z"/>
-    <path fill="#c33" d="M95 128.8l1.7.8-1.6-.8m54.7 0l1.6.8-1.6-.8z"/>
-    <path fill="#fcc" d="M153 128l2.4 2.4-2.4-2.4z"/>
-    <path fill="#cff" d="M162.5 128l2.4 2.4-2.4-2.4z"/>
-    <path fill="#9cc" d="M165 128l2.3 2.4-2.4-2.4z"/>
-    <path fill="#69c" d="M167.3 128l2.4 2.4-2.4-2.4z"/>
-    <path fill="#9cc" d="M86.4 130.4l2.3 2.4-2.3-2.4z"/>
-    <path fill="#ccf" d="M88.7 130.4l2.4 2.4-2.4-2.4z"/>
-    <path fill="#fcc" d="M98.3 130.4l2.3 2.4-2.3-2.4z"/>
-    <path fill="#c33" d="M100.6 130.4l2.4 2.4-2.4-2.4m42.9 0l2.4 2.4-2.4-2.4z"/>
-    <path fill="#fcc" d="M145.9 130.4l2.3 2.4-2.3-2.4z"/>
-    <path fill="#ccf" d="M155.4 130.4l2.4 2.4-2.4-2.4z"/>
-    <path fill="#9cc" d="M157.8 130.4l2.3 2.4-2.3-2.4m-64.3 2.4l2.4 2.4-2.4-2.4z"/>
-    <path fill="#ccf" d="M95.9 132.8l2.4 2.4-2.4-2.4m52.3 0l2.4 2.4-2.3-2.4z"/>
-    <path fill="#9cc" d="M150.6 132.8l2.4 2.4-2.4-2.4m-50 2.4l2.4 2.4-2.4-2.4z"/>
-    <path fill="#c33" d="M105.4 135.2l2.4 2.4-2.4-2.4m33.3 0l2.4 2.4-2.4-2.4z"/>
-    <path fill="#9cc" d="M143.5 135.2l2.4 2.4-2.4-2.4z"/>
-    <path fill="#fcc" d="M105.4 137.6l2.4 2.3-2.4-2.3m33.3 0l2.4 2.3-2.4-2.3z"/>
-    <path fill="#ccf" d="M103 140l2.4 2.3-2.4-2.4z"/>
-    <path fill="#c33" d="M108.6 141.5l.8 1.6-.8-1.6m28.5 0l.8 1.6-.8-1.6z"/>
-    <path fill="#ccf" d="M141.1 140l2.4 2.3-2.4-2.4z"/>
-    <path fill="#9cc" d="M103 142.3l2.4 2.4-2.4-2.4m38.1 0l2.4 2.4-2.4-2.4z"/>
-    <path fill="#fcc" d="M107.8 144.7l2.4 2.4-2.4-2.4m28.6 0l2.3 2.4-2.3-2.4z"/>
-    <path fill="#ccf" d="M105.4 147l2.4 2.5-2.4-2.4z"/>
-    <path fill="#c33" d="M111 148.7l.7 1.6-.8-1.6m23.9 0l.8 1.6-.8-1.6z"/>
-    <path fill="#ccf" d="M138.7 147l2.4 2.5-2.4-2.4z"/>
-    <path fill="#9cc" d="M105.4 149.5l2.4 2.3-2.4-2.3m33.3 0l2.4 2.3-2.4-2.3z"/>
-    <path fill="#fcc" d="M110.2 151.8l2.3 2.4-2.3-2.3m23.8 0l2.4 2.3-2.4-2.3z"/>
-    <path fill="#cff" d="M107.8 154.2l2.4 2.4-2.4-2.4z"/>
-    <path fill="#c33" d="M113.3 155.8l.8 1.6-.8-1.6m19 0l.9 1.6-.8-1.6z"/>
-    <path fill="#cff" d="M136.3 154.2l2.4 2.4-2.3-2.4z"/>
-    <path fill="#9cc" d="M107.8 156.6l2.4 2.4-2.4-2.4m28.6 0l2.3 2.4-2.3-2.4z"/>
-    <path fill="#69c" d="M107.8 159l2.4 2.4-2.4-2.4z"/>
-    <path fill="#fcc" d="M112.5 159l2.4 2.4-2.4-2.4m19 0l2.5 2.4-2.4-2.4z"/>
-    <path fill="#69c" d="M136.3 159l2.4 2.4-2.3-2.4z"/>
-    <path fill="#cff" d="M110.2 161.4l2.3 2.3-2.3-2.3zm23.8 0l2.4 2.3-2.4-2.3z"/>
-    <path fill="#9cc" d="M110.2 163.8l2.3 2.3-2.3-2.3m23.8 0l2.4 2.3-2.4-2.3z"/>
-    <path fill="#69c" d="M110.2 166.1l2.3 2.4-2.3-2.4m23.8 0l2.4 2.4-2.4-2.4z"/>
-    <path fill="#fcc" d="M115 168.5l2.3 2.4-2.4-2.4m14.3 0l2.4 2.4-2.4-2.4z"/>
-    <path fill="#9cf" d="M112.5 170.9l2.4 2.4-2.4-2.4z"/>
-    <path fill="#c33" d="M118.1 172.5l.8 1.6-.8-1.6m9.5 0l.8 1.6-.8-1.6z"/>
-    <path fill="#9cf" d="M131.6 170.9l2.4 2.4-2.4-2.4z"/>
-    <path fill="#69c" d="M112.5 173.3l2.4 2.3-2.4-2.3m19 0l2.5 2.3-2.4-2.3z"/>
-    <path fill="#fcc" d="M117.3 175.7l2.4 2.3-2.4-2.3m9.5 0l2.4 2.3-2.4-2.3z"/>
-    <path fill="#9cf" d="M115 178l2.3 2.4-2.4-2.4zm14.2 0l2.4 2.4-2.4-2.4z"/>
-    <path fill="#6cc" d="M115 180.4l2.3 2.4-2.4-2.4m14.3 0l2.4 2.4-2.4-2.4z"/>
-    <path fill="#fcc" d="M119.7 182.8l2.4 2.4-2.4-2.4m4.7 0l2.4 2.4-2.3-2.4z"/>
-    <path fill="#ccf" d="M117.3 185.2l2.4 2.3-2.4-2.3m9.5 0l2.4 2.3-2.4-2.3z"/>
-    <path fill="#6cc" d="M117.3 187.6l2.4 2.3-2.4-2.3z"/>
-    <path fill="#c66" d="M122 187.6l2.4 2.3-2.3-2.3z"/>
-    <path fill="#6cc" d="M126.8 187.6l2.4 2.3-2.4-2.3z"/>
-    <path fill="#ccf" d="M119.7 192.3l2.4 2.4-2.4-2.4m4.7 0l2.4 2.4-2.3-2.4z"/>
-    <path fill="#9cc" d="M119.7 194.7l2.4 2.4-2.4-2.4m4.7 0l2.4 2.4-2.3-2.4m-2.4 4.8l2.4 2.3-2.4-2.4z"/>
+    <path fill="#9cc" d="m122 28 2.4 2.5-2.3-2.4zm-2.3 4.8 2.4 2.4-2.4-2.4m4.7 0 2.4 2.4-2.3-2.4z"/>
+    <path fill="#ccf" d="m119.7 35.2 2.4 2.4-2.4-2.4m4.7 0 2.4 2.4-2.3-2.4z"/>
+    <path fill="#6cc" d="m117.3 40 2.4 2.3-2.4-2.3z"/>
+    <path fill="#c66" d="m122 40 2.4 2.3-2.3-2.3z"/>
+    <path fill="#6cc" d="m126.8 40 2.4 2.3-2.4-2.3z"/>
+    <path fill="#ccf" d="m117.3 42.4 2.4 2.3-2.4-2.3zm9.5 0 2.4 2.3-2.4-2.3z"/>
+    <path fill="#fcc" d="m119.7 44.7 2.4 2.4-2.4-2.4m4.7 0 2.4 2.4-2.3-2.4z"/>
+    <path fill="#6cc" d="m115 47.1 2.3 2.4-2.4-2.4z"/>
+    <path fill="#c00" stroke="#fff" stroke-width="3" d="M121.7 32.9 105 96.2l-63.5 17.2 63.3 16.5 16.9 63.3 16.9-63.3 63.2-16.9-63.3-16.8-16.8-63.3z"/>
+    <path fill="#6cc" d="m129.2 47.1 2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cf" d="m115 49.5 2.3 2.4-2.4-2.4m14.3 0 2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="m117.3 51.9 2.4 2.3-2.4-2.3m9.5 0 2.4 2.3-2.4-2.3z"/>
+    <path fill="#69c" d="m112.5 54.3 2.4 2.3-2.4-2.3z"/>
+    <path fill="#c33" d="m118.1 55.8.8 1.6-.8-1.6m9.5 0 .8 1.6-.8-1.6z"/>
+    <path fill="#69c" d="m131.6 54.3 2.4 2.3-2.4-2.3z"/>
+    <path fill="#9cf" d="M112.5 56.6 115 59l-2.4-2.4m19 0L134 59l-2.4-2.4z"/>
+    <path fill="#fcc" d="m115 59 2.3 2.4-2.4-2.4m14.3 0 2.4 2.4-2.4-2.4z"/>
+    <path fill="#69c" d="m110.2 61.4 2.3 2.4-2.3-2.4zm23.8 0 2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cc" d="m110.2 63.8 2.3 2.4-2.3-2.4m23.8 0 2.4 2.4-2.4-2.4z"/>
+    <path fill="#cff" d="m110.2 66.2 2.3 2.3-2.3-2.3m23.8 0 2.4 2.3-2.4-2.3z"/>
+    <path fill="#69c" d="m107.8 68.5 2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="M112.5 68.5 115 71l-2.4-2.4m19 0L134 71l-2.4-2.4z"/>
+    <path fill="#69c" d="m136.3 68.5 2.4 2.4-2.3-2.4z"/>
+    <path fill="#9cc" d="m107.8 71 2.4 2.3-2.4-2.4z"/>
+    <path fill="#c33" d="m113.3 72.5.8 1.6-.8-1.6m19 0 .9 1.6-.8-1.6z"/>
+    <path fill="#9cc" d="m136.3 71 2.4 2.3-2.3-2.4z"/>
+    <path fill="#cff" d="m107.8 73.3 2.4 2.4-2.4-2.4m28.6 0 2.3 2.4-2.3-2.4z"/>
+    <path fill="#fcc" d="m110.2 75.7 2.3 2.3-2.3-2.3m23.8 0 2.4 2.3-2.4-2.3z"/>
+    <path fill="#9cc" d="m105.4 78 2.4 2.4-2.4-2.3z"/>
+    <path fill="#c33" d="m111 79.6.7 1.6-.8-1.6m23.9 0 .8 1.6-.8-1.6z"/>
+    <path fill="#9cc" d="m138.7 78 2.4 2.4-2.4-2.3z"/>
+    <path fill="#ccf" d="m105.4 80.4 2.4 2.4-2.4-2.4m33.3 0 2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="m107.8 82.8 2.4 2.4-2.4-2.4m28.6 0 2.3 2.4-2.3-2.4z"/>
+    <path fill="#9cc" d="m103 85.2 2.4 2.4-2.4-2.4z"/>
+    <path fill="#c33" d="m108.6 86.8.8 1.6-.8-1.6m28.5 0 .8 1.6-.8-1.6z"/>
+    <path fill="#9cc" d="m141.1 85.2 2.4 2.4-2.4-2.4z"/>
+    <path fill="#ccf" d="m103 87.6 2.4 2.4-2.4-2.4m38.1 0 2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="m105.4 90 2.4 2.3-2.4-2.3m33.3 0 2.4 2.3-2.4-2.3z"/>
+    <path fill="#9cc" d="m100.6 92.3 2.4 2.4-2.4-2.4z"/>
+    <path fill="#c33" d="m105.4 92.3 2.4 2.4-2.4-2.4m33.3 0 2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cc" d="m143.5 92.3 2.4 2.4-2.4-2.4m-50 2.4 2.4 2.4-2.4-2.4z"/>
+    <path fill="#ccf" d="m95.9 94.7 2.4 2.4-2.4-2.4m52.3 0 2.4 2.4-2.3-2.4z"/>
+    <path fill="#9cc" d="m150.6 94.7 2.4 2.4-2.4-2.4m-64.2 2.4 2.3 2.4-2.3-2.4z"/>
+    <path fill="#ccf" d="m88.7 97.1 2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="m98.3 97.1 2.3 2.4-2.3-2.4z"/>
+    <path fill="#c33" d="m100.6 97.1 2.4 2.4-2.4-2.4m42.9 0 2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="m145.9 97.1 2.3 2.4L146 97z"/>
+    <path fill="#ccf" d="m155.4 97.1 2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cc" d="m157.8 97.1 2.3 2.4-2.3-2.4z"/>
+    <path fill="#69c" d="m76.8 99.5 2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cc" d="m79.2 99.5 2.4 2.4-2.4-2.4z"/>
+    <path fill="#cff" d="m81.6 99.5 2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="m91.1 99.5 2.4 2.4-2.4-2.4z"/>
+    <path fill="#c33" d="m95 100.3 1.7.8-1.6-.8m54.7 0 1.6.8-1.6-.8z"/>
+    <path fill="#fcc" d="m153 99.5 2.4 2.4-2.4-2.4z"/>
+    <path fill="#cff" d="m162.5 99.5 2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cc" d="m165 99.5 2.3 2.4-2.4-2.4z"/>
+    <path fill="#69c" d="m167.3 99.5 2.4 2.4-2.4-2.4m-97.6 2.4 2.4 2.3-2.4-2.3z"/>
+    <path fill="#9cc" d="m72 101.9 2.5 2.3L72 102z"/>
+    <path fill="#cff" d="m74.5 101.9 2.3 2.3-2.3-2.3z"/>
+    <path fill="#fcc" d="m84 101.9 2.4 2.3L84 102z"/>
+    <path fill="#c33" d="m88 102.7 1.5.8-1.5-.8m69 0 1.6.8-1.6-.8z"/>
+    <path fill="#fcc" d="m160.2 101.9 2.3 2.3-2.3-2.3z"/>
+    <path fill="#cff" d="m169.7 101.9 2.3 2.3-2.3-2.3z"/>
+    <path fill="#9cc" d="m172 101.9 2.4 2.3-2.3-2.3z"/>
+    <path fill="#69c" d="m174.4 101.9 2.4 2.3-2.4-2.3m-111.8 2.3 2.3 2.4-2.3-2.4z"/>
+    <path fill="#9cf" d="m65 104.2 2.3 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="m76.8 104.2 2.4 2.4-2.4-2.4z"/>
+    <path fill="#c33" d="m80.8 105 1.6.8-1.6-.8m83.3 0 1.6.8-1.6-.8z"/>
+    <path fill="#fcc" d="m167.3 104.2 2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cf" d="m179.2 104.2 2.4 2.4-2.4-2.4z"/>
+    <path fill="#69c" d="m181.6 104.2 2.3 2.4-2.3-2.4z"/>
+    <path fill="#6cc" d="m55.4 106.6 2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cf" d="m57.8 106.6 2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="m67.3 106.6 2.4 2.4-2.4-2.4zm109.5 0 2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cf" d="m186.3 106.6 2.4 2.4-2.4-2.4z"/>
+    <path fill="#6cc" d="m188.7 106.6 2.4 2.4-2.4-2.4M48.3 109l2.4 2.4-2.4-2.4z"/>
+    <path fill="#ccf" d="m50.6 109 2.4 2.4-2.3-2.4z"/>
+    <path fill="#fcc" d="m60.2 109 2.3 2.4-2.3-2.4z"/>
+    <path fill="#c33" d="m64.1 109.8 1.6.8-1.6-.8m116.7 0 1.6.8-1.6-.8z"/>
+    <path fill="#fcc" d="m184 109 2.3 2.4-2.3-2.4z"/>
+    <path fill="#ccf" d="m193.5 109 2.4 2.4-2.4-2.4z"/>
+    <path fill="#6cc" d="m195.9 109 2.3 2.4-2.3-2.4z"/>
+    <path fill="#9cc" d="m41.1 111.4 2.4 2.4-2.4-2.4z"/>
+    <path fill="#ccf" d="m43.5 111.4 2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="m53 111.4 2.4 2.4-2.4-2.4zm138.1 0 2.4 2.4-2.4-2.4z"/>
+    <path fill="#ccf" d="m200.6 111.4 2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cc" d="m203 111.4 2.4 2.4-2.4-2.4m-166.6 2.4 2.4 2.3-2.4-2.3z"/>
+    <path fill="#c66" d="m48.3 113.8 2.4 2.3-2.4-2.3zm147.6 0 2.3 2.3-2.3-2.3z"/>
+    <path fill="#9cc" d="m207.8 113.8 2.3 2.3-2.3-2.3M41 116l2.4 2.4L41 116z"/>
+    <path fill="#ccf" d="m43.5 116.1 2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="m53 116.1 2.4 2.4-2.4-2.4m138.1 0 2.4 2.4-2.4-2.4z"/>
+    <path fill="#ccf" d="m200.6 116.1 2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cc" d="m203 116.1 2.4 2.4-2.4-2.4z"/>
+    <path fill="#6cc" d="m48.3 118.5 2.4 2.4-2.4-2.4z"/>
+    <path fill="#ccf" d="M50.6 118.5 53 121l-2.3-2.4z"/>
+    <path fill="#fcc" d="m60.2 118.5 2.3 2.4-2.3-2.4z"/>
+    <path fill="#c33" d="m64.1 119.3 1.6.8-1.6-.8m116.7 0 1.6.8-1.6-.8z"/>
+    <path fill="#fcc" d="m184 118.5 2.3 2.4-2.3-2.4z"/>
+    <path fill="#ccf" d="m193.5 118.5 2.4 2.4-2.4-2.4z"/>
+    <path fill="#6cc" d="m195.9 118.5 2.3 2.4-2.3-2.4M55.4 121l2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cf" d="m57.8 120.9 2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="m67.3 120.9 2.4 2.4-2.4-2.4zm109.5 0 2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cf" d="m186.3 120.9 2.4 2.4-2.4-2.4z"/>
+    <path fill="#6cc" d="m188.7 120.9 2.4 2.4-2.4-2.4z"/>
+    <path fill="#69c" d="m62.5 123.3 2.4 2.4-2.3-2.4z"/>
+    <path fill="#9cf" d="m65 123.3 2.3 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="m76.8 123.3 2.4 2.4-2.4-2.4z"/>
+    <path fill="#c33" d="m80.8 124 1.6.9-1.6-.8m83.3 0 1.6.8-1.6-.8z"/>
+    <path fill="#fcc" d="m167.3 123.3 2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cf" d="m179.2 123.3 2.4 2.4-2.4-2.4z"/>
+    <path fill="#69c" d="m181.6 123.3 2.3 2.4-2.3-2.4m-111.9 2.4 2.4 2.3-2.4-2.3z"/>
+    <path fill="#9cc" d="m72 125.7 2.5 2.3-2.4-2.3z"/>
+    <path fill="#cff" d="m74.5 125.7 2.3 2.3-2.3-2.3z"/>
+    <path fill="#fcc" d="m84 125.7 2.4 2.3-2.4-2.3z"/>
+    <path fill="#c33" d="m88 126.5 1.5.7-1.5-.8m69 0 1.6.8-1.6-.8z"/>
+    <path fill="#fcc" d="m160.2 125.7 2.3 2.3-2.3-2.3z"/>
+    <path fill="#cff" d="m169.7 125.7 2.3 2.3-2.3-2.3z"/>
+    <path fill="#9cc" d="m172 125.7 2.4 2.3-2.3-2.3z"/>
+    <path fill="#69c" d="m174.4 125.7 2.4 2.3-2.4-2.3M76.8 128l2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cc" d="m79.2 128 2.4 2.4-2.4-2.4z"/>
+    <path fill="#cff" d="m81.6 128 2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="m91.1 128 2.4 2.4-2.4-2.4z"/>
+    <path fill="#c33" d="m95 128.8 1.7.8-1.6-.8m54.7 0 1.6.8-1.6-.8z"/>
+    <path fill="#fcc" d="m153 128 2.4 2.4-2.4-2.4z"/>
+    <path fill="#cff" d="m162.5 128 2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cc" d="m165 128 2.3 2.4-2.4-2.4z"/>
+    <path fill="#69c" d="m167.3 128 2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cc" d="m86.4 130.4 2.3 2.4-2.3-2.4z"/>
+    <path fill="#ccf" d="m88.7 130.4 2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="m98.3 130.4 2.3 2.4-2.3-2.4z"/>
+    <path fill="#c33" d="m100.6 130.4 2.4 2.4-2.4-2.4m42.9 0 2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="m145.9 130.4 2.3 2.4-2.3-2.4z"/>
+    <path fill="#ccf" d="m155.4 130.4 2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cc" d="m157.8 130.4 2.3 2.4-2.3-2.4m-64.3 2.4 2.4 2.4-2.4-2.4z"/>
+    <path fill="#ccf" d="m95.9 132.8 2.4 2.4-2.4-2.4m52.3 0 2.4 2.4-2.3-2.4z"/>
+    <path fill="#9cc" d="m150.6 132.8 2.4 2.4-2.4-2.4m-50 2.4 2.4 2.4-2.4-2.4z"/>
+    <path fill="#c33" d="m105.4 135.2 2.4 2.4-2.4-2.4m33.3 0 2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cc" d="m143.5 135.2 2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="m105.4 137.6 2.4 2.3-2.4-2.3m33.3 0 2.4 2.3-2.4-2.3z"/>
+    <path fill="#ccf" d="m103 140 2.4 2.3-2.4-2.4z"/>
+    <path fill="#c33" d="m108.6 141.5.8 1.6-.8-1.6m28.5 0 .8 1.6-.8-1.6z"/>
+    <path fill="#ccf" d="m141.1 140 2.4 2.3-2.4-2.4z"/>
+    <path fill="#9cc" d="m103 142.3 2.4 2.4-2.4-2.4m38.1 0 2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="m107.8 144.7 2.4 2.4-2.4-2.4m28.6 0 2.3 2.4-2.3-2.4z"/>
+    <path fill="#ccf" d="m105.4 147 2.4 2.5-2.4-2.4z"/>
+    <path fill="#c33" d="m111 148.7.7 1.6-.8-1.6m23.9 0 .8 1.6-.8-1.6z"/>
+    <path fill="#ccf" d="m138.7 147 2.4 2.5-2.4-2.4z"/>
+    <path fill="#9cc" d="m105.4 149.5 2.4 2.3-2.4-2.3m33.3 0 2.4 2.3-2.4-2.3z"/>
+    <path fill="#fcc" d="m110.2 151.8 2.3 2.4-2.3-2.3m23.8 0 2.4 2.3-2.4-2.3z"/>
+    <path fill="#cff" d="m107.8 154.2 2.4 2.4-2.4-2.4z"/>
+    <path fill="#c33" d="m113.3 155.8.8 1.6-.8-1.6m19 0 .9 1.6-.8-1.6z"/>
+    <path fill="#cff" d="m136.3 154.2 2.4 2.4-2.3-2.4z"/>
+    <path fill="#9cc" d="m107.8 156.6 2.4 2.4-2.4-2.4m28.6 0 2.3 2.4-2.3-2.4z"/>
+    <path fill="#69c" d="m107.8 159 2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="m112.5 159 2.4 2.4-2.4-2.4m19 0 2.5 2.4-2.4-2.4z"/>
+    <path fill="#69c" d="m136.3 159 2.4 2.4-2.3-2.4z"/>
+    <path fill="#cff" d="m110.2 161.4 2.3 2.3-2.3-2.3zm23.8 0 2.4 2.3-2.4-2.3z"/>
+    <path fill="#9cc" d="m110.2 163.8 2.3 2.3-2.3-2.3m23.8 0 2.4 2.3-2.4-2.3z"/>
+    <path fill="#69c" d="m110.2 166.1 2.3 2.4-2.3-2.4m23.8 0 2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="m115 168.5 2.3 2.4-2.4-2.4m14.3 0 2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cf" d="m112.5 170.9 2.4 2.4-2.4-2.4z"/>
+    <path fill="#c33" d="m118.1 172.5.8 1.6-.8-1.6m9.5 0 .8 1.6-.8-1.6z"/>
+    <path fill="#9cf" d="m131.6 170.9 2.4 2.4-2.4-2.4z"/>
+    <path fill="#69c" d="m112.5 173.3 2.4 2.3-2.4-2.3m19 0 2.5 2.3-2.4-2.3z"/>
+    <path fill="#fcc" d="m117.3 175.7 2.4 2.3-2.4-2.3m9.5 0 2.4 2.3-2.4-2.3z"/>
+    <path fill="#9cf" d="m115 178 2.3 2.4-2.4-2.4zm14.2 0 2.4 2.4-2.4-2.4z"/>
+    <path fill="#6cc" d="m115 180.4 2.3 2.4-2.4-2.4m14.3 0 2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="m119.7 182.8 2.4 2.4-2.4-2.4m4.7 0 2.4 2.4-2.3-2.4z"/>
+    <path fill="#ccf" d="m117.3 185.2 2.4 2.3-2.4-2.3m9.5 0 2.4 2.3-2.4-2.3z"/>
+    <path fill="#6cc" d="m117.3 187.6 2.4 2.3-2.4-2.3z"/>
+    <path fill="#c66" d="m122 187.6 2.4 2.3-2.3-2.3z"/>
+    <path fill="#6cc" d="m126.8 187.6 2.4 2.3-2.4-2.3z"/>
+    <path fill="#ccf" d="m119.7 192.3 2.4 2.4-2.4-2.4m4.7 0 2.4 2.4-2.3-2.4z"/>
+    <path fill="#9cc" d="m119.7 194.7 2.4 2.4-2.4-2.4m4.7 0 2.4 2.4-2.3-2.4m-2.4 4.8 2.4 2.3-2.4-2.4z"/>
   </g>
 </svg>

+ 3 - 3
plugins/flag-icon-css/flags/1x1/ax.svg

@@ -1,10 +1,10 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ax" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ax" viewBox="0 0 512 512">
   <defs>
-    <clipPath id="a">
+    <clipPath id="ax-a">
       <path fill-opacity=".7" d="M166 0h850v850H166z"/>
     </clipPath>
   </defs>
-  <g clip-path="url(#a)" transform="translate(-100) scale(.6024)">
+  <g clip-path="url(#ax-a)" transform="translate(-100) scale(.6024)">
     <path fill="#0053a5" d="M0 0h1300v850H0z"/>
     <g fill="#ffce00">
       <path d="M400 0h250v850H400z"/>

+ 2 - 2
plugins/flag-icon-css/flags/1x1/az.svg

@@ -1,8 +1,8 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-az" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-az" viewBox="0 0 512 512">
   <path fill="#3f9c35" d="M0 0h512v512H0z"/>
   <path fill="#ed2939" d="M0 0h512v341.3H0z"/>
   <path fill="#00b9e4" d="M0 0h512v170.7H0z"/>
   <circle cx="238.8" cy="256" r="76.8" fill="#fff"/>
   <circle cx="255.9" cy="256" r="64" fill="#ed2939"/>
-  <path fill="#fff" d="M324.2 213.3l8.1 23 22-10.5-10.4 22 23 8.2-23 8.2 10.4 22-22-10.5-8.1 23-8.2-23-22 10.5 10.5-22-23-8.2 23-8.2-10.5-22 22 10.5 8.2-23z"/>
+  <path fill="#fff" d="m324.2 213.3 8.1 23 22-10.5-10.4 22 23 8.2-23 8.2 10.4 22-22-10.5-8.1 23-8.2-23-22 10.5 10.5-22-23-8.2 23-8.2-10.5-22 22 10.5 8.2-23z"/>
 </svg>

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 5 - 5
plugins/flag-icon-css/flags/1x1/ba.svg


+ 3 - 3
plugins/flag-icon-css/flags/1x1/bb.svg

@@ -1,6 +1,6 @@
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-bb" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-bb" viewBox="0 0 512 512">
   <path fill="#00267f" d="M0-.2h512V512H0z"/>
   <path fill="#ffc726" d="M170.7-.2h170.6V512H170.7z"/>
-  <path id="a" d="M256 173.3c-5.5 15.1-11.2 30.9-23.3 43a51.7 51.7 0 0114.6-2.3v63.6l-18 2.7c-.7 0-.9-1-.9-2.4a243.6 243.6 0 00-11.7-53.6c-.4-2.3-7.2-11.3-2-9.7.7 0 7.7 3 6.6 1.6a68 68 0 00-37.1-19.2c-1.2-.3-2 .3-.9 1.7 18 27.7 33.1 60.4 33 99.2 7 0 24-4.1 31-4.1v44.9h8.8l2-125.4z"/>
-  <use width="100%" height="100%" transform="matrix(-1 0 0 1 512 0)" xlink:href="#a"/>
+  <path id="a" d="M256 173.3c-5.5 15.1-11.2 30.9-23.3 43a51.7 51.7 0 0 1 14.6-2.3v63.6l-18 2.7c-.7 0-.9-1-.9-2.4a243.6 243.6 0 0 0-11.7-53.6c-.4-2.3-7.2-11.3-2-9.7.7 0 7.7 3 6.6 1.6a68 68 0 0 0-37.1-19.2c-1.2-.3-2 .3-.9 1.7 18 27.7 33.1 60.4 33 99.2 7 0 24-4.1 31-4.1v44.9h8.8l2-125.4z"/>
+  <use xlink:href="#a" width="100%" height="100%" transform="matrix(-1 0 0 1 512 0)"/>
 </svg>

+ 1 - 1
plugins/flag-icon-css/flags/1x1/bd.svg

@@ -1,4 +1,4 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bd" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bd" viewBox="0 0 512 512">
   <path fill="#006a4e" d="M0 0h512v512H0z"/>
   <circle cx="230" cy="256" r="170.7" fill="#f42a41"/>
 </svg>

+ 1 - 1
plugins/flag-icon-css/flags/1x1/be.svg

@@ -1,4 +1,4 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-be" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-be" viewBox="0 0 512 512">
   <g fill-rule="evenodd" stroke-width="1pt">
     <path d="M0 0h170.7v512H0z"/>
     <path fill="#ffd90c" d="M170.7 0h170.6v512H170.7z"/>

+ 2 - 2
plugins/flag-icon-css/flags/1x1/bf.svg

@@ -1,7 +1,7 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bf" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bf" viewBox="0 0 512 512">
   <g fill-rule="evenodd">
     <path fill="#de0000" d="M512 511.6H.5V0H512z"/>
     <path fill="#35a100" d="M511.8 512H0V256.2h511.7z"/>
   </g>
-  <path fill="#fff300" fill-rule="evenodd" d="M389 223.8l-82.9 56.5 31.7 91.6-82.7-56.7-82.8 56.7 31.7-91.6-82.8-56.6 102.3.2 31.6-91.7 31.5 91.6"/>
+  <path fill="#fff300" fill-rule="evenodd" d="m389 223.8-82.9 56.5 31.7 91.6-82.7-56.7-82.8 56.7 31.7-91.6-82.8-56.6 102.3.2 31.6-91.7 31.5 91.6"/>
 </svg>

+ 1 - 1
plugins/flag-icon-css/flags/1x1/bg.svg

@@ -1,4 +1,4 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bg" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bg" viewBox="0 0 512 512">
   <g fill-rule="evenodd" stroke-width="1pt">
     <path fill="#d62612" d="M0 341.3h512V512H0z"/>
     <path fill="#fff" d="M0 0h512v170.7H0z"/>

+ 7 - 7
plugins/flag-icon-css/flags/1x1/bi.svg

@@ -1,15 +1,15 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bi" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bi" viewBox="0 0 512 512">
   <defs>
-    <clipPath id="a">
+    <clipPath id="bi-a">
       <path fill="gray" d="M60.8 337h175v175h-175z"/>
     </clipPath>
   </defs>
-  <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-178 -986) scale(2.9257)">
-    <path fill="#00cf00" d="M0 337l146.6 87.5L0 512zm293.1 0l-146.5 87.5L293 512z"/>
-    <path fill="red" d="M0 337l146.6 87.5L293 337zm0 175l146.6-87.5L293 512z"/>
+  <g fill-rule="evenodd" clip-path="url(#bi-a)" transform="translate(-178 -986) scale(2.9257)">
+    <path fill="#18b637" d="m0 337 146.6 87.5L0 512zm293.1 0-146.5 87.5L293 512z"/>
+    <path fill="#cf0921" d="m0 337 146.6 87.5L293 337zm0 175 146.6-87.5L293 512z"/>
     <path fill="#fff" d="M293.1 337h-27.3L0 495.7V512h27.3l265.8-158.7z"/>
-    <path fill="#fff" d="M197.2 424.5a50.6 50.6 0 11-101.2 0 50.6 50.6 0 01101.2 0z"/>
+    <path fill="#fff" d="M197.2 424.5a50.6 50.6 0 1 1-101.2 0 50.6 50.6 0 0 1 101.2 0z"/>
     <path fill="#fff" d="M0 337v16.3L265.8 512h27.3v-16.3L27.3 337z"/>
-    <path fill="red" stroke="#00de00" stroke-width="1pt" d="M156.5 405.4l-6.6.1-3.4 5.6-3.4-5.6-6.5-.1 3.2-5.8-3.2-5.7 6.6-.2 3.4-5.6 3.4 5.7h6.5l-3.1 5.8zm-22 38.2h-6.6l-3.4 5.7-3.4-5.6-6.6-.2 3.2-5.7-3.1-5.8 6.5-.1 3.4-5.6 3.4 5.6 6.6.2-3.2 5.7zm44.6 0h-6.6l-3.4 5.7-3.4-5.6-6.5-.2 3.1-5.7-3.1-5.8 6.6-.1 3.4-5.6 3.4 5.6 6.5.2-3.2 5.7z"/>
+    <path fill="#cf0921" stroke="#18b637" stroke-width="1pt" d="m156.5 405.4-6.6.1-3.4 5.6-3.4-5.6-6.5-.1 3.2-5.8-3.2-5.7 6.6-.2 3.4-5.6 3.4 5.7h6.5l-3.1 5.8zm-22 38.2h-6.6l-3.4 5.7-3.4-5.6-6.6-.2 3.2-5.7-3.1-5.8 6.5-.1 3.4-5.6 3.4 5.6 6.6.2-3.2 5.7zm44.6 0h-6.6l-3.4 5.7-3.4-5.6-6.5-.2 3.1-5.7-3.1-5.8 6.6-.1 3.4-5.6 3.4 5.6 6.5.2-3.2 5.7z"/>
   </g>
 </svg>

+ 3 - 3
plugins/flag-icon-css/flags/1x1/bj.svg

@@ -1,10 +1,10 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bj" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bj" viewBox="0 0 512 512">
   <defs>
-    <clipPath id="a">
+    <clipPath id="bj-a">
       <path fill="gray" d="M67.6-154h666v666h-666z"/>
     </clipPath>
   </defs>
-  <g clip-path="url(#a)" transform="translate(-52 118.4) scale(.7688)">
+  <g clip-path="url(#bj-a)" transform="translate(-52 118.4) scale(.7688)">
     <g fill-rule="evenodd" stroke-width="1pt">
       <path fill="#319400" d="M0-154h333v666H0z"/>
       <path fill="#ffd600" d="M333-154h666v333H333z"/>

+ 1 - 1
plugins/flag-icon-css/flags/1x1/bl.svg

@@ -1,4 +1,4 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bl" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bl" viewBox="0 0 512 512">
   <g fill-rule="evenodd" stroke-width="1pt">
     <path fill="#fff" d="M0 0h512v512H0z"/>
     <path fill="#00267f" d="M0 0h170.7v512H0z"/>

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 98 - 97
plugins/flag-icon-css/flags/1x1/bm.svg


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 25 - 25
plugins/flag-icon-css/flags/1x1/bn.svg


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 259 - 259
plugins/flag-icon-css/flags/1x1/bo.svg


+ 1 - 1
plugins/flag-icon-css/flags/1x1/bq.svg

@@ -1,4 +1,4 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bq" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bq" viewBox="0 0 512 512">
   <path fill="#21468b" d="M0 0h512v512H0z"/>
   <path fill="#fff" d="M0 0h512v341.3H0z"/>
   <path fill="#ae1c28" d="M0 0h512v170.7H0z"/>

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 25 - 25
plugins/flag-icon-css/flags/1x1/br.svg


+ 3 - 3
plugins/flag-icon-css/flags/1x1/bs.svg

@@ -1,10 +1,10 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bs" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bs" viewBox="0 0 512 512">
   <defs>
-    <clipPath id="a">
+    <clipPath id="bs-a">
       <path fill-opacity=".7" d="M56.6 26.4H537v480.3H56.6z"/>
     </clipPath>
   </defs>
-  <g fill-rule="evenodd" clip-path="url(#a)" transform="matrix(1.066 0 0 1.067 -60.4 -28.1)">
+  <g fill-rule="evenodd" clip-path="url(#bs-a)" transform="matrix(1.066 0 0 1.067 -60.4 -28.1)">
     <path fill="#fff" d="M990 506.2H9.4V27.6H990z"/>
     <path fill="#ffe900" d="M990 370.6H9.4V169.2H990z"/>
     <path fill="#08ced6" d="M990 506.2H9.4V346.7H990zm0-319H9.4V27.9H990z"/>

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 30 - 30
plugins/flag-icon-css/flags/1x1/bt.svg


+ 3 - 3
plugins/flag-icon-css/flags/1x1/bv.svg

@@ -1,10 +1,10 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bv" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bv" viewBox="0 0 512 512">
   <defs>
-    <clipPath id="a">
+    <clipPath id="bv-a">
       <path fill-opacity=".7" d="M0 0h512v512H0z"/>
     </clipPath>
   </defs>
-  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#a)">
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#bv-a)">
     <path fill="#fff" d="M-68 0h699.7v512H-68z"/>
     <path fill="#d72828" d="M-93-77.8h218.7v276.2H-93zM249.4-.6h381v199h-381zM-67.6 320h190.4v190.3H-67.5zm319.6 2.1h378.3v188.2H252z"/>
     <path fill="#003897" d="M156.7-25.4H221v535.7h-64.5z"/>

+ 1 - 1
plugins/flag-icon-css/flags/1x1/bw.svg

@@ -1,4 +1,4 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bw" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bw" viewBox="0 0 512 512">
   <g fill-rule="evenodd">
     <path fill="#00cbff" d="M0 0h512v512H0z"/>
     <path fill="#fff" d="M0 192h512v128H0z"/>

+ 3 - 3
plugins/flag-icon-css/flags/1x1/by.svg

@@ -1,10 +1,10 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-by" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-by" viewBox="0 0 512 512">
   <defs>
-    <clipPath id="a">
+    <clipPath id="by-a">
       <path fill-opacity=".7" d="M0 0h496v496H0z"/>
     </clipPath>
   </defs>
-  <g fill-rule="evenodd" clip-path="url(#a)" transform="scale(1.032)">
+  <g fill-rule="evenodd" clip-path="url(#by-a)" transform="scale(1.032)">
     <path fill="#b20000" d="M0 0h992.1v329.5H0z"/>
     <path fill="#429f00" d="M0 329.5h992.1v166.6H0z"/>
     <path fill="#fff" d="M0 0h109.8v496H0z"/>

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 67 - 67
plugins/flag-icon-css/flags/1x1/bz.svg


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
plugins/flag-icon-css/flags/1x1/ca.svg


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 9 - 9
plugins/flag-icon-css/flags/1x1/cc.svg


+ 5 - 5
plugins/flag-icon-css/flags/1x1/cd.svg

@@ -1,12 +1,12 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-cd" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cd" viewBox="0 0 512 512">
   <defs>
-    <clipPath id="a">
+    <clipPath id="cd-a">
       <path fill="#fff" d="M0-88h600v600H0z"/>
     </clipPath>
   </defs>
-  <g clip-path="url(#a)" transform="matrix(.853 0 0 .853 0 75.1)">
+  <g clip-path="url(#cd-a)" transform="matrix(.853 0 0 .853 0 75.1)">
     <path fill="#007fff" d="M0-88h800v600H0z"/>
-    <path fill="#f7d618" d="M36 32h84l26-84 26 84h84l-68 52 26 84-68-52-68 52 26-84-68-52zM750-88L0 362v150h50L800 62V-88h-50"/>
-    <path fill="#ce1021" d="M800-88L0 392v120L800 32V-88"/>
+    <path fill="#f7d618" d="M36 32h84l26-84 26 84h84l-68 52 26 84-68-52-68 52 26-84-68-52zM750-88 0 362v150h50L800 62V-88h-50"/>
+    <path fill="#ce1021" d="M800-88 0 392v120L800 32V-88"/>
   </g>
 </svg>

+ 4 - 4
plugins/flag-icon-css/flags/1x1/cf.svg

@@ -1,15 +1,15 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-cf" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cf" viewBox="0 0 512 512">
   <defs>
-    <clipPath id="a">
+    <clipPath id="cf-a">
       <path fill-opacity=".7" d="M0 0h512v512H0z"/>
     </clipPath>
   </defs>
-  <g fill-rule="evenodd" clip-path="url(#a)">
+  <g fill-rule="evenodd" clip-path="url(#cf-a)">
     <path fill="#00f" d="M-52-.5h768v127H-52z"/>
     <path fill="#ff0" d="M-52 383.5h768V512H-52z"/>
     <path fill="#009a00" d="M-52 255h768v128.5H-52z"/>
     <path fill="#fff" d="M-52 126.5h768V255H-52z"/>
     <path fill="red" d="M268 0h128v512H268z"/>
-    <path fill="#ff0" d="M109.5 112.3L75.9 89.1l-33.4 23.4 11.6-39.2-32.5-24.6 40.7-1L75.7 8.8l13.5 38.6 40.8.8L97.6 73"/>
+    <path fill="#ff0" d="M109.5 112.3 75.9 89.1l-33.4 23.4 11.6-39.2-32.5-24.6 40.7-1L75.7 8.8l13.5 38.6 40.8.8L97.6 73"/>
   </g>
 </svg>

+ 3 - 3
plugins/flag-icon-css/flags/1x1/cg.svg

@@ -1,10 +1,10 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-cg" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cg" viewBox="0 0 512 512">
   <defs>
-    <clipPath id="a">
+    <clipPath id="cg-a">
       <path fill-opacity=".7" d="M115.7 0h496.1v496h-496z"/>
     </clipPath>
   </defs>
-  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#a)" transform="translate(-119.5) scale(1.032)">
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#cg-a)" transform="translate(-119.5) scale(1.032)">
     <path fill="#ff0" d="M0 0h744v496H0z"/>
     <path fill="#00ca00" d="M0 0v496L496 0H0z"/>
     <path fill="red" d="M248 496h496V0L248 496z"/>

+ 1 - 1
plugins/flag-icon-css/flags/1x1/ch.svg

@@ -1,4 +1,4 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ch" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ch" viewBox="0 0 512 512">
   <g fill-rule="evenodd" stroke-width="1pt">
     <path fill="#d52b1e" d="M0 0h512v512H0z"/>
     <g fill="#fff">

+ 1 - 1
plugins/flag-icon-css/flags/1x1/ci.svg

@@ -1,4 +1,4 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ci" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ci" viewBox="0 0 512 512">
   <g fill-rule="evenodd">
     <path fill="#00cd00" d="M341.5 0H512v512H341.5z"/>
     <path fill="#ff9a00" d="M0 0h170.3v512H0z"/>

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 3 - 3
plugins/flag-icon-css/flags/1x1/ck.svg


+ 4 - 4
plugins/flag-icon-css/flags/1x1/cl.svg

@@ -1,13 +1,13 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-cl" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cl" viewBox="0 0 512 512">
   <defs>
-    <clipPath id="a">
+    <clipPath id="cl-a">
       <path fill-opacity=".7" d="M0 0h708.7v708.7H0z"/>
     </clipPath>
   </defs>
-  <g fill-rule="evenodd" clip-path="url(#a)" transform="scale(.722)">
+  <g fill-rule="evenodd" clip-path="url(#cl-a)" transform="scale(.722)">
     <path fill="#fff" d="M354.3 0H1063v354.3H354.3z"/>
     <path fill="#0039a6" d="M0 0h354.3v354.3H0z"/>
-    <path fill="#fff" d="M232.3 265.3l-55-41.1-54.5 41.5 20.3-67.5-54.5-41.7 67.4-.6 21-67.3 21.3 67.2h67.5L211.4 198l20.8 67.4z"/>
+    <path fill="#fff" d="m232.3 265.3-55-41.1-54.5 41.5 20.3-67.5-54.5-41.7 67.4-.6 21-67.3 21.3 67.2h67.5L211.4 198l20.8 67.4z"/>
     <path fill="#d52b1e" d="M0 354.3h1063v354.4H0z"/>
   </g>
 </svg>

+ 7 - 7
plugins/flag-icon-css/flags/1x1/cm.svg

@@ -1,15 +1,15 @@
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-cm" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-cm" viewBox="0 0 512 512">
   <path fill="#007a5e" d="M0 0h170.7v512H0z"/>
   <path fill="#ce1126" d="M170.7 0h170.6v512H170.7z"/>
   <path fill="#fcd116" d="M341.3 0H512v512H341.3z"/>
   <g fill="#fcd116" transform="translate(256 256) scale(5.6889)">
     <g id="b">
-      <path id="a" d="M0-8L-2.5-.4 1.3.9z"/>
-      <use width="100%" height="100%" transform="scale(-1 1)" xlink:href="#a"/>
+      <path id="a" d="M0-8-2.5-.4 1.3.9z"/>
+      <use xlink:href="#a" width="100%" height="100%" transform="scale(-1 1)"/>
     </g>
-    <use width="100%" height="100%" transform="rotate(72)" xlink:href="#b"/>
-    <use width="100%" height="100%" transform="rotate(144)" xlink:href="#b"/>
-    <use width="100%" height="100%" transform="rotate(-144)" xlink:href="#b"/>
-    <use width="100%" height="100%" transform="rotate(-72)" xlink:href="#b"/>
+    <use xlink:href="#b" width="100%" height="100%" transform="rotate(72)"/>
+    <use xlink:href="#b" width="100%" height="100%" transform="rotate(144)"/>
+    <use xlink:href="#b" width="100%" height="100%" transform="rotate(-144)"/>
+    <use xlink:href="#b" width="100%" height="100%" transform="rotate(-72)"/>
   </g>
 </svg>

+ 7 - 7
plugins/flag-icon-css/flags/1x1/cn.svg

@@ -1,11 +1,11 @@
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-cn" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-cn" viewBox="0 0 512 512">
   <defs>
-    <path id="a" fill="#ffde00" d="M1-.3L-.7.8 0-1 .6.8-1-.3z"/>
+    <path id="a" fill="#ffde00" d="M1-.3-.7.8 0-1 .6.8-1-.3z"/>
   </defs>
   <path fill="#de2910" d="M0 0h512v512H0z"/>
-  <use width="30" height="20" transform="matrix(76.8 0 0 76.8 128 128)" xlink:href="#a"/>
-  <use width="30" height="20" transform="rotate(-121 142.6 -47) scale(25.5827)" xlink:href="#a"/>
-  <use width="30" height="20" transform="rotate(-98.1 198 -82) scale(25.6)" xlink:href="#a"/>
-  <use width="30" height="20" transform="rotate(-74 272.4 -114) scale(25.6137)" xlink:href="#a"/>
-  <use width="30" height="20" transform="matrix(16 -19.968 19.968 16 256 230.4)" xlink:href="#a"/>
+  <use xlink:href="#a" width="30" height="20" transform="matrix(76.8 0 0 76.8 128 128)"/>
+  <use xlink:href="#a" width="30" height="20" transform="rotate(-121 142.6 -47) scale(25.5827)"/>
+  <use xlink:href="#a" width="30" height="20" transform="rotate(-98.1 198 -82) scale(25.6)"/>
+  <use xlink:href="#a" width="30" height="20" transform="rotate(-74 272.4 -114) scale(25.6137)"/>
+  <use xlink:href="#a" width="30" height="20" transform="matrix(16 -19.968 19.968 16 256 230.4)"/>
 </svg>

+ 1 - 1
plugins/flag-icon-css/flags/1x1/co.svg

@@ -1,4 +1,4 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-co" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-co" viewBox="0 0 512 512">
   <g fill-rule="evenodd" stroke-width="1pt">
     <path fill="#ffe800" d="M0 0h512v512H0z"/>
     <path fill="#00148e" d="M0 256h512v256H0z"/>

+ 7 - 0
plugins/flag-icon-css/flags/1x1/cp.svg

@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cp" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h512v512H0z"/>
+    <path fill="#00267f" d="M0 0h170.7v512H0z"/>
+    <path fill="#f31830" d="M341.3 0H512v512H341.3z"/>
+  </g>
+</svg>

+ 1 - 1
plugins/flag-icon-css/flags/1x1/cr.svg

@@ -1,4 +1,4 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-cr" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cr" viewBox="0 0 512 512">
   <g fill-rule="evenodd" stroke-width="1pt">
     <path fill="#0000b4" d="M0 0h512v512H0z"/>
     <path fill="#fff" d="M0 80.5h512v343.7H0z"/>

+ 5 - 5
plugins/flag-icon-css/flags/1x1/cu.svg

@@ -1,13 +1,13 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-cu" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cu" viewBox="0 0 512 512">
   <defs>
-    <clipPath id="a">
+    <clipPath id="cu-a">
       <path fill-opacity=".7" d="M0 0h512v512H0z"/>
     </clipPath>
   </defs>
-  <g fill-rule="evenodd" clip-path="url(#a)">
+  <g fill-rule="evenodd" clip-path="url(#cu-a)">
     <path fill="#0050f0" d="M-32 0h768v512H-32z"/>
     <path fill="#fff" d="M-32 102.4h768v102.4H-32zm0 204.8h768v102.4H-32z"/>
-    <path fill="#ed0000" d="M-32 0l440.7 255.7L-32 511V0z"/>
-    <path fill="#fff" d="M161.8 325.5L114.3 290l-47.2 35.8 17.6-58.1-47.2-36 58.3-.4 18.1-58 18.5 57.8 58.3.1-46.9 36.3 18 58z"/>
+    <path fill="#ed0000" d="m-32 0 440.7 255.7L-32 511V0z"/>
+    <path fill="#fff" d="M161.8 325.5 114.3 290l-47.2 35.8 17.6-58.1-47.2-36 58.3-.4 18.1-58 18.5 57.8 58.3.1-46.9 36.3 18 58z"/>
   </g>
 </svg>

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 4 - 4
plugins/flag-icon-css/flags/1x1/cv.svg


+ 6 - 6
plugins/flag-icon-css/flags/1x1/cw.svg

@@ -1,14 +1,14 @@
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-cw" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-cw" viewBox="0 0 512 512">
   <defs>
-    <clipPath id="a">
+    <clipPath id="cw-a">
       <path fill-opacity=".7" d="M0 0h9000v9000H0z"/>
     </clipPath>
-    <path id="b" d="M0-1l.2.7H1L.3 0l.2.7L0 .4l-.6.4.2-.7-.5-.4h.7z"/>
+    <path id="b" d="m0-1 .2.7H1L.3 0l.2.7L0 .4l-.6.4.2-.7-.5-.4h.7z"/>
   </defs>
-  <g clip-path="url(#a)" transform="scale(.057)">
+  <g clip-path="url(#cw-a)" transform="scale(.057)">
     <path fill="#002b7f" d="M0 0h13500v9000H0z"/>
     <path fill="#f9e814" d="M0 5625h13500v1125H0z"/>
-    <use width="13500" height="9000" x="2" y="2" fill="#fff" transform="scale(750)" xlink:href="#b"/>
-    <use width="13500" height="9000" x="3" y="3" fill="#fff" transform="scale(1000)" xlink:href="#b"/>
+    <use xlink:href="#b" width="13500" height="9000" x="2" y="2" fill="#fff" transform="scale(750)"/>
+    <use xlink:href="#b" width="13500" height="9000" x="3" y="3" fill="#fff" transform="scale(1000)"/>
   </g>
 </svg>

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 9 - 9
plugins/flag-icon-css/flags/1x1/cx.svg


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 4 - 4
plugins/flag-icon-css/flags/1x1/cy.svg


+ 3 - 3
plugins/flag-icon-css/flags/1x1/cz.svg

@@ -1,5 +1,5 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-cz" viewBox="0 0 512 512">
-  <path fill="#ffffff" d="M0 0h512v256H0z"/>
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cz" viewBox="0 0 512 512">
+  <path fill="#fff" d="M0 0h512v256H0z"/>
   <path fill="#d7141a" d="M0 256h512v256H0z"/>
-  <path fill="#11457e" d="M300 256 0 56V456z"/>
+  <path fill="#11457e" d="M300 256 0 56v400z"/>
 </svg>

+ 1 - 1
plugins/flag-icon-css/flags/1x1/de.svg

@@ -1,4 +1,4 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-de" viewBox="0 0 512 512">
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-de" viewBox="0 0 512 512">
   <path fill="#ffce00" d="M0 341.3h512V512H0z"/>
   <path d="M0 0h512v170.7H0z"/>
   <path fill="#d00" d="M0 170.7h512v170.6H0z"/>

+ 0 - 0
plugins/flag-icon-css/flags/1x1/dg.svg


Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů