bootstrap-table-multiple-sort.min.js 26 KB

12345678910
  1. /**
  2. * bootstrap-table - An extended table to integration with some of the most widely used CSS frameworks. (Supports Bootstrap, Semantic UI, Bulma, Material Design, Foundation)
  3. *
  4. * @version v1.23.1
  5. * @homepage https://bootstrap-table.com
  6. * @author wenzhixin <wenzhixin2010@gmail.com> (http://wenzhixin.net.cn/)
  7. * @license MIT
  8. */
  9. !function(t,o){"object"==typeof exports&&"undefined"!=typeof module?o(require("core-js/modules/es.array.concat.js"),require("core-js/modules/es.array.find.js"),require("core-js/modules/es.array.includes.js"),require("core-js/modules/es.array.index-of.js"),require("core-js/modules/es.array.map.js"),require("core-js/modules/es.array.slice.js"),require("core-js/modules/es.array.sort.js"),require("core-js/modules/es.array.splice.js"),require("core-js/modules/es.object.assign.js"),require("core-js/modules/es.object.to-string.js"),require("core-js/modules/es.parse-float.js"),require("core-js/modules/es.regexp.to-string.js"),require("jquery")):"function"==typeof define&&define.amd?define(["core-js/modules/es.array.concat.js","core-js/modules/es.array.find.js","core-js/modules/es.array.includes.js","core-js/modules/es.array.index-of.js","core-js/modules/es.array.map.js","core-js/modules/es.array.slice.js","core-js/modules/es.array.sort.js","core-js/modules/es.array.splice.js","core-js/modules/es.object.assign.js","core-js/modules/es.object.to-string.js","core-js/modules/es.parse-float.js","core-js/modules/es.regexp.to-string.js","jquery"],o):o(null,null,null,null,null,null,null,null,null,null,null,null,(t="undefined"!=typeof globalThis?globalThis:t||self).jQuery)}(this,(function(t,o,s,n,e,a,l,i,r,d,b,u,c){"use strict";function p(t){return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},p(t)}var m=!1,h=c.fn.bootstrapTable.utils;Object.assign(c.fn.bootstrapTable.defaults.icons,{plus:{bootstrap3:"glyphicon-plus",bootstrap4:"fa-plus",bootstrap5:"bi-plus",semantic:"fa-plus",materialize:"plus",foundation:"fa-plus",bulma:"fa-plus","bootstrap-table":"icon-plus"}[c.fn.bootstrapTable.theme]||"fa-clock",minus:{bootstrap3:"glyphicon-minus",bootstrap4:"fa-minus",bootstrap5:"bi-dash",semantic:"fa-minus",materialize:"minus",foundation:"fa-minus",bulma:"fa-minus","bootstrap-table":"icon-minus"}[c.fn.bootstrapTable.theme]||"fa-clock",sort:{bootstrap3:"glyphicon-sort",bootstrap4:"fa-sort",bootstrap5:"bi-arrow-down-up",semantic:"fa-sort",materialize:"sort",foundation:"fa-sort",bulma:"fa-sort","bootstrap-table":"icon-sort-amount-asc"}[c.fn.bootstrapTable.theme]||"fa-clock"});var f={bootstrap3:{html:{multipleSortModal:'\n <div class="modal fade" id="%s" tabindex="-1" role="dialog" aria-labelledby="%sLabel" aria-hidden="true">\n <div class="modal-dialog">\n <div class="modal-content">\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>\n <h4 class="modal-title" id="%sLabel">%s</h4>\n </div>\n <div class="modal-body">\n <div class="bootstrap-table">\n <div class="fixed-table-toolbar">\n <div class="bars">\n <button type="button" class="toolbar-btn-add btn btn-default">%s %s</button>\n <button type="button" class="toolbar-btn-delete btn btn-default" disabled>%s %s</button>\n </div>\n </div>\n <div class="fixed-table-container">\n <table class="table">\n <thead>\n <tr>\n <th></th>\n <th><div class="th-inner">%s</div></th>\n <th><div class="th-inner">%s</div></th>\n </tr>\n </thead>\n <tbody></tbody>\n </table>\n </div>\n </div>\n </div>\n <div class="modal-footer">\n <button type="button" class="btn btn-default" data-dismiss="modal">%s</button>\n <button type="button" class="btn btn-primary multi-sort-order-button">%s</button>\n </div>\n </div>\n </div>\n </div>\n ',multipleSortButton:'<button class="multi-sort %s" type="button" data-toggle="modal" data-target="#%s" title="%s">%s</button>',multipleSortSelect:'<select class="%s %s form-control">'}},bootstrap4:{html:{multipleSortModal:'\n <div class="modal fade" id="%s" tabindex="-1" role="dialog" aria-labelledby="%sLabel" aria-hidden="true">\n <div class="modal-dialog" role="document">\n <div class="modal-content">\n <div class="modal-header">\n <h5 class="modal-title" id="%sLabel">%s</h5>\n <button type="button" class="close" data-dismiss="modal" aria-label="Close">\n <span aria-hidden="true">&times;</span>\n </button>\n </div>\n <div class="modal-body">\n <div class="bootstrap-table">\n <div class="fixed-table-toolbar">\n <div class="bars pb-3">\n <button type="button" class="toolbar-btn-add btn btn-secondary">%s %s</button>\n <button type="button" class="toolbar-btn-delete btn btn-secondary" disabled>%s %s</button>\n </div>\n </div>\n <div class="fixed-table-container">\n <table class="table">\n <thead>\n <tr>\n <th></th>\n <th><div class="th-inner">%s</div></th>\n <th><div class="th-inner">%s</div></th>\n </tr>\n </thead>\n <tbody></tbody>\n </table>\n </div>\n </div>\n </div>\n <div class="modal-footer">\n <button type="button" class="btn btn-secondary" data-dismiss="modal">%s</button>\n <button type="button" class="btn btn-primary multi-sort-order-button">%s</button>\n </div>\n </div>\n </div>\n </div>\n ',multipleSortButton:'<button class="multi-sort %s" type="button" data-toggle="modal" data-target="#%s" title="%s">%s</button>',multipleSortSelect:'<select class="%s %s form-control">'}},bootstrap5:{html:{multipleSortModal:'\n <div class="modal fade" id="%s" tabindex="-1" role="dialog" aria-labelledby="%sLabel" aria-hidden="true">\n <div class="modal-dialog" role="document">\n <div class="modal-content">\n <div class="modal-header">\n <h5 class="modal-title" id="%sLabel">%s</h5>\n <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>\n </div>\n <div class="modal-body">\n <div class="bootstrap-table">\n <div class="fixed-table-toolbar">\n <div class="bars pb-3">\n <button type="button" class="toolbar-btn-add btn btn-secondary">%s %s</button>\n <button type="button" class="toolbar-btn-delete btn btn-secondary" disabled>%s %s</button>\n </div>\n </div>\n <div class="fixed-table-container">\n <table class="table">\n <thead>\n <tr>\n <th></th>\n <th><div class="th-inner">%s</div></th>\n <th><div class="th-inner">%s</div></th>\n </tr>\n </thead>\n <tbody></tbody>\n </table>\n </div>\n </div>\n </div>\n <div class="modal-footer">\n <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">%s</button>\n <button type="button" class="btn btn-primary multi-sort-order-button">%s</button>\n </div>\n </div>\n </div>\n </div>\n ',multipleSortButton:'<button class="multi-sort %s" type="button" data-bs-toggle="modal" data-bs-target="#%s" title="%s">%s</button>',multipleSortSelect:'<select class="%s %s form-control">'}},semantic:{html:{multipleSortModal:'\n <div class="ui modal tiny" id="%s" aria-labelledby="%sLabel" aria-hidden="true">\n <i class="close icon"></i>\n <div class="header" id="%sLabel">\n %s\n </div>\n <div class="image content">\n <div class="bootstrap-table">\n <div class="fixed-table-toolbar">\n <div class="bars pb-3">\n <button type="button" class="toolbar-btn-add ui button">%s %s</button>\n <button type="button" class="toolbar-btn-delete ui button" disabled>%s %s</button>\n </div>\n </div>\n <div class="fixed-table-container">\n <table class="table">\n <thead>\n <tr>\n <th></th>\n <th><div class="th-inner">%s</div></th>\n <th><div class="th-inner">%s</div></th>\n </tr>\n </thead>\n <tbody></tbody>\n </table>\n </div>\n </div>\n </div>\n <div class="actions">\n <div class="ui button deny">%s</div>\n <div class="ui button approve multi-sort-order-button">%s</div>\n </div>\n </div>\n ',multipleSortButton:'<button class="multi-sort %s" type="button" data-toggle="modal" data-target="#%s" title="%s">%s</button>',multipleSortSelect:'<select class="%s %s">'}},materialize:{html:{multipleSortModal:'\n <div id="%s" class="modal" aria-labelledby="%sLabel" aria-hidden="true">\n <div class="modal-content" id="%sLabel">\n <h4>%s</h4>\n <div class="bootstrap-table">\n <div class="fixed-table-toolbar">\n <div class="bars pb-3">\n <button type="button" class="toolbar-btn-add waves-effect waves-light btn">%s %s</button>\n <button type="button" class="toolbar-btn-delete waves-effect waves-light btn" disabled>%s %s</button>\n </div>\n </div>\n <div class="fixed-table-container">\n <table class="table">\n <thead>\n <tr>\n <th></th>\n <th><div class="th-inner">%s</div></th>\n <th><div class="th-inner">%s</div></th>\n </tr>\n </thead>\n <tbody></tbody>\n </table>\n </div>\n </div>\n <div class="modal-footer">\n <a href="javascript:void(0)" class="modal-close waves-effect waves-light btn">%s</a>\n <a href="javascript:void(0)" class="modal-close waves-effect waves-light btn multi-sort-order-button">%s</a>\n </div>\n </div>\n </div>\n ',multipleSortButton:'<a class="multi-sort %s modal-trigger" href="#%s" type="button" data-toggle="modal" title="%s">%s</a>',multipleSortSelect:'<select class="%s %s browser-default">'}},foundation:{html:{multipleSortModal:'\n <div class="reveal" id="%s" data-reveal aria-labelledby="%sLabel" aria-hidden="true">\n <div id="%sLabel">\n <h1>%s</h1>\n <div class="bootstrap-table">\n <div class="fixed-table-toolbar">\n <div class="bars padding-bottom-2">\n <button type="button" class="toolbar-btn-add waves-effect waves-light button">%s %s</button>\n <button type="button" class="toolbar-btn-delete waves-effect waves-light button" disabled>%s %s</button>\n </div>\n </div>\n <div class="fixed-table-container">\n <table class="table">\n <thead>\n <tr>\n <th></th>\n <th><div class="th-inner">%s</div></th>\n <th><div class="th-inner">%s</div></th>\n </tr>\n </thead>\n <tbody></tbody>\n </table>\n </div>\n </div>\n\n <button class="waves-effect waves-light button" data-close aria-label="Close modal" type="button">\n <span aria-hidden="true">%s</span>\n </button>\n <button class="waves-effect waves-light button multi-sort-order-button" data-close aria-label="Order" type="button">\n <span aria-hidden="true">%s</span>\n </button>\n </div>\n </div>\n ',multipleSortButton:'<button class="multi-sort %s" data-open="%s" title="%s">%s</button>',multipleSortSelect:'<select class="%s %s browser-default">'}},bulma:{html:{multipleSortModal:'\n <div class="modal" id="%s" aria-labelledby="%sLabel" aria-hidden="true">\n <div class="modal-background"></div>\n <div class="modal-content" id="%sLabel">\n <div class="box">\n <h2>%s</h2>\n <div class="bootstrap-table">\n <div class="fixed-table-toolbar">\n <div class="bars padding-bottom-2">\n <button type="button" class="toolbar-btn-add waves-effect waves-light button">%s %s</button>\n <button type="button" class="toolbar-btn-delete waves-effect waves-light button" disabled>%s %s</button>\n </div>\n </div>\n <div class="fixed-table-container">\n <table class="table">\n <thead>\n <tr>\n <th></th>\n <th><div class="th-inner">%s</div></th>\n <th><div class="th-inner">%s</div></th>\n </tr>\n </thead>\n <tbody></tbody>\n </table>\n </div>\n </div>\n <button type="button" class="waves-effect waves-light button" data-close>%s</button>\n <button type="button" class="waves-effect waves-light button multi-sort-order-button" data-close>%s</button>\n </div>\n </div>\n </div>\n ',multipleSortButton:'<button class="multi-sort %s" data-target="%s" title="%s">%s</button>',multipleSortSelect:'<select class="%s %s browser-default">'}},"bootstrap-table":{html:{multipleSortModal:'\n <div class="modal" id="%s" aria-labelledby="%sLabel" aria-hidden="true">\n <div class="modal-background"></div>\n <div class="modal-content" id="%sLabel">\n <div class="box">\n <h2>%s</h2>\n <div class="bootstrap-table">\n <div class="fixed-table-toolbar">\n <div class="bars padding-bottom-2">\n <button type="button" class="toolbar-btn-add btn">%s %s</button>\n <button type="button" class="toolbar-btn-delete btn" disabled>%s %s</button>\n </div>\n </div>\n <div class="fixed-table-container">\n <table class="table">\n <thead>\n <tr>\n <th></th>\n <th><div class="th-inner">%s</div></th>\n <th><div class="th-inner">%s</div></th>\n </tr>\n </thead>\n <tbody></tbody>\n </table>\n </div>\n </div>\n <div class="mt-30">\n <button type="button" class="btn" data-close>%s</button>\n <button type="button" class="btn multi-sort-order-button" data-close>%s</button>\n </div>\n </div>\n </div>\n </div>\n ',multipleSortButton:'<button class="multi-sort %s" data-target="%s" title="%s">%s</button>',multipleSortSelect:'<select class="%s %s browser-default">'}}}[c.fn.bootstrapTable.theme],v=function(t){var o=t.sortModalSelector,s="#".concat(o),n=t.options;if(!c(s).hasClass("modal")){var e=h.sprintf(f.html.multipleSortModal,o,o,o,t.options.formatMultipleSort(),h.sprintf(t.constants.html.icon,n.iconsPrefix,n.icons.plus),t.options.formatAddLevel(),h.sprintf(t.constants.html.icon,n.iconsPrefix,n.icons.minus),t.options.formatDeleteLevel(),t.options.formatColumn(),t.options.formatOrder(),t.options.formatCancel(),t.options.formatSort());c("body").append(c(e)),t.$sortModal=c(s);var a=t.$sortModal.find("tbody > tr");if(t.$sortModal.off("click",".toolbar-btn-add").on("click",".toolbar-btn-add",(function(){var o=t.$sortModal.find(".multi-sort-name:first option").length,s=t.$sortModal.find("tbody tr").length;s<o&&(s++,t.addLevel(),t.setButtonStates())})),t.$sortModal.off("click",".toolbar-btn-delete").on("click",".toolbar-btn-delete",(function(){var o=t.$sortModal.find(".multi-sort-name:first option").length,s=t.$sortModal.find("tbody tr").length;s>1&&s<=o&&(s--,t.$sortModal.find("tbody tr:last").remove(),t.setButtonStates())})),t.$sortModal.off("click",".multi-sort-order-button").on("click",".multi-sort-order-button",(function(){for(var o=t.$sortModal.find("tbody > tr"),s=t.$sortModal.find("div.alert"),n=[],e=[],a=c.map(o,(function(t){var o=c(t),s=o.find(".multi-sort-name").val(),e=o.find(".multi-sort-order").val();return n.push(s),{sortName:s,sortOrder:e}})),l=n.sort(),i=0;i<n.length-1;i++)l[i+1]===l[i]&&e.push(l[i]);e.length>0?0===s.length&&(s='<div class="alert alert-danger" role="alert"><strong>'.concat(t.options.formatDuplicateAlertTitle(),"</strong> ").concat(t.options.formatDuplicateAlertDescription(),"</div>"),c(s).insertBefore(t.$sortModal.find(".bars"))):(1===s.length&&c(s).remove(),["bootstrap3","bootstrap4","bootstrap5"].includes(c.fn.bootstrapTable.theme)&&t.$sortModal.modal("hide"),t.multiSort(a))})),null!==t.options.sortPriority&&0!==t.options.sortPriority.length||t.options.sortName&&(t.options.sortPriority=[{sortName:t.options.sortName,sortOrder:t.options.sortOrder}]),null!==t.options.sortPriority&&t.options.sortPriority.length>0){if(a.length<t.options.sortPriority.length&&"object"===p(t.options.sortPriority))for(var l=0;l<t.options.sortPriority.length;l++)t.addLevel(l,t.options.sortPriority[l])}else t.addLevel(0);t.setButtonStates()}};c.fn.bootstrapTable.methods.push("multipleSort"),c.fn.bootstrapTable.methods.push("multiSort"),Object.assign(c.fn.bootstrapTable.defaults,{showMultiSort:!1,showMultiSortButton:!0,multiSortStrictSort:!1,sortPriority:null,onMultipleSort:function(){return!1}}),Object.assign(c.fn.bootstrapTable.events,{"multiple-sort.bs.table":"onMultipleSort"}),Object.assign(c.fn.bootstrapTable.locales,{formatMultipleSort:function(){return"Multiple Sort"},formatAddLevel:function(){return"Add Level"},formatDeleteLevel:function(){return"Delete Level"},formatColumn:function(){return"Column"},formatOrder:function(){return"Order"},formatSortBy:function(){return"Sort by"},formatThenBy:function(){return"Then by"},formatSort:function(){return"Sort"},formatCancel:function(){return"Cancel"},formatDuplicateAlertTitle:function(){return"Duplicate(s) detected!"},formatDuplicateAlertDescription:function(){return"Please remove or change any duplicate column."},formatSortOrders:function(){return{asc:"Ascending",desc:"Descending"}}}),Object.assign(c.fn.bootstrapTable.defaults,c.fn.bootstrapTable.locales);var y=c.fn.bootstrapTable.Constructor,g=y.prototype.initToolbar,S=y.prototype.destroy;y.prototype.initToolbar=function(){var t=this;this.showToolbar=this.showToolbar||this.options.showMultiSort;var o=this,s=h.getEventName("sort-modal",this.$el.attr("id")),n="#".concat(s),e=this.$toolbar.find("div.multi-sort"),a=this.options;this.$sortModal=c(n),this.sortModalSelector=s,null!==o.options.sortPriority&&o.onMultipleSort(),this.options.showMultiSort&&this.options.showMultiSortButton&&(this.buttons=Object.assign(this.buttons,{multipleSort:{html:h.sprintf(f.html.multipleSortButton,o.constants.buttonsClass,o.sortModalSelector,this.options.formatMultipleSort(),h.sprintf(o.constants.html.icon,a.iconsPrefix,a.icons.sort))}}));for(var l=arguments.length,i=new Array(l),r=0;r<l;r++)i[r]=arguments[r];if(g.apply(this,Array.prototype.slice.apply(i)),"server"===o.options.sidePagination&&!m&&null!==o.options.sortPriority){var d=o.options.queryParams;o.options.queryParams=function(t){return t.multiSort=o.options.sortPriority,d(t)}}this.options.showMultiSort&&(!e.length&&this.options.showMultiSortButton&&("semantic"===c.fn.bootstrapTable.theme?this.$toolbar.find(".multi-sort").on("click",(function(){c(n).modal("show")})):"materialize"===c.fn.bootstrapTable.theme?this.$toolbar.find(".multi-sort").on("click",(function(){c(n).modal()})):"bootstrap-table"===c.fn.bootstrapTable.theme?this.$toolbar.find(".multi-sort").on("click",(function(){c(n).addClass("show")})):"foundation"===c.fn.bootstrapTable.theme?this.$toolbar.find(".multi-sort").on("click",(function(){t.foundationModal||(t.foundationModal=new Foundation.Reveal(c(n))),t.foundationModal.open()})):"bulma"===c.fn.bootstrapTable.theme&&this.$toolbar.find(".multi-sort").on("click",(function(){c("html").toggleClass("is-clipped"),c(n).toggleClass("is-active"),c("button[data-close]").one("click",(function(){c("html").toggleClass("is-clipped"),c(n).toggleClass("is-active")}))})),v(o)),this.$el.on("sort.bs.table",(function(){m=!0})),this.$el.on("multiple-sort.bs.table",(function(){m=!1})),this.$el.on("load-success.bs.table",(function(){m||null===o.options.sortPriority||"object"!==p(o.options.sortPriority)||"server"===o.options.sidePagination||o.onMultipleSort()})),this.$el.on("column-switch.bs.table",(function(t,s){if(null!==o.options.sortPriority&&o.options.sortPriority.length>0){for(var n=0;n<o.options.sortPriority.length;n++)o.options.sortPriority[n].sortName===s&&o.options.sortPriority.splice(n,1);o.assignSortableArrows()}o.$sortModal.remove(),v(o)})),this.$el.on("reset-view.bs.table",(function(){m||null===o.options.sortPriority||"object"!==p(o.options.sortPriority)||o.assignSortableArrows()})))},y.prototype.destroy=function(){for(var t=arguments.length,o=new Array(t),s=0;s<t;s++)o[s]=arguments[s];S.apply(this,Array.prototype.slice.apply(o)),this.options.showMultiSort&&(this.enableCustomSort=!1,this.$sortModal.remove())},y.prototype.multipleSort=function(){var t=this;m||null===t.options.sortPriority||"object"!==p(t.options.sortPriority)||"server"===t.options.sidePagination||t.onMultipleSort()},y.prototype.onMultipleSort=function(){var t=this,o=function(t,o){return t>o?1:t<o?-1:0};this.enableCustomSort=!0,this.data.sort((function(s,n){return function(s,n){for(var e=[],a=[],l=0;l<t.options.sortPriority.length;l++){var i=t.options.sortPriority[l].sortName,r=t.header.fields.indexOf(i),d=t.header.sorters[t.header.fields.indexOf(i)];t.header.sortNames[r]&&(i=t.header.sortNames[r]);var b="desc"===t.options.sortPriority[l].sortOrder?-1:1,u=h.getItemField(s,i),p=h.getItemField(n,i),m=c.fn.bootstrapTable.utils.calculateObjectValue(t.header,d,[u,p,s,n]),f=c.fn.bootstrapTable.utils.calculateObjectValue(t.header,d,[p,u,n,s]);void 0===m||void 0===f?(null==u&&(u=""),null==p&&(p=""),c.isNumeric(u)&&c.isNumeric(p)?(u=parseFloat(u),p=parseFloat(p)):(u=u.toString(),p=p.toString(),t.options.multiSortStrictSort&&(u=u.toLowerCase(),p=p.toLowerCase())),e.push(b*o(u,p)),a.push(b*o(p,u))):(e.push(b*m),a.push(b*f))}return o(e,a)}(s,n)})),this.initBody(),this.assignSortableArrows(),this.trigger("multiple-sort")},y.prototype.addLevel=function(t,o){var s=0===t?this.options.formatSortBy():this.options.formatThenBy();this.$sortModal.find("tbody").append(c("<tr>").append(c("<td>").text(s)).append(c("<td>").append(c(h.sprintf(f.html.multipleSortSelect,this.constants.classes.paginationDropdown,"multi-sort-name")))).append(c("<td>").append(c(h.sprintf(f.html.multipleSortSelect,this.constants.classes.paginationDropdown,"multi-sort-order")))));var n=this.$sortModal.find(".multi-sort-name").last(),e=this.$sortModal.find(".multi-sort-order").last();c.each(this.columns,(function(t,o){if(!1===o.sortable||!1===o.visible)return!0;n.append('<option value="'.concat(o.field,'">').concat(o.title,"</option>"))})),c.each(this.options.formatSortOrders(),(function(t,o){e.append('<option value="'.concat(t,'">').concat(o,"</option>"))})),void 0!==o&&(n.find('option[value="'.concat(o.sortName,'"]')).attr("selected",!0),e.find('option[value="'.concat(o.sortOrder,'"]')).attr("selected",!0))},y.prototype.assignSortableArrows=function(){for(var t=this,o=t.$header.find("th"),s=0;s<o.length;s++)for(var n=0;n<t.options.sortPriority.length;n++)c(o[s]).data("field")===t.options.sortPriority[n].sortName&&c(o[s]).find(".sortable").removeClass("desc asc").addClass(t.options.sortPriority[n].sortOrder)},y.prototype.setButtonStates=function(){var t=this.$sortModal.find(".multi-sort-name:first option").length,o=this.$sortModal.find("tbody tr").length;o===t&&this.$sortModal.find(".toolbar-btn-add").attr("disabled","disabled"),o>1&&this.$sortModal.find(".toolbar-btn-delete").removeAttr("disabled"),o<t&&this.$sortModal.find(".toolbar-btn-add").removeAttr("disabled"),1===o&&this.$sortModal.find(".toolbar-btn-delete").attr("disabled","disabled")},y.prototype.multiSort=function(t){var o=this;if(this.options.sortPriority=t,this.options.sortName=void 0,"server"===this.options.sidePagination){var s=this.options.queryParams;this.options.queryParams=function(t){return t.multiSort=o.options.sortPriority,c.fn.bootstrapTable.utils.calculateObjectValue(o.options,s,[t])},m=!1,this.initServer(this.options.silentSort)}this.onMultipleSort()}}));