/** * 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.23.1 * @homepage https://bootstrap-table.com * @author wenzhixin (http://wenzhixin.net.cn/) * @license MIT */ ! function(t, e) { "object" == typeof exports && "undefined" != typeof module ? module.exports = e(require("core-js/modules/es.array.concat.js"), require("core-js/modules/es.array.filter.js"), require("core-js/modules/es.array.find.js"), require("core-js/modules/es.array.find-index.js"), require("core-js/modules/es.array.includes.js"), require("core-js/modules/es.array.index-of.js"), require("core-js/modules/es.array.iterator.js"), require("core-js/modules/es.array.join.js"), require("core-js/modules/es.array.map.js"), require("core-js/modules/es.array.reverse.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.date.to-json.js"), require("core-js/modules/es.number.constructor.js"), require("core-js/modules/es.object.assign.js"), require("core-js/modules/es.object.entries.js"), require("core-js/modules/es.object.keys.js"), require("core-js/modules/es.object.to-string.js"), require("core-js/modules/es.parse-float.js"), require("core-js/modules/es.parse-int.js"), require("core-js/modules/es.regexp.constructor.js"), require("core-js/modules/es.regexp.exec.js"), require("core-js/modules/es.regexp.to-string.js"), require("core-js/modules/es.string.includes.js"), require("core-js/modules/es.string.replace.js"), require("core-js/modules/es.string.search.js"), require("core-js/modules/es.string.split.js"), require("core-js/modules/es.string.trim.js"), require("core-js/modules/web.dom-collections.for-each.js"), require("core-js/modules/web.dom-collections.iterator.js"), require("jquery"), require("core-js/modules/es.object.get-prototype-of.js"), require("core-js/modules/es.string.ends-with.js"), require("core-js/modules/es.string.match.js"), require("core-js/modules/es.string.starts-with.js")) : "function" == typeof define && define.amd ? define(["core-js/modules/es.array.concat.js", "core-js/modules/es.array.filter.js", "core-js/modules/es.array.find.js", "core-js/modules/es.array.find-index.js", "core-js/modules/es.array.includes.js", "core-js/modules/es.array.index-of.js", "core-js/modules/es.array.iterator.js", "core-js/modules/es.array.join.js", "core-js/modules/es.array.map.js", "core-js/modules/es.array.reverse.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.date.to-json.js", "core-js/modules/es.number.constructor.js", "core-js/modules/es.object.assign.js", "core-js/modules/es.object.entries.js", "core-js/modules/es.object.keys.js", "core-js/modules/es.object.to-string.js", "core-js/modules/es.parse-float.js", "core-js/modules/es.parse-int.js", "core-js/modules/es.regexp.constructor.js", "core-js/modules/es.regexp.exec.js", "core-js/modules/es.regexp.to-string.js", "core-js/modules/es.string.includes.js", "core-js/modules/es.string.replace.js", "core-js/modules/es.string.search.js", "core-js/modules/es.string.split.js", "core-js/modules/es.string.trim.js", "core-js/modules/web.dom-collections.for-each.js", "core-js/modules/web.dom-collections.iterator.js", "jquery", "core-js/modules/es.object.get-prototype-of.js", "core-js/modules/es.string.ends-with.js", "core-js/modules/es.string.match.js", "core-js/modules/es.string.starts-with.js"], e) : (t = "undefined" != typeof globalThis ? globalThis : t || self).BootstrapTable = e(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, t.jQuery) }(this, (function(t, e, i, o, s, n, a, r, l, c, h, d, u, p, f, g, v, m, b, y, w, S, x, k, j, C, O, P, T, $, A, I) { "use strict"; function R(t, e) { (null == e || e > t.length) && (e = t.length); for (var i = 0, o = Array(e); i < e; i++) o[i] = t[i]; return o } function _(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") } function D(t, e, i) { return e && function(t, e) { for (var i = 0; i < e.length; i++) { var o = e[i]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(t, N(o.key), o) } }(t.prototype, e), Object.defineProperty(t, "prototype", { writable: !1 }), t } function V(t, e) { var i = "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"]; if (!i) { if (Array.isArray(t) || (i = H(t)) || e) { i && (t = i); var o = 0, s = function() {}; return { s: s, n: function() { return o >= t.length ? { done: !0 } : { done: !1, value: t[o++] } }, e: function(t) { throw t }, f: s } } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") } var n, a = !0, r = !1; return { s: function() { i = i.call(t) }, n: function() { var t = i.next(); return a = t.done, t }, e: function(t) { r = !0, n = t }, f: function() { try { a || null == i.return || i.return() } finally { if (r) throw n } } } } function B(t, e) { return function(t) { if (Array.isArray(t)) return t }(t) || function(t, e) { var i = null == t ? null : "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"]; if (null != i) { var o, s, n, a, r = [], l = !0, c = !1; try { if (n = (i = i.call(t)).next, 0 === e); else for (; !(l = (o = n.call(i)).done) && (r.push(o.value), r.length !== e); l = !0); } catch (t) { c = !0, s = t } finally { try { if (!l && null != i.return && (a = i.return(), Object(a) !== a)) return } finally { if (c) throw s } } return r } }(t, e) || H(t, e) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() } function F(t) { return function(t) { if (Array.isArray(t)) return R(t) }(t) || function(t) { if ("undefined" != typeof Symbol && null != t[Symbol.iterator] || null != t["@@iterator"]) return Array.from(t) }(t) || H(t) || function() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() } function N(t) { var e = function(t, e) { if ("object" != typeof t || !t) return t; var i = t[Symbol.toPrimitive]; if (void 0 !== i) { var o = i.call(t, e); if ("object" != typeof o) return o; throw new TypeError("@@toPrimitive must return a primitive value.") } return String(t) }(t, "string"); return "symbol" == typeof e ? e : e + "" } function E(t) { return E = "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 }, E(t) } function H(t, e) { if (t) { if ("string" == typeof t) return R(t, e); var i = {}.toString.call(t).slice(8, -1); return "Object" === i && t.constructor && (i = t.constructor.name), "Map" === i || "Set" === i ? Array.from(t) : "Arguments" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i) ? R(t, e) : void 0 } } var L = { getBootstrapVersion: function() { var t = 5; try { var e = I.fn.dropdown.Constructor.VERSION; void 0 !== e && (t = parseInt(e, 10)) } catch (t) {} try { var i = bootstrap.Tooltip.VERSION; void 0 !== i && (t = parseInt(i, 10)) } catch (t) {} return t }, getIconsPrefix: function(t) { return { bootstrap3: "glyphicon", bootstrap4: "fa", bootstrap5: "bi", "bootstrap-table": "icon", bulma: "fa", foundation: "fa", materialize: "material-icons", semantic: "fa" }[t] || "fa" }, getIcons: function(t) { return { glyphicon: { paginationSwitchDown: "glyphicon-collapse-down icon-chevron-down", paginationSwitchUp: "glyphicon-collapse-up icon-chevron-up", refresh: "glyphicon-refresh icon-refresh", toggleOff: "glyphicon-list-alt icon-list-alt", toggleOn: "glyphicon-list-alt icon-list-alt", columns: "glyphicon-th icon-th", detailOpen: "glyphicon-plus icon-plus", detailClose: "glyphicon-minus icon-minus", fullscreen: "glyphicon-fullscreen", search: "glyphicon-search", clearSearch: "glyphicon-trash" }, fa: { paginationSwitchDown: "fa-caret-square-down", paginationSwitchUp: "fa-caret-square-up", refresh: "fa-sync", toggleOff: "fa-toggle-off", toggleOn: "fa-toggle-on", columns: "fa-th-list", detailOpen: "fa-plus", detailClose: "fa-minus", fullscreen: "fa-arrows-alt", search: "fa-search", clearSearch: "fa-trash" }, bi: { paginationSwitchDown: "bi-caret-down-square", paginationSwitchUp: "bi-caret-up-square", refresh: "bi-arrow-clockwise", toggleOff: "bi-toggle-off", toggleOn: "bi-toggle-on", columns: "bi-list-ul", detailOpen: "bi-plus", detailClose: "bi-dash", fullscreen: "bi-arrows-move", search: "bi-search", clearSearch: "bi-trash" }, icon: { paginationSwitchDown: "icon-arrow-up-circle", paginationSwitchUp: "icon-arrow-down-circle", refresh: "icon-refresh-cw", toggleOff: "icon-toggle-right", toggleOn: "icon-toggle-right", columns: "icon-list", detailOpen: "icon-plus", detailClose: "icon-minus", fullscreen: "icon-maximize", search: "icon-search", clearSearch: "icon-trash-2" }, "material-icons": { paginationSwitchDown: "grid_on", paginationSwitchUp: "grid_off", refresh: "refresh", toggleOff: "tablet", toggleOn: "tablet_android", columns: "view_list", detailOpen: "add", detailClose: "remove", fullscreen: "fullscreen", sort: "sort", search: "search", clearSearch: "delete" } }[t] || {} }, getSearchInput: function(t) { return "string" == typeof t.options.searchSelector ? I(t.options.searchSelector) : t.$toolbar.find(".search input") }, extend: function() { for (var t = this, e = arguments.length, i = new Array(e), o = 0; o < e; o++) i[o] = arguments[o]; var s, n = i[0] || {}, a = 1, r = !1; for ("boolean" == typeof n && (r = n, n = i[a] || {}, a++), "object" !== E(n) && "function" != typeof n && (n = {}); a < i.length; a++) { var l = i[a]; if (null != l) for (var c in l) { var h = l[c]; if ("__proto__" !== c && n !== h) { var d = Array.isArray(h); if (r && h && (this.isObject(h) || d)) { var u = n[c]; if (d && Array.isArray(u) && u.every((function(e) { return !t.isObject(e) && !Array.isArray(e) }))) { n[c] = h; continue } s = d && !Array.isArray(u) ? [] : d || this.isObject(u) ? u : {}, n[c] = this.extend(r, s, h) } else void 0 !== h && (n[c] = h) } } } return n }, sprintf: function(t) { for (var e = arguments.length, i = new Array(e > 1 ? e - 1 : 0), o = 1; o < e; o++) i[o - 1] = arguments[o]; var s = !0, n = 0, a = t.replace(/%s/g, (function() { var t = i[n++]; return void 0 === t ? (s = !1, "") : t })); return s ? a : "" }, isObject: function(t) { if ("object" !== E(t) || null === t) return !1; for (var e = t; null !== Object.getPrototypeOf(e);) e = Object.getPrototypeOf(e); return Object.getPrototypeOf(t) === e }, isEmptyObject: function() { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; return 0 === Object.entries(t).length && t.constructor === Object }, isNumeric: function(t) { return !isNaN(parseFloat(t)) && isFinite(t) }, getFieldTitle: function(t, e) { var i, o = V(t); try { for (o.s(); !(i = o.n()).done;) { var s = i.value; if (s.field === e) return s.title } } catch (t) { o.e(t) } finally { o.f() } return "" }, setFieldIndex: function(t) { var e, i = 0, o = [], s = V(t[0]); try { for (s.s(); !(e = s.n()).done;) { i += e.value.colspan || 1 } } catch (t) { s.e(t) } finally { s.f() } for (var n = 0; n < t.length; n++) { o[n] = []; for (var a = 0; a < i; a++) o[n][a] = !1 } for (var r = 0; r < t.length; r++) { var l, c = V(t[r]); try { for (c.s(); !(l = c.n()).done;) { var h = l.value, d = h.rowspan || 1, u = h.colspan || 1, p = o[r].indexOf(!1); h.colspanIndex = p, 1 === u ? (h.fieldIndex = p, void 0 === h.field && (h.field = p)) : h.colspanGroup = h.colspan; for (var f = 0; f < d; f++) for (var g = 0; g < u; g++) o[r + f][p + g] = !0 } } catch (t) { c.e(t) } finally { c.f() } } }, normalizeAccent: function(t) { return "string" != typeof t ? t : t.normalize("NFD").replace(/[\u0300-\u036f]/g, "") }, updateFieldGroup: function(t, e) { var i, o, s = (i = []).concat.apply(i, F(t)), n = V(t); try { for (n.s(); !(o = n.n()).done;) { var a, r = V(o.value); try { for (r.s(); !(a = r.n()).done;) { var l = a.value; if (l.colspanGroup > 1) { for (var c = 0, h = function(t) { var e = s.filter((function(e) { return e.fieldIndex === t })), i = e[e.length - 1]; if (e.length > 1) for (var o = 0; o < e.length - 1; o++) e[o].visible = i.visible; i.visible && c++ }, d = l.colspanIndex; d < l.colspanIndex + l.colspanGroup; d++) h(d); l.colspan = c, l.visible = c > 0 } } } catch (t) { r.e(t) } finally { r.f() } } } catch (t) { n.e(t) } finally { n.f() } if (!(t.length < 2)) { var u, p = V(e); try { var f = function() { var t = u.value, e = s.filter((function(e) { return e.fieldIndex === t.fieldIndex })); if (e.length > 1) { var i, o = V(e); try { for (o.s(); !(i = o.n()).done;) { i.value.visible = t.visible } } catch (t) { o.e(t) } finally { o.f() } } }; for (p.s(); !(u = p.n()).done;) f() } catch (t) { p.e(t) } finally { p.f() } } }, getScrollBarWidth: function() { if (void 0 === this.cachedWidth) { var t = I("
").addClass("fixed-table-scroll-inner"), e = I("
").addClass("fixed-table-scroll-outer"); e.append(t), I("body").append(e); var i = t[0].offsetWidth; e.css("overflow", "scroll"); var o = t[0].offsetWidth; i === o && (o = e[0].clientWidth), e.remove(), this.cachedWidth = i - o } return this.cachedWidth }, calculateObjectValue: function(t, e, i, o) { var s = e; if ("string" == typeof e) { var n = e.split("."); if (n.length > 1) { s = window; var a, r = V(n); try { for (r.s(); !(a = r.n()).done;) { s = s[a.value] } } catch (t) { r.e(t) } finally { r.f() } } else s = window[e] } return null !== s && "object" === E(s) ? s : "function" == typeof s ? s.apply(t, i || []) : !s && "string" == typeof e && i && this.sprintf.apply(this, [e].concat(F(i))) ? this.sprintf.apply(this, [e].concat(F(i))) : o }, compareObjects: function(t, e, i) { var o = Object.keys(t), s = Object.keys(e); if (i && o.length !== s.length) return !1; for (var n = 0, a = o; n < a.length; n++) { var r = a[n]; if (s.includes(r) && t[r] !== e[r]) return !1 } return !0 }, regexCompare: function(t, e) { try { var i = e.match(/^\/(.*?)\/([gim]*)$/); if (-1 !== t.toString().search(i ? new RegExp(i[1], i[2]) : new RegExp(e, "gim"))) return !0 } catch (t) { return !1 } return !1 }, escapeApostrophe: function(t) { return t.toString().replace(/'/g, "'") }, escapeHTML: function(t) { return t ? t.toString().replace(/&/g, "&").replace(//g, ">").replace(/"/g, """).replace(/'/g, "'") : t }, unescapeHTML: function(t) { return "string" == typeof t && t ? t.toString().replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, '"').replace(/'/g, "'") : t }, removeHTML: function(t) { return t ? t.toString().replace(/(<([^>]+)>)/gi, "").replace(/&[#A-Za-z0-9]+;/gi, "").trim() : t }, getRealDataAttr: function(t) { for (var e = 0, i = Object.entries(t); e < i.length; e++) { var o = B(i[e], 2), s = o[0], n = o[1], a = s.split(/(?=[A-Z])/).join("-").toLowerCase(); a !== s && (t[a] = n, delete t[s]) } return t }, getItemField: function(t, e, i) { var o = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : void 0, s = t; if (void 0 !== o && (i = o), "string" != typeof e || t.hasOwnProperty(e)) return i ? this.escapeHTML(t[e]) : t[e]; var n, a = V(e.split(".")); try { for (a.s(); !(n = a.n()).done;) { var r = n.value; s = s && s[r] } } catch (t) { a.e(t) } finally { a.f() } return i ? this.escapeHTML(s) : s }, isIEBrowser: function() { return navigator.userAgent.includes("MSIE ") || /Trident.*rv:11\./.test(navigator.userAgent) }, findIndex: function(t, e) { var i, o = V(t); try { for (o.s(); !(i = o.n()).done;) { var s = i.value; if (JSON.stringify(s) === JSON.stringify(e)) return t.indexOf(s) } } catch (t) { o.e(t) } finally { o.f() } return -1 }, trToData: function(t, e) { var i = this, o = [], s = []; return e.each((function(e, n) { var a = I(n), r = {}; r._id = a.attr("id"), r._class = a.attr("class"), r._data = i.getRealDataAttr(a.data()), r._style = a.attr("style"), a.find(">td,>th").each((function(o, n) { for (var a = I(n), l = +a.attr("colspan") || 1, c = +a.attr("rowspan") || 1, h = o; s[e] && s[e][h]; h++); for (var d = h; d < h + l; d++) for (var u = e; u < e + c; u++) s[u] || (s[u] = []), s[u][d] = !0; var p = t[h].field; r[p] = i.escapeApostrophe(a.html().trim()), r["_".concat(p, "_id")] = a.attr("id"), r["_".concat(p, "_class")] = a.attr("class"), r["_".concat(p, "_rowspan")] = a.attr("rowspan"), r["_".concat(p, "_colspan")] = a.attr("colspan"), r["_".concat(p, "_title")] = a.attr("title"), r["_".concat(p, "_data")] = i.getRealDataAttr(a.data()), r["_".concat(p, "_style")] = a.attr("style") })), o.push(r) })), o }, sort: function(t, e, i, o, s, n) { if (null == t && (t = ""), null == e && (e = ""), o.sortStable && t === e && (t = s, e = n), this.isNumeric(t) && this.isNumeric(e)) return (t = parseFloat(t)) < (e = parseFloat(e)) ? -1 * i : t > e ? i : 0; if (o.sortEmptyLast) { if ("" === t) return 1; if ("" === e) return -1 } return t === e ? 0 : ("string" != typeof t && (t = t.toString()), -1 === t.localeCompare(e) ? -1 * i : i) }, getEventName: function(t) { var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : ""; return e = e || "".concat(+new Date).concat(~~(1e6 * Math.random())), "".concat(t, "-").concat(e) }, hasDetailViewIcon: function(t) { return t.detailView && t.detailViewIcon && !t.cardView }, getDetailViewIndexOffset: function(t) { return this.hasDetailViewIcon(t) && "right" !== t.detailViewAlign ? 1 : 0 }, checkAutoMergeCells: function(t) { var e, i = V(t); try { for (i.s(); !(e = i.n()).done;) for (var o = e.value, s = 0, n = Object.keys(o); s < n.length; s++) { var a = n[s]; if (a.startsWith("_") && (a.endsWith("_rowspan") || a.endsWith("_colspan"))) return !0 } } catch (t) { i.e(t) } finally { i.f() } return !1 }, deepCopy: function(t) { return void 0 === t ? t : this.extend(!0, Array.isArray(t) ? [] : {}, t) }, debounce: function(t, e, i) { var o; return function() { var s = this, n = arguments, a = i && !o; clearTimeout(o), o = setTimeout((function() { o = null, i || t.apply(s, n) }), e), a && t.apply(s, n) } } }, q = L.getBootstrapVersion(), U = { 3: { classes: { buttonsPrefix: "btn", buttons: "default", buttonsGroup: "btn-group", buttonsDropdown: "btn-group", pull: "pull", inputGroup: "input-group", inputPrefix: "input-", input: "form-control", select: "form-control", paginationDropdown: "btn-group dropdown", dropup: "dropup", dropdownActive: "active", paginationActive: "active", buttonActive: "active" }, html: { toolbarDropdown: ['"], toolbarDropdownItem: '', toolbarDropdownSeparator: '
  • ', pageDropdown: ['"], pageDropdownItem: '', dropdownCaret: '', pagination: ['
      ', "
    "], paginationItem: '
  • %s
  • ', icon: '', inputGroup: '
    %s%s
    ', searchInput: '', searchButton: '', searchClearButton: '' } }, 4: { classes: { buttonsPrefix: "btn", buttons: "secondary", buttonsGroup: "btn-group", buttonsDropdown: "btn-group", pull: "float", inputGroup: "btn-group", inputPrefix: "form-control-", input: "form-control", select: "form-control", paginationDropdown: "btn-group dropdown", dropup: "dropup", dropdownActive: "active", paginationActive: "active", buttonActive: "active" }, html: { toolbarDropdown: ['"], toolbarDropdownItem: '', pageDropdown: ['"], pageDropdownItem: '%s', toolbarDropdownSeparator: '', dropdownCaret: '', pagination: ['
      ', "
    "], paginationItem: '
  • %s
  • ', icon: '', inputGroup: '
    %s
    %s
    ', searchInput: '', searchButton: '', searchClearButton: '' } }, 5: { classes: { buttonsPrefix: "btn", buttons: "secondary", buttonsGroup: "btn-group", buttonsDropdown: "btn-group", pull: "float", inputGroup: "btn-group", inputPrefix: "form-control-", input: "form-control", select: "form-select", paginationDropdown: "btn-group dropdown", dropup: "dropup", dropdownActive: "active", paginationActive: "active", buttonActive: "active" }, html: { dataToggle: "data-bs-toggle", toolbarDropdown: ['"], toolbarDropdownItem: '', pageDropdown: ['"], pageDropdownItem: '%s', toolbarDropdownSeparator: '', dropdownCaret: '', pagination: ['
      ', "
    "], paginationItem: '
  • %s
  • ', icon: '', inputGroup: '
    %s%s
    ', searchInput: '', searchButton: '', searchClearButton: '' } } }[q], z = { height: void 0, classes: "table table-bordered table-hover", buttons: {}, theadClasses: "", headerStyle: function(t) { return {} }, rowStyle: function(t, e) { return {} }, rowAttributes: function(t, e) { return {} }, undefinedText: "-", locale: void 0, virtualScroll: !1, virtualScrollItemHeight: void 0, sortable: !0, sortClass: void 0, silentSort: !0, sortEmptyLast: !1, sortName: void 0, sortOrder: void 0, sortReset: !1, sortStable: !1, sortResetPage: !1, rememberOrder: !1, serverSort: !0, customSort: void 0, columns: [ [] ], data: [], url: void 0, method: "get", cache: !0, contentType: "application/json", dataType: "json", ajax: void 0, ajaxOptions: {}, queryParams: function(t) { return t }, queryParamsType: "limit", responseHandler: function(t) { return t }, totalField: "total", totalNotFilteredField: "totalNotFiltered", dataField: "rows", footerField: "footer", pagination: !1, paginationParts: ["pageInfo", "pageSize", "pageList"], showExtendedPagination: !1, paginationLoop: !0, sidePagination: "client", totalRows: 0, totalNotFiltered: 0, pageNumber: 1, pageSize: 10, pageList: [10, 25, 50, 100], paginationHAlign: "right", paginationVAlign: "bottom", paginationDetailHAlign: "left", paginationPreText: "‹", paginationNextText: "›", paginationSuccessivelySize: 5, paginationPagesBySide: 1, paginationUseIntermediate: !1, paginationLoadMore: !1, search: !1, searchable: !1, searchHighlight: !1, searchOnEnterKey: !1, strictSearch: !1, regexSearch: !1, searchSelector: !1, visibleSearch: !1, showButtonIcons: !0, showButtonText: !1, showSearchButton: !1, showSearchClearButton: !1, trimOnSearch: !0, searchAlign: "right", searchTimeOut: 500, searchText: "", customSearch: void 0, showHeader: !0, showFooter: !1, footerStyle: function(t) { return {} }, searchAccentNeutralise: !1, showColumns: !1, showColumnsToggleAll: !1, showColumnsSearch: !1, minimumCountColumns: 1, showPaginationSwitch: !1, showRefresh: !1, showToggle: !1, showFullscreen: !1, smartDisplay: !0, escape: !1, escapeTitle: !0, filterOptions: { filterAlgorithm: "and" }, idField: void 0, selectItemName: "btSelectItem", clickToSelect: !1, ignoreClickToSelectOn: function(t) { var e = t.tagName; return ["A", "BUTTON"].includes(e) }, singleSelect: !1, checkboxHeader: !0, maintainMetaData: !1, multipleSelectRow: !1, uniqueId: void 0, cardView: !1, detailView: !1, detailViewIcon: !0, detailViewByClick: !1, detailViewAlign: "left", detailFormatter: function(t, e) { return "" }, detailFilter: function(t, e) { return !0 }, toolbar: void 0, toolbarAlign: "left", buttonsToolbar: void 0, buttonsAlign: "right", buttonsOrder: ["paginationSwitch", "refresh", "toggle", "fullscreen", "columns"], buttonsPrefix: U.classes.buttonsPrefix, buttonsClass: U.classes.buttons, iconsPrefix: void 0, icons: {}, iconSize: void 0, fixedScroll: !1, loadingFontSize: "auto", loadingTemplate: function(t) { return '\n '.concat(t, '\n \n \n ') }, onAll: function(t, e) { return !1 }, onClickCell: function(t, e, i, o) { return !1 }, onDblClickCell: function(t, e, i, o) { return !1 }, onClickRow: function(t, e) { return !1 }, onDblClickRow: function(t, e) { return !1 }, onSort: function(t, e) { return !1 }, onCheck: function(t) { return !1 }, onUncheck: function(t) { return !1 }, onCheckAll: function(t) { return !1 }, onUncheckAll: function(t) { return !1 }, onCheckSome: function(t) { return !1 }, onUncheckSome: function(t) { return !1 }, onLoadSuccess: function(t) { return !1 }, onLoadError: function(t) { return !1 }, onColumnSwitch: function(t, e) { return !1 }, onColumnSwitchAll: function(t) { return !1 }, onPageChange: function(t, e) { return !1 }, onSearch: function(t) { return !1 }, onToggle: function(t) { return !1 }, onPreBody: function(t) { return !1 }, onPostBody: function() { return !1 }, onPostHeader: function() { return !1 }, onPostFooter: function() { return !1 }, onExpandRow: function(t, e, i) { return !1 }, onCollapseRow: function(t, e) { return !1 }, onRefreshOptions: function(t) { return !1 }, onRefresh: function(t) { return !1 }, onResetView: function() { return !1 }, onScrollBody: function() { return !1 }, onTogglePagination: function(t) { return !1 }, onVirtualScroll: function(t, e) { return !1 } }, M = { formatLoadingMessage: function() { return "Loading, please wait" }, formatRecordsPerPage: function(t) { return "".concat(t, " rows per page") }, formatShowingRows: function(t, e, i, o) { return void 0 !== o && o > 0 && o > i ? "Showing ".concat(t, " to ").concat(e, " of ").concat(i, " rows (filtered from ").concat(o, " total rows)") : "Showing ".concat(t, " to ").concat(e, " of ").concat(i, " rows") }, formatSRPaginationPreText: function() { return "previous page" }, formatSRPaginationPageText: function(t) { return "to page ".concat(t) }, formatSRPaginationNextText: function() { return "next page" }, formatDetailPagination: function(t) { return "Showing ".concat(t, " rows") }, formatSearch: function() { return "Search" }, formatClearSearch: function() { return "Clear Search" }, formatNoMatches: function() { return "No matching records found" }, formatPaginationSwitch: function() { return "Hide/Show pagination" }, formatPaginationSwitchDown: function() { return "Show pagination" }, formatPaginationSwitchUp: function() { return "Hide pagination" }, formatRefresh: function() { return "Refresh" }, formatToggleOn: function() { return "Show card view" }, formatToggleOff: function() { return "Hide card view" }, formatColumns: function() { return "Columns" }, formatColumnsToggleAll: function() { return "Toggle all" }, formatFullscreen: function() { return "Fullscreen" }, formatAllRows: function() { return "All" } }, W = { field: void 0, title: void 0, titleTooltip: void 0, class: void 0, width: void 0, widthUnit: "px", rowspan: void 0, colspan: void 0, align: void 0, halign: void 0, falign: void 0, valign: void 0, cellStyle: void 0, radio: !1, checkbox: !1, checkboxEnabled: !0, clickToSelect: !0, showSelectTitle: !1, sortable: !1, sortName: void 0, order: "asc", sorter: void 0, visible: !0, switchable: !0, switchableLabel: void 0, cardVisible: !0, searchable: !0, formatter: void 0, footerFormatter: void 0, footerStyle: void 0, detailFormatter: void 0, searchFormatter: !0, searchHighlightFormatter: !1, escape: void 0, events: void 0 }; Object.assign(z, M); var G = { VERSION: "1.23.1", THEME: "bootstrap".concat(q), CONSTANTS: U, DEFAULTS: z, COLUMN_DEFAULTS: W, METHODS: ["getOptions", "refreshOptions", "getData", "getSelections", "load", "append", "prepend", "remove", "removeAll", "insertRow", "updateRow", "getRowByUniqueId", "updateByUniqueId", "removeByUniqueId", "updateCell", "updateCellByUniqueId", "showRow", "hideRow", "getHiddenRows", "showColumn", "hideColumn", "getVisibleColumns", "getHiddenColumns", "showAllColumns", "hideAllColumns", "mergeCells", "checkAll", "uncheckAll", "checkInvert", "check", "uncheck", "checkBy", "uncheckBy", "refresh", "destroy", "resetView", "showLoading", "hideLoading", "togglePagination", "toggleFullscreen", "toggleView", "resetSearch", "filterBy", "sortBy", "scrollTo", "getScrollPosition", "selectPage", "prevPage", "nextPage", "toggleDetailView", "expandRow", "collapseRow", "expandRowByUniqueId", "collapseRowByUniqueId", "expandAllRows", "collapseAllRows", "updateColumnTitle", "updateFormatText"], EVENTS: { "all.bs.table": "onAll", "click-row.bs.table": "onClickRow", "dbl-click-row.bs.table": "onDblClickRow", "click-cell.bs.table": "onClickCell", "dbl-click-cell.bs.table": "onDblClickCell", "sort.bs.table": "onSort", "check.bs.table": "onCheck", "uncheck.bs.table": "onUncheck", "check-all.bs.table": "onCheckAll", "uncheck-all.bs.table": "onUncheckAll", "check-some.bs.table": "onCheckSome", "uncheck-some.bs.table": "onUncheckSome", "load-success.bs.table": "onLoadSuccess", "load-error.bs.table": "onLoadError", "column-switch.bs.table": "onColumnSwitch", "column-switch-all.bs.table": "onColumnSwitchAll", "page-change.bs.table": "onPageChange", "search.bs.table": "onSearch", "toggle.bs.table": "onToggle", "pre-body.bs.table": "onPreBody", "post-body.bs.table": "onPostBody", "post-header.bs.table": "onPostHeader", "post-footer.bs.table": "onPostFooter", "expand-row.bs.table": "onExpandRow", "collapse-row.bs.table": "onCollapseRow", "refresh-options.bs.table": "onRefreshOptions", "reset-view.bs.table": "onResetView", "refresh.bs.table": "onRefresh", "scroll-body.bs.table": "onScrollBody", "toggle-pagination.bs.table": "onTogglePagination", "virtual-scroll.bs.table": "onVirtualScroll" }, LOCALES: { en: M, "en-US": M } }, K = function() { return D((function t(e) { var i = this; _(this, t), this.rows = e.rows, this.scrollEl = e.scrollEl, this.contentEl = e.contentEl, this.callback = e.callback, this.itemHeight = e.itemHeight, this.cache = {}, this.scrollTop = this.scrollEl.scrollTop, this.initDOM(this.rows, e.fixedScroll), this.scrollEl.scrollTop = this.scrollTop, this.lastCluster = 0; var o = function() { i.lastCluster !== (i.lastCluster = i.getNum()) && (i.initDOM(i.rows), i.callback(i.startIndex, i.endIndex)) }; this.scrollEl.addEventListener("scroll", o, !1), this.destroy = function() { i.contentEl.innerHtml = "", i.scrollEl.removeEventListener("scroll", o, !1) } }), [{ key: "initDOM", value: function(t, e) { void 0 === this.clusterHeight ? (this.cache.scrollTop = this.scrollEl.scrollTop, this.cache.data = this.contentEl.innerHTML = t[0] + t[0] + t[0], this.getRowsHeight(t)) : 0 === this.blockHeight && this.getRowsHeight(t); var i = this.initData(t, this.getNum(e)), o = i.rows.join(""), s = this.checkChanges("data", o), n = this.checkChanges("top", i.topOffset), a = this.checkChanges("bottom", i.bottomOffset), r = []; s && n ? (i.topOffset && r.push(this.getExtra("top", i.topOffset)), r.push(o), i.bottomOffset && r.push(this.getExtra("bottom", i.bottomOffset)), this.startIndex = i.start, this.endIndex = i.end, this.contentEl.innerHTML = r.join(""), e && (this.contentEl.scrollTop = this.cache.scrollTop)) : a && (this.contentEl.lastChild.style.height = "".concat(i.bottomOffset, "px")) } }, { key: "getRowsHeight", value: function() { if (void 0 === this.itemHeight || 0 === this.itemHeight) { var t = this.contentEl.children, e = t[Math.floor(t.length / 2)]; this.itemHeight = e.offsetHeight } this.blockHeight = 50 * this.itemHeight, this.clusterRows = 200, this.clusterHeight = 4 * this.blockHeight } }, { key: "getNum", value: function(t) { return this.scrollTop = t ? this.cache.scrollTop : this.scrollEl.scrollTop, Math.floor(this.scrollTop / (this.clusterHeight - this.blockHeight)) || 0 } }, { key: "initData", value: function(t, e) { if (t.length < 50) return { topOffset: 0, bottomOffset: 0, rowsAbove: 0, rows: t }; var i = Math.max((this.clusterRows - 50) * e, 0), o = i + this.clusterRows, s = Math.max(i * this.itemHeight, 0), n = Math.max((t.length - o) * this.itemHeight, 0), a = [], r = i; s < 1 && r++; for (var l = i; l < o; l++) t[l] && a.push(t[l]); return { start: i, end: o, topOffset: s, bottomOffset: n, rowsAbove: r, rows: a } } }, { key: "checkChanges", value: function(t, e) { var i = e !== this.cache[t]; return this.cache[t] = e, i } }, { key: "getExtra", value: function(t, e) { var i = document.createElement("tr"); return i.className = "virtual-scroll-".concat(t), e && (i.style.height = "".concat(e, "px")), i.outerHTML } }]) }(), J = function() { function t(e, i) { _(this, t), this.options = i, this.$el = I(e), this.$el_ = this.$el.clone(), this.timeoutId_ = 0, this.timeoutFooter_ = 0 } return D(t, [{ key: "init", value: function() { this.initConstants(), this.initLocale(), this.initContainer(), this.initTable(), this.initHeader(), this.initData(), this.initHiddenRows(), this.initToolbar(), this.initPagination(), this.initBody(), this.initSearchText(), this.initServer() } }, { key: "initConstants", value: function() { var t = this.options; this.constants = G.CONSTANTS, this.constants.theme = I.fn.bootstrapTable.theme, this.constants.dataToggle = this.constants.html.dataToggle || "data-toggle"; var e = L.getIconsPrefix(I.fn.bootstrapTable.theme); "string" == typeof t.icons && (t.icons = L.calculateObjectValue(null, t.icons)), t.iconsPrefix = t.iconsPrefix || I.fn.bootstrapTable.defaults.iconsPrefix || e, t.icons = Object.assign(L.getIcons(t.iconsPrefix), I.fn.bootstrapTable.defaults.icons, t.icons); var i = t.buttonsPrefix ? "".concat(t.buttonsPrefix, "-") : ""; this.constants.buttonsClass = [t.buttonsPrefix, i + t.buttonsClass, L.sprintf("".concat(i, "%s"), t.iconSize)].join(" ").trim(), this.buttons = L.calculateObjectValue(this, t.buttons, [], {}), "object" !== E(this.buttons) && (this.buttons = {}) } }, { key: "initLocale", value: function() { if (this.options.locale) { var e = I.fn.bootstrapTable.locales, i = this.options.locale.split(/-|_/); i[0] = i[0].toLowerCase(), i[1] && (i[1] = i[1].toUpperCase()); var o = {}; e[this.options.locale] ? o = e[this.options.locale] : e[i.join("-")] ? o = e[i.join("-")] : e[i[0]] && (o = e[i[0]]), this._defaultLocales = this._defaultLocales || {}; for (var s = 0, n = Object.entries(o); s < n.length; s++) { var a = B(n[s], 2), r = a[0], l = a[1], c = this._defaultLocales.hasOwnProperty(r) ? this._defaultLocales[r] : t.DEFAULTS[r]; this.options[r] === c && (this.options[r] = l, this._defaultLocales[r] = l) } } } }, { key: "initContainer", value: function() { var t = ["top", "both"].includes(this.options.paginationVAlign) ? '
    ' : "", e = ["bottom", "both"].includes(this.options.paginationVAlign) ? '
    ' : "", i = L.calculateObjectValue(this.options, this.options.loadingTemplate, [this.options.formatLoadingMessage()]); this.$container = I('\n
    \n
    \n ').concat(t, '\n
    \n
    \n
    \n
    \n ').concat(i, '\n
    \n
    \n \n
    \n ').concat(e, "\n
    \n ")), this.$container.insertAfter(this.$el), this.$tableContainer = this.$container.find(".fixed-table-container"), this.$tableHeader = this.$container.find(".fixed-table-header"), this.$tableBody = this.$container.find(".fixed-table-body"), this.$tableLoading = this.$container.find(".fixed-table-loading"), this.$tableFooter = this.$el.find("tfoot"), this.options.buttonsToolbar ? this.$toolbar = I("body").find(this.options.buttonsToolbar) : this.$toolbar = this.$container.find(".fixed-table-toolbar"), this.$pagination = this.$container.find(".fixed-table-pagination"), this.$tableBody.append(this.$el), this.$container.after('
    '), this.$el.addClass(this.options.classes), this.$tableLoading.addClass(this.options.classes), this.options.height && (this.$tableContainer.addClass("fixed-height"), this.options.showFooter && this.$tableContainer.addClass("has-footer"), this.options.classes.split(" ").includes("table-bordered") && (this.$tableBody.append('
    '), this.$tableBorder = this.$tableBody.find(".fixed-table-border"), this.$tableLoading.addClass("fixed-table-border")), this.$tableFooter = this.$container.find(".fixed-table-footer")) } }, { key: "initTable", value: function() { var e = this, i = []; if (this.$header = this.$el.find(">thead"), this.$header.length ? this.options.theadClasses && this.$header.addClass(this.options.theadClasses) : this.$header = I('')).appendTo(this.$el), this._headerTrClasses = [], this._headerTrStyles = [], this.$header.find("tr").each((function(t, o) { var s = I(o), n = []; s.find("th").each((function(t, e) { var i = I(e); void 0 !== i.data("field") && i.data("field", "".concat(i.data("field"))); var o = Object.assign({}, i.data()); for (var s in o) I.fn.bootstrapTable.columnDefaults.hasOwnProperty(s) && delete o[s]; n.push(L.extend({}, { _data: L.getRealDataAttr(o), title: i.html(), class: i.attr("class"), titleTooltip: i.attr("title"), rowspan: i.attr("rowspan") ? +i.attr("rowspan") : void 0, colspan: i.attr("colspan") ? +i.attr("colspan") : void 0 }, i.data())) })), i.push(n), s.attr("class") && e._headerTrClasses.push(s.attr("class")), s.attr("style") && e._headerTrStyles.push(s.attr("style")) })), Array.isArray(this.options.columns[0]) || (this.options.columns = [this.options.columns]), this.options.columns = L.extend(!0, [], i, this.options.columns), this.columns = [], this.fieldsColumnsIndex = [], L.setFieldIndex(this.options.columns), this.options.columns.forEach((function(i, o) { i.forEach((function(i, s) { var n = L.extend({}, t.COLUMN_DEFAULTS, i, { passed: i }); void 0 !== n.fieldIndex && (e.columns[n.fieldIndex] = n, e.fieldsColumnsIndex[n.field] = n.fieldIndex), e.options.columns[o][s] = n })) })), !this.options.data.length) { var o = L.trToData(this.columns, this.$el.find(">tbody>tr")); o.length && (this.options.data = o, this.fromHtml = !0) } this.options.pagination && "server" !== this.options.sidePagination || (this.footerData = L.trToData(this.columns, this.$el.find(">tfoot>tr"))), this.footerData && this.$el.find("tfoot").html(""), !this.options.showFooter || this.options.cardView ? this.$tableFooter.hide() : this.$tableFooter.show() } }, { key: "initHeader", value: function() { var t = this, e = {}, i = []; this.header = { fields: [], styles: [], classes: [], formatters: [], detailFormatters: [], events: [], sorters: [], sortNames: [], cellStyles: [], searchables: [] }, L.updateFieldGroup(this.options.columns, this.columns), this.options.columns.forEach((function(o, s) { var n = []; n.push("")); var a = ""; if (0 === s && L.hasDetailViewIcon(t.options)) { var r = t.options.columns.length > 1 ? ' rowspan="'.concat(t.options.columns.length, '"') : ""; a = '\n
    \n ') } a && "right" !== t.options.detailViewAlign && n.push(a), o.forEach((function(i, o) { var a = L.sprintf(' class="%s"', i.class), r = i.widthUnit, l = parseFloat(i.width), c = i.halign ? i.halign : i.align, h = L.sprintf("text-align: %s; ", c), d = L.sprintf("text-align: %s; ", i.align), u = L.sprintf("vertical-align: %s; ", i.valign); if (u += L.sprintf("width: %s; ", !i.checkbox && !i.radio || l ? l ? l + r : void 0 : i.showSelectTitle ? void 0 : "36px"), void 0 !== i.fieldIndex || i.visible) { var p = L.calculateObjectValue(null, t.options.headerStyle, [i]), f = [], g = [], v = ""; if (p && p.css) for (var m = 0, b = Object.entries(p.css); m < b.length; m++) { var y = B(b[m], 2), w = y[0], S = y[1]; f.push("".concat(w, ": ").concat(S)) } if (p && p.classes && (v = L.sprintf(' class="%s"', i.class ? [i.class, p.classes].join(" ") : p.classes)), void 0 !== i.fieldIndex) { if (t.header.fields[i.fieldIndex] = i.field, t.header.styles[i.fieldIndex] = d + u, t.header.classes[i.fieldIndex] = a, t.header.formatters[i.fieldIndex] = i.formatter, t.header.detailFormatters[i.fieldIndex] = i.detailFormatter, t.header.events[i.fieldIndex] = i.events, t.header.sorters[i.fieldIndex] = i.sorter, t.header.sortNames[i.fieldIndex] = i.sortName, t.header.cellStyles[i.fieldIndex] = i.cellStyle, t.header.searchables[i.fieldIndex] = i.searchable, !i.visible) return; if (t.options.cardView && !i.cardVisible) return; e[i.field] = i } if (Object.keys(i._data || {}).length > 0) for (var x = 0, k = Object.entries(i._data); x < k.length; x++) { var j = B(k[x], 2), C = j[0], O = j[1]; g.push("data-".concat(C, "='").concat("object" === E(O) ? JSON.stringify(O) : O, "'")) } n.push(" 0 ? " data-not-first-th" : "", g.length > 0 ? g.join(" ") : "", ">"), n.push(L.sprintf('
    ', t.options.sortable && i.sortable ? "sortable".concat("center" === c ? " sortable-center" : "", " both") : "")); var P = t.options.escape && t.options.escapeTitle ? L.escapeHTML(i.title) : i.title, T = P; i.checkbox && (P = "", !t.options.singleSelect && t.options.checkboxHeader && (P = ''), t.header.stateField = i.field), i.radio && (P = "", t.header.stateField = i.field), !P && i.showSelectTitle && (P += T), n.push(P), n.push("
    "), n.push('
    '), n.push("
    "), n.push("") } })), a && "right" === t.options.detailViewAlign && n.push(a), n.push(""), n.length > 3 && i.push(n.join("")) })), this.$header.html(i.join("")), this.$header.find("th[data-field]").each((function(t, i) { I(i).data(e[I(i).data("field")]) })), this.$container.off("click", ".th-inner").on("click", ".th-inner", (function(e) { var i = I(e.currentTarget); if (t.options.detailView && !i.parent().hasClass("bs-checkbox") && i.closest(".bootstrap-table")[0] !== t.$container[0]) return !1; t.options.sortable && i.parent().data().sortable && t.onSort(e) })); var o = L.getEventName("resize.bootstrap-table", this.$el.attr("id")); I(window).off(o), !this.options.showHeader || this.options.cardView ? (this.$header.hide(), this.$tableHeader.hide(), this.$tableLoading.css("top", 0)) : (this.$header.show(), this.$tableHeader.show(), this.$tableLoading.css("top", this.$header.outerHeight() + 1), this.getCaret(), I(window).on(o, (function() { return t.resetView() }))), this.$selectAll = this.$header.find('[name="btSelectAll"]'), this.$selectAll.off("click").on("click", (function(e) { e.stopPropagation(); var i = I(e.currentTarget).prop("checked"); t[i ? "checkAll" : "uncheckAll"](), t.updateSelected() })) } }, { key: "initData", value: function(t, e) { "append" === e ? this.options.data = this.options.data.concat(t) : "prepend" === e ? this.options.data = [].concat(t).concat(this.options.data) : (t = t || L.deepCopy(this.options.data), this.options.data = Array.isArray(t) ? t : t[this.options.dataField]), this.data = F(this.options.data), this.options.sortReset && (this.unsortedData = F(this.data)), "server" !== this.options.sidePagination && this.initSort() } }, { key: "initSort", value: function() { var t = this, e = this.options.sortName, i = "desc" === this.options.sortOrder ? -1 : 1, o = this.header.fields.indexOf(this.options.sortName), s = 0; - 1 !== o ? (this.options.sortStable && this.data.forEach((function(t, e) { t.hasOwnProperty("_position") || (t._position = e) })), this.options.customSort ? L.calculateObjectValue(this.options, this.options.customSort, [this.options.sortName, this.options.sortOrder, this.data]) : this.data.sort((function(s, n) { t.header.sortNames[o] && (e = t.header.sortNames[o]); var a = L.getItemField(s, e, t.options.escape), r = L.getItemField(n, e, t.options.escape), l = L.calculateObjectValue(t.header, t.header.sorters[o], [a, r, s, n]); return void 0 !== l ? t.options.sortStable && 0 === l ? i * (s._position - n._position) : i * l : L.sort(a, r, i, t.options, s._position, n._position) })), void 0 !== this.options.sortClass && (clearTimeout(s), s = setTimeout((function() { t.$el.removeClass(t.options.sortClass); var e = t.$header.find('[data-field="'.concat(t.options.sortName, '"]')).index(); t.$el.find("tr td:nth-child(".concat(e + 1, ")")).addClass(t.options.sortClass) }), 250))) : this.options.sortReset && (this.data = F(this.unsortedData)) } }, { key: "sortBy", value: function(t) { this.options.sortName = t.field, this.options.sortOrder = t.hasOwnProperty("sortOrder") ? t.sortOrder : "asc", this._sort() } }, { key: "onSort", value: function(t) { var e = t.type, i = t.currentTarget, o = "keypress" === e ? I(i) : I(i).parent(), s = this.$header.find("th").eq(o.index()); if (this.$header.add(this.$header_).find("span.order").remove(), this.options.sortName === o.data("field")) { var n = this.options.sortOrder, a = this.columns[this.fieldsColumnsIndex[o.data("field")]].sortOrder || this.columns[this.fieldsColumnsIndex[o.data("field")]].order; void 0 === n ? this.options.sortOrder = "asc" : "asc" === n ? this.options.sortOrder = this.options.sortReset ? "asc" === a ? "desc" : void 0 : "desc" : "desc" === this.options.sortOrder && (this.options.sortOrder = this.options.sortReset ? "desc" === a ? "asc" : void 0 : "asc"), void 0 === this.options.sortOrder && (this.options.sortName = void 0) } else this.options.sortName = o.data("field"), this.options.rememberOrder ? this.options.sortOrder = "asc" === o.data("order") ? "desc" : "asc" : this.options.sortOrder = this.columns[this.fieldsColumnsIndex[o.data("field")]].sortOrder || this.columns[this.fieldsColumnsIndex[o.data("field")]].order; o.add(s).data("order", this.options.sortOrder), this.getCaret(), this._sort() } }, { key: "_sort", value: function() { if ("server" === this.options.sidePagination && this.options.serverSort) return this.options.pageNumber = 1, this.trigger("sort", this.options.sortName, this.options.sortOrder), void this.initServer(this.options.silentSort); this.options.pagination && this.options.sortResetPage && (this.options.pageNumber = 1, this.initPagination()), this.trigger("sort", this.options.sortName, this.options.sortOrder), this.initSort(), this.initBody() } }, { key: "initToolbar", value: function() { var t, e = this, i = this.options, o = [], s = 0, n = 0; this.$toolbar.find(".bs-bars").children().length && I("body").append(I(i.toolbar)), this.$toolbar.html(""), "string" != typeof i.toolbar && "object" !== E(i.toolbar) || I(L.sprintf('
    ', this.constants.classes.pull, i.toolbarAlign)).appendTo(this.$toolbar).append(I(i.toolbar)), o = ['
    ')], "string" == typeof i.buttonsOrder && (i.buttonsOrder = i.buttonsOrder.replace(/\[|\]| |'/g, "").split(",")), this.buttons = Object.assign(this.buttons, { paginationSwitch: { text: i.pagination ? i.formatPaginationSwitchUp() : i.formatPaginationSwitchDown(), icon: i.pagination ? i.icons.paginationSwitchDown : i.icons.paginationSwitchUp, render: !1, event: this.togglePagination, attributes: { "aria-label": i.formatPaginationSwitch(), title: i.formatPaginationSwitch() } }, refresh: { text: i.formatRefresh(), icon: i.icons.refresh, render: !1, event: this.refresh, attributes: { "aria-label": i.formatRefresh(), title: i.formatRefresh() } }, toggle: { text: i.formatToggleOn(), icon: i.icons.toggleOff, render: !1, event: this.toggleView, attributes: { "aria-label": i.formatToggleOn(), title: i.formatToggleOn() } }, fullscreen: { text: i.formatFullscreen(), icon: i.icons.fullscreen, render: !1, event: this.toggleFullscreen, attributes: { "aria-label": i.formatFullscreen(), title: i.formatFullscreen() } }, columns: { render: !1, html: function() { var t = []; if (t.push('
    \n \n ").concat(e.constants.html.toolbarDropdown[0])), i.showColumnsSearch && (t.push(L.sprintf(e.constants.html.toolbarDropdownItem, L.sprintf('', e.constants.classes.input, i.formatSearch()))), t.push(e.constants.html.toolbarDropdownSeparator)), i.showColumnsToggleAll) { var o = e.getVisibleColumns().length === e.columns.filter((function(t) { return !e.isSelectionColumn(t) })).length; t.push(L.sprintf(e.constants.html.toolbarDropdownItem, L.sprintf(' %s', o ? 'checked="checked"' : "", i.formatColumnsToggleAll()))), t.push(e.constants.html.toolbarDropdownSeparator) } var s = 0; return e.columns.forEach((function(t) { t.visible && s++ })), e.columns.forEach((function(o, a) { if (!e.isSelectionColumn(o) && (!i.cardView || o.cardVisible)) { var r = o.visible ? ' checked="checked"' : "", l = s <= i.minimumCountColumns && r ? ' disabled="disabled"' : ""; o.switchable && (t.push(L.sprintf(e.constants.html.toolbarDropdownItem, L.sprintf(' %s', o.field, a, r, l, o.switchableLabel || o.title))), n++) } })), t.push(e.constants.html.toolbarDropdown[1], "
    "), t.join("") } } }); for (var a = {}, r = 0, l = Object.entries(this.buttons); r < l.length; r++) { var c = B(l[r], 2), h = c[0], d = c[1], u = void 0; if (d.hasOwnProperty("html")) "function" == typeof d.html ? u = d.html() : "string" == typeof d.html && (u = d.html); else { var p = this.constants.buttonsClass; if (d.hasOwnProperty("attributes") && d.attributes.class && (p += " ".concat(d.attributes.class)), u = '\n ").concat(this.constants.html.pageDropdown[0])]; u.forEach((function(i, o) { var s; (!e.smartDisplay || 0 === o || u[o - 1] < e.totalRows || i === e.formatAllRows()) && (s = h ? i === e.formatAllRows() ? t.constants.classes.dropdownActive : "" : i === e.pageSize ? t.constants.classes.dropdownActive : "", g.push(L.sprintf(t.constants.html.pageDropdownItem, s, i))) })), g.push("".concat(this.constants.html.pageDropdown[1], "
    ")), c.push(e.formatRecordsPerPage(g.join(""))) } if ((this.paginationParts.includes("pageInfo") || this.paginationParts.includes("pageInfoShort") || this.paginationParts.includes("pageSize")) && c.push("
    "), this.paginationParts.includes("pageList")) { c.push('
    '), L.sprintf(this.constants.html.pagination[0], L.sprintf(" pagination-%s", e.iconSize)), L.sprintf(this.constants.html.paginationItem, " page-pre", e.formatSRPaginationPreText(), e.paginationPreText)), this.totalPages < e.paginationSuccessivelySize ? (o = 1, s = this.totalPages) : s = (o = e.pageNumber - e.paginationPagesBySide) + 2 * e.paginationPagesBySide, e.pageNumber < e.paginationSuccessivelySize - 1 && (s = e.paginationSuccessivelySize), e.paginationSuccessivelySize > this.totalPages - o && (o = o - (e.paginationSuccessivelySize - (this.totalPages - o)) + 1), o < 1 && (o = 1), s > this.totalPages && (s = this.totalPages); var v = Math.round(e.paginationPagesBySide / 2), m = function(i) { var o = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : ""; return L.sprintf(t.constants.html.paginationItem, o + (i === e.pageNumber ? " ".concat(t.constants.classes.paginationActive) : ""), e.formatSRPaginationPageText(i), i) }; if (o > 1) { var b = e.paginationPagesBySide; for (b >= o && (b = o - 1), i = 1; i <= b; i++) c.push(m(i)); o - 1 === b + 1 ? (i = o - 1, c.push(m(i))) : o - 1 > b && (o - 2 * e.paginationPagesBySide > e.paginationPagesBySide && e.paginationUseIntermediate ? (i = Math.round((o - v) / 2 + v), c.push(m(i, " page-intermediate"))) : c.push(L.sprintf(this.constants.html.paginationItem, " page-first-separator disabled", "", "..."))) } for (i = o; i <= s; i++) c.push(m(i)); if (this.totalPages > s) { var y = this.totalPages - (e.paginationPagesBySide - 1); for (s >= y && (y = s + 1), s + 1 === y - 1 ? (i = s + 1, c.push(m(i))) : y > s + 1 && (this.totalPages - s > 2 * e.paginationPagesBySide && e.paginationUseIntermediate ? (i = Math.round((this.totalPages - v - s) / 2 + s), c.push(m(i, " page-intermediate"))) : c.push(L.sprintf(this.constants.html.paginationItem, " page-last-separator disabled", "", "..."))), i = y; i <= this.totalPages; i++) c.push(m(i)) } c.push(L.sprintf(this.constants.html.paginationItem, " page-next", e.formatSRPaginationNextText(), e.paginationNextText)), c.push(this.constants.html.pagination[1], "
    ") } this.$pagination.html(c.join("")); var w = ["bottom", "both"].includes(e.paginationVAlign) ? " ".concat(this.constants.classes.dropup) : ""; this.$pagination.last().find(".page-list > div").addClass(w), e.onlyInfoPagination || (n = this.$pagination.find(".page-list a"), a = this.$pagination.find(".page-pre"), r = this.$pagination.find(".page-next"), l = this.$pagination.find(".page-item").not(".page-next, .page-pre, .page-last-separator, .page-first-separator"), this.totalPages <= 1 && this.$pagination.find("div.pagination").hide(), e.smartDisplay && (u.length < 2 || e.totalRows <= u[0]) && this.$pagination.find("div.page-list").hide(), this.$pagination[this.getData().length ? "show" : "hide"](), e.paginationLoop || (1 === e.pageNumber && a.addClass("disabled"), e.pageNumber === this.totalPages && r.addClass("disabled")), h && (e.pageSize = e.formatAllRows()), n.off("click").on("click", (function(e) { return t.onPageListChange(e) })), a.off("click").on("click", (function(e) { return t.onPagePre(e) })), r.off("click").on("click", (function(e) { return t.onPageNext(e) })), l.off("click").on("click", (function(e) { return t.onPageNumber(e) }))) } else this.$pagination.hide() } }, { key: "updatePagination", value: function(t) { t && I(t.currentTarget).hasClass("disabled") || (this.options.maintainMetaData || this.resetRows(), this.initPagination(), this.trigger("page-change", this.options.pageNumber, this.options.pageSize), "server" === this.options.sidePagination || "client" === this.options.sidePagination && this.options.paginationLoadMore && !this._paginationLoaded && this.options.pageNumber === this.totalPages ? this.initServer() : this.initBody()) } }, { key: "onPageListChange", value: function(t) { t.preventDefault(); var e = I(t.currentTarget); return e.parent().addClass(this.constants.classes.dropdownActive).siblings().removeClass(this.constants.classes.dropdownActive), this.options.pageSize = e.text().toUpperCase() === this.options.formatAllRows().toUpperCase() ? this.options.formatAllRows() : +e.text(), this.$toolbar.find(".page-size").text(this.options.pageSize), this.updatePagination(t), !1 } }, { key: "onPagePre", value: function(t) { if (!I(t.target).hasClass("disabled")) return t.preventDefault(), this.options.pageNumber - 1 == 0 ? this.options.pageNumber = this.options.totalPages : this.options.pageNumber--, this.updatePagination(t), !1 } }, { key: "onPageNext", value: function(t) { if (!I(t.target).hasClass("disabled")) return t.preventDefault(), this.options.pageNumber + 1 > this.options.totalPages ? this.options.pageNumber = 1 : this.options.pageNumber++, this.updatePagination(t), !1 } }, { key: "onPageNumber", value: function(t) { if (t.preventDefault(), this.options.pageNumber !== +I(t.currentTarget).text()) return this.options.pageNumber = +I(t.currentTarget).text(), this.updatePagination(t), !1 } }, { key: "initRow", value: function(t, e, i, o) { var s = this, n = [], a = {}, r = [], l = "", c = {}, h = []; if (!(L.findIndex(this.hiddenRows, t) > -1)) { if ((a = L.calculateObjectValue(this.options, this.options.rowStyle, [t, e], a)) && a.css) for (var d = 0, u = Object.entries(a.css); d < u.length; d++) { var p = B(u[d], 2), f = p[0], g = p[1]; r.push("".concat(f, ": ").concat(g)) } if (c = L.calculateObjectValue(this.options, this.options.rowAttributes, [t, e], c)) for (var v = 0, m = Object.entries(c); v < m.length; v++) { var b = B(m[v], 2), y = b[0], w = b[1]; h.push("".concat(y, '="').concat(L.escapeHTML(w), '"')) } if (t._data && !L.isEmptyObject(t._data)) for (var S = 0, x = Object.entries(t._data); S < x.length; S++) { var k = B(x[S], 2), j = k[0], C = k[1]; if ("index" === j) return; l += " data-".concat(j, "='").concat("object" === E(C) ? JSON.stringify(C) : C, "'") } // n.push(""), this.options.cardView && n.push('
    ')); n.push(""), this.options.cardView && n.push('
    ')); var O = ""; return L.hasDetailViewIcon(this.options) && (O = "", L.calculateObjectValue(null, this.options.detailFilter, [e, t]) && (O += '\n \n '.concat(L.sprintf(this.constants.html.icon, this.options.iconsPrefix, this.options.icons.detailOpen), "\n \n ")), O += ""), O && "right" !== this.options.detailViewAlign && n.push(O), this.header.fields.forEach((function(i, o) { var a = s.columns[o], l = "", c = L.getItemField(t, i, s.options.escape, a.escape), h = "", d = "", u = {}, p = "", f = s.header.classes[o], g = "", v = "", m = "", b = "", y = "", w = ""; if ((!s.fromHtml && !s.autoMergeCells || void 0 !== c || a.checkbox || a.radio) && a.visible && (!s.options.cardView || a.cardVisible)) { if (r.concat([s.header.styles[o]]).length && (v += "".concat(r.concat([s.header.styles[o]]).join("; "))), t["_".concat(i, "_style")] && (v += "".concat(t["_".concat(i, "_style")])), v && (g = ' style="'.concat(v, '"')), t["_".concat(i, "_id")] && (p = L.sprintf(' id="%s"', t["_".concat(i, "_id")])), t["_".concat(i, "_class")] && (f = L.sprintf(' class="%s"', t["_".concat(i, "_class")])), t["_".concat(i, "_rowspan")] && (b = L.sprintf(' rowspan="%s"', t["_".concat(i, "_rowspan")])), t["_".concat(i, "_colspan")] && (y = L.sprintf(' colspan="%s"', t["_".concat(i, "_colspan")])), t["_".concat(i, "_title")] && (w = L.sprintf(' title="%s"', t["_".concat(i, "_title")])), (u = L.calculateObjectValue(s.header, s.header.cellStyles[o], [c, t, e, i], u)).classes && (f = ' class="'.concat(u.classes, '"')), u.css) { for (var S = [], x = 0, k = Object.entries(u.css); x < k.length; x++) { var j = B(k[x], 2), C = j[0], O = j[1]; S.push("".concat(C, ": ").concat(O)) } g = ' style="'.concat(S.concat(s.header.styles[o]).join("; "), '"') } if (h = L.calculateObjectValue(a, s.header.formatters[o], [c, t, e, i], c), a.checkbox || a.radio || (h = null == h ? s.options.undefinedText : h), a.searchable && s.searchText && s.options.searchHighlight && !a.checkbox && !a.radio) { var P = "", T = s.searchText.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); if (s.options.searchAccentNeutralise) { var $ = new RegExp("".concat(L.normalizeAccent(T)), "gmi").exec(L.normalizeAccent(h)); $ && (T = h.substring($.index, $.index + T.length)) } var A = new RegExp("(".concat(T, ")"), "gim"), I = "$1"; if (h && /<(?=.*? .*?\/ ?>|br|hr|input|!--|wbr)[a-z]+.*?>|<([a-z]+).*?<\/\1>/i.test(h)) { var R = (new DOMParser).parseFromString(h.toString(), "text/html").documentElement.textContent, _ = R.replace(A, I); R = R.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), P = h.replace(new RegExp("(>\\s*)(".concat(R, ")(\\s*)"), "gm"), "$1".concat(_, "$3")) } else P = h.toString().replace(A, I); // console.log('格式化高亮搜索',t,e,i,o,h) h = L.calculateObjectValue(a, a.searchHighlightFormatter, [h, s.searchText,t,e,i,o], P) } if (t["_".concat(i, "_data")] && !L.isEmptyObject(t["_".concat(i, "_data")])) for (var D = 0, V = Object.entries(t["_".concat(i, "_data")]); D < V.length; D++) { var F = B(V[D], 2), N = F[0], E = F[1]; if ("index" === N) return; m += " data-".concat(N, '="').concat(E, '"') } if (a.checkbox || a.radio) { d = a.checkbox ? "checkbox" : d, d = a.radio ? "radio" : d; var H = a.class || "", q = L.isObject(h) && h.hasOwnProperty("checked") ? h.checked : (!0 === h || c) && !1 !== h, U = !a.checkboxEnabled || h && h.disabled; l = [s.options.cardView ? '
    ') : '"), '"), s.header.formatters[o] && "string" == typeof h ? h : "", s.options.cardView ? "
    " : ""].join(""), t[s.header.stateField] = !0 === h || !!c || h && h.checked } else if (s.options.cardView) { var z = s.options.showHeader ? '").concat(L.getFieldTitle(s.columns, i), "") : ""; l = '
    '.concat(z, '").concat(h, "
    "), s.options.smartDisplay && "" === h && (l = '
    ') } else l = "").concat(h, ""); n.push(l) } })), O && "right" === this.options.detailViewAlign && n.push(O), this.options.cardView && n.push("
    "), n.push(""), n.join("") } } }, { key: "initBody", value: function(t, e) { var i = this, o = this.getData(); this.trigger("pre-body", o), this.$body = this.$el.find(">tbody"), this.$body.length || (this.$body = I("").appendTo(this.$el)), this.options.pagination && "server" !== this.options.sidePagination || (this.pageFrom = 1, this.pageTo = o.length); var s = [], n = I(document.createDocumentFragment()), a = !1, r = []; this.autoMergeCells = L.checkAutoMergeCells(o.slice(this.pageFrom - 1, this.pageTo)); for (var l = this.pageFrom - 1; l < this.pageTo; l++) { var c = o[l], h = this.initRow(c, l, o, n); if (a = a || !!h, h && "string" == typeof h) { var d = this.options.uniqueId; if (d && c.hasOwnProperty(d)) { var u = c[d], p = this.$body.find(L.sprintf('> tr[data-uniqueid="%s"][data-has-detail-view]', u)).next(); p.is("tr.detail-view") && (r.push(l), e && u === e || (h += p[0].outerHTML)) } this.options.virtualScroll ? s.push(h) : n.append(h) } } a ? this.options.virtualScroll ? (this.virtualScroll && this.virtualScroll.destroy(), this.virtualScroll = new K({ rows: s, fixedScroll: t, scrollEl: this.$tableBody[0], contentEl: this.$body[0], itemHeight: this.options.virtualScrollItemHeight, callback: function(t, e) { i.fitHeader(), i.initBodyEvent(), i.trigger("virtual-scroll", t, e) } })) : this.$body.html(n) : this.$body.html(''.concat(L.sprintf('%s', this.getVisibleFields().length + L.getDetailViewIndexOffset(this.options), this.options.formatNoMatches()), "")), r.forEach((function(t) { i.expandRow(t) })), t || this.scrollTo(0), this.initBodyEvent(), this.initFooter(), this.resetView(), this.updateSelected(), "server" !== this.options.sidePagination && (this.options.totalRows = o.length), this.trigger("post-body", o) } }, { key: "initBodyEvent", value: function() { var t = this; this.$body.find("> tr[data-index] > td").off("click dblclick").on("click dblclick", (function(e) { var i = I(e.currentTarget); if (!(i.find(".detail-icon").length || i.index() - L.getDetailViewIndexOffset(t.options) < 0)) { var o = i.parent(), s = I(e.target).parents(".card-views").children(), n = I(e.target).parents(".card-view"), a = o.data("index"), r = t.data[a], l = t.options.cardView ? s.index(n) : i[0].cellIndex, c = t.getVisibleFields()[l - L.getDetailViewIndexOffset(t.options)], h = t.columns[t.fieldsColumnsIndex[c]], d = L.getItemField(r, c, t.options.escape, h.escape); if (t.trigger("click" === e.type ? "click-cell" : "dbl-click-cell", c, d, r, i), t.trigger("click" === e.type ? "click-row" : "dbl-click-row", r, o, c), "click" === e.type && t.options.clickToSelect && h.clickToSelect && !L.calculateObjectValue(t.options, t.options.ignoreClickToSelectOn, [e.target])) { var u = o.find(L.sprintf('[name="%s"]', t.options.selectItemName)); u.length && u[0].click() } "click" === e.type && t.options.detailViewByClick && t.toggleDetailView(a, t.header.detailFormatters[t.fieldsColumnsIndex[c]]) } })).off("mousedown").on("mousedown", (function(e) { t.multipleSelectRowCtrlKey = e.ctrlKey || e.metaKey, t.multipleSelectRowShiftKey = e.shiftKey })), this.$body.find("> tr[data-index] > td > .detail-icon").off("click").on("click", (function(e) { return e.preventDefault(), t.toggleDetailView(I(e.currentTarget).parent().parent().data("index")), !1 })), this.$selectItem = this.$body.find(L.sprintf('[name="%s"]', this.options.selectItemName)), this.$selectItem.off("click").on("click", (function(e) { e.stopImmediatePropagation(); var i = I(e.currentTarget); t._toggleCheck(i.prop("checked"), i.data("index")) })), this.header.events.forEach((function(e, i) { var o = e; if (o) { if ("string" == typeof o && (o = L.calculateObjectValue(null, o)), !o) throw new Error("Unknown event in the scope: ".concat(e)); var s = t.header.fields[i], n = t.getVisibleFields().indexOf(s); if (-1 !== n) { n += L.getDetailViewIndexOffset(t.options); var a = function(e) { if (!o.hasOwnProperty(e)) return 1; var i = o[e]; t.$body.find(">tr:not(.no-records-found)").each((function(o, a) { var r = I(a), l = r.find(t.options.cardView ? ".card-views>.card-view" : ">td").eq(n), c = e.indexOf(" "), h = e.substring(0, c), d = e.substring(c + 1); l.find(d).off(h).on(h, (function(e) { var o = r.data("index"), n = t.data[o], a = n[s]; i.apply(t, [e, a, n, o]) })) })) }; for (var r in o) a(r) } } })) } }, { key: "initServer", value: function(t, e, i) { var o = this, s = {}, n = this.header.fields.indexOf(this.options.sortName), a = { searchText: this.searchText, sortName: this.options.sortName, sortOrder: this.options.sortOrder }; if (this.header.sortNames[n] && (a.sortName = this.header.sortNames[n]), this.options.pagination && "server" === this.options.sidePagination && (a.pageSize = this.options.pageSize === this.options.formatAllRows() ? this.options.totalRows : this.options.pageSize, a.pageNumber = this.options.pageNumber), i || this.options.url || this.options.ajax) { if ("limit" === this.options.queryParamsType && (a = { search: a.searchText, sort: a.sortName, order: a.sortOrder }, this.options.pagination && "server" === this.options.sidePagination && (a.offset = this.options.pageSize === this.options.formatAllRows() ? 0 : this.options.pageSize * (this.options.pageNumber - 1), a.limit = this.options.pageSize, 0 !== a.limit && this.options.pageSize !== this.options.formatAllRows() || delete a.limit)), this.options.search && "server" === this.options.sidePagination && this.options.searchable && this.columns.filter((function(t) { return t.searchable })).length) { a.searchable = []; var r, l = V(this.columns); try { for (l.s(); !(r = l.n()).done;) { var c = r.value; !c.checkbox && c.searchable && (this.options.visibleSearch && c.visible || !this.options.visibleSearch) && a.searchable.push(c.field) } } catch (t) { l.e(t) } finally { l.f() } } if (L.isEmptyObject(this.filterColumnsPartial) || (a.filter = JSON.stringify(this.filterColumnsPartial, null)), L.extend(a, e || {}), !1 !== (s = L.calculateObjectValue(this.options, this.options.queryParams, [a], s))) { t || this.showLoading(); var h = L.extend({}, L.calculateObjectValue(null, this.options.ajaxOptions), { type: this.options.method, url: i || this.options.url, data: "application/json" === this.options.contentType && "post" === this.options.method ? JSON.stringify(s) : s, cache: this.options.cache, contentType: this.options.contentType, dataType: this.options.dataType, success: function(e, i, s) { var n = L.calculateObjectValue(o.options, o.options.responseHandler, [e, s], e); "client" === o.options.sidePagination && o.options.paginationLoadMore && (o._paginationLoaded = o.data.length === n.length), o.load(n), o.trigger("load-success", n, s && s.status, s), t || o.hideLoading(), "server" === o.options.sidePagination && o.options.pageNumber > 1 && n[o.options.totalField] > 0 && !n[o.options.dataField].length && o.updatePagination() }, error: function(e) { if (e && 0 === e.status && o._xhrAbort) o._xhrAbort = !1; else { var i = []; "server" === o.options.sidePagination && ((i = {})[o.options.totalField] = 0, i[o.options.dataField] = []), o.load(i), o.trigger("load-error", e && e.status, e), t || o.hideLoading() } } }); return this.options.ajax ? L.calculateObjectValue(this, this.options.ajax, [h], null) : (this._xhr && 4 !== this._xhr.readyState && (this._xhrAbort = !0, this._xhr.abort()), this._xhr = I.ajax(h)), s } } } }, { key: "initSearchText", value: function() { if (this.options.search && (this.searchText = "", "" !== this.options.searchText)) { var t = L.getSearchInput(this); t.val(this.options.searchText), this.onSearch({ currentTarget: t, firedByInitSearchText: !0 }) } } }, { key: "getCaret", value: function() { var t = this; this.$header.find("th").each((function(e, i) { I(i).find(".sortable").removeClass("desc asc").addClass(I(i).data("field") === t.options.sortName ? t.options.sortOrder : "both") })) } }, { key: "updateSelected", value: function() { var t = this.$selectItem.filter(":enabled").length && this.$selectItem.filter(":enabled").length === this.$selectItem.filter(":enabled").filter(":checked").length; this.$selectAll.add(this.$selectAll_).prop("checked", t), this.$selectItem.each((function(t, e) { I(e).closest("tr")[I(e).prop("checked") ? "addClass" : "removeClass"]("selected") })) } }, { key: "updateRows", value: function() { var t = this; this.$selectItem.each((function(e, i) { t.data[I(i).data("index")][t.header.stateField] = I(i).prop("checked") })) } }, { key: "resetRows", value: function() { var t, e = V(this.data); try { for (e.s(); !(t = e.n()).done;) { var i = t.value; this.$selectAll.prop("checked", !1), this.$selectItem.prop("checked", !1), this.header.stateField && (i[this.header.stateField] = !1) } } catch (t) { e.e(t) } finally { e.f() } this.initHiddenRows() } }, { key: "trigger", value: function(e) { for (var i, o, s = "".concat(e, ".bs.table"), n = arguments.length, a = new Array(n > 1 ? n - 1 : 0), r = 1; r < n; r++) a[r - 1] = arguments[r]; (i = this.options)[t.EVENTS[s]].apply(i, [].concat(a, [this])), this.$el.trigger(I.Event(s, { sender: this }), a), (o = this.options).onAll.apply(o, [s].concat([].concat(a, [this]))), this.$el.trigger(I.Event("all.bs.table", { sender: this }), [s, a]) } }, { key: "resetHeader", value: function() { var t = this; clearTimeout(this.timeoutId_), this.timeoutId_ = setTimeout((function() { return t.fitHeader() }), this.$el.is(":hidden") ? 100 : 0) } }, { key: "fitHeader", value: function() { var t = this; if (this.$el.is(":hidden")) this.timeoutId_ = setTimeout((function() { return t.fitHeader() }), 100); else { var e = this.$tableBody.get(0), i = this.hasScrollBar && e.scrollHeight > e.clientHeight + this.$header.outerHeight() ? L.getScrollBarWidth() : 0; this.$el.css("margin-top", -this.$header.outerHeight()); var o = this.$tableHeader.find(":focus"); if (o.length > 0) { var s = o.parents("th"); if (s.length > 0) { var n = s.attr("data-field"); if (void 0 !== n) { var a = this.$header.find("[data-field='".concat(n, "']")); a.length > 0 && a.find(":input").addClass("focus-temp") } } } this.$header_ = this.$header.clone(!0, !0), this.$selectAll_ = this.$header_.find('[name="btSelectAll"]'), this.$tableHeader.css("margin-right", i).find("table").css("width", this.$el.outerWidth()).html("").attr("class", this.$el.attr("class")).append(this.$header_), this.$tableLoading.css("width", this.$el.outerWidth()); var r = I(".focus-temp:visible:eq(0)"); r.length > 0 && (r.focus(), this.$header.find(".focus-temp").removeClass("focus-temp")), this.$header.find("th[data-field]").each((function(e, i) { t.$header_.find(L.sprintf('th[data-field="%s"]', I(i).data("field"))).data(I(i).data()) })); for (var l = this.getVisibleFields(), c = this.$header_.find("th"), h = this.$body.find(">tr:not(.no-records-found,.virtual-scroll-top)").eq(0); h.length && h.find('>td[colspan]:not([colspan="1"])').length;) h = h.next(); var d = h.find("> *").length; h.find("> *").each((function(e, i) { var o = I(i); if (L.hasDetailViewIcon(t.options) && (0 === e && "right" !== t.options.detailViewAlign || e === d - 1 && "right" === t.options.detailViewAlign)) { var s = c.filter(".detail"), n = s.innerWidth() - s.find(".fht-cell").width(); s.find(".fht-cell").width(o.innerWidth() - n) } else { var a = e - L.getDetailViewIndexOffset(t.options), r = t.$header_.find(L.sprintf('th[data-field="%s"]', l[a])); r.length > 1 && (r = I(c[o[0].cellIndex])); var h = r.innerWidth() - r.find(".fht-cell").width(); r.find(".fht-cell").width(o.innerWidth() - h) } })), this.horizontalScroll(), this.trigger("post-header") } } }, { key: "initFooter", value: function() { if (this.options.showFooter && !this.options.cardView) { var t = this.getData(), e = [], i = ""; L.hasDetailViewIcon(this.options) && (i = '
    '), i && "right" !== this.options.detailViewAlign && e.push(i); var o, s = V(this.columns); try { for (s.s(); !(o = s.n()).done;) { var n, a, r = o.value, l = [], c = {}, h = L.sprintf(' class="%s"', r.class); if (!(!r.visible || this.footerData && this.footerData.length > 0 && !(r.field in this.footerData[0]))) { if (this.options.cardView && !r.cardVisible) return; if (n = L.sprintf("text-align: %s; ", r.falign ? r.falign : r.align), a = L.sprintf("vertical-align: %s; ", r.valign), (c = L.calculateObjectValue(null, r.footerStyle || this.options.footerStyle, [r])) && c.css) for (var d = 0, u = Object.entries(c.css); d < u.length; d++) { var p = B(u[d], 2), f = p[0], g = p[1]; l.push("".concat(f, ": ").concat(g)) } c && c.classes && (h = L.sprintf(' class="%s"', r.class ? [r.class, c.classes].join(" ") : c.classes)), e.push(" 0 && (v = this.footerData[0]["_".concat(r.field, "_colspan")] || 0), v && e.push(' colspan="'.concat(v, '" ')), e.push(">"), e.push('
    '); var m = ""; this.footerData && this.footerData.length > 0 && (m = this.footerData[0][r.field] || ""), e.push(L.calculateObjectValue(r, r.footerFormatter, [t, m], m)), e.push("
    "), e.push('
    '), e.push("
    "), e.push("") } } } catch (t) { s.e(t) } finally { s.f() } i && "right" === this.options.detailViewAlign && e.push(i), this.options.height || this.$tableFooter.length || (this.$el.append(""), this.$tableFooter = this.$el.find("tfoot")), this.$tableFooter.find("tr").length || this.$tableFooter.html("
    "), this.$tableFooter.find("tr").html(e.join("")), this.trigger("post-footer", this.$tableFooter) } } }, { key: "fitFooter", value: function() { var t = this; if (this.$el.is(":hidden")) setTimeout((function() { return t.fitFooter() }), 100); else { var e = this.$tableBody.get(0), i = this.hasScrollBar && e.scrollHeight > e.clientHeight + this.$header.outerHeight() ? L.getScrollBarWidth() : 0; this.$tableFooter.css("margin-right", i).find("table").css("width", this.$el.outerWidth()).attr("class", this.$el.attr("class")); var o = this.$tableFooter.find("th"), s = this.$body.find(">tr:first-child:not(.no-records-found)"); for (o.find(".fht-cell").width("auto"); s.length && s.find('>td[colspan]:not([colspan="1"])').length;) s = s.next(); var n = s.find("> *").length; s.find("> *").each((function(e, i) { var s = I(i); if (L.hasDetailViewIcon(t.options) && (0 === e && "left" === t.options.detailViewAlign || e === n - 1 && "right" === t.options.detailViewAlign)) { var a = o.filter(".detail"), r = a.innerWidth() - a.find(".fht-cell").width(); a.find(".fht-cell").width(s.innerWidth() - r) } else { var l = o.eq(e), c = l.innerWidth() - l.find(".fht-cell").width(); l.find(".fht-cell").width(s.innerWidth() - c) } })), this.horizontalScroll() } } }, { key: "horizontalScroll", value: function() { var t = this; this.$tableBody.off("scroll").on("scroll", (function() { var e = t.$tableBody.scrollLeft(); t.options.showHeader && t.options.height && t.$tableHeader.scrollLeft(e), t.options.showFooter && !t.options.cardView && t.$tableFooter.scrollLeft(e), t.trigger("scroll-body", t.$tableBody) })) } }, { key: "getVisibleFields", value: function() { var t, e = [], i = V(this.header.fields); try { for (i.s(); !(t = i.n()).done;) { var o = t.value, s = this.columns[this.fieldsColumnsIndex[o]]; s && s.visible && (!this.options.cardView || s.cardVisible) && e.push(o) } } catch (t) { i.e(t) } finally { i.f() } return e } }, { key: "initHiddenRows", value: function() { this.hiddenRows = [] } }, { key: "getOptions", value: function() { var t = L.extend({}, this.options); return delete t.data, L.extend(!0, {}, t) } }, { key: "refreshOptions", value: function(t) { L.compareObjects(this.options, t, !0) || (this.options = L.extend(this.options, t), this.trigger("refresh-options", this.options), this.destroy(), this.init()) } }, { key: "getData", value: function(t) { var e = this, i = this.options.data; if (!(this.searchText || this.options.customSearch || void 0 !== this.options.sortName || this.enableCustomSort) && L.isEmptyObject(this.filterColumns) && "function" != typeof this.options.filterOptions.filterAlgorithm && L.isEmptyObject(this.filterColumnsPartial) || t && t.unfiltered || (i = this.data), t && !t.includeHiddenRows) { var o = this.getHiddenRows(); i = i.filter((function(t) { return -1 === L.findIndex(o, t) })) } return t && t.useCurrentPage && (i = i.slice(this.pageFrom - 1, this.pageTo)), t && t.formatted ? i.map((function(t) { for (var i = 0, o = Object.entries(t); i < o.length; i++) { var s = B(o[i], 2), n = s[0], a = s[1], r = e.columns[e.fieldsColumnsIndex[n]]; if (r) return L.calculateObjectValue(r, e.header.formatters[r.fieldIndex], [a, t, t.index, r.field], a) } })) : i } }, { key: "getSelections", value: function() { var t = this; return (this.options.maintainMetaData ? this.options.data : this.data).filter((function(e) { return !0 === e[t.header.stateField] })) } }, { key: "load", value: function(t) { var e, i = t; this.options.pagination && "server" === this.options.sidePagination && (this.options.totalRows = i[this.options.totalField], this.options.totalNotFiltered = i[this.options.totalNotFilteredField], this.footerData = i[this.options.footerField] ? [i[this.options.footerField]] : void 0), e = this.options.fixedScroll || i.fixedScroll, i = Array.isArray(i) ? i : i[this.options.dataField], this.initData(i), this.initSearch(), this.initPagination(), this.initBody(e) } }, { key: "append", value: function(t) { this.initData(t, "append"), this.initSearch(), this.initPagination(), this.initSort(), this.initBody(!0) } }, { key: "prepend", value: function(t) { this.initData(t, "prepend"), this.initSearch(), this.initPagination(), this.initSort(), this.initBody(!0) } }, { key: "remove", value: function(t) { for (var e = 0, i = this.options.data.length - 1; i >= 0; i--) { var o = this.options.data[i], s = L.getItemField(o, t.field, this.options.escape, o.escape); void 0 === s && "$index" !== t.field || (!o.hasOwnProperty(t.field) && "$index" === t.field && t.values.includes(i) || t.values.includes(s)) && (e++, this.options.data.splice(i, 1)) } e && ("server" === this.options.sidePagination && (this.options.totalRows -= e, this.data = F(this.options.data)), this.initSearch(), this.initPagination(), this.initSort(), this.initBody(!0)) } }, { key: "removeAll", value: function() { this.options.data.length > 0 && (this.options.data.splice(0, this.options.data.length), this.initSearch(), this.initPagination(), this.initBody(!0)) } }, { key: "insertRow", value: function(t) { t.hasOwnProperty("index") && t.hasOwnProperty("row") && (this.options.data.splice(t.index, 0, t.row), this.initSearch(), this.initPagination(), this.initSort(), this.initBody(!0)) } }, { key: "updateRow", value: function(t) { var e, i = V(Array.isArray(t) ? t : [t]); try { for (i.s(); !(e = i.n()).done;) { var o = e.value; o.hasOwnProperty("index") && o.hasOwnProperty("row") && (o.hasOwnProperty("replace") && o.replace ? this.options.data[o.index] = o.row : L.extend(this.options.data[o.index], o.row)) } } catch (t) { i.e(t) } finally { i.f() } this.initSearch(), this.initPagination(), this.initSort(), this.initBody(!0) } }, { key: "getRowByUniqueId", value: function(t) { var e, i, o = this.options.uniqueId, s = t, n = null; for (e = this.options.data.length - 1; e >= 0; e--) { i = this.options.data[e]; var a = L.getItemField(i, o, this.options.escape, i.escape); if (void 0 !== a && ("string" == typeof a ? s = t.toString() : "number" == typeof a && (Number(a) === a && a % 1 == 0 ? s = parseInt(t, 10) : a === Number(a) && 0 !== a && (s = parseFloat(t))), a === s)) { n = i; break } } return n } }, { key: "updateByUniqueId", value: function(t) { var e, i = null, o = V(Array.isArray(t) ? t : [t]); try { for (o.s(); !(e = o.n()).done;) { var s = e.value; if (s.hasOwnProperty("id") && s.hasOwnProperty("row")) { var n = this.options.data.indexOf(this.getRowByUniqueId(s.id)); - 1 !== n && (s.hasOwnProperty("replace") && s.replace ? this.options.data[n] = s.row : L.extend(this.options.data[n], s.row), i = s.id) } } } catch (t) { o.e(t) } finally { o.f() } this.initSearch(), this.initPagination(), this.initSort(), this.initBody(!0, i) } }, { key: "removeByUniqueId", value: function(t) { var e = this.options.data.length, i = this.getRowByUniqueId(t); i && this.options.data.splice(this.options.data.indexOf(i), 1), e !== this.options.data.length && ("server" === this.options.sidePagination && (this.options.totalRows -= 1, this.data = F(this.options.data)), this.initSearch(), this.initPagination(), this.initBody(!0)) } }, { key: "_updateCellOnly", value: function(t, e) { var i = this.initRow(this.options.data[e], e), o = this.getVisibleFields().indexOf(t); - 1 !== o && (o += L.getDetailViewIndexOffset(this.options), this.$body.find(">tr[data-index=".concat(e, "]")).find(">td:eq(".concat(o, ")")).replaceWith(I(i).find(">td:eq(".concat(o, ")"))), this.initBodyEvent(), this.initFooter(), this.resetView(), this.updateSelected()) } }, { key: "updateCell", value: function(t) { t.hasOwnProperty("index") && t.hasOwnProperty("field") && t.hasOwnProperty("value") && (this.options.data[t.index][t.field] = t.value, !1 !== t.reinit ? (this.initSort(), this.initBody(!0)) : this._updateCellOnly(t.field, t.index)) } }, { key: "updateCellByUniqueId", value: function(t) { var e = this; (Array.isArray(t) ? t : [t]).forEach((function(t) { var i = t.id, o = t.field, s = t.value, n = e.options.data.indexOf(e.getRowByUniqueId(i)); - 1 !== n && (e.options.data[n][o] = s) })), !1 !== t.reinit ? (this.initSort(), this.initBody(!0)) : this._updateCellOnly(t.field, this.options.data.indexOf(this.getRowByUniqueId(t.id))) } }, { key: "showRow", value: function(t) { this._toggleRow(t, !0) } }, { key: "hideRow", value: function(t) { this._toggleRow(t, !1) } }, { key: "_toggleRow", value: function(t, e) { var i; if (t.hasOwnProperty("index") ? i = this.getData()[t.index] : t.hasOwnProperty("uniqueId") && (i = this.getRowByUniqueId(t.uniqueId)), i) { var o = L.findIndex(this.hiddenRows, i); e || -1 !== o ? e && o > -1 && this.hiddenRows.splice(o, 1) : this.hiddenRows.push(i), this.initBody(!0), this.initPagination() } } }, { key: "getHiddenRows", value: function(t) { if (t) return this.initHiddenRows(), this.initBody(!0), void this.initPagination(); var e, i = [], o = V(this.getData()); try { for (o.s(); !(e = o.n()).done;) { var s = e.value; this.hiddenRows.includes(s) && i.push(s) } } catch (t) { o.e(t) } finally { o.f() } return this.hiddenRows = i, i } }, { key: "showColumn", value: function(t) { var e = this; (Array.isArray(t) ? t : [t]).forEach((function(t) { e._toggleColumn(e.fieldsColumnsIndex[t], !0, !0) })) } }, { key: "hideColumn", value: function(t) { var e = this; (Array.isArray(t) ? t : [t]).forEach((function(t) { e._toggleColumn(e.fieldsColumnsIndex[t], !1, !0) })) } }, { key: "_toggleColumn", value: function(t, e, i) { if (void 0 !== t && this.columns[t].visible !== e && (this.columns[t].visible = e, this.initHeader(), this.initSearch(), this.initPagination(), this.initBody(), this.options.showColumns)) { var o = this.$toolbar.find('.keep-open input:not(".toggle-all")').prop("disabled", !1); i && o.filter(L.sprintf('[value="%s"]', t)).prop("checked", e), o.filter(":checked").length <= this.options.minimumCountColumns && o.filter(":checked").prop("disabled", !0) } } }, { key: "getVisibleColumns", value: function() { var t = this; return this.columns.filter((function(e) { return e.visible && !t.isSelectionColumn(e) })) } }, { key: "getHiddenColumns", value: function() { return this.columns.filter((function(t) { return !t.visible })) } }, { key: "isSelectionColumn", value: function(t) { return t.radio || t.checkbox } }, { key: "showAllColumns", value: function() { this._toggleAllColumns(!0) } }, { key: "hideAllColumns", value: function() { this._toggleAllColumns(!1) } }, { key: "_toggleAllColumns", value: function(t) { var e, i = this, o = V(this.columns.slice().reverse()); try { for (o.s(); !(e = o.n()).done;) { var s = e.value; if (s.switchable) { if (!t && this.options.showColumns && this.getVisibleColumns().filter((function(t) { return t.switchable })).length === this.options.minimumCountColumns) continue; s.visible = t } } } catch (t) { o.e(t) } finally { o.f() } if (this.initHeader(), this.initSearch(), this.initPagination(), this.initBody(), this.options.showColumns) { var n = this.$toolbar.find('.keep-open input[type="checkbox"]:not(".toggle-all")').prop("disabled", !1); t ? n.prop("checked", t) : n.get().reverse().forEach((function(e) { n.filter(":checked").length > i.options.minimumCountColumns && I(e).prop("checked", t) })), n.filter(":checked").length <= this.options.minimumCountColumns && n.filter(":checked").prop("disabled", !0) } } }, { key: "mergeCells", value: function(t) { var e, i, o = t.index, s = this.getVisibleFields().indexOf(t.field), n = t.rowspan || 1, a = t.colspan || 1, r = this.$body.find(">tr[data-index]"); s += L.getDetailViewIndexOffset(this.options); var l = r.eq(o).find(">td").eq(s); if (!(o < 0 || s < 0 || o >= this.data.length)) { for (e = o; e < o + n; e++) for (i = s; i < s + a; i++) r.eq(e).find(">td").eq(i).hide(); l.attr("rowspan", n).attr("colspan", a).show() } } }, { key: "checkAll", value: function() { this._toggleCheckAll(!0) } }, { key: "uncheckAll", value: function() { this._toggleCheckAll(!1) } }, { key: "_toggleCheckAll", value: function(t) { var e = this.getSelections(); this.$selectAll.add(this.$selectAll_).prop("checked", t), this.$selectItem.filter(":enabled").prop("checked", t), this.updateRows(), this.updateSelected(); var i = this.getSelections(); t ? this.trigger("check-all", i, e) : this.trigger("uncheck-all", i, e) } }, { key: "checkInvert", value: function() { var t = this.$selectItem.filter(":enabled"), e = t.filter(":checked"); t.each((function(t, e) { I(e).prop("checked", !I(e).prop("checked")) })), this.updateRows(), this.updateSelected(), this.trigger("uncheck-some", e), e = this.getSelections(), this.trigger("check-some", e) } }, { key: "check", value: function(t) { this._toggleCheck(!0, t) } }, { key: "uncheck", value: function(t) { this._toggleCheck(!1, t) } }, { key: "_toggleCheck", value: function(t, e) { var i = this.$selectItem.filter('[data-index="'.concat(e, '"]')), o = this.data[e]; if (i.is(":radio") || this.options.singleSelect || this.options.multipleSelectRow && !this.multipleSelectRowCtrlKey && !this.multipleSelectRowShiftKey) { var s, n = V(this.options.data); try { for (n.s(); !(s = n.n()).done;) { s.value[this.header.stateField] = !1 } } catch (t) { n.e(t) } finally { n.f() } this.$selectItem.filter(":checked").not(i).prop("checked", !1) } if (o[this.header.stateField] = t, this.options.multipleSelectRow) { if (this.multipleSelectRowShiftKey && this.multipleSelectRowLastSelectedIndex >= 0) for (var a = B(this.multipleSelectRowLastSelectedIndex < e ? [this.multipleSelectRowLastSelectedIndex, e] : [e, this.multipleSelectRowLastSelectedIndex], 2), r = a[0], l = a[1], c = r + 1; c < l; c++) this.data[c][this.header.stateField] = !0, this.$selectItem.filter('[data-index="'.concat(c, '"]')).prop("checked", !0); this.multipleSelectRowCtrlKey = !1, this.multipleSelectRowShiftKey = !1, this.multipleSelectRowLastSelectedIndex = t ? e : -1 } i.prop("checked", t), this.updateSelected(), this.trigger(t ? "check" : "uncheck", this.data[e], i) } }, { key: "checkBy", value: function(t) { this._toggleCheckBy(!0, t) } }, { key: "uncheckBy", value: function(t) { this._toggleCheckBy(!1, t) } }, { key: "_toggleCheckBy", value: function(t, e) { var i = this; if (e.hasOwnProperty("field") && e.hasOwnProperty("values")) { var o = []; this.data.forEach((function(s, n) { if (!s.hasOwnProperty(e.field)) return !1; if (e.values.includes(s[e.field])) { var a = i.$selectItem.filter(":enabled").filter(L.sprintf('[data-index="%s"]', n)), r = !!e.hasOwnProperty("onlyCurrentPage") && e.onlyCurrentPage; if (!(a = t ? a.not(":checked") : a.filter(":checked")).length && r) return; a.prop("checked", t), s[i.header.stateField] = t, o.push(s), i.trigger(t ? "check" : "uncheck", s, a) } })), this.updateSelected(), this.trigger(t ? "check-some" : "uncheck-some", o) } } }, { key: "refresh", value: function(t) { t && t.url && (this.options.url = t.url), t && t.pageNumber && (this.options.pageNumber = t.pageNumber), t && t.pageSize && (this.options.pageSize = t.pageSize), this.trigger("refresh", this.initServer(t && t.silent, t && t.query, t && t.url)) } }, { key: "destroy", value: function() { this.$el.insertBefore(this.$container), I(this.options.toolbar).insertBefore(this.$el), this.$container.next().remove(), this.$container.remove(), this.$el.html(this.$el_.html()).css("margin-top", "0").attr("class", this.$el_.attr("class") || ""); var t = L.getEventName("resize.bootstrap-table", this.$el.attr("id")); I(window).off(t) } }, { key: "resetView", value: function(t) { var e = 0; if (t && t.height && (this.options.height = t.height), this.$tableContainer.toggleClass("has-card-view", this.options.cardView), this.options.height) { var i = this.$tableBody.get(0); this.hasScrollBar = i.scrollWidth > i.clientWidth } if (!this.options.cardView && this.options.showHeader && this.options.height ? (this.$tableHeader.show(), this.resetHeader(), e += this.$header.outerHeight(!0) + 1) : (this.$tableHeader.hide(), this.trigger("post-header")), !this.options.cardView && this.options.showFooter && (this.$tableFooter.show(), this.fitFooter(), this.options.height && (e += this.$tableFooter.outerHeight(!0))), this.$container.hasClass("fullscreen")) this.$tableContainer.css("height", ""), this.$tableContainer.css("width", ""); else if (this.options.height) { this.$tableBorder && (this.$tableBorder.css("width", ""), this.$tableBorder.css("height", "")); var o = this.$toolbar.outerHeight(!0), s = this.$pagination.outerHeight(!0), n = this.options.height - o - s, a = this.$tableBody.find(">table"), r = a.outerHeight(); if (this.$tableContainer.css("height", "".concat(n, "px")), this.$tableBorder && a.is(":visible")) { var l = n - r - 2; this.hasScrollBar && (l -= L.getScrollBarWidth()), this.$tableBorder.css("width", "".concat(a.outerWidth(), "px")), this.$tableBorder.css("height", "".concat(l, "px")) } } this.options.cardView ? (this.$el.css("margin-top", "0"), this.$tableContainer.css("padding-bottom", "0"), this.$tableFooter.hide()) : (this.getCaret(), this.$tableContainer.css("padding-bottom", "".concat(e, "px"))), this.trigger("reset-view") } }, { key: "showLoading", value: function() { this.$tableLoading.toggleClass("open", !0); var t = this.options.loadingFontSize; "auto" === this.options.loadingFontSize && (t = .04 * this.$tableLoading.width(), t = Math.max(12, t), t = Math.min(32, t), t = "".concat(t, "px")), this.$tableLoading.find(".loading-text").css("font-size", t) } }, { key: "hideLoading", value: function() { this.$tableLoading.toggleClass("open", !1) } }, { key: "togglePagination", value: function() { this.options.pagination = !this.options.pagination; var t = this.options.showButtonIcons ? this.options.pagination ? this.options.icons.paginationSwitchDown : this.options.icons.paginationSwitchUp : "", e = this.options.showButtonText ? this.options.pagination ? this.options.formatPaginationSwitchUp() : this.options.formatPaginationSwitchDown() : ""; this.$toolbar.find('button[name="paginationSwitch"]').html("".concat(L.sprintf(this.constants.html.icon, this.options.iconsPrefix, t), " ").concat(e)), this.updatePagination(), this.trigger("toggle-pagination", this.options.pagination) } }, { key: "toggleFullscreen", value: function() { this.$el.closest(".bootstrap-table").toggleClass("fullscreen"), this.resetView() } }, { key: "toggleView", value: function() { this.options.cardView = !this.options.cardView, this.initHeader(); var t = this.options.showButtonIcons ? this.options.cardView ? this.options.icons.toggleOn : this.options.icons.toggleOff : "", e = this.options.showButtonText ? this.options.cardView ? this.options.formatToggleOff() : this.options.formatToggleOn() : ""; this.$toolbar.find('button[name="toggle"]').html("".concat(L.sprintf(this.constants.html.icon, this.options.iconsPrefix, t), " ").concat(e)).attr("aria-label", e).attr("title", e), this.initBody(), this.trigger("toggle", this.options.cardView) } }, { key: "resetSearch", value: function(t) { var e = L.getSearchInput(this), i = t || ""; e.val(i), this.searchText = i, this.onSearch({ currentTarget: e }, !1) } }, { key: "filterBy", value: function(t, e) { this.filterOptions = L.isEmptyObject(e) ? this.options.filterOptions : L.extend(this.options.filterOptions, e), this.filterColumns = L.isEmptyObject(t) ? {} : t, this.options.pageNumber = 1, this.initSearch(), this.updatePagination() } }, { key: "scrollTo", value: function(t) { var e = { unit: "px", value: 0 }; "object" === E(t) ? e = Object.assign(e, t) : "string" == typeof t && "bottom" === t ? e.value = this.$tableBody[0].scrollHeight : "string" != typeof t && "number" != typeof t || (e.value = t); var i = e.value; "rows" === e.unit && (i = 0, this.$body.find("> tr:lt(".concat(e.value, ")")).each((function(t, e) { i += I(e).outerHeight(!0) }))), this.$tableBody.scrollTop(i) } }, { key: "getScrollPosition", value: function() { return this.$tableBody.scrollTop() } }, { key: "selectPage", value: function(t) { t > 0 && t <= this.options.totalPages && (this.options.pageNumber = t, this.updatePagination()) } }, { key: "prevPage", value: function() { this.options.pageNumber > 1 && (this.options.pageNumber--, this.updatePagination()) } }, { key: "nextPage", value: function() { this.options.pageNumber < this.options.totalPages && (this.options.pageNumber++, this.updatePagination()) } }, { key: "toggleDetailView", value: function(t, e) { this.$body.find(L.sprintf('> tr[data-index="%s"]', t)).next().is("tr.detail-view") ? this.collapseRow(t) : this.expandRow(t, e), this.resetView() } }, { key: "expandRow", value: function(t, e) { var i = this.data[t], o = this.$body.find(L.sprintf('> tr[data-index="%s"][data-has-detail-view]', t)); if (this.options.detailViewIcon && o.find("a.detail-icon").html(L.sprintf(this.constants.html.icon, this.options.iconsPrefix, this.options.icons.detailClose)), !o.next().is("tr.detail-view")) { o.after(L.sprintf('', o.children("td").length)); var s = o.next().find("td"), n = e || this.options.detailFormatter, a = L.calculateObjectValue(this.options, n, [t, i, s], ""); 1 === s.length && s.append(a), this.trigger("expand-row", t, i, s) } } }, { key: "expandRowByUniqueId", value: function(t) { var e = this.getRowByUniqueId(t); e && this.expandRow(this.data.indexOf(e)) } }, { key: "collapseRow", value: function(t) { var e = this.data[t], i = this.$body.find(L.sprintf('> tr[data-index="%s"][data-has-detail-view]', t)); i.next().is("tr.detail-view") && (this.options.detailViewIcon && i.find("a.detail-icon").html(L.sprintf(this.constants.html.icon, this.options.iconsPrefix, this.options.icons.detailOpen)), this.trigger("collapse-row", t, e, i.next()), i.next().remove()) } }, { key: "collapseRowByUniqueId", value: function(t) { var e = this.getRowByUniqueId(t); e && this.collapseRow(this.data.indexOf(e)) } }, { key: "expandAllRows", value: function() { for (var t = this.$body.find("> tr[data-index][data-has-detail-view]"), e = 0; e < t.length; e++) this.expandRow(I(t[e]).data("index")) } }, { key: "collapseAllRows", value: function() { for (var t = this.$body.find("> tr[data-index][data-has-detail-view]"), e = 0; e < t.length; e++) this.collapseRow(I(t[e]).data("index")) } }, { key: "updateColumnTitle", value: function(t) { t.hasOwnProperty("field") && t.hasOwnProperty("title") && (this.columns[this.fieldsColumnsIndex[t.field]].title = this.options.escape && this.options.escapeTitle ? L.escapeHTML(t.title) : t.title, this.columns[this.fieldsColumnsIndex[t.field]].visible && (this.$header.find("th[data-field]").each((function(e, i) { if (I(i).data("field") === t.field) return I(I(i).find(".th-inner")[0]).html(t.title), !1 })), this.resetView())) } }, { key: "updateFormatText", value: function(t, e) { /^format/.test(t) && this.options[t] && ("string" == typeof e ? this.options[t] = function() { return e } : "function" == typeof e && (this.options[t] = e), this.initToolbar(), this.initPagination(), this.initBody()) } }]) }(); return J.VERSION = G.VERSION, J.DEFAULTS = G.DEFAULTS, J.LOCALES = G.LOCALES, J.COLUMN_DEFAULTS = G.COLUMN_DEFAULTS, J.METHODS = G.METHODS, J.EVENTS = G.EVENTS, I.BootstrapTable = J, I.fn.bootstrapTable = function(t) { for (var e = arguments.length, i = new Array(e > 1 ? e - 1 : 0), o = 1; o < e; o++) i[o - 1] = arguments[o]; var s; return this.each((function(e, o) { var n = I(o).data("bootstrap.table"); if ("string" == typeof t) { var a; if (!G.METHODS.includes(t)) throw new Error("Unknown method: ".concat(t)); if (!n) return; return s = (a = n)[t].apply(a, i), void("destroy" === t && I(o).removeData("bootstrap.table")) } if (n) console.warn("You cannot initialize the table more than once!"); else { var r = L.extend(!0, {}, J.DEFAULTS, I(o).data(), "object" === E(t) && t); n = new I.BootstrapTable(o, r), I(o).data("bootstrap.table", n), n.init() } })), void 0 === s ? this : s }, I.fn.bootstrapTable.Constructor = J, I.fn.bootstrapTable.theme = G.THEME, I.fn.bootstrapTable.VERSION = G.VERSION, I.fn.bootstrapTable.defaults = J.DEFAULTS, I.fn.bootstrapTable.columnDefaults = J.COLUMN_DEFAULTS, I.fn.bootstrapTable.events = J.EVENTS, I.fn.bootstrapTable.locales = J.LOCALES, I.fn.bootstrapTable.methods = J.METHODS, I.fn.bootstrapTable.utils = L, I((function() { I('[data-toggle="table"]').bootstrapTable() })), J }));