Browse Source

Merge branch 'develop' into fix/trigger-search

文翼 6 years ago
parent
commit
d680bb5689
100 changed files with 2014 additions and 309 deletions
  1. 16 0
      CHANGELOG.md
  2. 1 1
      _config.yml
  3. 1 1
      bootstrap-table.jquery.json
  4. 182 0
      dist/bootstrap-table-locale-all.js
  5. 2 2
      dist/bootstrap-table-locale-all.min.js
  6. 2 2
      dist/bootstrap-table-vue.esm.min.js
  7. 2 2
      dist/bootstrap-table-vue.min.js
  8. 1 1
      dist/bootstrap-table.css
  9. 145 110
      dist/bootstrap-table.js
  10. 1 1
      dist/bootstrap-table.min.css
  11. 2 2
      dist/bootstrap-table.min.js
  12. 2 2
      dist/extensions/accent-neutralise/bootstrap-table-accent-neutralise.min.js
  13. 2 2
      dist/extensions/addrbar/bootstrap-table-addrbar.min.js
  14. 2 2
      dist/extensions/auto-refresh/bootstrap-table-auto-refresh.min.js
  15. 1 1
      dist/extensions/cell-input/bootstrap-table-cell-input.min.css
  16. 2 2
      dist/extensions/cell-input/bootstrap-table-cell-input.min.js
  17. 2 2
      dist/extensions/cookie/bootstrap-table-cookie.min.js
  18. 2 2
      dist/extensions/copy-rows/bootstrap-table-copy-rows.min.js
  19. 2 2
      dist/extensions/defer-url/bootstrap-table-defer-url.min.js
  20. 2 2
      dist/extensions/editable/bootstrap-table-editable.min.js
  21. 34 28
      dist/extensions/export/bootstrap-table-export.js
  22. 2 2
      dist/extensions/export/bootstrap-table-export.min.js
  23. 2 2
      dist/extensions/filter-control/bootstrap-table-filter-control.js
  24. 1 1
      dist/extensions/filter-control/bootstrap-table-filter-control.min.css
  25. 2 2
      dist/extensions/filter-control/bootstrap-table-filter-control.min.js
  26. 1 1
      dist/extensions/fixed-columns/bootstrap-table-fixed-columns.min.css
  27. 2 2
      dist/extensions/fixed-columns/bootstrap-table-fixed-columns.min.js
  28. 1 1
      dist/extensions/group-by-v2/bootstrap-table-group-by.min.css
  29. 2 2
      dist/extensions/group-by-v2/bootstrap-table-group-by.min.js
  30. 2 2
      dist/extensions/i18n-enhance/bootstrap-table-i18n-enhance.min.js
  31. 2 2
      dist/extensions/key-events/bootstrap-table-key-events.min.js
  32. 2 2
      dist/extensions/mobile/bootstrap-table-mobile.min.js
  33. 2 2
      dist/extensions/multiple-sort/bootstrap-table-multiple-sort.min.js
  34. 2 2
      dist/extensions/natural-sorting/bootstrap-table-natural-sorting.min.js
  35. 1 1
      dist/extensions/page-jump-to/bootstrap-table-page-jump-to.min.css
  36. 2 2
      dist/extensions/page-jump-to/bootstrap-table-page-jump-to.min.js
  37. 2 2
      dist/extensions/pipeline/bootstrap-table-pipeline.min.js
  38. 2 2
      dist/extensions/print/bootstrap-table-print.min.js
  39. 2 2
      dist/extensions/reorder-columns/bootstrap-table-reorder-columns.min.js
  40. 1 1
      dist/extensions/reorder-rows/bootstrap-table-reorder-rows.min.css
  41. 2 2
      dist/extensions/reorder-rows/bootstrap-table-reorder-rows.min.js
  42. 2 2
      dist/extensions/resizable/bootstrap-table-resizable.min.js
  43. 6 2
      dist/extensions/sticky-header/bootstrap-table-sticky-header.js
  44. 1 1
      dist/extensions/sticky-header/bootstrap-table-sticky-header.min.css
  45. 2 2
      dist/extensions/sticky-header/bootstrap-table-sticky-header.min.js
  46. 2 2
      dist/extensions/toolbar/bootstrap-table-toolbar.min.js
  47. 2 2
      dist/extensions/treegrid/bootstrap-table-treegrid.min.js
  48. 2 2
      dist/locale/bootstrap-table-af-ZA.min.js
  49. 2 2
      dist/locale/bootstrap-table-ar-SA.min.js
  50. 2 2
      dist/locale/bootstrap-table-ca-ES.min.js
  51. 2 2
      dist/locale/bootstrap-table-cs-CZ.min.js
  52. 2 2
      dist/locale/bootstrap-table-da-DK.min.js
  53. 2 2
      dist/locale/bootstrap-table-de-DE.min.js
  54. 2 2
      dist/locale/bootstrap-table-el-GR.min.js
  55. 2 2
      dist/locale/bootstrap-table-en-US.min.js
  56. 2 2
      dist/locale/bootstrap-table-es-AR.min.js
  57. 2 2
      dist/locale/bootstrap-table-es-CL.min.js
  58. 2 2
      dist/locale/bootstrap-table-es-CR.min.js
  59. 2 2
      dist/locale/bootstrap-table-es-ES.min.js
  60. 2 2
      dist/locale/bootstrap-table-es-MX.min.js
  61. 2 2
      dist/locale/bootstrap-table-es-NI.min.js
  62. 2 2
      dist/locale/bootstrap-table-es-SP.min.js
  63. 2 2
      dist/locale/bootstrap-table-et-EE.min.js
  64. 2 2
      dist/locale/bootstrap-table-eu-EU.min.js
  65. 2 2
      dist/locale/bootstrap-table-fa-IR.min.js
  66. 2 2
      dist/locale/bootstrap-table-fi-FI.min.js
  67. 2 2
      dist/locale/bootstrap-table-fr-BE.min.js
  68. 2 2
      dist/locale/bootstrap-table-fr-CH.min.js
  69. 2 2
      dist/locale/bootstrap-table-fr-FR.min.js
  70. 2 2
      dist/locale/bootstrap-table-fr-LU.min.js
  71. 2 2
      dist/locale/bootstrap-table-he-IL.min.js
  72. 2 2
      dist/locale/bootstrap-table-hr-HR.min.js
  73. 2 2
      dist/locale/bootstrap-table-hu-HU.min.js
  74. 2 2
      dist/locale/bootstrap-table-id-ID.min.js
  75. 2 2
      dist/locale/bootstrap-table-it-IT.min.js
  76. 2 2
      dist/locale/bootstrap-table-ja-JP.min.js
  77. 2 2
      dist/locale/bootstrap-table-ka-GE.min.js
  78. 2 2
      dist/locale/bootstrap-table-ko-KR.min.js
  79. 2 2
      dist/locale/bootstrap-table-ms-MY.min.js
  80. 2 2
      dist/locale/bootstrap-table-nb-NO.min.js
  81. 2 2
      dist/locale/bootstrap-table-nl-BE.min.js
  82. 2 2
      dist/locale/bootstrap-table-nl-NL.min.js
  83. 2 2
      dist/locale/bootstrap-table-pl-PL.min.js
  84. 2 2
      dist/locale/bootstrap-table-pt-BR.min.js
  85. 2 2
      dist/locale/bootstrap-table-pt-PT.min.js
  86. 2 2
      dist/locale/bootstrap-table-ro-RO.min.js
  87. 2 2
      dist/locale/bootstrap-table-ru-RU.min.js
  88. 2 2
      dist/locale/bootstrap-table-sk-SK.min.js
  89. 721 0
      dist/locale/bootstrap-table-sr-Cyrl-RS.js
  90. 10 0
      dist/locale/bootstrap-table-sr-Cyrl-RS.min.js
  91. 721 0
      dist/locale/bootstrap-table-sr-Latn-RS.js
  92. 10 0
      dist/locale/bootstrap-table-sr-Latn-RS.min.js
  93. 2 2
      dist/locale/bootstrap-table-sv-SE.min.js
  94. 2 2
      dist/locale/bootstrap-table-th-TH.min.js
  95. 2 2
      dist/locale/bootstrap-table-tr-TR.min.js
  96. 2 2
      dist/locale/bootstrap-table-uk-UA.min.js
  97. 2 2
      dist/locale/bootstrap-table-ur-PK.min.js
  98. 2 2
      dist/locale/bootstrap-table-uz-Latn-UZ.min.js
  99. 2 2
      dist/locale/bootstrap-table-vi-VN.min.js
  100. 0 0
      dist/locale/bootstrap-table-zh-CN.min.js

+ 16 - 0
CHANGELOG.md

@@ -1,6 +1,22 @@
 ChangeLog
 ---------
 
+### 1.15.5
+
+- **New:** Added `jqXHR` for `responseHandler` option and `onLoadSuccess` event.
+- **New:** Added `stickyHeaderOffsetLeft` and `stickyHeaderOffsetRight` for sticky-header.
+- **New:** Added Serbian RS cyrillic and latin locales.
+- **Update:** Improved `export` button when there is only one type.
+- **Update:** Fixed column events click error with `detailView`.
+- **Update:** Fixed bug for `searchOnEnterKey` and `showSearchButton` are true.
+- **Update:** Fixed `onScrollBody` event and added parameter.
+- **Update:** Fixed search input size bug with `iconSize` option.
+- **Update:** Fixed filter control select cannot work more than one table.
+- **Update:** Fixed virtual scroll to top error when using `append` method.
+- **Update:** Fixed `events` cannot work on virtual scroll.
+- **Update:** Fixed bottom border bug with `height` option.
+- **Update:** Fixed min version throw cannot convert object to primitive value error.
+
 ### 1.15.4
 
 - **New:** Added `query` to `queryParams` option.

+ 1 - 1
_config.yml

@@ -27,7 +27,7 @@ algolia:
   index_name:     bootstrap-table
 
 # Custom variables
-current_version:  1.15.4
+current_version:  1.15.5
 title:            "Bootstrap Table"
 description:      "An extended table to the integration with some of the most widely used CSS frameworks. (Supports Bootstrap, Semantic UI, Bulma, Material Design, Foundation)"
 authors:          "Zhixin Wen, and Bootstrap Table contributors"

+ 1 - 1
bootstrap-table.jquery.json

@@ -1,6 +1,6 @@
 {
   "name": "bootstrap-table",
-  "version": "1.15.4",
+  "version": "1.15.5",
   "title": "Bootstrap Table",
   "description": "An extended table to integration with some of the most widely used CSS frameworks. (Supports Bootstrap, Semantic UI, Bulma, Material Design, Foundation)",
   "author": {

+ 182 - 0
dist/bootstrap-table-locale-all.js

@@ -4374,6 +4374,188 @@
 	$.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['sk-SK']);
 
 	/**
+	* Bootstrap Table Serbian Cyrilic RS translation
+	* Author: Vladimir Kanazir (vladimir@kanazir.com)
+	*/
+
+	$.fn.bootstrapTable.locales['sr-Cyrl-RS'] = {
+	  formatLoadingMessage: function formatLoadingMessage() {
+	    return 'Молим сачекај';
+	  },
+	  formatRecordsPerPage: function formatRecordsPerPage(pageNumber) {
+	    return "".concat(pageNumber, " \u0440\u0435\u0434\u043E\u0432\u0430 \u043F\u043E \u0441\u0442\u0440\u0430\u043D\u0438");
+	  },
+	  formatShowingRows: function formatShowingRows(pageFrom, pageTo, totalRows, totalNotFiltered) {
+	    if (totalNotFiltered !== undefined && totalNotFiltered > 0 && totalNotFiltered > totalRows) {
+	      return "\u041F\u0440\u0438\u043A\u0430\u0437\u0430\u043D\u043E ".concat(pageFrom, ". - ").concat(pageTo, ". \u043E\u0434 \u0443\u043A\u0443\u043F\u043D\u043E\u0433 \u0431\u0440\u043E\u0458\u0430 \u0440\u0435\u0434\u043E\u0432\u0430 ").concat(totalRows, " (\u0444\u0438\u043B\u0442\u0440\u0438\u0440\u0430\u043D\u043E \u043E\u0434 ").concat(totalNotFiltered, ")");
+	    }
+
+	    return "\u041F\u0440\u0438\u043A\u0430\u0437\u0430\u043D\u043E ".concat(pageFrom, ". - ").concat(pageTo, ". \u043E\u0434 \u0443\u043A\u0443\u043F\u043D\u043E\u0433 \u0431\u0440\u043E\u0458\u0430 \u0440\u0435\u0434\u043E\u0432\u0430 ").concat(totalRows);
+	  },
+	  formatSRPaginationPreText: function formatSRPaginationPreText() {
+	    return 'претходна страна';
+	  },
+	  formatSRPaginationPageText: function formatSRPaginationPageText(page) {
+	    return "\u043D\u0430 \u0441\u0442\u0440\u0430\u043D\u0443 ".concat(page);
+	  },
+	  formatSRPaginationNextText: function formatSRPaginationNextText() {
+	    return 'следећа страна';
+	  },
+	  formatDetailPagination: function formatDetailPagination(totalRows) {
+	    return "\u041F\u0440\u0438\u043A\u0430\u0437\u0430\u043D\u043E ".concat(totalRows, " \u0440\u0435\u0434\u043E\u0432\u0430");
+	  },
+	  formatClearSearch: function formatClearSearch() {
+	    return 'Обриши претрагу';
+	  },
+	  formatSearch: function formatSearch() {
+	    return 'Пронађи';
+	  },
+	  formatNoMatches: function formatNoMatches() {
+	    return 'Није пронађен ни један податак';
+	  },
+	  formatPaginationSwitch: function formatPaginationSwitch() {
+	    return 'Прикажи/сакриј пагинацију';
+	  },
+	  formatPaginationSwitchDown: function formatPaginationSwitchDown() {
+	    return 'Прикажи пагинацију';
+	  },
+	  formatPaginationSwitchUp: function formatPaginationSwitchUp() {
+	    return 'Сакриј пагинацију';
+	  },
+	  formatRefresh: function formatRefresh() {
+	    return 'Освежи';
+	  },
+	  formatToggle: function formatToggle() {
+	    return 'Промени приказ';
+	  },
+	  formatToggleOn: function formatToggleOn() {
+	    return 'Прикажи картице';
+	  },
+	  formatToggleOff: function formatToggleOff() {
+	    return 'Сакриј картице';
+	  },
+	  formatColumns: function formatColumns() {
+	    return 'Колоне';
+	  },
+	  formatColumnsToggleAll: function formatColumnsToggleAll() {
+	    return 'Прикажи/сакриј све';
+	  },
+	  formatFullscreen: function formatFullscreen() {
+	    return 'Цео екран';
+	  },
+	  formatAllRows: function formatAllRows() {
+	    return 'Све';
+	  },
+	  formatAutoRefresh: function formatAutoRefresh() {
+	    return 'Аутоматско освежавање';
+	  },
+	  formatExport: function formatExport() {
+	    return 'Извези податке';
+	  },
+	  formatJumpTo: function formatJumpTo() {
+	    return 'Иди';
+	  },
+	  formatAdvancedSearch: function formatAdvancedSearch() {
+	    return 'Напредна претрага';
+	  },
+	  formatAdvancedCloseButton: function formatAdvancedCloseButton() {
+	    return 'Затвори';
+	  }
+	};
+	$.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['sr-Cyrl-RS']);
+
+	/**
+	* Bootstrap Table Serbian Latin RS translation
+	* Author: Vladimir Kanazir (vladimir@kanazir.com)
+	*/
+
+	$.fn.bootstrapTable.locales['sr-Latn-RS'] = {
+	  formatLoadingMessage: function formatLoadingMessage() {
+	    return 'Molim sačekaj';
+	  },
+	  formatRecordsPerPage: function formatRecordsPerPage(pageNumber) {
+	    return "".concat(pageNumber, " redova po strani");
+	  },
+	  formatShowingRows: function formatShowingRows(pageFrom, pageTo, totalRows, totalNotFiltered) {
+	    if (totalNotFiltered !== undefined && totalNotFiltered > 0 && totalNotFiltered > totalRows) {
+	      return "Prikazano ".concat(pageFrom, ". - ").concat(pageTo, ". od ukupnog broja redova ").concat(totalRows, " (filtrirano od ").concat(totalNotFiltered, ")");
+	    }
+
+	    return "Prikazano ".concat(pageFrom, ". - ").concat(pageTo, ". od ukupnog broja redova ").concat(totalRows);
+	  },
+	  formatSRPaginationPreText: function formatSRPaginationPreText() {
+	    return 'prethodna strana';
+	  },
+	  formatSRPaginationPageText: function formatSRPaginationPageText(page) {
+	    return "na stranu ".concat(page);
+	  },
+	  formatSRPaginationNextText: function formatSRPaginationNextText() {
+	    return 'sledeća strana';
+	  },
+	  formatDetailPagination: function formatDetailPagination(totalRows) {
+	    return "Prikazano ".concat(totalRows, " redova");
+	  },
+	  formatClearSearch: function formatClearSearch() {
+	    return 'Obriši pretragu';
+	  },
+	  formatSearch: function formatSearch() {
+	    return 'Pronađi';
+	  },
+	  formatNoMatches: function formatNoMatches() {
+	    return 'Nije pronađen ni jedan podatak';
+	  },
+	  formatPaginationSwitch: function formatPaginationSwitch() {
+	    return 'Prikaži/sakrij paginaciju';
+	  },
+	  formatPaginationSwitchDown: function formatPaginationSwitchDown() {
+	    return 'Prikaži paginaciju';
+	  },
+	  formatPaginationSwitchUp: function formatPaginationSwitchUp() {
+	    return 'Sakrij paginaciju';
+	  },
+	  formatRefresh: function formatRefresh() {
+	    return 'Osveži';
+	  },
+	  formatToggle: function formatToggle() {
+	    return 'Promeni prikaz';
+	  },
+	  formatToggleOn: function formatToggleOn() {
+	    return 'Prikaži kartice';
+	  },
+	  formatToggleOff: function formatToggleOff() {
+	    return 'Sakrij kartice';
+	  },
+	  formatColumns: function formatColumns() {
+	    return 'Kolone';
+	  },
+	  formatColumnsToggleAll: function formatColumnsToggleAll() {
+	    return 'Prikaži/sakrij sve';
+	  },
+	  formatFullscreen: function formatFullscreen() {
+	    return 'Ceo ekran';
+	  },
+	  formatAllRows: function formatAllRows() {
+	    return 'Sve';
+	  },
+	  formatAutoRefresh: function formatAutoRefresh() {
+	    return 'Automatsko osvežavanje';
+	  },
+	  formatExport: function formatExport() {
+	    return 'Izvezi podatke';
+	  },
+	  formatJumpTo: function formatJumpTo() {
+	    return 'Idi';
+	  },
+	  formatAdvancedSearch: function formatAdvancedSearch() {
+	    return 'Napredna pretraga';
+	  },
+	  formatAdvancedCloseButton: function formatAdvancedCloseButton() {
+	    return 'Zatvori';
+	  }
+	};
+	$.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['sr-Latn-RS']);
+
+	/**
 	 * Bootstrap Table Swedish translation
 	 * Author: C Bratt <bratt@inix.se>
 	 */

File diff suppressed because it is too large
+ 2 - 2
dist/bootstrap-table-locale-all.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/bootstrap-table-vue.esm.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/bootstrap-table-vue.min.js


+ 1 - 1
dist/bootstrap-table.css

@@ -1,7 +1,7 @@
 @charset "UTF-8";
 /**
  * @author zhixin wen <wenzhixin2010@gmail.com>
- * version: 1.15.4
+ * version: 1.15.5
  * https://github.com/wenzhixin/bootstrap-table/
  */
 .bootstrap-table .fixed-table-toolbar::after {

+ 145 - 110
dist/bootstrap-table.js

@@ -2634,7 +2634,7 @@
 	  throw new TypeError("Invalid attempt to destructure non-iterable instance");
 	}
 
-	var VERSION = '1.15.4';
+	var VERSION = '1.15.5';
 	var bootstrapVersion = 4;
 
 	try {
@@ -2670,6 +2670,7 @@
 	      buttonsDropdown: 'btn-group',
 	      pull: 'pull',
 	      inputGroup: 'input-group',
+	      inputPrefix: 'input-',
 	      input: 'form-control',
 	      paginationDropdown: 'btn-group dropdown',
 	      dropup: 'dropup',
@@ -2680,7 +2681,7 @@
 	    html: {
 	      toolbarDropdown: ['<ul class="dropdown-menu" role="menu">', '</ul>'],
 	      toolbarDropdownItem: '<li role="menuitem"><label>%s</label></li>',
-	      toolbarDropdownSeperator: '<li class="divider"></li>',
+	      toolbarDropdownSeparator: '<li class="divider"></li>',
 	      pageDropdown: ['<ul class="dropdown-menu" role="menu">', '</ul>'],
 	      pageDropdownItem: '<li role="menuitem" class="%s"><a href="#">%s</a></li>',
 	      dropdownCaret: '<span class="caret"></span>',
@@ -2715,6 +2716,7 @@
 	      buttonsDropdown: 'btn-group',
 	      pull: 'float',
 	      inputGroup: 'btn-group',
+	      inputPrefix: 'form-control-',
 	      input: 'form-control',
 	      paginationDropdown: 'btn-group dropdown',
 	      dropup: 'dropup',
@@ -2727,7 +2729,7 @@
 	      toolbarDropdownItem: '<label class="dropdown-item">%s</label>',
 	      pageDropdown: ['<div class="dropdown-menu">', '</div>'],
 	      pageDropdownItem: '<a class="dropdown-item %s" href="#">%s</a>',
-	      toolbarDropdownSeperator: '<div class="dropdown-divider"></div>',
+	      toolbarDropdownSeparator: '<div class="dropdown-divider"></div>',
 	      dropdownCaret: '<span class="caret"></span>',
 	      pagination: ['<ul class="pagination%s">', '</ul>'],
 	      paginationItem: '<li class="page-item%s"><a class="page-link" aria-label="%s" href="javascript:void(0)">%s</a></li>',
@@ -3667,7 +3669,7 @@
 	    this.itemHeight = options.itemHeight;
 	    this.cache = {};
 	    this.scrollTop = this.scrollEl.scrollTop;
-	    this.initDOM(this.rows);
+	    this.initDOM(this.rows, options.fixedScroll);
 	    this.scrollEl.scrollTop = this.scrollTop;
 	    this.lastCluster = 0;
 
@@ -3690,13 +3692,14 @@
 
 	  _createClass(VirtualScroll, [{
 	    key: "initDOM",
-	    value: function initDOM(rows) {
+	    value: function initDOM(rows, fixedScroll) {
 	      if (typeof this.clusterHeight === 'undefined') {
+	        this.cache.scrollTop = this.scrollEl.scrollTop;
 	        this.cache.data = this.contentEl.innerHTML = rows[0] + rows[0] + rows[0];
 	        this.getRowsHeight(rows);
 	      }
 
-	      var data = this.initData(rows, this.getNum());
+	      var data = this.initData(rows, this.getNum(fixedScroll));
 	      var thisRows = data.rows.join('');
 	      var dataChanged = this.checkChanges('data', thisRows);
 	      var topOffsetChanged = this.checkChanges('top', data.topOffset);
@@ -3715,6 +3718,10 @@
 	        }
 
 	        this.contentEl.innerHTML = html.join('');
+
+	        if (fixedScroll) {
+	          this.contentEl.scrollTop = this.cache.scrollTop;
+	        }
 	      } else if (bottomOffsetChanged) {
 	        this.contentEl.lastChild.style.height = "".concat(data.bottomOffset, "px");
 	      }
@@ -3734,8 +3741,8 @@
 	    }
 	  }, {
 	    key: "getNum",
-	    value: function getNum() {
-	      this.scrollTop = this.scrollEl.scrollTop;
+	    value: function getNum(fixedScroll) {
+	      this.scrollTop = fixedScroll ? this.cache.scrollTop : this.scrollEl.scrollTop;
 	      return Math.floor(this.scrollTop / (this.clusterHeight - this.blockHeight)) || 0;
 	    }
 	  }, {
@@ -4247,7 +4254,6 @@
 	      var html = [];
 	      var timeoutId = 0;
 	      var $keepOpen;
-	      var $search;
 	      var switchableCount = 0;
 
 	      if (this.$toolbar.find('.bs-bars').children().length) {
@@ -4289,7 +4295,7 @@
 	        if (o.showColumnsToggleAll) {
 	          var allFieldsVisible = this.getVisibleColumns().length === this.columns.length;
 	          html.push(Utils.sprintf(this.constants.html.toolbarDropdownItem, Utils.sprintf('<input type="checkbox" class="toggle-all" %s> <span>%s</span>', allFieldsVisible ? 'checked="checked"' : '', o.formatColumnsToggleAll())));
-	          html.push(this.constants.html.toolbarDropdownSeperator);
+	          html.push(this.constants.html.toolbarDropdownSeparator);
 	        }
 
 	        this.columns.forEach(function (column, i) {
@@ -4375,7 +4381,7 @@
 	        html = [];
 	        var showSearchButton = Utils.sprintf(this.constants.html.searchButton, this.constants.buttonsClass, o.formatSearch(), o.showButtonIcons ? Utils.sprintf(this.constants.html.icon, o.iconsPrefix, o.icons.search) : '', o.showButtonText ? o.formatSearch() : '');
 	        var showSearchClearButton = Utils.sprintf(this.constants.html.searchClearButton, this.constants.buttonsClass, o.formatClearSearch(), o.showButtonIcons ? Utils.sprintf(this.constants.html.icon, o.iconsPrefix, o.icons.clearSearch) : '', o.showButtonText ? o.formatClearSearch() : '');
-	        var searchInputHtml = "<input class=\"".concat(this.constants.classes.input).concat(Utils.sprintf(' input-%s', o.iconSize), " search-input\" type=\"text\" placeholder=\"").concat(o.formatSearch(), "\">");
+	        var searchInputHtml = "<input class=\"".concat(this.constants.classes.input, "\n        ").concat(Utils.sprintf(' %s%s', this.constants.classes.inputPrefix, o.iconSize), "\n        search-input\" type=\"text\" placeholder=\"").concat(o.formatSearch(), "\">");
 	        var searchInputFinalHtml = searchInputHtml;
 
 	        if (o.showSearchButton || o.showSearchClearButton) {
@@ -4386,25 +4392,43 @@
 	        html.push(Utils.sprintf("\n        <div class=\"".concat(this.constants.classes.pull, "-").concat(o.searchAlign, " search ").concat(this.constants.classes.inputGroup, "\">\n          %s\n        </div>\n      "), searchInputFinalHtml));
 	        this.$toolbar.append(html.join(''));
 	        var $searchInput = this.$toolbar.find('.search input');
-	        $search = o.showSearchButton ? this.$toolbar.find('.search button[name=search]') : $searchInput;
-	        var eventTriggers = o.showSearchButton ? 'click' : Utils.isIEBrowser() ? 'mouseup' : 'keyup drop blur';
-	        $search.off(eventTriggers).on(eventTriggers, function (event) {
-	          if (o.searchOnEnterKey && event.keyCode !== 13) {
-	            return;
-	          }
 
-	          if ([37, 38, 39, 40].includes(event.keyCode)) {
-	            return;
-	          }
+	        var handleInputEvent = function handleInputEvent() {
+	          var eventTriggers = Utils.isIEBrowser() ? 'mouseup' : 'keyup drop blur';
+	          $searchInput.off(eventTriggers).on(eventTriggers, function (event) {
+	            if (o.searchOnEnterKey && event.keyCode !== 13) {
+	              return;
+	            }
 
-	          clearTimeout(timeoutId); // doesn't matter if it's 0
+	            if ([37, 38, 39, 40].includes(event.keyCode)) {
+	              return;
+	            }
 
-	          timeoutId = setTimeout(function () {
-	            _this4.onSearch(o.showSearchButton ? {
-	              currentTarget: $searchInput
-	            } : event);
-	          }, o.searchTimeOut);
-	        });
+	            clearTimeout(timeoutId); // doesn't matter if it's 0
+
+	            timeoutId = setTimeout(function () {
+	              _this4.onSearch(event);
+	            }, o.searchTimeOut);
+	          });
+	        };
+
+	        if (o.showSearchButton) {
+	          this.$toolbar.find('.search button[name=search]').off('click').on('click', function (event) {
+	            clearTimeout(timeoutId); // doesn't matter if it's 0
+
+	            timeoutId = setTimeout(function () {
+	              _this4.onSearch({
+	                currentTarget: $searchInput
+	              });
+	            }, o.searchTimeOut);
+	          });
+
+	          if (o.searchOnEnterKey) {
+	            handleInputEvent();
+	          }
+	        } else {
+	          handleInputEvent();
+	        }
 
 	        if (o.showSearchClearButton) {
 	          this.$toolbar.find('.search button[name=clearSearch]').click(function () {
@@ -5170,11 +5194,14 @@
 
 	          this.virtualScroll = new VirtualScroll({
 	            rows: rows,
+	            fixedScroll: fixedScroll,
 	            scrollEl: this.$tableBody[0],
 	            contentEl: this.$body[0],
 	            itemHeight: this.options.virtualScrollItemHeight,
 	            callback: function callback() {
 	              _this8.fitHeader();
+
+	              _this8.initBodyEvent();
 	            }
 	          });
 	        }
@@ -5182,53 +5209,69 @@
 
 	      if (!fixedScroll) {
 	        this.scrollTo(0);
-	      } // click to select by column
+	      }
 
+	      this.initBodyEvent();
+	      this.updateSelected();
+	      this.initFooter();
+	      this.resetView();
 
+	      if (this.options.sidePagination !== 'server') {
+	        this.options.totalRows = data.length;
+	      }
+
+	      this.trigger('post-body', data);
+	    }
+	  }, {
+	    key: "initBodyEvent",
+	    value: function initBodyEvent() {
+	      var _this9 = this;
+
+	      // click to select by column
 	      this.$body.find('> tr[data-index] > td').off('click dblclick').on('click dblclick', function (e) {
 	        var $td = $(e.currentTarget);
 	        var $tr = $td.parent();
 	        var $cardViewArr = $(e.target).parents('.card-views').children();
 	        var $cardViewTarget = $(e.target).parents('.card-view');
 	        var rowIndex = $tr.data('index');
-	        var item = _this8.data[rowIndex];
-	        var index = _this8.options.cardView ? $cardViewArr.index($cardViewTarget) : $td[0].cellIndex;
+	        var item = _this9.data[rowIndex];
+	        var index = _this9.options.cardView ? $cardViewArr.index($cardViewTarget) : $td[0].cellIndex;
 
-	        var fields = _this8.getVisibleFields();
+	        var fields = _this9.getVisibleFields();
 
-	        var field = fields[_this8.options.detailView && _this8.detailViewIcon && !_this8.options.cardView ? index - 1 : index];
-	        var column = _this8.columns[_this8.fieldsColumnsIndex[field]];
-	        var value = Utils.getItemField(item, field, _this8.options.escape);
+	        var field = fields[_this9.options.detailView && _this9.options.detailViewIcon && !_this9.options.cardView ? index - 1 : index];
+	        var column = _this9.columns[_this9.fieldsColumnsIndex[field]];
+	        var value = Utils.getItemField(item, field, _this9.options.escape);
 
 	        if ($td.find('.detail-icon').length) {
 	          return;
 	        }
 
-	        _this8.trigger(e.type === 'click' ? 'click-cell' : 'dbl-click-cell', field, value, item, $td);
+	        _this9.trigger(e.type === 'click' ? 'click-cell' : 'dbl-click-cell', field, value, item, $td);
 
-	        _this8.trigger(e.type === 'click' ? 'click-row' : 'dbl-click-row', item, $tr, field); // if click to select - then trigger the checkbox/radio click
+	        _this9.trigger(e.type === 'click' ? 'click-row' : 'dbl-click-row', item, $tr, field); // if click to select - then trigger the checkbox/radio click
 
 
-	        if (e.type === 'click' && _this8.options.clickToSelect && column.clickToSelect && !Utils.calculateObjectValue(_this8.options, _this8.options.ignoreClickToSelectOn, [e.target])) {
-	          var $selectItem = $tr.find(Utils.sprintf('[name="%s"]', _this8.options.selectItemName));
+	        if (e.type === 'click' && _this9.options.clickToSelect && column.clickToSelect && !Utils.calculateObjectValue(_this9.options, _this9.options.ignoreClickToSelectOn, [e.target])) {
+	          var $selectItem = $tr.find(Utils.sprintf('[name="%s"]', _this9.options.selectItemName));
 
 	          if ($selectItem.length) {
 	            $selectItem[0].click();
 	          }
 	        }
 
-	        if (e.type === 'click' && _this8.options.detailViewByClick) {
-	          _this8.toggleDetailView(rowIndex, _this8.header.detailFormatters[_this8.fieldsColumnsIndex[field]]);
+	        if (e.type === 'click' && _this9.options.detailViewByClick) {
+	          _this9.toggleDetailView(rowIndex, _this9.header.detailFormatters[_this9.fieldsColumnsIndex[field]]);
 	        }
 	      }).off('mousedown').on('mousedown', function (e) {
 	        // https://github.com/jquery/jquery/issues/1741
-	        _this8.multipleSelectRowCtrlKey = e.ctrlKey || e.metaKey;
-	        _this8.multipleSelectRowShiftKey = e.shiftKey;
+	        _this9.multipleSelectRowCtrlKey = e.ctrlKey || e.metaKey;
+	        _this9.multipleSelectRowShiftKey = e.shiftKey;
 	      });
 	      this.$body.find('> tr[data-index] > td > .detail-icon').off('click').on('click', function (e) {
 	        e.preventDefault();
 
-	        _this8.toggleDetailView($(e.currentTarget).parent().parent().data('index'));
+	        _this9.toggleDetailView($(e.currentTarget).parent().parent().data('index'));
 
 	        return false;
 	      });
@@ -5237,7 +5280,7 @@
 	        e.stopImmediatePropagation();
 	        var $this = $(e.currentTarget);
 
-	        _this8._toggleCheck($this.prop('checked'), $this.data('index'));
+	        _this9._toggleCheck($this.prop('checked'), $this.data('index'));
 	      });
 	      this.header.events.forEach(function (_events, i) {
 	        var events = _events;
@@ -5251,15 +5294,15 @@
 	          events = Utils.calculateObjectValue(null, events);
 	        }
 
-	        var field = _this8.header.fields[i];
+	        var field = _this9.header.fields[i];
 
-	        var fieldIndex = _this8.getVisibleFields().indexOf(field);
+	        var fieldIndex = _this9.getVisibleFields().indexOf(field);
 
 	        if (fieldIndex === -1) {
 	          return;
 	        }
 
-	        if (_this8.options.detailView && !_this8.options.cardView) {
+	        if (_this9.options.detailView && !_this9.options.cardView) {
 	          fieldIndex += 1;
 	        }
 
@@ -5270,17 +5313,17 @@
 
 	          var event = events[key];
 
-	          _this8.$body.find('>tr:not(.no-records-found)').each(function (i, tr) {
+	          _this9.$body.find('>tr:not(.no-records-found)').each(function (i, tr) {
 	            var $tr = $(tr);
-	            var $td = $tr.find(_this8.options.cardView ? '.card-views>.card-view' : '>td').eq(fieldIndex);
+	            var $td = $tr.find(_this9.options.cardView ? '.card-views>.card-view' : '>td').eq(fieldIndex);
 	            var index = key.indexOf(' ');
 	            var name = key.substring(0, index);
 	            var el = key.substring(index + 1);
 	            $td.find(el).off(name).on(name, function (e) {
 	              var index = $tr.data('index');
-	              var row = _this8.data[index];
+	              var row = _this9.data[index];
 	              var value = row[field];
-	              event.apply(_this8, [e, value, row, index]);
+	              event.apply(_this9, [e, value, row, index]);
 	            });
 	          });
 	        };
@@ -5291,20 +5334,11 @@
 	          if (_ret === "continue") continue;
 	        }
 	      });
-	      this.updateSelected();
-	      this.initFooter();
-	      this.resetView();
-
-	      if (this.options.sidePagination !== 'server') {
-	        this.options.totalRows = data.length;
-	      }
-
-	      this.trigger('post-body', data);
 	    }
 	  }, {
 	    key: "initServer",
 	    value: function initServer(silent, query, url) {
-	      var _this9 = this;
+	      var _this10 = this;
 
 	      var data = {};
 	      var index = this.header.fields.indexOf(this.options.sortName);
@@ -5366,31 +5400,31 @@
 	        cache: this.options.cache,
 	        contentType: this.options.contentType,
 	        dataType: this.options.dataType,
-	        success: function success(_res) {
-	          var res = Utils.calculateObjectValue(_this9.options, _this9.options.responseHandler, [_res], _res);
+	        success: function success(_res, textStatus, jqXHR) {
+	          var res = Utils.calculateObjectValue(_this10.options, _this10.options.responseHandler, [_res, jqXHR], _res);
 
-	          _this9.load(res);
+	          _this10.load(res);
 
-	          _this9.trigger('load-success', res);
+	          _this10.trigger('load-success', res, jqXHR.status, jqXHR);
 
 	          if (!silent) {
-	            _this9.hideLoading();
+	            _this10.hideLoading();
 	          }
 	        },
 	        error: function error(jqXHR) {
 	          var data = [];
 
-	          if (_this9.options.sidePagination === 'server') {
+	          if (_this10.options.sidePagination === 'server') {
 	            data = {};
-	            data[_this9.options.totalField] = 0;
-	            data[_this9.options.dataField] = [];
+	            data[_this10.options.totalField] = 0;
+	            data[_this10.options.dataField] = [];
 	          }
 
-	          _this9.load(data);
+	          _this10.load(data);
 
-	          _this9.trigger('load-error', jqXHR.status, jqXHR);
+	          _this10.trigger('load-error', jqXHR.status, jqXHR);
 
-	          if (!silent) _this9.$tableLoading.hide();
+	          if (!silent) _this10.$tableLoading.hide();
 	        }
 	      });
 
@@ -5425,10 +5459,10 @@
 	  }, {
 	    key: "getCaret",
 	    value: function getCaret() {
-	      var _this10 = this;
+	      var _this11 = this;
 
 	      this.$header.find('th').each(function (i, th) {
-	        $(th).find('.sortable').removeClass('desc asc').addClass($(th).data('field') === _this10.options.sortName ? _this10.options.sortOrder : 'both');
+	        $(th).find('.sortable').removeClass('desc asc').addClass($(th).data('field') === _this11.options.sortName ? _this11.options.sortOrder : 'both');
 	      });
 	    }
 	  }, {
@@ -5443,10 +5477,10 @@
 	  }, {
 	    key: "updateRows",
 	    value: function updateRows() {
-	      var _this11 = this;
+	      var _this12 = this;
 
 	      this.$selectItem.each(function (i, el) {
-	        _this11.data[$(el).data('index')][_this11.header.stateField] = $(el).prop('checked');
+	        _this12.data[$(el).data('index')][_this12.header.stateField] = $(el).prop('checked');
 	      });
 	    }
 	  }, {
@@ -5503,23 +5537,23 @@
 	  }, {
 	    key: "resetHeader",
 	    value: function resetHeader() {
-	      var _this12 = this;
+	      var _this13 = this;
 
 	      // fix #61: the hidden table reset header bug.
 	      // fix bug: get $el.css('width') error sometime (height = 500)
 	      clearTimeout(this.timeoutId_);
 	      this.timeoutId_ = setTimeout(function () {
-	        return _this12.fitHeader();
+	        return _this13.fitHeader();
 	      }, this.$el.is(':hidden') ? 100 : 0);
 	    }
 	  }, {
 	    key: "fitHeader",
 	    value: function fitHeader() {
-	      var _this13 = this;
+	      var _this14 = this;
 
 	      if (this.$el.is(':hidden')) {
 	        this.timeoutId_ = setTimeout(function () {
-	          return _this13.fitHeader();
+	          return _this14.fitHeader();
 	        }, 100);
 	        return;
 	      }
@@ -5558,7 +5592,7 @@
 
 
 	      this.$header.find('th[data-field]').each(function (i, el) {
-	        _this13.$header_.find(Utils.sprintf('th[data-field="%s"]', $(el).data('field'))).data($(el).data());
+	        _this14.$header_.find(Utils.sprintf('th[data-field="%s"]', $(el).data('field'))).data($(el).data());
 	      });
 	      var visibleFields = this.getVisibleFields();
 	      var $ths = this.$header_.find('th');
@@ -5572,7 +5606,7 @@
 	        var $this = $(el);
 	        var index = i;
 
-	        if (_this13.options.detailView && _this13.options.detailViewIcon && !_this13.options.cardView) {
+	        if (_this14.options.detailView && _this14.options.detailViewIcon && !_this14.options.cardView) {
 	          if (i === 0) {
 	            var $thDetail = $ths.filter('.detail');
 
@@ -5588,7 +5622,7 @@
 	          return;
 	        }
 
-	        var $th = _this13.$header_.find(Utils.sprintf('th[data-field="%s"]', visibleFields[index]));
+	        var $th = _this14.$header_.find(Utils.sprintf('th[data-field="%s"]', visibleFields[index]));
 
 	        if ($th.length > 1) {
 	          $th = $($ths[$this[0].cellIndex]);
@@ -5683,11 +5717,11 @@
 	  }, {
 	    key: "fitFooter",
 	    value: function fitFooter() {
-	      var _this14 = this;
+	      var _this15 = this;
 
 	      if (this.$el.is(':hidden')) {
 	        setTimeout(function () {
-	          return _this14.fitFooter();
+	          return _this15.fitFooter();
 	        }, 100);
 	        return;
 	      }
@@ -5707,7 +5741,7 @@
 	        var $this = $(el);
 	        var index = i;
 
-	        if (_this14.options.detailView && !_this14.options.cardView) {
+	        if (_this15.options.detailView && !_this15.options.cardView) {
 	          if (i === 0) {
 	            var $thDetail = $ths.filter('.detail');
 
@@ -5732,21 +5766,22 @@
 	  }, {
 	    key: "horizontalScroll",
 	    value: function horizontalScroll() {
-	      var _this15 = this;
+	      var _this16 = this;
 
 	      // horizontal scroll event
 	      // TODO: it's probably better improving the layout than binding to scroll event
-	      this.trigger('scroll-body');
 	      this.$tableBody.off('scroll').on('scroll', function (_ref6) {
 	        var currentTarget = _ref6.currentTarget;
 
-	        if (_this15.options.showHeader && _this15.options.height) {
-	          _this15.$tableHeader.scrollLeft($(currentTarget).scrollLeft());
+	        if (_this16.options.showHeader && _this16.options.height) {
+	          _this16.$tableHeader.scrollLeft($(currentTarget).scrollLeft());
 	        }
 
-	        if (_this15.options.showFooter && !_this15.options.cardView) {
-	          _this15.$tableFooter.scrollLeft($(currentTarget).scrollLeft());
+	        if (_this16.options.showFooter && !_this16.options.cardView) {
+	          _this16.$tableFooter.scrollLeft($(currentTarget).scrollLeft());
 	        }
+
+	        _this16.trigger('scroll-body', $(currentTarget));
 	      });
 	    }
 	  }, {
@@ -5838,20 +5873,20 @@
 	  }, {
 	    key: "getSelections",
 	    value: function getSelections() {
-	      var _this16 = this;
+	      var _this17 = this;
 
 	      // fix #2424: from html with checkbox
 	      return this.data.filter(function (row) {
-	        return row[_this16.header.stateField] === true;
+	        return row[_this17.header.stateField] === true;
 	      });
 	    }
 	  }, {
 	    key: "getAllSelections",
 	    value: function getAllSelections() {
-	      var _this17 = this;
+	      var _this18 = this;
 
 	      return this.options.data.filter(function (row) {
-	        return row[_this17.header.stateField] === true;
+	        return row[_this18.header.stateField] === true;
 	      });
 	    }
 	  }, {
@@ -6123,7 +6158,7 @@
 	  }, {
 	    key: "updateCellByUniqueId",
 	    value: function updateCellByUniqueId(params) {
-	      var _this18 = this;
+	      var _this19 = this;
 
 	      if (!params.hasOwnProperty('id') || !params.hasOwnProperty('field') || !params.hasOwnProperty('value')) {
 	        return;
@@ -6135,13 +6170,13 @@
 	            field = _ref7.field,
 	            value = _ref7.value;
 
-	        var rowId = _this18.options.data.indexOf(_this18.getRowByUniqueId(id));
+	        var rowId = _this19.options.data.indexOf(_this19.getRowByUniqueId(id));
 
 	        if (rowId === -1) {
 	          return;
 	        }
 
-	        _this18.options.data[rowId][field] = value;
+	        _this19.options.data[rowId][field] = value;
 	      });
 
 	      if (params.reinit === false) {
@@ -6235,21 +6270,21 @@
 	  }, {
 	    key: "showColumn",
 	    value: function showColumn(field) {
-	      var _this19 = this;
+	      var _this20 = this;
 
 	      var fields = Array.isArray(field) ? field : [field];
 	      fields.forEach(function (field) {
-	        _this19._toggleColumn(_this19.fieldsColumnsIndex[field], true, true);
+	        _this20._toggleColumn(_this20.fieldsColumnsIndex[field], true, true);
 	      });
 	    }
 	  }, {
 	    key: "hideColumn",
 	    value: function hideColumn(field) {
-	      var _this20 = this;
+	      var _this21 = this;
 
 	      var fields = Array.isArray(field) ? field : [field];
 	      fields.forEach(function (field) {
-	        _this20._toggleColumn(_this20.fieldsColumnsIndex[field], false, true);
+	        _this21._toggleColumn(_this21.fieldsColumnsIndex[field], false, true);
 	      });
 	    }
 	  }, {
@@ -6306,7 +6341,7 @@
 	  }, {
 	    key: "_toggleAllColumns",
 	    value: function _toggleAllColumns(visible) {
-	      var _this21 = this;
+	      var _this22 = this;
 
 	      var _iteratorNormalCompletion8 = true;
 	      var _didIteratorError8 = false;
@@ -6351,7 +6386,7 @@
 	          $items.prop('checked', visible);
 	        } else {
 	          $items.get().reverse().forEach(function (item) {
-	            if ($items.filter(':checked').length > _this21.options.minimumCountColumns) {
+	            if ($items.filter(':checked').length > _this22.options.minimumCountColumns) {
 	              $(item).prop('checked', visible);
 	            }
 	          });
@@ -6509,7 +6544,7 @@
 	  }, {
 	    key: "_toggleCheckBy",
 	    value: function _toggleCheckBy(checked, obj) {
-	      var _this22 = this;
+	      var _this23 = this;
 
 	      if (!obj.hasOwnProperty('field') || !obj.hasOwnProperty('values')) {
 	        return;
@@ -6522,7 +6557,7 @@
 	        }
 
 	        if (obj.values.includes(row[obj.field])) {
-	          var $el = _this22.$selectItem.filter(':enabled').filter(Utils.sprintf('[data-index="%s"]', i));
+	          var $el = _this23.$selectItem.filter(':enabled').filter(Utils.sprintf('[data-index="%s"]', i));
 
 	          $el = checked ? $el.not(':checked') : $el.filter(':checked');
 
@@ -6531,10 +6566,10 @@
 	          }
 
 	          $el.prop('checked', checked);
-	          row[_this22.header.stateField] = checked;
+	          row[_this23.header.stateField] = checked;
 	          rows.push(row);
 
-	          _this22.trigger(checked ? 'check' : 'uncheck', row, $el);
+	          _this23.trigger(checked ? 'check' : 'uncheck', row, $el);
 	        }
 	      });
 	      this.updateSelected();
@@ -6581,7 +6616,7 @@
 	      if (!this.options.cardView && this.options.showHeader && this.options.height) {
 	        this.$tableHeader.show();
 	        this.resetHeader();
-	        padding += this.$header.outerHeight(true);
+	        padding += this.$header.outerHeight(true) + 1;
 	      } else {
 	        this.$tableHeader.hide();
 	        this.trigger('post-header');

+ 1 - 1
dist/bootstrap-table.min.css

@@ -1,7 +1,7 @@
 /**
   * bootstrap-table - An extended table to integration with some of the most widely used CSS frameworks. (Supports Bootstrap, Semantic UI, Bulma, Material Design, Foundation)
   *
-  * @version v1.15.4
+  * @version v1.15.5
   * @homepage https://bootstrap-table.com
   * @author wenzhixin <wenzhixin2010@gmail.com> (http://wenzhixin.net.cn/)
   * @license MIT

File diff suppressed because it is too large
+ 2 - 2
dist/bootstrap-table.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/extensions/accent-neutralise/bootstrap-table-accent-neutralise.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/extensions/addrbar/bootstrap-table-addrbar.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/extensions/auto-refresh/bootstrap-table-auto-refresh.min.js


+ 1 - 1
dist/extensions/cell-input/bootstrap-table-cell-input.min.css

@@ -1,7 +1,7 @@
 /**
   * bootstrap-table - An extended table to integration with some of the most widely used CSS frameworks. (Supports Bootstrap, Semantic UI, Bulma, Material Design, Foundation)
   *
-  * @version v1.15.4
+  * @version v1.15.5
   * @homepage https://bootstrap-table.com
   * @author wenzhixin <wenzhixin2010@gmail.com> (http://wenzhixin.net.cn/)
   * @license MIT

File diff suppressed because it is too large
+ 2 - 2
dist/extensions/cell-input/bootstrap-table-cell-input.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/extensions/cookie/bootstrap-table-cookie.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/extensions/copy-rows/bootstrap-table-copy-rows.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/extensions/defer-url/bootstrap-table-defer-url.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/extensions/editable/bootstrap-table-editable.min.js


File diff suppressed because it is too large
+ 34 - 28
dist/extensions/export/bootstrap-table-export.js


File diff suppressed because it is too large
+ 2 - 2
dist/extensions/export/bootstrap-table-export.min.js


+ 2 - 2
dist/extensions/filter-control/bootstrap-table-filter-control.js

@@ -1879,7 +1879,7 @@
 	    var z = that.options.pagination ? that.options.sidePagination === 'server' ? that.pageTo : that.options.totalRows : that.pageTo;
 	    $.each(that.header.fields, function (j, field) {
 	      var column = that.columns[that.fieldsColumnsIndex[field]];
-	      var selectControl = $(".bootstrap-table-filter-control-".concat(UtilsFilterControl.escapeID(column.field)));
+	      var selectControl = that.$tableBody.find(".bootstrap-table-filter-control-".concat(UtilsFilterControl.escapeID(column.field)));
 
 	      if (UtilsFilterControl.isColumnSearchableViaSelect(column) && UtilsFilterControl.isFilterDataNotGiven(column) && UtilsFilterControl.hasSelectControlElement(selectControl)) {
 	        if (selectControl.get(selectControl.length - 1).options.length === 0) {
@@ -1979,7 +1979,7 @@
 
 	        if (filterDataType !== null) {
 	          filterDataSource = column.filterData.substring(column.filterData.indexOf(':') + 1, column.filterData.length);
-	          selectControl = $(".bootstrap-table-filter-control-".concat(UtilsFilterControl.escapeID(column.field)));
+	          selectControl = that.$tableBody.find(".bootstrap-table-filter-control-".concat(UtilsFilterControl.escapeID(column.field)));
 	          UtilsFilterControl.addOptionToSelectControl(selectControl, '', column.filterControlPlaceholder, column.filterDefault);
 	          filterDataType(filterDataSource, selectControl, column.filterDefault);
 	        } else {

+ 1 - 1
dist/extensions/filter-control/bootstrap-table-filter-control.min.css

@@ -1,7 +1,7 @@
 /**
   * bootstrap-table - An extended table to integration with some of the most widely used CSS frameworks. (Supports Bootstrap, Semantic UI, Bulma, Material Design, Foundation)
   *
-  * @version v1.15.4
+  * @version v1.15.5
   * @homepage https://bootstrap-table.com
   * @author wenzhixin <wenzhixin2010@gmail.com> (http://wenzhixin.net.cn/)
   * @license MIT

File diff suppressed because it is too large
+ 2 - 2
dist/extensions/filter-control/bootstrap-table-filter-control.min.js


+ 1 - 1
dist/extensions/fixed-columns/bootstrap-table-fixed-columns.min.css

@@ -1,7 +1,7 @@
 /**
   * bootstrap-table - An extended table to integration with some of the most widely used CSS frameworks. (Supports Bootstrap, Semantic UI, Bulma, Material Design, Foundation)
   *
-  * @version v1.15.4
+  * @version v1.15.5
   * @homepage https://bootstrap-table.com
   * @author wenzhixin <wenzhixin2010@gmail.com> (http://wenzhixin.net.cn/)
   * @license MIT

File diff suppressed because it is too large
+ 2 - 2
dist/extensions/fixed-columns/bootstrap-table-fixed-columns.min.js


+ 1 - 1
dist/extensions/group-by-v2/bootstrap-table-group-by.min.css

@@ -1,7 +1,7 @@
 /**
   * bootstrap-table - An extended table to integration with some of the most widely used CSS frameworks. (Supports Bootstrap, Semantic UI, Bulma, Material Design, Foundation)
   *
-  * @version v1.15.4
+  * @version v1.15.5
   * @homepage https://bootstrap-table.com
   * @author wenzhixin <wenzhixin2010@gmail.com> (http://wenzhixin.net.cn/)
   * @license MIT

File diff suppressed because it is too large
+ 2 - 2
dist/extensions/group-by-v2/bootstrap-table-group-by.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/extensions/i18n-enhance/bootstrap-table-i18n-enhance.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/extensions/key-events/bootstrap-table-key-events.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/extensions/mobile/bootstrap-table-mobile.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/extensions/multiple-sort/bootstrap-table-multiple-sort.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/extensions/natural-sorting/bootstrap-table-natural-sorting.min.js


+ 1 - 1
dist/extensions/page-jump-to/bootstrap-table-page-jump-to.min.css

@@ -1,7 +1,7 @@
 /**
   * bootstrap-table - An extended table to integration with some of the most widely used CSS frameworks. (Supports Bootstrap, Semantic UI, Bulma, Material Design, Foundation)
   *
-  * @version v1.15.4
+  * @version v1.15.5
   * @homepage https://bootstrap-table.com
   * @author wenzhixin <wenzhixin2010@gmail.com> (http://wenzhixin.net.cn/)
   * @license MIT

File diff suppressed because it is too large
+ 2 - 2
dist/extensions/page-jump-to/bootstrap-table-page-jump-to.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/extensions/pipeline/bootstrap-table-pipeline.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/extensions/print/bootstrap-table-print.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/extensions/reorder-columns/bootstrap-table-reorder-columns.min.js


+ 1 - 1
dist/extensions/reorder-rows/bootstrap-table-reorder-rows.min.css

@@ -1,7 +1,7 @@
 /**
   * bootstrap-table - An extended table to integration with some of the most widely used CSS frameworks. (Supports Bootstrap, Semantic UI, Bulma, Material Design, Foundation)
   *
-  * @version v1.15.4
+  * @version v1.15.5
   * @homepage https://bootstrap-table.com
   * @author wenzhixin <wenzhixin2010@gmail.com> (http://wenzhixin.net.cn/)
   * @license MIT

File diff suppressed because it is too large
+ 2 - 2
dist/extensions/reorder-rows/bootstrap-table-reorder-rows.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/extensions/resizable/bootstrap-table-resizable.min.js


+ 6 - 2
dist/extensions/sticky-header/bootstrap-table-sticky-header.js

@@ -921,7 +921,9 @@
 	var Utils = $.fn.bootstrapTable.utils;
 	$.extend($.fn.bootstrapTable.defaults, {
 	  stickyHeader: false,
-	  stickyHeaderOffsetY: 0
+	  stickyHeaderOffsetY: 0,
+	  stickyHeaderOffsetLeft: 0,
+	  stickyHeaderOffsetRight: 0
 	});
 	var hiddenClass = {
 	  bootstrap3: 'hidden'
@@ -994,7 +996,9 @@
 
 	        this.$stickyContainer.removeClass(hiddenClass).addClass('fix-sticky fixed-table-container'); // stick it in position
 
-	        this.$stickyContainer.css('top', "".concat(this.options.stickyHeaderOffsetY, "px")); // create scrollable container for header
+	        this.$stickyContainer.css('top', "".concat(this.options.stickyHeaderOffsetY));
+	        this.$stickyContainer.css('left', "".concat(this.options.stickyHeaderOffsetLeft));
+	        this.$stickyContainer.css('right', "".concat(this.options.stickyHeaderOffsetRight)); // create scrollable container for header
 
 	        this.$stickyTable = $('<table/>');
 	        this.$stickyTable.addClass(this.options.classes); // append cloned header to dom

+ 1 - 1
dist/extensions/sticky-header/bootstrap-table-sticky-header.min.css

@@ -1,7 +1,7 @@
 /**
   * bootstrap-table - An extended table to integration with some of the most widely used CSS frameworks. (Supports Bootstrap, Semantic UI, Bulma, Material Design, Foundation)
   *
-  * @version v1.15.4
+  * @version v1.15.5
   * @homepage https://bootstrap-table.com
   * @author wenzhixin <wenzhixin2010@gmail.com> (http://wenzhixin.net.cn/)
   * @license MIT

File diff suppressed because it is too large
+ 2 - 2
dist/extensions/sticky-header/bootstrap-table-sticky-header.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/extensions/toolbar/bootstrap-table-toolbar.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/extensions/treegrid/bootstrap-table-treegrid.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-af-ZA.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-ar-SA.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-ca-ES.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-cs-CZ.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-da-DK.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-de-DE.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-el-GR.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-en-US.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-es-AR.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-es-CL.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-es-CR.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-es-ES.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-es-MX.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-es-NI.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-es-SP.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-et-EE.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-eu-EU.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-fa-IR.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-fi-FI.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-fr-BE.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-fr-CH.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-fr-FR.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-fr-LU.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-he-IL.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-hr-HR.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-hu-HU.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-id-ID.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-it-IT.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-ja-JP.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-ka-GE.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-ko-KR.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-ms-MY.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-nb-NO.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-nl-BE.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-nl-NL.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-pl-PL.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-pt-BR.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-pt-PT.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-ro-RO.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-ru-RU.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-sk-SK.min.js


+ 721 - 0
dist/locale/bootstrap-table-sr-Cyrl-RS.js

@@ -0,0 +1,721 @@
+(function (global, factory) {
+	typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) :
+	typeof define === 'function' && define.amd ? define(['jquery'], factory) :
+	(global = global || self, factory(global.jQuery));
+}(this, function ($) { 'use strict';
+
+	$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
+
+	var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
+
+	function createCommonjsModule(fn, module) {
+		return module = { exports: {} }, fn(module, module.exports), module.exports;
+	}
+
+	var O = 'object';
+	var check = function (it) {
+	  return it && it.Math == Math && it;
+	};
+
+	// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
+	var global_1 =
+	  // eslint-disable-next-line no-undef
+	  check(typeof globalThis == O && globalThis) ||
+	  check(typeof window == O && window) ||
+	  check(typeof self == O && self) ||
+	  check(typeof commonjsGlobal == O && commonjsGlobal) ||
+	  // eslint-disable-next-line no-new-func
+	  Function('return this')();
+
+	var fails = function (exec) {
+	  try {
+	    return !!exec();
+	  } catch (error) {
+	    return true;
+	  }
+	};
+
+	// Thank's IE8 for his funny defineProperty
+	var descriptors = !fails(function () {
+	  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
+	});
+
+	var nativePropertyIsEnumerable = {}.propertyIsEnumerable;
+	var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
+
+	// Nashorn ~ JDK8 bug
+	var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);
+
+	// `Object.prototype.propertyIsEnumerable` method implementation
+	// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable
+	var f = NASHORN_BUG ? function propertyIsEnumerable(V) {
+	  var descriptor = getOwnPropertyDescriptor(this, V);
+	  return !!descriptor && descriptor.enumerable;
+	} : nativePropertyIsEnumerable;
+
+	var objectPropertyIsEnumerable = {
+		f: f
+	};
+
+	var createPropertyDescriptor = function (bitmap, value) {
+	  return {
+	    enumerable: !(bitmap & 1),
+	    configurable: !(bitmap & 2),
+	    writable: !(bitmap & 4),
+	    value: value
+	  };
+	};
+
+	var toString = {}.toString;
+
+	var classofRaw = function (it) {
+	  return toString.call(it).slice(8, -1);
+	};
+
+	var split = ''.split;
+
+	// fallback for non-array-like ES3 and non-enumerable old V8 strings
+	var indexedObject = fails(function () {
+	  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
+	  // eslint-disable-next-line no-prototype-builtins
+	  return !Object('z').propertyIsEnumerable(0);
+	}) ? function (it) {
+	  return classofRaw(it) == 'String' ? split.call(it, '') : Object(it);
+	} : Object;
+
+	// `RequireObjectCoercible` abstract operation
+	// https://tc39.github.io/ecma262/#sec-requireobjectcoercible
+	var requireObjectCoercible = function (it) {
+	  if (it == undefined) throw TypeError("Can't call method on " + it);
+	  return it;
+	};
+
+	// toObject with fallback for non-array-like ES3 strings
+
+
+
+	var toIndexedObject = function (it) {
+	  return indexedObject(requireObjectCoercible(it));
+	};
+
+	var isObject = function (it) {
+	  return typeof it === 'object' ? it !== null : typeof it === 'function';
+	};
+
+	// `ToPrimitive` abstract operation
+	// https://tc39.github.io/ecma262/#sec-toprimitive
+	// instead of the ES6 spec version, we didn't implement @@toPrimitive case
+	// and the second argument - flag - preferred type is a string
+	var toPrimitive = function (input, PREFERRED_STRING) {
+	  if (!isObject(input)) return input;
+	  var fn, val;
+	  if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
+	  if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;
+	  if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
+	  throw TypeError("Can't convert object to primitive value");
+	};
+
+	var hasOwnProperty = {}.hasOwnProperty;
+
+	var has = function (it, key) {
+	  return hasOwnProperty.call(it, key);
+	};
+
+	var document = global_1.document;
+	// typeof document.createElement is 'object' in old IE
+	var EXISTS = isObject(document) && isObject(document.createElement);
+
+	var documentCreateElement = function (it) {
+	  return EXISTS ? document.createElement(it) : {};
+	};
+
+	// Thank's IE8 for his funny defineProperty
+	var ie8DomDefine = !descriptors && !fails(function () {
+	  return Object.defineProperty(documentCreateElement('div'), 'a', {
+	    get: function () { return 7; }
+	  }).a != 7;
+	});
+
+	var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
+
+	// `Object.getOwnPropertyDescriptor` method
+	// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor
+	var f$1 = descriptors ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
+	  O = toIndexedObject(O);
+	  P = toPrimitive(P, true);
+	  if (ie8DomDefine) try {
+	    return nativeGetOwnPropertyDescriptor(O, P);
+	  } catch (error) { /* empty */ }
+	  if (has(O, P)) return createPropertyDescriptor(!objectPropertyIsEnumerable.f.call(O, P), O[P]);
+	};
+
+	var objectGetOwnPropertyDescriptor = {
+		f: f$1
+	};
+
+	var anObject = function (it) {
+	  if (!isObject(it)) {
+	    throw TypeError(String(it) + ' is not an object');
+	  } return it;
+	};
+
+	var nativeDefineProperty = Object.defineProperty;
+
+	// `Object.defineProperty` method
+	// https://tc39.github.io/ecma262/#sec-object.defineproperty
+	var f$2 = descriptors ? nativeDefineProperty : function defineProperty(O, P, Attributes) {
+	  anObject(O);
+	  P = toPrimitive(P, true);
+	  anObject(Attributes);
+	  if (ie8DomDefine) try {
+	    return nativeDefineProperty(O, P, Attributes);
+	  } catch (error) { /* empty */ }
+	  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');
+	  if ('value' in Attributes) O[P] = Attributes.value;
+	  return O;
+	};
+
+	var objectDefineProperty = {
+		f: f$2
+	};
+
+	var hide = descriptors ? function (object, key, value) {
+	  return objectDefineProperty.f(object, key, createPropertyDescriptor(1, value));
+	} : function (object, key, value) {
+	  object[key] = value;
+	  return object;
+	};
+
+	var setGlobal = function (key, value) {
+	  try {
+	    hide(global_1, key, value);
+	  } catch (error) {
+	    global_1[key] = value;
+	  } return value;
+	};
+
+	var shared = createCommonjsModule(function (module) {
+	var SHARED = '__core-js_shared__';
+	var store = global_1[SHARED] || setGlobal(SHARED, {});
+
+	(module.exports = function (key, value) {
+	  return store[key] || (store[key] = value !== undefined ? value : {});
+	})('versions', []).push({
+	  version: '3.1.3',
+	  mode:  'global',
+	  copyright: '© 2019 Denis Pushkarev (zloirock.ru)'
+	});
+	});
+
+	var functionToString = shared('native-function-to-string', Function.toString);
+
+	var WeakMap = global_1.WeakMap;
+
+	var nativeWeakMap = typeof WeakMap === 'function' && /native code/.test(functionToString.call(WeakMap));
+
+	var id = 0;
+	var postfix = Math.random();
+
+	var uid = function (key) {
+	  return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);
+	};
+
+	var keys = shared('keys');
+
+	var sharedKey = function (key) {
+	  return keys[key] || (keys[key] = uid(key));
+	};
+
+	var hiddenKeys = {};
+
+	var WeakMap$1 = global_1.WeakMap;
+	var set, get, has$1;
+
+	var enforce = function (it) {
+	  return has$1(it) ? get(it) : set(it, {});
+	};
+
+	var getterFor = function (TYPE) {
+	  return function (it) {
+	    var state;
+	    if (!isObject(it) || (state = get(it)).type !== TYPE) {
+	      throw TypeError('Incompatible receiver, ' + TYPE + ' required');
+	    } return state;
+	  };
+	};
+
+	if (nativeWeakMap) {
+	  var store = new WeakMap$1();
+	  var wmget = store.get;
+	  var wmhas = store.has;
+	  var wmset = store.set;
+	  set = function (it, metadata) {
+	    wmset.call(store, it, metadata);
+	    return metadata;
+	  };
+	  get = function (it) {
+	    return wmget.call(store, it) || {};
+	  };
+	  has$1 = function (it) {
+	    return wmhas.call(store, it);
+	  };
+	} else {
+	  var STATE = sharedKey('state');
+	  hiddenKeys[STATE] = true;
+	  set = function (it, metadata) {
+	    hide(it, STATE, metadata);
+	    return metadata;
+	  };
+	  get = function (it) {
+	    return has(it, STATE) ? it[STATE] : {};
+	  };
+	  has$1 = function (it) {
+	    return has(it, STATE);
+	  };
+	}
+
+	var internalState = {
+	  set: set,
+	  get: get,
+	  has: has$1,
+	  enforce: enforce,
+	  getterFor: getterFor
+	};
+
+	var redefine = createCommonjsModule(function (module) {
+	var getInternalState = internalState.get;
+	var enforceInternalState = internalState.enforce;
+	var TEMPLATE = String(functionToString).split('toString');
+
+	shared('inspectSource', function (it) {
+	  return functionToString.call(it);
+	});
+
+	(module.exports = function (O, key, value, options) {
+	  var unsafe = options ? !!options.unsafe : false;
+	  var simple = options ? !!options.enumerable : false;
+	  var noTargetGet = options ? !!options.noTargetGet : false;
+	  if (typeof value == 'function') {
+	    if (typeof key == 'string' && !has(value, 'name')) hide(value, 'name', key);
+	    enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');
+	  }
+	  if (O === global_1) {
+	    if (simple) O[key] = value;
+	    else setGlobal(key, value);
+	    return;
+	  } else if (!unsafe) {
+	    delete O[key];
+	  } else if (!noTargetGet && O[key]) {
+	    simple = true;
+	  }
+	  if (simple) O[key] = value;
+	  else hide(O, key, value);
+	// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
+	})(Function.prototype, 'toString', function toString() {
+	  return typeof this == 'function' && getInternalState(this).source || functionToString.call(this);
+	});
+	});
+
+	var path = global_1;
+
+	var aFunction = function (variable) {
+	  return typeof variable == 'function' ? variable : undefined;
+	};
+
+	var getBuiltIn = function (namespace, method) {
+	  return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global_1[namespace])
+	    : path[namespace] && path[namespace][method] || global_1[namespace] && global_1[namespace][method];
+	};
+
+	var ceil = Math.ceil;
+	var floor = Math.floor;
+
+	// `ToInteger` abstract operation
+	// https://tc39.github.io/ecma262/#sec-tointeger
+	var toInteger = function (argument) {
+	  return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);
+	};
+
+	var min = Math.min;
+
+	// `ToLength` abstract operation
+	// https://tc39.github.io/ecma262/#sec-tolength
+	var toLength = function (argument) {
+	  return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
+	};
+
+	var max = Math.max;
+	var min$1 = Math.min;
+
+	// Helper for a popular repeating case of the spec:
+	// Let integer be ? ToInteger(index).
+	// If integer < 0, let result be max((length + integer), 0); else let result be min(length, length).
+	var toAbsoluteIndex = function (index, length) {
+	  var integer = toInteger(index);
+	  return integer < 0 ? max(integer + length, 0) : min$1(integer, length);
+	};
+
+	// `Array.prototype.{ indexOf, includes }` methods implementation
+	var createMethod = function (IS_INCLUDES) {
+	  return function ($this, el, fromIndex) {
+	    var O = toIndexedObject($this);
+	    var length = toLength(O.length);
+	    var index = toAbsoluteIndex(fromIndex, length);
+	    var value;
+	    // Array#includes uses SameValueZero equality algorithm
+	    // eslint-disable-next-line no-self-compare
+	    if (IS_INCLUDES && el != el) while (length > index) {
+	      value = O[index++];
+	      // eslint-disable-next-line no-self-compare
+	      if (value != value) return true;
+	    // Array#indexOf ignores holes, Array#includes - not
+	    } else for (;length > index; index++) {
+	      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
+	    } return !IS_INCLUDES && -1;
+	  };
+	};
+
+	var arrayIncludes = {
+	  // `Array.prototype.includes` method
+	  // https://tc39.github.io/ecma262/#sec-array.prototype.includes
+	  includes: createMethod(true),
+	  // `Array.prototype.indexOf` method
+	  // https://tc39.github.io/ecma262/#sec-array.prototype.indexof
+	  indexOf: createMethod(false)
+	};
+
+	var indexOf = arrayIncludes.indexOf;
+
+
+	var objectKeysInternal = function (object, names) {
+	  var O = toIndexedObject(object);
+	  var i = 0;
+	  var result = [];
+	  var key;
+	  for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);
+	  // Don't enum bug & hidden keys
+	  while (names.length > i) if (has(O, key = names[i++])) {
+	    ~indexOf(result, key) || result.push(key);
+	  }
+	  return result;
+	};
+
+	// IE8- don't enum bug keys
+	var enumBugKeys = [
+	  'constructor',
+	  'hasOwnProperty',
+	  'isPrototypeOf',
+	  'propertyIsEnumerable',
+	  'toLocaleString',
+	  'toString',
+	  'valueOf'
+	];
+
+	var hiddenKeys$1 = enumBugKeys.concat('length', 'prototype');
+
+	// `Object.getOwnPropertyNames` method
+	// https://tc39.github.io/ecma262/#sec-object.getownpropertynames
+	var f$3 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
+	  return objectKeysInternal(O, hiddenKeys$1);
+	};
+
+	var objectGetOwnPropertyNames = {
+		f: f$3
+	};
+
+	var f$4 = Object.getOwnPropertySymbols;
+
+	var objectGetOwnPropertySymbols = {
+		f: f$4
+	};
+
+	// all object keys, includes non-enumerable and symbols
+	var ownKeys = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
+	  var keys = objectGetOwnPropertyNames.f(anObject(it));
+	  var getOwnPropertySymbols = objectGetOwnPropertySymbols.f;
+	  return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;
+	};
+
+	var copyConstructorProperties = function (target, source) {
+	  var keys = ownKeys(source);
+	  var defineProperty = objectDefineProperty.f;
+	  var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;
+	  for (var i = 0; i < keys.length; i++) {
+	    var key = keys[i];
+	    if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));
+	  }
+	};
+
+	var replacement = /#|\.prototype\./;
+
+	var isForced = function (feature, detection) {
+	  var value = data[normalize(feature)];
+	  return value == POLYFILL ? true
+	    : value == NATIVE ? false
+	    : typeof detection == 'function' ? fails(detection)
+	    : !!detection;
+	};
+
+	var normalize = isForced.normalize = function (string) {
+	  return String(string).replace(replacement, '.').toLowerCase();
+	};
+
+	var data = isForced.data = {};
+	var NATIVE = isForced.NATIVE = 'N';
+	var POLYFILL = isForced.POLYFILL = 'P';
+
+	var isForced_1 = isForced;
+
+	var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f;
+
+
+
+
+
+
+	/*
+	  options.target      - name of the target object
+	  options.global      - target is the global object
+	  options.stat        - export as static methods of target
+	  options.proto       - export as prototype methods of target
+	  options.real        - real prototype method for the `pure` version
+	  options.forced      - export even if the native feature is available
+	  options.bind        - bind methods to the target, required for the `pure` version
+	  options.wrap        - wrap constructors to preventing global pollution, required for the `pure` version
+	  options.unsafe      - use the simple assignment of property instead of delete + defineProperty
+	  options.sham        - add a flag to not completely full polyfills
+	  options.enumerable  - export as enumerable property
+	  options.noTargetGet - prevent calling a getter on target
+	*/
+	var _export = function (options, source) {
+	  var TARGET = options.target;
+	  var GLOBAL = options.global;
+	  var STATIC = options.stat;
+	  var FORCED, target, key, targetProperty, sourceProperty, descriptor;
+	  if (GLOBAL) {
+	    target = global_1;
+	  } else if (STATIC) {
+	    target = global_1[TARGET] || setGlobal(TARGET, {});
+	  } else {
+	    target = (global_1[TARGET] || {}).prototype;
+	  }
+	  if (target) for (key in source) {
+	    sourceProperty = source[key];
+	    if (options.noTargetGet) {
+	      descriptor = getOwnPropertyDescriptor$1(target, key);
+	      targetProperty = descriptor && descriptor.value;
+	    } else targetProperty = target[key];
+	    FORCED = isForced_1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
+	    // contained in target
+	    if (!FORCED && targetProperty !== undefined) {
+	      if (typeof sourceProperty === typeof targetProperty) continue;
+	      copyConstructorProperties(sourceProperty, targetProperty);
+	    }
+	    // add a flag to not completely full polyfills
+	    if (options.sham || (targetProperty && targetProperty.sham)) {
+	      hide(sourceProperty, 'sham', true);
+	    }
+	    // extend global
+	    redefine(target, key, sourceProperty, options);
+	  }
+	};
+
+	// `IsArray` abstract operation
+	// https://tc39.github.io/ecma262/#sec-isarray
+	var isArray = Array.isArray || function isArray(arg) {
+	  return classofRaw(arg) == 'Array';
+	};
+
+	// `ToObject` abstract operation
+	// https://tc39.github.io/ecma262/#sec-toobject
+	var toObject = function (argument) {
+	  return Object(requireObjectCoercible(argument));
+	};
+
+	var createProperty = function (object, key, value) {
+	  var propertyKey = toPrimitive(key);
+	  if (propertyKey in object) objectDefineProperty.f(object, propertyKey, createPropertyDescriptor(0, value));
+	  else object[propertyKey] = value;
+	};
+
+	var nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () {
+	  // Chrome 38 Symbol has incorrect toString conversion
+	  // eslint-disable-next-line no-undef
+	  return !String(Symbol());
+	});
+
+	var Symbol$1 = global_1.Symbol;
+	var store$1 = shared('wks');
+
+	var wellKnownSymbol = function (name) {
+	  return store$1[name] || (store$1[name] = nativeSymbol && Symbol$1[name]
+	    || (nativeSymbol ? Symbol$1 : uid)('Symbol.' + name));
+	};
+
+	var SPECIES = wellKnownSymbol('species');
+
+	// `ArraySpeciesCreate` abstract operation
+	// https://tc39.github.io/ecma262/#sec-arrayspeciescreate
+	var arraySpeciesCreate = function (originalArray, length) {
+	  var C;
+	  if (isArray(originalArray)) {
+	    C = originalArray.constructor;
+	    // cross-realm fallback
+	    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
+	    else if (isObject(C)) {
+	      C = C[SPECIES];
+	      if (C === null) C = undefined;
+	    }
+	  } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);
+	};
+
+	var SPECIES$1 = wellKnownSymbol('species');
+
+	var arrayMethodHasSpeciesSupport = function (METHOD_NAME) {
+	  return !fails(function () {
+	    var array = [];
+	    var constructor = array.constructor = {};
+	    constructor[SPECIES$1] = function () {
+	      return { foo: 1 };
+	    };
+	    return array[METHOD_NAME](Boolean).foo !== 1;
+	  });
+	};
+
+	var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');
+	var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
+	var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';
+
+	var IS_CONCAT_SPREADABLE_SUPPORT = !fails(function () {
+	  var array = [];
+	  array[IS_CONCAT_SPREADABLE] = false;
+	  return array.concat()[0] !== array;
+	});
+
+	var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');
+
+	var isConcatSpreadable = function (O) {
+	  if (!isObject(O)) return false;
+	  var spreadable = O[IS_CONCAT_SPREADABLE];
+	  return spreadable !== undefined ? !!spreadable : isArray(O);
+	};
+
+	var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;
+
+	// `Array.prototype.concat` method
+	// https://tc39.github.io/ecma262/#sec-array.prototype.concat
+	// with adding support of @@isConcatSpreadable and @@species
+	_export({ target: 'Array', proto: true, forced: FORCED }, {
+	  concat: function concat(arg) { // eslint-disable-line no-unused-vars
+	    var O = toObject(this);
+	    var A = arraySpeciesCreate(O, 0);
+	    var n = 0;
+	    var i, k, length, len, E;
+	    for (i = -1, length = arguments.length; i < length; i++) {
+	      E = i === -1 ? O : arguments[i];
+	      if (isConcatSpreadable(E)) {
+	        len = toLength(E.length);
+	        if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
+	        for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);
+	      } else {
+	        if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
+	        createProperty(A, n++, E);
+	      }
+	    }
+	    A.length = n;
+	    return A;
+	  }
+	});
+
+	/**
+	* Bootstrap Table Serbian Cyrilic RS translation
+	* Author: Vladimir Kanazir (vladimir@kanazir.com)
+	*/
+
+	$.fn.bootstrapTable.locales['sr-Cyrl-RS'] = {
+	  formatLoadingMessage: function formatLoadingMessage() {
+	    return 'Молим сачекај';
+	  },
+	  formatRecordsPerPage: function formatRecordsPerPage(pageNumber) {
+	    return "".concat(pageNumber, " \u0440\u0435\u0434\u043E\u0432\u0430 \u043F\u043E \u0441\u0442\u0440\u0430\u043D\u0438");
+	  },
+	  formatShowingRows: function formatShowingRows(pageFrom, pageTo, totalRows, totalNotFiltered) {
+	    if (totalNotFiltered !== undefined && totalNotFiltered > 0 && totalNotFiltered > totalRows) {
+	      return "\u041F\u0440\u0438\u043A\u0430\u0437\u0430\u043D\u043E ".concat(pageFrom, ". - ").concat(pageTo, ". \u043E\u0434 \u0443\u043A\u0443\u043F\u043D\u043E\u0433 \u0431\u0440\u043E\u0458\u0430 \u0440\u0435\u0434\u043E\u0432\u0430 ").concat(totalRows, " (\u0444\u0438\u043B\u0442\u0440\u0438\u0440\u0430\u043D\u043E \u043E\u0434 ").concat(totalNotFiltered, ")");
+	    }
+
+	    return "\u041F\u0440\u0438\u043A\u0430\u0437\u0430\u043D\u043E ".concat(pageFrom, ". - ").concat(pageTo, ". \u043E\u0434 \u0443\u043A\u0443\u043F\u043D\u043E\u0433 \u0431\u0440\u043E\u0458\u0430 \u0440\u0435\u0434\u043E\u0432\u0430 ").concat(totalRows);
+	  },
+	  formatSRPaginationPreText: function formatSRPaginationPreText() {
+	    return 'претходна страна';
+	  },
+	  formatSRPaginationPageText: function formatSRPaginationPageText(page) {
+	    return "\u043D\u0430 \u0441\u0442\u0440\u0430\u043D\u0443 ".concat(page);
+	  },
+	  formatSRPaginationNextText: function formatSRPaginationNextText() {
+	    return 'следећа страна';
+	  },
+	  formatDetailPagination: function formatDetailPagination(totalRows) {
+	    return "\u041F\u0440\u0438\u043A\u0430\u0437\u0430\u043D\u043E ".concat(totalRows, " \u0440\u0435\u0434\u043E\u0432\u0430");
+	  },
+	  formatClearSearch: function formatClearSearch() {
+	    return 'Обриши претрагу';
+	  },
+	  formatSearch: function formatSearch() {
+	    return 'Пронађи';
+	  },
+	  formatNoMatches: function formatNoMatches() {
+	    return 'Није пронађен ни један податак';
+	  },
+	  formatPaginationSwitch: function formatPaginationSwitch() {
+	    return 'Прикажи/сакриј пагинацију';
+	  },
+	  formatPaginationSwitchDown: function formatPaginationSwitchDown() {
+	    return 'Прикажи пагинацију';
+	  },
+	  formatPaginationSwitchUp: function formatPaginationSwitchUp() {
+	    return 'Сакриј пагинацију';
+	  },
+	  formatRefresh: function formatRefresh() {
+	    return 'Освежи';
+	  },
+	  formatToggle: function formatToggle() {
+	    return 'Промени приказ';
+	  },
+	  formatToggleOn: function formatToggleOn() {
+	    return 'Прикажи картице';
+	  },
+	  formatToggleOff: function formatToggleOff() {
+	    return 'Сакриј картице';
+	  },
+	  formatColumns: function formatColumns() {
+	    return 'Колоне';
+	  },
+	  formatColumnsToggleAll: function formatColumnsToggleAll() {
+	    return 'Прикажи/сакриј све';
+	  },
+	  formatFullscreen: function formatFullscreen() {
+	    return 'Цео екран';
+	  },
+	  formatAllRows: function formatAllRows() {
+	    return 'Све';
+	  },
+	  formatAutoRefresh: function formatAutoRefresh() {
+	    return 'Аутоматско освежавање';
+	  },
+	  formatExport: function formatExport() {
+	    return 'Извези податке';
+	  },
+	  formatJumpTo: function formatJumpTo() {
+	    return 'Иди';
+	  },
+	  formatAdvancedSearch: function formatAdvancedSearch() {
+	    return 'Напредна претрага';
+	  },
+	  formatAdvancedCloseButton: function formatAdvancedCloseButton() {
+	    return 'Затвори';
+	  }
+	};
+	$.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['sr-Cyrl-RS']);
+
+}));

File diff suppressed because it is too large
+ 10 - 0
dist/locale/bootstrap-table-sr-Cyrl-RS.min.js


+ 721 - 0
dist/locale/bootstrap-table-sr-Latn-RS.js

@@ -0,0 +1,721 @@
+(function (global, factory) {
+	typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) :
+	typeof define === 'function' && define.amd ? define(['jquery'], factory) :
+	(global = global || self, factory(global.jQuery));
+}(this, function ($) { 'use strict';
+
+	$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
+
+	var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
+
+	function createCommonjsModule(fn, module) {
+		return module = { exports: {} }, fn(module, module.exports), module.exports;
+	}
+
+	var O = 'object';
+	var check = function (it) {
+	  return it && it.Math == Math && it;
+	};
+
+	// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
+	var global_1 =
+	  // eslint-disable-next-line no-undef
+	  check(typeof globalThis == O && globalThis) ||
+	  check(typeof window == O && window) ||
+	  check(typeof self == O && self) ||
+	  check(typeof commonjsGlobal == O && commonjsGlobal) ||
+	  // eslint-disable-next-line no-new-func
+	  Function('return this')();
+
+	var fails = function (exec) {
+	  try {
+	    return !!exec();
+	  } catch (error) {
+	    return true;
+	  }
+	};
+
+	// Thank's IE8 for his funny defineProperty
+	var descriptors = !fails(function () {
+	  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
+	});
+
+	var nativePropertyIsEnumerable = {}.propertyIsEnumerable;
+	var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
+
+	// Nashorn ~ JDK8 bug
+	var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);
+
+	// `Object.prototype.propertyIsEnumerable` method implementation
+	// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable
+	var f = NASHORN_BUG ? function propertyIsEnumerable(V) {
+	  var descriptor = getOwnPropertyDescriptor(this, V);
+	  return !!descriptor && descriptor.enumerable;
+	} : nativePropertyIsEnumerable;
+
+	var objectPropertyIsEnumerable = {
+		f: f
+	};
+
+	var createPropertyDescriptor = function (bitmap, value) {
+	  return {
+	    enumerable: !(bitmap & 1),
+	    configurable: !(bitmap & 2),
+	    writable: !(bitmap & 4),
+	    value: value
+	  };
+	};
+
+	var toString = {}.toString;
+
+	var classofRaw = function (it) {
+	  return toString.call(it).slice(8, -1);
+	};
+
+	var split = ''.split;
+
+	// fallback for non-array-like ES3 and non-enumerable old V8 strings
+	var indexedObject = fails(function () {
+	  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
+	  // eslint-disable-next-line no-prototype-builtins
+	  return !Object('z').propertyIsEnumerable(0);
+	}) ? function (it) {
+	  return classofRaw(it) == 'String' ? split.call(it, '') : Object(it);
+	} : Object;
+
+	// `RequireObjectCoercible` abstract operation
+	// https://tc39.github.io/ecma262/#sec-requireobjectcoercible
+	var requireObjectCoercible = function (it) {
+	  if (it == undefined) throw TypeError("Can't call method on " + it);
+	  return it;
+	};
+
+	// toObject with fallback for non-array-like ES3 strings
+
+
+
+	var toIndexedObject = function (it) {
+	  return indexedObject(requireObjectCoercible(it));
+	};
+
+	var isObject = function (it) {
+	  return typeof it === 'object' ? it !== null : typeof it === 'function';
+	};
+
+	// `ToPrimitive` abstract operation
+	// https://tc39.github.io/ecma262/#sec-toprimitive
+	// instead of the ES6 spec version, we didn't implement @@toPrimitive case
+	// and the second argument - flag - preferred type is a string
+	var toPrimitive = function (input, PREFERRED_STRING) {
+	  if (!isObject(input)) return input;
+	  var fn, val;
+	  if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
+	  if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;
+	  if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
+	  throw TypeError("Can't convert object to primitive value");
+	};
+
+	var hasOwnProperty = {}.hasOwnProperty;
+
+	var has = function (it, key) {
+	  return hasOwnProperty.call(it, key);
+	};
+
+	var document = global_1.document;
+	// typeof document.createElement is 'object' in old IE
+	var EXISTS = isObject(document) && isObject(document.createElement);
+
+	var documentCreateElement = function (it) {
+	  return EXISTS ? document.createElement(it) : {};
+	};
+
+	// Thank's IE8 for his funny defineProperty
+	var ie8DomDefine = !descriptors && !fails(function () {
+	  return Object.defineProperty(documentCreateElement('div'), 'a', {
+	    get: function () { return 7; }
+	  }).a != 7;
+	});
+
+	var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
+
+	// `Object.getOwnPropertyDescriptor` method
+	// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor
+	var f$1 = descriptors ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
+	  O = toIndexedObject(O);
+	  P = toPrimitive(P, true);
+	  if (ie8DomDefine) try {
+	    return nativeGetOwnPropertyDescriptor(O, P);
+	  } catch (error) { /* empty */ }
+	  if (has(O, P)) return createPropertyDescriptor(!objectPropertyIsEnumerable.f.call(O, P), O[P]);
+	};
+
+	var objectGetOwnPropertyDescriptor = {
+		f: f$1
+	};
+
+	var anObject = function (it) {
+	  if (!isObject(it)) {
+	    throw TypeError(String(it) + ' is not an object');
+	  } return it;
+	};
+
+	var nativeDefineProperty = Object.defineProperty;
+
+	// `Object.defineProperty` method
+	// https://tc39.github.io/ecma262/#sec-object.defineproperty
+	var f$2 = descriptors ? nativeDefineProperty : function defineProperty(O, P, Attributes) {
+	  anObject(O);
+	  P = toPrimitive(P, true);
+	  anObject(Attributes);
+	  if (ie8DomDefine) try {
+	    return nativeDefineProperty(O, P, Attributes);
+	  } catch (error) { /* empty */ }
+	  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');
+	  if ('value' in Attributes) O[P] = Attributes.value;
+	  return O;
+	};
+
+	var objectDefineProperty = {
+		f: f$2
+	};
+
+	var hide = descriptors ? function (object, key, value) {
+	  return objectDefineProperty.f(object, key, createPropertyDescriptor(1, value));
+	} : function (object, key, value) {
+	  object[key] = value;
+	  return object;
+	};
+
+	var setGlobal = function (key, value) {
+	  try {
+	    hide(global_1, key, value);
+	  } catch (error) {
+	    global_1[key] = value;
+	  } return value;
+	};
+
+	var shared = createCommonjsModule(function (module) {
+	var SHARED = '__core-js_shared__';
+	var store = global_1[SHARED] || setGlobal(SHARED, {});
+
+	(module.exports = function (key, value) {
+	  return store[key] || (store[key] = value !== undefined ? value : {});
+	})('versions', []).push({
+	  version: '3.1.3',
+	  mode:  'global',
+	  copyright: '© 2019 Denis Pushkarev (zloirock.ru)'
+	});
+	});
+
+	var functionToString = shared('native-function-to-string', Function.toString);
+
+	var WeakMap = global_1.WeakMap;
+
+	var nativeWeakMap = typeof WeakMap === 'function' && /native code/.test(functionToString.call(WeakMap));
+
+	var id = 0;
+	var postfix = Math.random();
+
+	var uid = function (key) {
+	  return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);
+	};
+
+	var keys = shared('keys');
+
+	var sharedKey = function (key) {
+	  return keys[key] || (keys[key] = uid(key));
+	};
+
+	var hiddenKeys = {};
+
+	var WeakMap$1 = global_1.WeakMap;
+	var set, get, has$1;
+
+	var enforce = function (it) {
+	  return has$1(it) ? get(it) : set(it, {});
+	};
+
+	var getterFor = function (TYPE) {
+	  return function (it) {
+	    var state;
+	    if (!isObject(it) || (state = get(it)).type !== TYPE) {
+	      throw TypeError('Incompatible receiver, ' + TYPE + ' required');
+	    } return state;
+	  };
+	};
+
+	if (nativeWeakMap) {
+	  var store = new WeakMap$1();
+	  var wmget = store.get;
+	  var wmhas = store.has;
+	  var wmset = store.set;
+	  set = function (it, metadata) {
+	    wmset.call(store, it, metadata);
+	    return metadata;
+	  };
+	  get = function (it) {
+	    return wmget.call(store, it) || {};
+	  };
+	  has$1 = function (it) {
+	    return wmhas.call(store, it);
+	  };
+	} else {
+	  var STATE = sharedKey('state');
+	  hiddenKeys[STATE] = true;
+	  set = function (it, metadata) {
+	    hide(it, STATE, metadata);
+	    return metadata;
+	  };
+	  get = function (it) {
+	    return has(it, STATE) ? it[STATE] : {};
+	  };
+	  has$1 = function (it) {
+	    return has(it, STATE);
+	  };
+	}
+
+	var internalState = {
+	  set: set,
+	  get: get,
+	  has: has$1,
+	  enforce: enforce,
+	  getterFor: getterFor
+	};
+
+	var redefine = createCommonjsModule(function (module) {
+	var getInternalState = internalState.get;
+	var enforceInternalState = internalState.enforce;
+	var TEMPLATE = String(functionToString).split('toString');
+
+	shared('inspectSource', function (it) {
+	  return functionToString.call(it);
+	});
+
+	(module.exports = function (O, key, value, options) {
+	  var unsafe = options ? !!options.unsafe : false;
+	  var simple = options ? !!options.enumerable : false;
+	  var noTargetGet = options ? !!options.noTargetGet : false;
+	  if (typeof value == 'function') {
+	    if (typeof key == 'string' && !has(value, 'name')) hide(value, 'name', key);
+	    enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');
+	  }
+	  if (O === global_1) {
+	    if (simple) O[key] = value;
+	    else setGlobal(key, value);
+	    return;
+	  } else if (!unsafe) {
+	    delete O[key];
+	  } else if (!noTargetGet && O[key]) {
+	    simple = true;
+	  }
+	  if (simple) O[key] = value;
+	  else hide(O, key, value);
+	// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
+	})(Function.prototype, 'toString', function toString() {
+	  return typeof this == 'function' && getInternalState(this).source || functionToString.call(this);
+	});
+	});
+
+	var path = global_1;
+
+	var aFunction = function (variable) {
+	  return typeof variable == 'function' ? variable : undefined;
+	};
+
+	var getBuiltIn = function (namespace, method) {
+	  return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global_1[namespace])
+	    : path[namespace] && path[namespace][method] || global_1[namespace] && global_1[namespace][method];
+	};
+
+	var ceil = Math.ceil;
+	var floor = Math.floor;
+
+	// `ToInteger` abstract operation
+	// https://tc39.github.io/ecma262/#sec-tointeger
+	var toInteger = function (argument) {
+	  return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);
+	};
+
+	var min = Math.min;
+
+	// `ToLength` abstract operation
+	// https://tc39.github.io/ecma262/#sec-tolength
+	var toLength = function (argument) {
+	  return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
+	};
+
+	var max = Math.max;
+	var min$1 = Math.min;
+
+	// Helper for a popular repeating case of the spec:
+	// Let integer be ? ToInteger(index).
+	// If integer < 0, let result be max((length + integer), 0); else let result be min(length, length).
+	var toAbsoluteIndex = function (index, length) {
+	  var integer = toInteger(index);
+	  return integer < 0 ? max(integer + length, 0) : min$1(integer, length);
+	};
+
+	// `Array.prototype.{ indexOf, includes }` methods implementation
+	var createMethod = function (IS_INCLUDES) {
+	  return function ($this, el, fromIndex) {
+	    var O = toIndexedObject($this);
+	    var length = toLength(O.length);
+	    var index = toAbsoluteIndex(fromIndex, length);
+	    var value;
+	    // Array#includes uses SameValueZero equality algorithm
+	    // eslint-disable-next-line no-self-compare
+	    if (IS_INCLUDES && el != el) while (length > index) {
+	      value = O[index++];
+	      // eslint-disable-next-line no-self-compare
+	      if (value != value) return true;
+	    // Array#indexOf ignores holes, Array#includes - not
+	    } else for (;length > index; index++) {
+	      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
+	    } return !IS_INCLUDES && -1;
+	  };
+	};
+
+	var arrayIncludes = {
+	  // `Array.prototype.includes` method
+	  // https://tc39.github.io/ecma262/#sec-array.prototype.includes
+	  includes: createMethod(true),
+	  // `Array.prototype.indexOf` method
+	  // https://tc39.github.io/ecma262/#sec-array.prototype.indexof
+	  indexOf: createMethod(false)
+	};
+
+	var indexOf = arrayIncludes.indexOf;
+
+
+	var objectKeysInternal = function (object, names) {
+	  var O = toIndexedObject(object);
+	  var i = 0;
+	  var result = [];
+	  var key;
+	  for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);
+	  // Don't enum bug & hidden keys
+	  while (names.length > i) if (has(O, key = names[i++])) {
+	    ~indexOf(result, key) || result.push(key);
+	  }
+	  return result;
+	};
+
+	// IE8- don't enum bug keys
+	var enumBugKeys = [
+	  'constructor',
+	  'hasOwnProperty',
+	  'isPrototypeOf',
+	  'propertyIsEnumerable',
+	  'toLocaleString',
+	  'toString',
+	  'valueOf'
+	];
+
+	var hiddenKeys$1 = enumBugKeys.concat('length', 'prototype');
+
+	// `Object.getOwnPropertyNames` method
+	// https://tc39.github.io/ecma262/#sec-object.getownpropertynames
+	var f$3 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
+	  return objectKeysInternal(O, hiddenKeys$1);
+	};
+
+	var objectGetOwnPropertyNames = {
+		f: f$3
+	};
+
+	var f$4 = Object.getOwnPropertySymbols;
+
+	var objectGetOwnPropertySymbols = {
+		f: f$4
+	};
+
+	// all object keys, includes non-enumerable and symbols
+	var ownKeys = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
+	  var keys = objectGetOwnPropertyNames.f(anObject(it));
+	  var getOwnPropertySymbols = objectGetOwnPropertySymbols.f;
+	  return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;
+	};
+
+	var copyConstructorProperties = function (target, source) {
+	  var keys = ownKeys(source);
+	  var defineProperty = objectDefineProperty.f;
+	  var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;
+	  for (var i = 0; i < keys.length; i++) {
+	    var key = keys[i];
+	    if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));
+	  }
+	};
+
+	var replacement = /#|\.prototype\./;
+
+	var isForced = function (feature, detection) {
+	  var value = data[normalize(feature)];
+	  return value == POLYFILL ? true
+	    : value == NATIVE ? false
+	    : typeof detection == 'function' ? fails(detection)
+	    : !!detection;
+	};
+
+	var normalize = isForced.normalize = function (string) {
+	  return String(string).replace(replacement, '.').toLowerCase();
+	};
+
+	var data = isForced.data = {};
+	var NATIVE = isForced.NATIVE = 'N';
+	var POLYFILL = isForced.POLYFILL = 'P';
+
+	var isForced_1 = isForced;
+
+	var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f;
+
+
+
+
+
+
+	/*
+	  options.target      - name of the target object
+	  options.global      - target is the global object
+	  options.stat        - export as static methods of target
+	  options.proto       - export as prototype methods of target
+	  options.real        - real prototype method for the `pure` version
+	  options.forced      - export even if the native feature is available
+	  options.bind        - bind methods to the target, required for the `pure` version
+	  options.wrap        - wrap constructors to preventing global pollution, required for the `pure` version
+	  options.unsafe      - use the simple assignment of property instead of delete + defineProperty
+	  options.sham        - add a flag to not completely full polyfills
+	  options.enumerable  - export as enumerable property
+	  options.noTargetGet - prevent calling a getter on target
+	*/
+	var _export = function (options, source) {
+	  var TARGET = options.target;
+	  var GLOBAL = options.global;
+	  var STATIC = options.stat;
+	  var FORCED, target, key, targetProperty, sourceProperty, descriptor;
+	  if (GLOBAL) {
+	    target = global_1;
+	  } else if (STATIC) {
+	    target = global_1[TARGET] || setGlobal(TARGET, {});
+	  } else {
+	    target = (global_1[TARGET] || {}).prototype;
+	  }
+	  if (target) for (key in source) {
+	    sourceProperty = source[key];
+	    if (options.noTargetGet) {
+	      descriptor = getOwnPropertyDescriptor$1(target, key);
+	      targetProperty = descriptor && descriptor.value;
+	    } else targetProperty = target[key];
+	    FORCED = isForced_1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
+	    // contained in target
+	    if (!FORCED && targetProperty !== undefined) {
+	      if (typeof sourceProperty === typeof targetProperty) continue;
+	      copyConstructorProperties(sourceProperty, targetProperty);
+	    }
+	    // add a flag to not completely full polyfills
+	    if (options.sham || (targetProperty && targetProperty.sham)) {
+	      hide(sourceProperty, 'sham', true);
+	    }
+	    // extend global
+	    redefine(target, key, sourceProperty, options);
+	  }
+	};
+
+	// `IsArray` abstract operation
+	// https://tc39.github.io/ecma262/#sec-isarray
+	var isArray = Array.isArray || function isArray(arg) {
+	  return classofRaw(arg) == 'Array';
+	};
+
+	// `ToObject` abstract operation
+	// https://tc39.github.io/ecma262/#sec-toobject
+	var toObject = function (argument) {
+	  return Object(requireObjectCoercible(argument));
+	};
+
+	var createProperty = function (object, key, value) {
+	  var propertyKey = toPrimitive(key);
+	  if (propertyKey in object) objectDefineProperty.f(object, propertyKey, createPropertyDescriptor(0, value));
+	  else object[propertyKey] = value;
+	};
+
+	var nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () {
+	  // Chrome 38 Symbol has incorrect toString conversion
+	  // eslint-disable-next-line no-undef
+	  return !String(Symbol());
+	});
+
+	var Symbol$1 = global_1.Symbol;
+	var store$1 = shared('wks');
+
+	var wellKnownSymbol = function (name) {
+	  return store$1[name] || (store$1[name] = nativeSymbol && Symbol$1[name]
+	    || (nativeSymbol ? Symbol$1 : uid)('Symbol.' + name));
+	};
+
+	var SPECIES = wellKnownSymbol('species');
+
+	// `ArraySpeciesCreate` abstract operation
+	// https://tc39.github.io/ecma262/#sec-arrayspeciescreate
+	var arraySpeciesCreate = function (originalArray, length) {
+	  var C;
+	  if (isArray(originalArray)) {
+	    C = originalArray.constructor;
+	    // cross-realm fallback
+	    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
+	    else if (isObject(C)) {
+	      C = C[SPECIES];
+	      if (C === null) C = undefined;
+	    }
+	  } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);
+	};
+
+	var SPECIES$1 = wellKnownSymbol('species');
+
+	var arrayMethodHasSpeciesSupport = function (METHOD_NAME) {
+	  return !fails(function () {
+	    var array = [];
+	    var constructor = array.constructor = {};
+	    constructor[SPECIES$1] = function () {
+	      return { foo: 1 };
+	    };
+	    return array[METHOD_NAME](Boolean).foo !== 1;
+	  });
+	};
+
+	var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');
+	var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
+	var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';
+
+	var IS_CONCAT_SPREADABLE_SUPPORT = !fails(function () {
+	  var array = [];
+	  array[IS_CONCAT_SPREADABLE] = false;
+	  return array.concat()[0] !== array;
+	});
+
+	var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');
+
+	var isConcatSpreadable = function (O) {
+	  if (!isObject(O)) return false;
+	  var spreadable = O[IS_CONCAT_SPREADABLE];
+	  return spreadable !== undefined ? !!spreadable : isArray(O);
+	};
+
+	var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;
+
+	// `Array.prototype.concat` method
+	// https://tc39.github.io/ecma262/#sec-array.prototype.concat
+	// with adding support of @@isConcatSpreadable and @@species
+	_export({ target: 'Array', proto: true, forced: FORCED }, {
+	  concat: function concat(arg) { // eslint-disable-line no-unused-vars
+	    var O = toObject(this);
+	    var A = arraySpeciesCreate(O, 0);
+	    var n = 0;
+	    var i, k, length, len, E;
+	    for (i = -1, length = arguments.length; i < length; i++) {
+	      E = i === -1 ? O : arguments[i];
+	      if (isConcatSpreadable(E)) {
+	        len = toLength(E.length);
+	        if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
+	        for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);
+	      } else {
+	        if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
+	        createProperty(A, n++, E);
+	      }
+	    }
+	    A.length = n;
+	    return A;
+	  }
+	});
+
+	/**
+	* Bootstrap Table Serbian Latin RS translation
+	* Author: Vladimir Kanazir (vladimir@kanazir.com)
+	*/
+
+	$.fn.bootstrapTable.locales['sr-Latn-RS'] = {
+	  formatLoadingMessage: function formatLoadingMessage() {
+	    return 'Molim sačekaj';
+	  },
+	  formatRecordsPerPage: function formatRecordsPerPage(pageNumber) {
+	    return "".concat(pageNumber, " redova po strani");
+	  },
+	  formatShowingRows: function formatShowingRows(pageFrom, pageTo, totalRows, totalNotFiltered) {
+	    if (totalNotFiltered !== undefined && totalNotFiltered > 0 && totalNotFiltered > totalRows) {
+	      return "Prikazano ".concat(pageFrom, ". - ").concat(pageTo, ". od ukupnog broja redova ").concat(totalRows, " (filtrirano od ").concat(totalNotFiltered, ")");
+	    }
+
+	    return "Prikazano ".concat(pageFrom, ". - ").concat(pageTo, ". od ukupnog broja redova ").concat(totalRows);
+	  },
+	  formatSRPaginationPreText: function formatSRPaginationPreText() {
+	    return 'prethodna strana';
+	  },
+	  formatSRPaginationPageText: function formatSRPaginationPageText(page) {
+	    return "na stranu ".concat(page);
+	  },
+	  formatSRPaginationNextText: function formatSRPaginationNextText() {
+	    return 'sledeća strana';
+	  },
+	  formatDetailPagination: function formatDetailPagination(totalRows) {
+	    return "Prikazano ".concat(totalRows, " redova");
+	  },
+	  formatClearSearch: function formatClearSearch() {
+	    return 'Obriši pretragu';
+	  },
+	  formatSearch: function formatSearch() {
+	    return 'Pronađi';
+	  },
+	  formatNoMatches: function formatNoMatches() {
+	    return 'Nije pronađen ni jedan podatak';
+	  },
+	  formatPaginationSwitch: function formatPaginationSwitch() {
+	    return 'Prikaži/sakrij paginaciju';
+	  },
+	  formatPaginationSwitchDown: function formatPaginationSwitchDown() {
+	    return 'Prikaži paginaciju';
+	  },
+	  formatPaginationSwitchUp: function formatPaginationSwitchUp() {
+	    return 'Sakrij paginaciju';
+	  },
+	  formatRefresh: function formatRefresh() {
+	    return 'Osveži';
+	  },
+	  formatToggle: function formatToggle() {
+	    return 'Promeni prikaz';
+	  },
+	  formatToggleOn: function formatToggleOn() {
+	    return 'Prikaži kartice';
+	  },
+	  formatToggleOff: function formatToggleOff() {
+	    return 'Sakrij kartice';
+	  },
+	  formatColumns: function formatColumns() {
+	    return 'Kolone';
+	  },
+	  formatColumnsToggleAll: function formatColumnsToggleAll() {
+	    return 'Prikaži/sakrij sve';
+	  },
+	  formatFullscreen: function formatFullscreen() {
+	    return 'Ceo ekran';
+	  },
+	  formatAllRows: function formatAllRows() {
+	    return 'Sve';
+	  },
+	  formatAutoRefresh: function formatAutoRefresh() {
+	    return 'Automatsko osvežavanje';
+	  },
+	  formatExport: function formatExport() {
+	    return 'Izvezi podatke';
+	  },
+	  formatJumpTo: function formatJumpTo() {
+	    return 'Idi';
+	  },
+	  formatAdvancedSearch: function formatAdvancedSearch() {
+	    return 'Napredna pretraga';
+	  },
+	  formatAdvancedCloseButton: function formatAdvancedCloseButton() {
+	    return 'Zatvori';
+	  }
+	};
+	$.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['sr-Latn-RS']);
+
+}));

File diff suppressed because it is too large
+ 10 - 0
dist/locale/bootstrap-table-sr-Latn-RS.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-sv-SE.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-th-TH.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-tr-TR.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-uk-UA.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-ur-PK.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-uz-Latn-UZ.min.js


File diff suppressed because it is too large
+ 2 - 2
dist/locale/bootstrap-table-vi-VN.min.js


+ 0 - 0
dist/locale/bootstrap-table-zh-CN.min.js


Some files were not shown because too many files changed in this diff