1
|
{"version":3,"sources":["../node_modules/bootstrap-table/dist/bootstrap-table.js"],"names":["$","cachedWidth","sprintf","str","args","arguments","flag","i","replace","arg","getPropertyFromOther","list","from","to","value","result","each","item","getFieldIndex","columns","field","index","column","getScrollBarWidth","w1","w2","inner","addClass","outer","append","offsetWidth","css","clientWidth","remove","calculateObjectValue","self","name","defaultValue","func","names","split","length","window","f","apply","this","concat","compareObjects","objectA","objectB","compareLength","objectAProperties","Object","getOwnPropertyNames","objectBProperties","propName","inArray","escapeHTML","text","getRealDataAttr","dataAttr","attr","auxAttr","join","toLowerCase","getItemField","escape","hasOwnProperty","props","p","isIEBrowser","navigator","userAgent","indexOf","match","BootstrapTable","el","options","$el","$el_","clone","timeoutId_","timeoutFooter_","init","DEFAULTS","classes","sortClass","undefined","locale","height","undefinedText","sortName","sortOrder","sortStable","striped","data","totalField","dataField","method","url","ajax","cache","contentType","dataType","ajaxOptions","queryParams","params","queryParamsType","responseHandler","res","pagination","onlyInfoPagination","paginationLoop","sidePagination","totalRows","pageNumber","pageSize","pageList","paginationHAlign","paginationVAlign","paginationDetailHAlign","paginationPreText","paginationNextText","search","searchOnEnterKey","strictSearch","searchAlign","selectItemName","showHeader","showFooter","showColumns","showPaginationSwitch","showRefresh","showToggle","buttonsAlign","smartDisplay","minimumCountColumns","idField","uniqueId","cardView","detailView","detailFormatter","row","trimOnSearch","clickToSelect","singleSelect","toolbar","toolbarAlign","checkboxHeader","sortable","silentSort","maintainSelected","searchTimeOut","searchText","iconSize","buttonsClass","iconsPrefix","icons","paginationSwitchDown","paginationSwitchUp","refresh","toggle","detailOpen","detailClose","customSearch","noop","customSort","rowStyle","rowAttributes","footerStyle","onAll","onClickCell","$element","onDblClickCell","onClickRow","onDblClickRow","onSort","order","onCheck","onUncheck","onCheckAll","rows","onUncheckAll","onCheckSome","onUncheckSome","onLoadSuccess","onLoadError","status","onColumnSwitch","checked","onPageChange","number","size","onSearch","onToggle","onPreBody","onPostBody","onPostHeader","onExpandRow","$detail","onCollapseRow","onRefreshOptions","onRefresh","onResetView","LOCALES","en","formatLoadingMessage","formatRecordsPerPage","formatShowingRows","pageFrom","pageTo","formatDetailPagination","formatSearch","formatNoMatches","formatPaginationSwitch","formatRefresh","formatToggle","formatColumns","formatAllRows","extend","COLUMN_DEFAULTS","radio","checkbox","checkboxEnabled","title","titleTooltip","align","halign","falign","valign","width","visible","switchable","formatter","footerFormatter","events","sorter","cellStyle","searchable","searchFormatter","cardVisible","EVENTS","prototype","initLocale","initContainer","initTable","initHeader","initData","initHiddenRows","initFooter","initToolbar","initPagination","initBody","initSearchText","initServer","parts","toUpperCase","fn","bootstrapTable","locales","$container","insertAfter","$tableContainer","find","$tableHeader","$tableBody","$tableLoading","$tableFooter","$toolbar","$pagination","after","that","$header","appendTo","push","html","rowspan","colspan","isArray","j","k","totalCol","r","fieldIndex","setFieldIndex","m","y","_id","_class","_data","x","tx","ty","$this","cspan","rspan","fromHtml","visibleColumns","header","fields","styles","formatters","sorters","sortNames","cellStyles","searchables","style","class_","unitWidth","stateField","off","on","event","target","closest","parent","children","keyCode","which","hide","show","outerHeight","getCaret","proxy","resetWidth","$selectAll","prop","updateSelected","type","initSort","timeoutId","_position","sort","a","b","aa","bb","isNumeric","parseFloat","toString","localeCompare","clearTimeout","setTimeout","removeClass","currentTarget","$this_","eq","add","$header_","trigger","$keepOpen","$search","switchableCount","showToolbar","togglePagination","toggleView","stopImmediatePropagation","toggleColumn","val","trim","initSearch","updatePagination","s","isEmptyObject","filterColumns","grep","key","parseInt","prop_index","$pageList","$first","$pre","$next","$last","$number","$allSelected","getData","totalPages","pageLst","page","active","onPageListChange","onPageFirst","onPagePre","onPageNext","onPageLast","onPageNumber","hasClass","resetRows","siblings","initRow","parentDom","csses","data_","attributes","htmlAttributes","hiddenRows","v","value_","id_","rowspan_","colspan_","title_","csses_","disabled","fixedScroll","$body","hasTr","trFragments","document","createDocumentFragment","tr","scrollTo","e","$td","$tr","cellIndex","getVisibleFields","$selectItem","click","next","is","content","resetView","not","filter","substring","silent","query","request","offset","limit","filterColumnsPartial","JSON","stringify","success","load","error","_xhr","readyState","abort","th","checkAll","$selectAll_","updateRows","Array","slice","call","Event","resetHeader","fitHeader","fixedBody","scrollWidth","focused","focusedTemp","get","scrollHeight","clientHeight","$th","parents","$headerTh","outerWidth","focus","visibleFields","$ths","innerWidth","scrollLeft","resetFooter","fitFooter","$footerTd","elWidth","needUpdate","$items","padding","toolbarHeight","paginationHeight","useCurrentPage","prepend","len","values","splice","removeAll","getRowByUniqueId","id","rowUniqueId","dataRow","Number","removeByUniqueId","updateByUniqueId","allParams","rowId","insertRow","updateRow","showRow","toggleRow","hideRow","getHiddenRows","mergeCells","col","updateCell","reinit","getOptions","getSelections","getAllSelections","checkAll_","uncheckAll","checkInvert","check","check_","uncheck","checkBy","obj","checkBy_","uncheckBy","destroy","insertBefore","showLoading","hideLoading","button","showColumn","hideColumn","getHiddenColumns","getVisibleColumns","toggleAllColumns","showAllColumns","hideAllColumns","filterBy","scrollTop","getScrollPosition","selectPage","prevPage","nextPage","refreshOptions","resetSearch","expandRow_","expand","expandRow","collapseRow","expandAllRows","isSubTable","detailIcon","executeInterval","idInterval","setInterval","last","clearInterval","ex","trs","collapseAllRows","updateFormatText","allowedMethods","option","Error","removeData","Constructor","defaults","columnDefaults","methods","utils","objectKeys","keys","hasDontEnumBug","propertyIsEnumerable","dontEnums","dontEnumsLength","TypeError","jQuery"],"mappings":"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","file":"static/js/6.7b15cdf3.chunk.js","sourcesContent":["/**\n * @author zhixin wen <wenzhixin2010@gmail.com>\n * version: 1.11.1\n * https://github.com/wenzhixin/bootstrap-table/\n */\n\n(function ($) {\n 'use strict';\n\n // TOOLS DEFINITION\n // ======================\n\n var cachedWidth = null;\n\n // it only does '%s', and return '' when arguments are undefined\n var sprintf = function (str) {\n var args = arguments,\n flag = true,\n i = 1;\n\n str = str.replace(/%s/g, function () {\n var arg = args[i++];\n\n if (typeof arg === 'undefined') {\n flag = false;\n return '';\n }\n return arg;\n });\n return flag ? str : '';\n };\n\n var getPropertyFromOther = function (list, from, to, value) {\n var result = '';\n $.each(list, function (i, item) {\n if (item[from] === value) {\n result = item[to];\n return false;\n }\n return true;\n });\n return result;\n };\n\n var getFieldIndex = function (columns, field) {\n var index = -1;\n\n $.each(columns, function (i, column) {\n if (column.field === field) {\n index = i;\n return false;\n }\n return true;\n });\n return index;\n };\n\n // http://jsfiddle.net/wenyi/47nz7ez9/3/\n var setFieldIndex = function (columns) {\n var i, j, k,\n totalCol = 0,\n flag = [];\n\n for (i = 0; i < columns[0].length; i++) {\n totalCol += columns[0][i].colspan || 1;\n }\n\n for (i = 0; i < columns.length; i++) {\n flag[i] = [];\n for (j = 0; j < totalCol; j++) {\n flag[i][j] = false;\n }\n }\n\n for (i = 0; i < columns.length; i++) {\n for (j = 0; j < columns[i].length; j++) {\n var r = columns[i][j],\n rowspan = r.rowspan || 1,\n colspan = r.colspan || 1,\n index = $.inArray(false, flag[i]);\n\n if (colspan === 1) {\n r.fieldIndex = index;\n // when field is undefined, use index instead\n if (typeof r.field === 'undefined') {\n r.field = index;\n }\n }\n\n for (k = 0; k < rowspan; k++) {\n flag[i + k][index] = true;\n }\n for (k = 0; k < colspan; k++) {\n flag[i][index + k] = true;\n }\n }\n }\n };\n\n var getScrollBarWidth = function () {\n if (cachedWidth === null) {\n var inner = $('<p/>').addClass('fixed-table-scroll-inner'),\n outer = $('<div/>').addClass('fixed-table-scroll-outer'),\n w1, w2;\n\n outer.append(inner);\n $('body').append(outer);\n\n w1 = inner[0].offsetWidth;\n outer.css('overflow', 'scroll');\n w2 = inner[0].offsetWidth;\n\n if (w1 === w2) {\n w2 = outer[0].clientWidth;\n }\n\n outer.remove();\n cachedWidth = w1 - w2;\n }\n return cachedWidth;\n };\n\n var calculateObjectValue = function (self, name, args, defaultValue) {\n var func = name;\n\n if (typeof name === 'string') {\n // support obj.func1.func2\n var names = name.split('.');\n\n if (names.length > 1) {\n func = window;\n $.each(names, function (i, f) {\n func = func[f];\n });\n } else {\n func = window[name];\n }\n }\n if (typeof func === 'object') {\n return func;\n }\n if (typeof func === 'function') {\n return func.apply(self, args || []);\n }\n if (!func && typeof name === 'string' && sprintf.apply(this, [name].concat(args))) {\n return sprintf.apply(this, [name].concat(args));\n }\n return defaultValue;\n };\n\n var compareObjects = function (objectA, objectB, compareLength) {\n // Create arrays of property names\n var objectAProperties = Object.getOwnPropertyNames(objectA),\n objectBProperties = Object.getOwnPropertyNames(objectB),\n propName = '';\n\n if (compareLength) {\n // If number of properties is different, objects are not equivalent\n if (objectAProperties.length !== objectBProperties.length) {\n return false;\n }\n }\n\n for (var i = 0; i < objectAProperties.length; i++) {\n propName = objectAProperties[i];\n\n // If the property is not in the object B properties, continue with the next property\n if ($.inArray(propName, objectBProperties) > -1) {\n // If values of same property are not equal, objects are not equivalent\n if (objectA[propName] !== objectB[propName]) {\n return false;\n }\n }\n }\n\n // If we made it this far, objects are considered equivalent\n return true;\n };\n\n var escapeHTML = function (text) {\n if (typeof text === 'string') {\n return text\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n .replace(/`/g, '`');\n }\n return text;\n };\n\n var getRealDataAttr = function (dataAttr) {\n for (var attr in dataAttr) {\n var auxAttr = attr.split(/(?=[A-Z])/).join('-').toLowerCase();\n if (auxAttr !== attr) {\n dataAttr[auxAttr] = dataAttr[attr];\n delete dataAttr[attr];\n }\n }\n\n return dataAttr;\n };\n\n var getItemField = function (item, field, escape) {\n var value = item;\n\n if (typeof field !== 'string' || item.hasOwnProperty(field)) {\n return escape ? escapeHTML(item[field]) : item[field];\n }\n var props = field.split('.');\n for (var p in props) {\n if (props.hasOwnProperty(p)) {\n value = value && value[props[p]];\n }\n }\n return escape ? escapeHTML(value) : value;\n };\n\n var isIEBrowser = function () {\n return !!(navigator.userAgent.indexOf(\"MSIE \") > 0 || !!navigator.userAgent.match(/Trident.*rv\\:11\\./));\n };\n\n var objectKeys = function () {\n // From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys\n if (!Object.keys) {\n Object.keys = (function() {\n var hasOwnProperty = Object.prototype.hasOwnProperty,\n hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString'),\n dontEnums = [\n 'toString',\n 'toLocaleString',\n 'valueOf',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'constructor'\n ],\n dontEnumsLength = dontEnums.length;\n\n return function(obj) {\n if (typeof obj !== 'object' && (typeof obj !== 'function' || obj === null)) {\n throw new TypeError('Object.keys called on non-object');\n }\n\n var result = [], prop, i;\n\n for (prop in obj) {\n if (hasOwnProperty.call(obj, prop)) {\n result.push(prop);\n }\n }\n\n if (hasDontEnumBug) {\n for (i = 0; i < dontEnumsLength; i++) {\n if (hasOwnProperty.call(obj, dontEnums[i])) {\n result.push(dontEnums[i]);\n }\n }\n }\n return result;\n };\n }());\n }\n };\n\n // BOOTSTRAP TABLE CLASS DEFINITION\n // ======================\n\n var BootstrapTable = function (el, options) {\n this.options = options;\n this.$el = $(el);\n this.$el_ = this.$el.clone();\n this.timeoutId_ = 0;\n this.timeoutFooter_ = 0;\n\n this.init();\n };\n\n BootstrapTable.DEFAULTS = {\n classes: 'table table-hover',\n sortClass: undefined,\n locale: undefined,\n height: undefined,\n undefinedText: '-',\n sortName: undefined,\n sortOrder: 'asc',\n sortStable: false,\n striped: false,\n columns: [[]],\n data: [],\n totalField: 'total',\n dataField: 'rows',\n method: 'get',\n url: undefined,\n ajax: undefined,\n cache: true,\n contentType: 'application/json',\n dataType: 'json',\n ajaxOptions: {},\n queryParams: function (params) {\n return params;\n },\n queryParamsType: 'limit', // undefined\n responseHandler: function (res) {\n return res;\n },\n pagination: false,\n onlyInfoPagination: false,\n paginationLoop: true,\n sidePagination: 'client', // client or server\n totalRows: 0, // server side need to set\n pageNumber: 1,\n pageSize: 10,\n pageList: [10, 25, 50, 100],\n paginationHAlign: 'right', //right, left\n paginationVAlign: 'bottom', //bottom, top, both\n paginationDetailHAlign: 'left', //right, left\n paginationPreText: '‹',\n paginationNextText: '›',\n search: false,\n searchOnEnterKey: false,\n strictSearch: false,\n searchAlign: 'right',\n selectItemName: 'btSelectItem',\n showHeader: true,\n showFooter: false,\n showColumns: false,\n showPaginationSwitch: false,\n showRefresh: false,\n showToggle: false,\n buttonsAlign: 'right',\n smartDisplay: true,\n escape: false,\n minimumCountColumns: 1,\n idField: undefined,\n uniqueId: undefined,\n cardView: false,\n detailView: false,\n detailFormatter: function (index, row) {\n return '';\n },\n trimOnSearch: true,\n clickToSelect: false,\n singleSelect: false,\n toolbar: undefined,\n toolbarAlign: 'left',\n checkboxHeader: true,\n sortable: true,\n silentSort: true,\n maintainSelected: false,\n searchTimeOut: 500,\n searchText: '',\n iconSize: undefined,\n buttonsClass: 'default',\n iconsPrefix: 'glyphicon', // glyphicon of fa (font awesome)\n icons: {\n paginationSwitchDown: 'glyphicon-collapse-down icon-chevron-down',\n paginationSwitchUp: 'glyphicon-collapse-up icon-chevron-up',\n refresh: 'glyphicon-refresh icon-refresh',\n toggle: 'glyphicon-list-alt icon-list-alt',\n columns: 'glyphicon-th icon-th',\n detailOpen: 'glyphicon-plus icon-plus',\n detailClose: 'glyphicon-minus icon-minus'\n },\n\n customSearch: $.noop,\n\n customSort: $.noop,\n\n rowStyle: function (row, index) {\n return {};\n },\n\n rowAttributes: function (row, index) {\n return {};\n },\n\n footerStyle: function (row, index) {\n return {};\n },\n\n onAll: function (name, args) {\n return false;\n },\n onClickCell: function (field, value, row, $element) {\n return false;\n },\n onDblClickCell: function (field, value, row, $element) {\n return false;\n },\n onClickRow: function (item, $element) {\n return false;\n },\n onDblClickRow: function (item, $element) {\n return false;\n },\n onSort: function (name, order) {\n return false;\n },\n onCheck: function (row) {\n return false;\n },\n onUncheck: function (row) {\n return false;\n },\n onCheckAll: function (rows) {\n return false;\n },\n onUncheckAll: function (rows) {\n return false;\n },\n onCheckSome: function (rows) {\n return false;\n },\n onUncheckSome: function (rows) {\n return false;\n },\n onLoadSuccess: function (data) {\n return false;\n },\n onLoadError: function (status) {\n return false;\n },\n onColumnSwitch: function (field, checked) {\n return false;\n },\n onPageChange: function (number, size) {\n return false;\n },\n onSearch: function (text) {\n return false;\n },\n onToggle: function (cardView) {\n return false;\n },\n onPreBody: function (data) {\n return false;\n },\n onPostBody: function () {\n return false;\n },\n onPostHeader: function () {\n return false;\n },\n onExpandRow: function (index, row, $detail) {\n return false;\n },\n onCollapseRow: function (index, row) {\n return false;\n },\n onRefreshOptions: function (options) {\n return false;\n },\n onRefresh: function (params) {\n return false;\n },\n onResetView: function () {\n return false;\n }\n };\n\n BootstrapTable.LOCALES = {};\n\n BootstrapTable.LOCALES['en-US'] = BootstrapTable.LOCALES.en = {\n formatLoadingMessage: function () {\n return 'Loading, please wait...';\n },\n formatRecordsPerPage: function (pageNumber) {\n return sprintf('%s rows per page', pageNumber);\n },\n formatShowingRows: function (pageFrom, pageTo, totalRows) {\n return sprintf('Showing %s to %s of %s rows', pageFrom, pageTo, totalRows);\n },\n formatDetailPagination: function (totalRows) {\n return sprintf('Showing %s rows', totalRows);\n },\n formatSearch: function () {\n return 'Search';\n },\n formatNoMatches: function () {\n return 'No matching records found';\n },\n formatPaginationSwitch: function () {\n return 'Hide/Show pagination';\n },\n formatRefresh: function () {\n return 'Refresh';\n },\n formatToggle: function () {\n return 'Toggle';\n },\n formatColumns: function () {\n return 'Columns';\n },\n formatAllRows: function () {\n return 'All';\n }\n };\n\n $.extend(BootstrapTable.DEFAULTS, BootstrapTable.LOCALES['en-US']);\n\n BootstrapTable.COLUMN_DEFAULTS = {\n radio: false,\n checkbox: false,\n checkboxEnabled: true,\n field: undefined,\n title: undefined,\n titleTooltip: undefined,\n 'class': undefined,\n align: undefined, // left, right, center\n halign: undefined, // left, right, center\n falign: undefined, // left, right, center\n valign: undefined, // top, middle, bottom\n width: undefined,\n sortable: false,\n order: 'asc', // asc, desc\n visible: true,\n switchable: true,\n clickToSelect: true,\n formatter: undefined,\n footerFormatter: undefined,\n events: undefined,\n sorter: undefined,\n sortName: undefined,\n cellStyle: undefined,\n searchable: true,\n searchFormatter: true,\n cardVisible: true,\n escape : false\n };\n\n BootstrapTable.EVENTS = {\n 'all.bs.table': 'onAll',\n 'click-cell.bs.table': 'onClickCell',\n 'dbl-click-cell.bs.table': 'onDblClickCell',\n 'click-row.bs.table': 'onClickRow',\n 'dbl-click-row.bs.table': 'onDblClickRow',\n 'sort.bs.table': 'onSort',\n 'check.bs.table': 'onCheck',\n 'uncheck.bs.table': 'onUncheck',\n 'check-all.bs.table': 'onCheckAll',\n 'uncheck-all.bs.table': 'onUncheckAll',\n 'check-some.bs.table': 'onCheckSome',\n 'uncheck-some.bs.table': 'onUncheckSome',\n 'load-success.bs.table': 'onLoadSuccess',\n 'load-error.bs.table': 'onLoadError',\n 'column-switch.bs.table': 'onColumnSwitch',\n 'page-change.bs.table': 'onPageChange',\n 'search.bs.table': 'onSearch',\n 'toggle.bs.table': 'onToggle',\n 'pre-body.bs.table': 'onPreBody',\n 'post-body.bs.table': 'onPostBody',\n 'post-header.bs.table': 'onPostHeader',\n 'expand-row.bs.table': 'onExpandRow',\n 'collapse-row.bs.table': 'onCollapseRow',\n 'refresh-options.bs.table': 'onRefreshOptions',\n 'reset-view.bs.table': 'onResetView',\n 'refresh.bs.table': 'onRefresh'\n };\n\n BootstrapTable.prototype.init = function () {\n this.initLocale();\n this.initContainer();\n this.initTable();\n this.initHeader();\n this.initData();\n this.initHiddenRows();\n this.initFooter();\n this.initToolbar();\n this.initPagination();\n this.initBody();\n this.initSearchText();\n this.initServer();\n };\n\n BootstrapTable.prototype.initLocale = function () {\n if (this.options.locale) {\n var parts = this.options.locale.split(/-|_/);\n parts[0].toLowerCase();\n if (parts[1]) parts[1].toUpperCase();\n if ($.fn.bootstrapTable.locales[this.options.locale]) {\n // locale as requested\n $.extend(this.options, $.fn.bootstrapTable.locales[this.options.locale]);\n } else if ($.fn.bootstrapTable.locales[parts.join('-')]) {\n // locale with sep set to - (in case original was specified with _)\n $.extend(this.options, $.fn.bootstrapTable.locales[parts.join('-')]);\n } else if ($.fn.bootstrapTable.locales[parts[0]]) {\n // short locale language code (i.e. 'en')\n $.extend(this.options, $.fn.bootstrapTable.locales[parts[0]]);\n }\n }\n };\n\n BootstrapTable.prototype.initContainer = function () {\n this.$container = $([\n '<div class=\"bootstrap-table\">',\n '<div class=\"fixed-table-toolbar\"></div>',\n this.options.paginationVAlign === 'top' || this.options.paginationVAlign === 'both' ?\n '<div class=\"fixed-table-pagination\" style=\"clear: both;\"></div>' :\n '',\n '<div class=\"fixed-table-container\">',\n '<div class=\"fixed-table-header\"><table></table></div>',\n '<div class=\"fixed-table-body\">',\n '<div class=\"fixed-table-loading\">',\n this.options.formatLoadingMessage(),\n '</div>',\n '</div>',\n '<div class=\"fixed-table-footer\"><table><tr></tr></table></div>',\n this.options.paginationVAlign === 'bottom' || this.options.paginationVAlign === 'both' ?\n '<div class=\"fixed-table-pagination\"></div>' :\n '',\n '</div>',\n '</div>'\n ].join(''));\n\n this.$container.insertAfter(this.$el);\n this.$tableContainer = this.$container.find('.fixed-table-container');\n this.$tableHeader = this.$container.find('.fixed-table-header');\n this.$tableBody = this.$container.find('.fixed-table-body');\n this.$tableLoading = this.$container.find('.fixed-table-loading');\n this.$tableFooter = this.$container.find('.fixed-table-footer');\n this.$toolbar = this.$container.find('.fixed-table-toolbar');\n this.$pagination = this.$container.find('.fixed-table-pagination');\n\n this.$tableBody.append(this.$el);\n this.$container.after('<div class=\"clearfix\"></div>');\n\n this.$el.addClass(this.options.classes);\n if (this.options.striped) {\n this.$el.addClass('table-striped');\n }\n if ($.inArray('table-no-bordered', this.options.classes.split(' ')) !== -1) {\n this.$tableContainer.addClass('table-no-bordered');\n }\n };\n\n BootstrapTable.prototype.initTable = function () {\n var that = this,\n columns = [],\n data = [];\n\n this.$header = this.$el.find('>thead');\n if (!this.$header.length) {\n this.$header = $('<thead></thead>').appendTo(this.$el);\n }\n this.$header.find('tr').each(function () {\n var column = [];\n\n $(this).find('th').each(function () {\n // Fix #2014 - getFieldIndex and elsewhere assume this is string, causes issues if not\n if (typeof $(this).data('field') !== 'undefined') {\n $(this).data('field', $(this).data('field') + '');\n }\n column.push($.extend({}, {\n title: $(this).html(),\n 'class': $(this).attr('class'),\n titleTooltip: $(this).attr('title'),\n rowspan: $(this).attr('rowspan') ? +$(this).attr('rowspan') : undefined,\n colspan: $(this).attr('colspan') ? +$(this).attr('colspan') : undefined\n }, $(this).data()));\n });\n columns.push(column);\n });\n if (!$.isArray(this.options.columns[0])) {\n this.options.columns = [this.options.columns];\n }\n this.options.columns = $.extend(true, [], columns, this.options.columns);\n this.columns = [];\n\n setFieldIndex(this.options.columns);\n $.each(this.options.columns, function (i, columns) {\n $.each(columns, function (j, column) {\n column = $.extend({}, BootstrapTable.COLUMN_DEFAULTS, column);\n\n if (typeof column.fieldIndex !== 'undefined') {\n that.columns[column.fieldIndex] = column;\n }\n\n that.options.columns[i][j] = column;\n });\n });\n\n // if options.data is setting, do not process tbody data\n if (this.options.data.length) {\n return;\n }\n\n var m = [];\n this.$el.find('>tbody>tr').each(function (y) {\n var row = {};\n\n // save tr's id, class and data-* attributes\n row._id = $(this).attr('id');\n row._class = $(this).attr('class');\n row._data = getRealDataAttr($(this).data());\n\n $(this).find('>td').each(function (x) {\n var $this = $(this),\n cspan = +$this.attr('colspan') || 1,\n rspan = +$this.attr('rowspan') || 1,\n tx, ty;\n\n for (; m[y] && m[y][x]; x++); //skip already occupied cells in current row\n\n for (tx = x; tx < x + cspan; tx++) { //mark matrix elements occupied by current cell with true\n for (ty = y; ty < y + rspan; ty++) {\n if (!m[ty]) { //fill missing rows\n m[ty] = [];\n }\n m[ty][tx] = true;\n }\n }\n\n var field = that.columns[x].field;\n\n row[field] = $(this).html();\n // save td's id, class and data-* attributes\n row['_' + field + '_id'] = $(this).attr('id');\n row['_' + field + '_class'] = $(this).attr('class');\n row['_' + field + '_rowspan'] = $(this).attr('rowspan');\n row['_' + field + '_colspan'] = $(this).attr('colspan');\n row['_' + field + '_title'] = $(this).attr('title');\n row['_' + field + '_data'] = getRealDataAttr($(this).data());\n });\n data.push(row);\n });\n this.options.data = data;\n if (data.length) this.fromHtml = true;\n };\n\n BootstrapTable.prototype.initHeader = function () {\n var that = this,\n visibleColumns = {},\n html = [];\n\n this.header = {\n fields: [],\n styles: [],\n classes: [],\n formatters: [],\n events: [],\n sorters: [],\n sortNames: [],\n cellStyles: [],\n searchables: []\n };\n\n $.each(this.options.columns, function (i, columns) {\n html.push('<tr>');\n\n if (i === 0 && !that.options.cardView && that.options.detailView) {\n html.push(sprintf('<th class=\"detail\" rowspan=\"%s\"><div class=\"fht-cell\"></div></th>',\n that.options.columns.length));\n }\n\n $.each(columns, function (j, column) {\n var text = '',\n halign = '', // header align style\n align = '', // body align style\n style = '',\n class_ = sprintf(' class=\"%s\"', column['class']),\n order = that.options.sortOrder || column.order,\n unitWidth = 'px',\n width = column.width;\n\n if (column.width !== undefined && (!that.options.cardView)) {\n if (typeof column.width === 'string') {\n if (column.width.indexOf('%') !== -1) {\n unitWidth = '%';\n }\n }\n }\n if (column.width && typeof column.width === 'string') {\n width = column.width.replace('%', '').replace('px', '');\n }\n\n halign = sprintf('text-align: %s; ', column.halign ? column.halign : column.align);\n align = sprintf('text-align: %s; ', column.align);\n style = sprintf('vertical-align: %s; ', column.valign);\n style += sprintf('width: %s; ', (column.checkbox || column.radio) && !width ?\n '36px' : (width ? width + unitWidth : undefined));\n\n if (typeof column.fieldIndex !== 'undefined') {\n that.header.fields[column.fieldIndex] = column.field;\n that.header.styles[column.fieldIndex] = align + style;\n that.header.classes[column.fieldIndex] = class_;\n that.header.formatters[column.fieldIndex] = column.formatter;\n that.header.events[column.fieldIndex] = column.events;\n that.header.sorters[column.fieldIndex] = column.sorter;\n that.header.sortNames[column.fieldIndex] = column.sortName;\n that.header.cellStyles[column.fieldIndex] = column.cellStyle;\n that.header.searchables[column.fieldIndex] = column.searchable;\n\n if (!column.visible) {\n return;\n }\n\n if (that.options.cardView && (!column.cardVisible)) {\n return;\n }\n\n visibleColumns[column.field] = column;\n }\n\n html.push('<th' + sprintf(' title=\"%s\"', column.titleTooltip),\n column.checkbox || column.radio ?\n sprintf(' class=\"bs-checkbox %s\"', column['class'] || '') :\n class_,\n sprintf(' style=\"%s\"', halign + style),\n sprintf(' rowspan=\"%s\"', column.rowspan),\n sprintf(' colspan=\"%s\"', column.colspan),\n sprintf(' data-field=\"%s\"', column.field),\n '>');\n\n html.push(sprintf('<div class=\"th-inner %s\">', that.options.sortable && column.sortable ?\n 'sortable both' : ''));\n\n text = that.options.escape ? escapeHTML(column.title) : column.title;\n\n if (column.checkbox) {\n if (!that.options.singleSelect && that.options.checkboxHeader) {\n text = '<input name=\"btSelectAll\" type=\"checkbox\" />';\n }\n that.header.stateField = column.field;\n }\n if (column.radio) {\n text = '';\n that.header.stateField = column.field;\n that.options.singleSelect = true;\n }\n\n html.push(text);\n html.push('</div>');\n html.push('<div class=\"fht-cell\"></div>');\n html.push('</div>');\n html.push('</th>');\n });\n html.push('</tr>');\n });\n\n this.$header.html(html.join(''));\n this.$header.find('th[data-field]').each(function (i) {\n $(this).data(visibleColumns[$(this).data('field')]);\n });\n this.$container.off('click', '.th-inner').on('click', '.th-inner', function (event) {\n var target = $(this);\n\n if (that.options.detailView) {\n if (target.closest('.bootstrap-table')[0] !== that.$container[0])\n return false;\n }\n\n if (that.options.sortable && target.parent().data().sortable) {\n that.onSort(event);\n }\n });\n\n this.$header.children().children().off('keypress').on('keypress', function (event) {\n if (that.options.sortable && $(this).data().sortable) {\n var code = event.keyCode || event.which;\n if (code == 13) { //Enter keycode\n that.onSort(event);\n }\n }\n });\n\n $(window).off('resize.bootstrap-table');\n if (!this.options.showHeader || this.options.cardView) {\n this.$header.hide();\n this.$tableHeader.hide();\n this.$tableLoading.css('top', 0);\n } else {\n this.$header.show();\n this.$tableHeader.show();\n this.$tableLoading.css('top', this.$header.outerHeight() + 1);\n // Assign the correct sortable arrow\n this.getCaret();\n $(window).on('resize.bootstrap-table', $.proxy(this.resetWidth, this));\n }\n\n this.$selectAll = this.$header.find('[name=\"btSelectAll\"]');\n this.$selectAll.off('click').on('click', function () {\n var checked = $(this).prop('checked');\n that[checked ? 'checkAll' : 'uncheckAll']();\n that.updateSelected();\n });\n };\n\n BootstrapTable.prototype.initFooter = function () {\n if (!this.options.showFooter || this.options.cardView) {\n this.$tableFooter.hide();\n } else {\n this.$tableFooter.show();\n }\n };\n\n /**\n * @param data\n * @param type: append / prepend\n */\n BootstrapTable.prototype.initData = function (data, type) {\n if (type === 'append') {\n this.data = this.data.concat(data);\n } else if (type === 'prepend') {\n this.data = [].concat(data).concat(this.data);\n } else {\n this.data = data || this.options.data;\n }\n\n // Fix #839 Records deleted when adding new row on filtered table\n if (type === 'append') {\n this.options.data = this.options.data.concat(data);\n } else if (type === 'prepend') {\n this.options.data = [].concat(data).concat(this.options.data);\n } else {\n this.options.data = this.data;\n }\n\n if (this.options.sidePagination === 'server') {\n return;\n }\n this.initSort();\n };\n\n BootstrapTable.prototype.initSort = function () {\n var that = this,\n name = this.options.sortName,\n order = this.options.sortOrder === 'desc' ? -1 : 1,\n index = $.inArray(this.options.sortName, this.header.fields),\n timeoutId = 0;\n\n if (this.options.customSort !== $.noop) {\n this.options.customSort.apply(this, [this.options.sortName, this.options.sortOrder]);\n return;\n }\n\n if (index !== -1) {\n if (this.options.sortStable) {\n $.each(this.data, function (i, row) {\n if (!row.hasOwnProperty('_position')) row._position = i;\n });\n }\n\n this.data.sort(function (a, b) {\n if (that.header.sortNames[index]) {\n name = that.header.sortNames[index];\n }\n var aa = getItemField(a, name, that.options.escape),\n bb = getItemField(b, name, that.options.escape),\n value = calculateObjectValue(that.header, that.header.sorters[index], [aa, bb]);\n\n if (value !== undefined) {\n return order * value;\n }\n\n // Fix #161: undefined or null string sort bug.\n if (aa === undefined || aa === null) {\n aa = '';\n }\n if (bb === undefined || bb === null) {\n bb = '';\n }\n\n if (that.options.sortStable && aa === bb) {\n aa = a._position;\n bb = b._position;\n }\n\n // IF both values are numeric, do a numeric comparison\n if ($.isNumeric(aa) && $.isNumeric(bb)) {\n // Convert numerical values form string to float.\n aa = parseFloat(aa);\n bb = parseFloat(bb);\n if (aa < bb) {\n return order * -1;\n }\n return order;\n }\n\n if (aa === bb) {\n return 0;\n }\n\n // If value is not a string, convert to string\n if (typeof aa !== 'string') {\n aa = aa.toString();\n }\n\n if (aa.localeCompare(bb) === -1) {\n return order * -1;\n }\n\n return order;\n });\n\n if (this.options.sortClass !== undefined) {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(function () {\n that.$el.removeClass(that.options.sortClass);\n var index = that.$header.find(sprintf('[data-field=\"%s\"]',\n that.options.sortName).index() + 1);\n that.$el.find(sprintf('tr td:nth-child(%s)', index))\n .addClass(that.options.sortClass);\n }, 250);\n }\n }\n };\n\n BootstrapTable.prototype.onSort = function (event) {\n var $this = event.type === \"keypress\" ? $(event.currentTarget) : $(event.currentTarget).parent(),\n $this_ = this.$header.find('th').eq($this.index());\n\n this.$header.add(this.$header_).find('span.order').remove();\n\n if (this.options.sortName === $this.data('field')) {\n this.options.sortOrder = this.options.sortOrder === 'asc' ? 'desc' : 'asc';\n } else {\n this.options.sortName = $this.data('field');\n this.options.sortOrder = $this.data('order') === 'asc' ? 'desc' : 'asc';\n }\n this.trigger('sort', this.options.sortName, this.options.sortOrder);\n\n $this.add($this_).data('order', this.options.sortOrder);\n\n // Assign the correct sortable arrow\n this.getCaret();\n\n if (this.options.sidePagination === 'server') {\n this.initServer(this.options.silentSort);\n return;\n }\n\n this.initSort();\n this.initBody();\n };\n\n BootstrapTable.prototype.initToolbar = function () {\n var that = this,\n html = [],\n timeoutId = 0,\n $keepOpen,\n $search,\n switchableCount = 0;\n\n if (this.$toolbar.find('.bs-bars').children().length) {\n $('body').append($(this.options.toolbar));\n }\n this.$toolbar.html('');\n\n if (typeof this.options.toolbar === 'string' || typeof this.options.toolbar === 'object') {\n $(sprintf('<div class=\"bs-bars pull-%s\"></div>', this.options.toolbarAlign))\n .appendTo(this.$toolbar)\n .append($(this.options.toolbar));\n }\n\n // showColumns, showToggle, showRefresh\n html = [sprintf('<div class=\"columns columns-%s btn-group pull-%s\">',\n this.options.buttonsAlign, this.options.buttonsAlign)];\n\n if (typeof this.options.icons === 'string') {\n this.options.icons = calculateObjectValue(null, this.options.icons);\n }\n\n if (this.options.showPaginationSwitch) {\n html.push(sprintf('<button class=\"btn' +\n sprintf(' btn-%s', this.options.buttonsClass) +\n sprintf(' btn-%s', this.options.iconSize) +\n '\" type=\"button\" name=\"paginationSwitch\" aria-label=\"pagination Switch\" title=\"%s\">',\n this.options.formatPaginationSwitch()),\n sprintf('<i class=\"%s %s\"></i>', this.options.iconsPrefix, this.options.icons.paginationSwitchDown),\n '</button>');\n }\n\n if (this.options.showRefresh) {\n html.push(sprintf('<button class=\"btn' +\n sprintf(' btn-%s', this.options.buttonsClass) +\n sprintf(' btn-%s', this.options.iconSize) +\n '\" type=\"button\" name=\"refresh\" aria-label=\"refresh\" title=\"%s\">',\n this.options.formatRefresh()),\n sprintf('<i class=\"%s %s\"></i>', this.options.iconsPrefix, this.options.icons.refresh),\n '</button>');\n }\n\n if (this.options.showToggle) {\n html.push(sprintf('<button class=\"btn' +\n sprintf(' btn-%s', this.options.buttonsClass) +\n sprintf(' btn-%s', this.options.iconSize) +\n '\" type=\"button\" name=\"toggle\" aria-label=\"toggle\" title=\"%s\">',\n this.options.formatToggle()),\n sprintf('<i class=\"%s %s\"></i>', this.options.iconsPrefix, this.options.icons.toggle),\n '</button>');\n }\n\n if (this.options.showColumns) {\n html.push(sprintf('<div class=\"keep-open btn-group\" title=\"%s\">',\n this.options.formatColumns()),\n '<button type=\"button\" aria-label=\"columns\" class=\"btn' +\n sprintf(' btn-%s', this.options.buttonsClass) +\n sprintf(' btn-%s', this.options.iconSize) +\n ' dropdown-toggle\" data-toggle=\"dropdown\">',\n sprintf('<i class=\"%s %s\"></i>', this.options.iconsPrefix, this.options.icons.columns),\n ' <span class=\"caret\"></span>',\n '</button>',\n '<ul class=\"dropdown-menu\" role=\"menu\">');\n\n $.each(this.columns, function (i, column) {\n if (column.radio || column.checkbox) {\n return;\n }\n\n if (that.options.cardView && !column.cardVisible) {\n return;\n }\n\n var checked = column.visible ? ' checked=\"checked\"' : '';\n\n if (column.switchable) {\n html.push(sprintf('<li role=\"menuitem\">' +\n '<label><input type=\"checkbox\" data-field=\"%s\" value=\"%s\"%s> %s</label>' +\n '</li>', column.field, i, checked, column.title));\n switchableCount++;\n }\n });\n html.push('</ul>',\n '</div>');\n }\n\n html.push('</div>');\n\n // Fix #188: this.showToolbar is for extensions\n if (this.showToolbar || html.length > 2) {\n this.$toolbar.append(html.join(''));\n }\n\n if (this.options.showPaginationSwitch) {\n this.$toolbar.find('button[name=\"paginationSwitch\"]')\n .off('click').on('click', $.proxy(this.togglePagination, this));\n }\n\n if (this.options.showRefresh) {\n this.$toolbar.find('button[name=\"refresh\"]')\n .off('click').on('click', $.proxy(this.refresh, this));\n }\n\n if (this.options.showToggle) {\n this.$toolbar.find('button[name=\"toggle\"]')\n .off('click').on('click', function () {\n that.toggleView();\n });\n }\n\n if (this.options.showColumns) {\n $keepOpen = this.$toolbar.find('.keep-open');\n\n if (switchableCount <= this.options.minimumCountColumns) {\n $keepOpen.find('input').prop('disabled', true);\n }\n\n $keepOpen.find('li').off('click').on('click', function (event) {\n event.stopImmediatePropagation();\n });\n $keepOpen.find('input').off('click').on('click', function () {\n var $this = $(this);\n\n that.toggleColumn($(this).val(), $this.prop('checked'), false);\n that.trigger('column-switch', $(this).data('field'), $this.prop('checked'));\n });\n }\n\n if (this.options.search) {\n html = [];\n html.push(\n '<div class=\"pull-' + this.options.searchAlign + ' search\">',\n sprintf('<input class=\"form-control' +\n sprintf(' input-%s', this.options.iconSize) +\n '\" type=\"text\" placeholder=\"%s\">',\n this.options.formatSearch()),\n '</div>');\n\n this.$toolbar.append(html.join(''));\n $search = this.$toolbar.find('.search input');\n $search.off('keyup drop blur').on('keyup drop blur', function (event) {\n if (that.options.searchOnEnterKey && event.keyCode !== 13) {\n return;\n }\n\n if ($.inArray(event.keyCode, [37, 38, 39, 40]) > -1) {\n return;\n }\n\n clearTimeout(timeoutId); // doesn't matter if it's 0\n timeoutId = setTimeout(function () {\n that.onSearch(event);\n }, that.options.searchTimeOut);\n });\n\n if (isIEBrowser()) {\n $search.off('mouseup').on('mouseup', function (event) {\n clearTimeout(timeoutId); // doesn't matter if it's 0\n timeoutId = setTimeout(function () {\n that.onSearch(event);\n }, that.options.searchTimeOut);\n });\n }\n }\n };\n\n BootstrapTable.prototype.onSearch = function (event) {\n var text = $.trim($(event.currentTarget).val());\n\n // trim search input\n if (this.options.trimOnSearch && $(event.currentTarget).val() !== text) {\n $(event.currentTarget).val(text);\n }\n\n if (text === this.searchText) {\n return;\n }\n this.searchText = text;\n this.options.searchText = text;\n\n this.options.pageNumber = 1;\n this.initSearch();\n this.updatePagination();\n this.trigger('search', text);\n };\n\n BootstrapTable.prototype.initSearch = function () {\n var that = this;\n\n if (this.options.sidePagination !== 'server') {\n if (this.options.customSearch !== $.noop) {\n this.options.customSearch.apply(this, [this.searchText]);\n return;\n }\n\n var s = this.searchText && (this.options.escape ?\n escapeHTML(this.searchText) : this.searchText).toLowerCase();\n var f = $.isEmptyObject(this.filterColumns) ? null : this.filterColumns;\n\n // Check filter\n this.data = f ? $.grep(this.options.data, function (item, i) {\n for (var key in f) {\n if ($.isArray(f[key]) && $.inArray(item[key], f[key]) === -1 ||\n !$.isArray(f[key]) && item[key] !== f[key]) {\n return false;\n }\n }\n return true;\n }) : this.options.data;\n\n this.data = s ? $.grep(this.data, function (item, i) {\n for (var j = 0; j < that.header.fields.length; j++) {\n\n if (!that.header.searchables[j]) {\n continue;\n }\n\n var key = $.isNumeric(that.header.fields[j]) ? parseInt(that.header.fields[j], 10) : that.header.fields[j];\n var column = that.columns[getFieldIndex(that.columns, key)];\n var value;\n\n if (typeof key === 'string') {\n value = item;\n var props = key.split('.');\n for (var prop_index = 0; prop_index < props.length; prop_index++) {\n value = value[props[prop_index]];\n }\n\n // Fix #142: respect searchForamtter boolean\n if (column && column.searchFormatter) {\n value = calculateObjectValue(column,\n that.header.formatters[j], [value, item, i], value);\n }\n } else {\n value = item[key];\n }\n\n if (typeof value === 'string' || typeof value === 'number') {\n if (that.options.strictSearch) {\n if ((value + '').toLowerCase() === s) {\n return true;\n }\n } else {\n if ((value + '').toLowerCase().indexOf(s) !== -1) {\n return true;\n }\n }\n }\n }\n return false;\n }) : this.data;\n }\n };\n\n BootstrapTable.prototype.initPagination = function () {\n if (!this.options.pagination) {\n this.$pagination.hide();\n return;\n } else {\n this.$pagination.show();\n }\n\n var that = this,\n html = [],\n $allSelected = false,\n i, from, to,\n $pageList,\n $first, $pre,\n $next, $last,\n $number,\n data = this.getData(),\n pageList = this.options.pageList;\n\n if (this.options.sidePagination !== 'server') {\n this.options.totalRows = data.length;\n }\n\n this.totalPages = 0;\n if (this.options.totalRows) {\n if (this.options.pageSize === this.options.formatAllRows()) {\n this.options.pageSize = this.options.totalRows;\n $allSelected = true;\n } else if (this.options.pageSize === this.options.totalRows) {\n // Fix #667 Table with pagination,\n // multiple pages and a search that matches to one page throws exception\n var pageLst = typeof this.options.pageList === 'string' ?\n this.options.pageList.replace('[', '').replace(']', '')\n .replace(/ /g, '').toLowerCase().split(',') : this.options.pageList;\n if ($.inArray(this.options.formatAllRows().toLowerCase(), pageLst) > -1) {\n $allSelected = true;\n }\n }\n\n this.totalPages = ~~((this.options.totalRows - 1) / this.options.pageSize) + 1;\n\n this.options.totalPages = this.totalPages;\n }\n if (this.totalPages > 0 && this.options.pageNumber > this.totalPages) {\n this.options.pageNumber = this.totalPages;\n }\n\n this.pageFrom = (this.options.pageNumber - 1) * this.options.pageSize + 1;\n this.pageTo = this.options.pageNumber * this.options.pageSize;\n if (this.pageTo > this.options.totalRows) {\n this.pageTo = this.options.totalRows;\n }\n\n html.push(\n '<div class=\"pull-' + this.options.paginationDetailHAlign + ' pagination-detail\">',\n '<span class=\"pagination-info\">',\n this.options.onlyInfoPagination ? this.options.formatDetailPagination(this.options.totalRows) :\n this.options.formatShowingRows(this.pageFrom, this.pageTo, this.options.totalRows),\n '</span>');\n\n if (!this.options.onlyInfoPagination) {\n html.push('<span class=\"page-list\">');\n\n var pageNumber = [\n sprintf('<span class=\"btn-group %s\">',\n this.options.paginationVAlign === 'top' || this.options.paginationVAlign === 'both' ?\n 'dropdown' : 'dropup'),\n '<button type=\"button\" class=\"btn' +\n sprintf(' btn-%s', this.options.buttonsClass) +\n sprintf(' btn-%s', this.options.iconSize) +\n ' dropdown-toggle\" data-toggle=\"dropdown\">',\n '<span class=\"page-size\">',\n $allSelected ? this.options.formatAllRows() : this.options.pageSize,\n '</span>',\n ' <span class=\"caret\"></span>',\n '</button>',\n '<ul class=\"dropdown-menu\" role=\"menu\">'\n ];\n\n if (typeof this.options.pageList === 'string') {\n var list = this.options.pageList.replace('[', '').replace(']', '')\n .replace(/ /g, '').split(',');\n\n pageList = [];\n $.each(list, function (i, value) {\n pageList.push(value.toUpperCase() === that.options.formatAllRows().toUpperCase() ?\n that.options.formatAllRows() : +value);\n });\n }\n\n $.each(pageList, function (i, page) {\n if (!that.options.smartDisplay || i === 0 || pageList[i - 1] < that.options.totalRows) {\n var active;\n if ($allSelected) {\n active = page === that.options.formatAllRows() ? ' class=\"active\"' : '';\n } else {\n active = page === that.options.pageSize ? ' class=\"active\"' : '';\n }\n pageNumber.push(sprintf('<li role=\"menuitem\"%s><a href=\"#\">%s</a></li>', active, page));\n }\n });\n pageNumber.push('</ul></span>');\n\n html.push(this.options.formatRecordsPerPage(pageNumber.join('')));\n html.push('</span>');\n\n html.push('</div>',\n '<div class=\"pull-' + this.options.paginationHAlign + ' pagination\">',\n '<ul class=\"pagination' + sprintf(' pagination-%s', this.options.iconSize) + '\">',\n '<li class=\"page-pre\"><a href=\"#\">' + this.options.paginationPreText + '</a></li>');\n\n if (this.totalPages < 5) {\n from = 1;\n to = this.totalPages;\n } else {\n from = this.options.pageNumber - 2;\n to = from + 4;\n if (from < 1) {\n from = 1;\n to = 5;\n }\n if (to > this.totalPages) {\n to = this.totalPages;\n from = to - 4;\n }\n }\n\n if (this.totalPages >= 6) {\n if (this.options.pageNumber >= 3) {\n html.push('<li class=\"page-first' + (1 === this.options.pageNumber ? ' active' : '') + '\">',\n '<a href=\"#\">', 1, '</a>',\n '</li>');\n\n from++;\n }\n\n if (this.options.pageNumber >= 4) {\n if (this.options.pageNumber == 4 || this.totalPages == 6 || this.totalPages == 7) {\n from--;\n } else {\n html.push('<li class=\"page-first-separator disabled\">',\n '<a href=\"#\">...</a>',\n '</li>');\n }\n\n to--;\n }\n }\n\n if (this.totalPages >= 7) {\n if (this.options.pageNumber >= (this.totalPages - 2)) {\n from--;\n }\n }\n\n if (this.totalPages == 6) {\n if (this.options.pageNumber >= (this.totalPages - 2)) {\n to++;\n }\n } else if (this.totalPages >= 7) {\n if (this.totalPages == 7 || this.options.pageNumber >= (this.totalPages - 3)) {\n to++;\n }\n }\n\n for (i = from; i <= to; i++) {\n html.push('<li class=\"page-number' + (i === this.options.pageNumber ? ' active' : '') + '\">',\n '<a href=\"#\">', i, '</a>',\n '</li>');\n }\n\n if (this.totalPages >= 8) {\n if (this.options.pageNumber <= (this.totalPages - 4)) {\n html.push('<li class=\"page-last-separator disabled\">',\n '<a href=\"#\">...</a>',\n '</li>');\n }\n }\n\n if (this.totalPages >= 6) {\n if (this.options.pageNumber <= (this.totalPages - 3)) {\n html.push('<li class=\"page-last' + (this.totalPages === this.options.pageNumber ? ' active' : '') + '\">',\n '<a href=\"#\">', this.totalPages, '</a>',\n '</li>');\n }\n }\n\n html.push(\n '<li class=\"page-next\"><a href=\"#\">' + this.options.paginationNextText + '</a></li>',\n '</ul>',\n '</div>');\n }\n this.$pagination.html(html.join(''));\n\n if (!this.options.onlyInfoPagination) {\n $pageList = this.$pagination.find('.page-list a');\n $first = this.$pagination.find('.page-first');\n $pre = this.$pagination.find('.page-pre');\n $next = this.$pagination.find('.page-next');\n $last = this.$pagination.find('.page-last');\n $number = this.$pagination.find('.page-number');\n\n if (this.options.smartDisplay) {\n if (this.totalPages <= 1) {\n this.$pagination.find('div.pagination').hide();\n }\n if (pageList.length < 2 || this.options.totalRows <= pageList[0]) {\n this.$pagination.find('span.page-list').hide();\n }\n\n // when data is empty, hide the pagination\n this.$pagination[this.getData().length ? 'show' : 'hide']();\n }\n\n if (!this.options.paginationLoop) {\n if (this.options.pageNumber === 1) {\n $pre.addClass('disabled');\n }\n if (this.options.pageNumber === this.totalPages) {\n $next.addClass('disabled');\n }\n }\n\n if ($allSelected) {\n this.options.pageSize = this.options.formatAllRows();\n }\n $pageList.off('click').on('click', $.proxy(this.onPageListChange, this));\n $first.off('click').on('click', $.proxy(this.onPageFirst, this));\n $pre.off('click').on('click', $.proxy(this.onPagePre, this));\n $next.off('click').on('click', $.proxy(this.onPageNext, this));\n $last.off('click').on('click', $.proxy(this.onPageLast, this));\n $number.off('click').on('click', $.proxy(this.onPageNumber, this));\n }\n };\n\n BootstrapTable.prototype.updatePagination = function (event) {\n // Fix #171: IE disabled button can be clicked bug.\n if (event && $(event.currentTarget).hasClass('disabled')) {\n return;\n }\n\n if (!this.options.maintainSelected) {\n this.resetRows();\n }\n\n this.initPagination();\n if (this.options.sidePagination === 'server') {\n this.initServer();\n } else {\n this.initBody();\n }\n\n this.trigger('page-change', this.options.pageNumber, this.options.pageSize);\n };\n\n BootstrapTable.prototype.onPageListChange = function (event) {\n var $this = $(event.currentTarget);\n\n $this.parent().addClass('active').siblings().removeClass('active');\n this.options.pageSize = $this.text().toUpperCase() === this.options.formatAllRows().toUpperCase() ?\n this.options.formatAllRows() : +$this.text();\n this.$toolbar.find('.page-size').text(this.options.pageSize);\n\n this.updatePagination(event);\n return false;\n };\n\n BootstrapTable.prototype.onPageFirst = function (event) {\n this.options.pageNumber = 1;\n this.updatePagination(event);\n return false;\n };\n\n BootstrapTable.prototype.onPagePre = function (event) {\n if ((this.options.pageNumber - 1) === 0) {\n this.options.pageNumber = this.options.totalPages;\n } else {\n this.options.pageNumber--;\n }\n this.updatePagination(event);\n return false;\n };\n\n BootstrapTable.prototype.onPageNext = function (event) {\n if ((this.options.pageNumber + 1) > this.options.totalPages) {\n this.options.pageNumber = 1;\n } else {\n this.options.pageNumber++;\n }\n this.updatePagination(event);\n return false;\n };\n\n BootstrapTable.prototype.onPageLast = function (event) {\n this.options.pageNumber = this.totalPages;\n this.updatePagination(event);\n return false;\n };\n\n BootstrapTable.prototype.onPageNumber = function (event) {\n if (this.options.pageNumber === +$(event.currentTarget).text()) {\n return;\n }\n this.options.pageNumber = +$(event.currentTarget).text();\n this.updatePagination(event);\n return false;\n };\n\n BootstrapTable.prototype.initRow = function(item, i, data, parentDom) {\n var that=this,\n key,\n html = [],\n style = {},\n csses = [],\n data_ = '',\n attributes = {},\n htmlAttributes = [];\n\n if ($.inArray(item, this.hiddenRows) > -1) {\n return;\n }\n\n style = calculateObjectValue(this.options, this.options.rowStyle, [item, i], style);\n\n if (style && style.css) {\n for (key in style.css) {\n csses.push(key + ': ' + style.css[key]);\n }\n }\n\n attributes = calculateObjectValue(this.options,\n this.options.rowAttributes, [item, i], attributes);\n\n if (attributes) {\n for (key in attributes) {\n htmlAttributes.push(sprintf('%s=\"%s\"', key, escapeHTML(attributes[key])));\n }\n }\n\n if (item._data && !$.isEmptyObject(item._data)) {\n $.each(item._data, function(k, v) {\n // ignore data-index\n if (k === 'index') {\n return;\n }\n data_ += sprintf(' data-%s=\"%s\"', k, v);\n });\n }\n\n html.push('<tr',\n sprintf(' %s', htmlAttributes.join(' ')),\n sprintf(' id=\"%s\"', $.isArray(item) ? undefined : item._id),\n sprintf(' class=\"%s\"', style.classes || ($.isArray(item) ? undefined : item._class)),\n sprintf(' data-index=\"%s\"', i),\n sprintf(' data-uniqueid=\"%s\"', item[this.options.uniqueId]),\n sprintf('%s', data_),\n '>'\n );\n\n if (this.options.cardView) {\n html.push(sprintf('<td colspan=\"%s\"><div class=\"card-views\">', this.header.fields.length));\n }\n\n if (!this.options.cardView && this.options.detailView) {\n html.push('<td>',\n '<a class=\"detail-icon\" href=\"#\">',\n sprintf('<i class=\"%s %s\"></i>', this.options.iconsPrefix, this.options.icons.detailOpen),\n '</a>',\n '</td>');\n }\n\n $.each(this.header.fields, function(j, field) {\n var text = '',\n value_ = getItemField(item, field, that.options.escape),\n value = '',\n type = '',\n cellStyle = {},\n id_ = '',\n class_ = that.header.classes[j],\n data_ = '',\n rowspan_ = '',\n colspan_ = '',\n title_ = '',\n column = that.columns[j];\n\n if (that.fromHtml && typeof value_ === 'undefined') {\n return;\n }\n\n if (!column.visible) {\n return;\n }\n\n if (that.options.cardView && (!column.cardVisible)) {\n return;\n }\n\n if (column.escape) {\n value_ = escapeHTML(value_);\n }\n\n style = sprintf('style=\"%s\"', csses.concat(that.header.styles[j]).join('; '));\n\n // handle td's id and class\n if (item['_' + field + '_id']) {\n id_ = sprintf(' id=\"%s\"', item['_' + field + '_id']);\n }\n if (item['_' + field + '_class']) {\n class_ = sprintf(' class=\"%s\"', item['_' + field + '_class']);\n }\n if (item['_' + field + '_rowspan']) {\n rowspan_ = sprintf(' rowspan=\"%s\"', item['_' + field + '_rowspan']);\n }\n if (item['_' + field + '_colspan']) {\n colspan_ = sprintf(' colspan=\"%s\"', item['_' + field + '_colspan']);\n }\n if (item['_' + field + '_title']) {\n title_ = sprintf(' title=\"%s\"', item['_' + field + '_title']);\n }\n cellStyle = calculateObjectValue(that.header,\n that.header.cellStyles[j], [value_, item, i, field], cellStyle);\n if (cellStyle.classes) {\n class_ = sprintf(' class=\"%s\"', cellStyle.classes);\n }\n if (cellStyle.css) {\n var csses_ = [];\n for (var key in cellStyle.css) {\n csses_.push(key + ': ' + cellStyle.css[key]);\n }\n style = sprintf('style=\"%s\"', csses_.concat(that.header.styles[j]).join('; '));\n }\n\n value = calculateObjectValue(column,\n that.header.formatters[j], [value_, item, i], value_);\n\n if (item['_' + field + '_data'] && !$.isEmptyObject(item['_' + field + '_data'])) {\n $.each(item['_' + field + '_data'], function(k, v) {\n // ignore data-index\n if (k === 'index') {\n return;\n }\n data_ += sprintf(' data-%s=\"%s\"', k, v);\n });\n }\n\n if (column.checkbox || column.radio) {\n type = column.checkbox ? 'checkbox' : type;\n type = column.radio ? 'radio' : type;\n\n text = [sprintf(that.options.cardView ?\n '<div class=\"card-view %s\">' : '<td class=\"bs-checkbox %s\">', column['class'] || ''),\n '<input' +\n sprintf(' data-index=\"%s\"', i) +\n sprintf(' name=\"%s\"', that.options.selectItemName) +\n sprintf(' type=\"%s\"', type) +\n sprintf(' value=\"%s\"', item[that.options.idField]) +\n sprintf(' checked=\"%s\"', value === true ||\n (value_ || value && value.checked) ? 'checked' : undefined) +\n sprintf(' disabled=\"%s\"', !column.checkboxEnabled ||\n (value && value.disabled) ? 'disabled' : undefined) +\n ' />',\n that.header.formatters[j] && typeof value === 'string' ? value : '',\n that.options.cardView ? '</div>' : '</td>'\n ].join('');\n\n item[that.header.stateField] = value === true || (value && value.checked);\n } else {\n value = typeof value === 'undefined' || value === null ?\n that.options.undefinedText : value;\n\n text = that.options.cardView ? ['<div class=\"card-view\">',\n that.options.showHeader ? sprintf('<span class=\"title\" %s>%s</span>', style,\n getPropertyFromOther(that.columns, 'field', 'title', field)) : '',\n sprintf('<span class=\"value\">%s</span>', value),\n '</div>'\n ].join('') : [sprintf('<td%s %s %s %s %s %s %s>',\n id_, class_, style, data_, rowspan_, colspan_, title_),\n value,\n '</td>'\n ].join('');\n\n // Hide empty data on Card view when smartDisplay is set to true.\n if (that.options.cardView && that.options.smartDisplay && value === '') {\n // Should set a placeholder for event binding correct fieldIndex\n text = '<div class=\"card-view\"></div>';\n }\n }\n\n html.push(text);\n });\n\n if (this.options.cardView) {\n html.push('</div></td>');\n }\n html.push('</tr>');\n\n return html.join(' ');\n };\n\n BootstrapTable.prototype.initBody = function (fixedScroll) {\n var that = this,\n html = [],\n data = this.getData();\n\n this.trigger('pre-body', data);\n\n this.$body = this.$el.find('>tbody');\n if (!this.$body.length) {\n this.$body = $('<tbody></tbody>').appendTo(this.$el);\n }\n\n //Fix #389 Bootstrap-table-flatJSON is not working\n\n if (!this.options.pagination || this.options.sidePagination === 'server') {\n this.pageFrom = 1;\n this.pageTo = data.length;\n }\n\n var trFragments = $(document.createDocumentFragment());\n var hasTr;\n\n for (var i = this.pageFrom - 1; i < this.pageTo; i++) {\n var item = data[i];\n var tr = this.initRow(item, i, data, trFragments);\n hasTr = hasTr || !!tr;\n if (tr&&tr!==true) {\n trFragments.append(tr);\n }\n }\n\n // show no records\n if (!hasTr) {\n trFragments.append('<tr class=\"no-records-found\">' +\n sprintf('<td colspan=\"%s\">%s</td>',\n this.$header.find('th').length,\n this.options.formatNoMatches()) +\n '</tr>');\n }\n\n this.$body.html(trFragments);\n\n if (!fixedScroll) {\n this.scrollTo(0);\n }\n\n // click to select by column\n this.$body.find('> tr[data-index] > td').off('click dblclick').on('click dblclick', function (e) {\n var $td = $(this),\n $tr = $td.parent(),\n item = that.data[$tr.data('index')],\n index = $td[0].cellIndex,\n fields = that.getVisibleFields(),\n field = fields[that.options.detailView && !that.options.cardView ? index - 1 : index],\n column = that.columns[getFieldIndex(that.columns, field)],\n value = getItemField(item, field, that.options.escape);\n\n if ($td.find('.detail-icon').length) {\n return;\n }\n\n that.trigger(e.type === 'click' ? 'click-cell' : 'dbl-click-cell', field, value, item, $td);\n that.trigger(e.type === 'click' ? 'click-row' : 'dbl-click-row', item, $tr, field);\n\n // if click to select - then trigger the checkbox/radio click\n if (e.type === 'click' && that.options.clickToSelect && column.clickToSelect) {\n var $selectItem = $tr.find(sprintf('[name=\"%s\"]', that.options.selectItemName));\n if ($selectItem.length) {\n $selectItem[0].click(); // #144: .trigger('click') bug\n }\n }\n });\n\n this.$body.find('> tr[data-index] > td > .detail-icon').off('click').on('click', function () {\n var $this = $(this),\n $tr = $this.parent().parent(),\n index = $tr.data('index'),\n row = data[index]; // Fix #980 Detail view, when searching, returns wrong row\n\n // remove and update\n if ($tr.next().is('tr.detail-view')) {\n $this.find('i').attr('class', sprintf('%s %s', that.options.iconsPrefix, that.options.icons.detailOpen));\n that.trigger('collapse-row', index, row);\n $tr.next().remove();\n } else {\n $this.find('i').attr('class', sprintf('%s %s', that.options.iconsPrefix, that.options.icons.detailClose));\n $tr.after(sprintf('<tr class=\"detail-view\"><td colspan=\"%s\"></td></tr>', $tr.find('td').length));\n var $element = $tr.next().find('td');\n var content = calculateObjectValue(that.options, that.options.detailFormatter, [index, row, $element], '');\n if($element.length === 1) {\n $element.append(content);\n }\n that.trigger('expand-row', index, row, $element);\n }\n that.resetView();\n return false;\n });\n\n this.$selectItem = this.$body.find(sprintf('[name=\"%s\"]', this.options.selectItemName));\n this.$selectItem.off('click').on('click', function (event) {\n event.stopImmediatePropagation();\n\n var $this = $(this),\n checked = $this.prop('checked'),\n row = that.data[$this.data('index')];\n\n if (that.options.maintainSelected && $(this).is(':radio')) {\n $.each(that.options.data, function (i, row) {\n row[that.header.stateField] = false;\n });\n }\n\n row[that.header.stateField] = checked;\n\n if (that.options.singleSelect) {\n that.$selectItem.not(this).each(function () {\n that.data[$(this).data('index')][that.header.stateField] = false;\n });\n that.$selectItem.filter(':checked').not(this).prop('checked', false);\n }\n\n that.updateSelected();\n that.trigger(checked ? 'check' : 'uncheck', row, $this);\n });\n\n $.each(this.header.events, function (i, events) {\n if (!events) {\n return;\n }\n // fix bug, if events is defined with namespace\n if (typeof events === 'string') {\n events = calculateObjectValue(null, events);\n }\n\n var field = that.header.fields[i],\n fieldIndex = $.inArray(field, that.getVisibleFields());\n\n if (that.options.detailView && !that.options.cardView) {\n fieldIndex += 1;\n }\n\n for (var key in events) {\n that.$body.find('>tr:not(.no-records-found)').each(function () {\n var $tr = $(this),\n $td = $tr.find(that.options.cardView ? '.card-view' : 'td').eq(fieldIndex),\n index = key.indexOf(' '),\n name = key.substring(0, index),\n el = key.substring(index + 1),\n func = events[key];\n\n $td.find(el).off(name).on(name, function (e) {\n var index = $tr.data('index'),\n row = that.data[index],\n value = row[field];\n\n func.apply(this, [e, value, row, index]);\n });\n });\n }\n });\n\n this.updateSelected();\n this.resetView();\n\n this.trigger('post-body', data);\n };\n\n BootstrapTable.prototype.initServer = function (silent, query, url) {\n var that = this,\n data = {},\n params = {\n searchText: this.searchText,\n sortName: this.options.sortName,\n sortOrder: this.options.sortOrder\n },\n request;\n\n if (this.options.pagination) {\n params.pageSize = this.options.pageSize === this.options.formatAllRows() ?\n this.options.totalRows : this.options.pageSize;\n params.pageNumber = this.options.pageNumber;\n }\n\n if (!(url || this.options.url) && !this.options.ajax) {\n return;\n }\n\n if (this.options.queryParamsType === 'limit') {\n params = {\n search: params.searchText,\n sort: params.sortName,\n order: params.sortOrder\n };\n\n if (this.options.pagination) {\n params.offset = this.options.pageSize === this.options.formatAllRows() ?\n 0 : this.options.pageSize * (this.options.pageNumber - 1);\n params.limit = this.options.pageSize === this.options.formatAllRows() ?\n this.options.totalRows : this.options.pageSize;\n }\n }\n\n if (!($.isEmptyObject(this.filterColumnsPartial))) {\n params.filter = JSON.stringify(this.filterColumnsPartial, null);\n }\n\n data = calculateObjectValue(this.options, this.options.queryParams, [params], data);\n\n $.extend(data, query || {});\n\n // false to stop request\n if (data === false) {\n return;\n }\n\n if (!silent) {\n this.$tableLoading.show();\n }\n request = $.extend({}, calculateObjectValue(null, this.options.ajaxOptions), {\n type: this.options.method,\n url: url || this.options.url,\n data: this.options.contentType === 'application/json' && this.options.method === 'post' ?\n JSON.stringify(data) : data,\n cache: this.options.cache,\n contentType: this.options.contentType,\n dataType: this.options.dataType,\n success: function (res) {\n res = calculateObjectValue(that.options, that.options.responseHandler, [res], res);\n\n that.load(res);\n that.trigger('load-success', res);\n if (!silent) that.$tableLoading.hide();\n },\n error: function (res) {\n that.trigger('load-error', res.status, res);\n if (!silent) that.$tableLoading.hide();\n }\n });\n\n if (this.options.ajax) {\n calculateObjectValue(this, this.options.ajax, [request], null);\n } else {\n if (this._xhr && this._xhr.readyState !== 4) {\n this._xhr.abort();\n }\n this._xhr = $.ajax(request);\n }\n };\n\n BootstrapTable.prototype.initSearchText = function () {\n if (this.options.search) {\n if (this.options.searchText !== '') {\n var $search = this.$toolbar.find('.search input');\n $search.val(this.options.searchText);\n this.onSearch({currentTarget: $search});\n }\n }\n };\n\n BootstrapTable.prototype.getCaret = function () {\n var that = this;\n\n $.each(this.$header.find('th'), function (i, th) {\n $(th).find('.sortable').removeClass('desc asc').addClass($(th).data('field') === that.options.sortName ? that.options.sortOrder : 'both');\n });\n };\n\n BootstrapTable.prototype.updateSelected = function () {\n var checkAll = this.$selectItem.filter(':enabled').length &&\n this.$selectItem.filter(':enabled').length ===\n this.$selectItem.filter(':enabled').filter(':checked').length;\n\n this.$selectAll.add(this.$selectAll_).prop('checked', checkAll);\n\n this.$selectItem.each(function () {\n $(this).closest('tr')[$(this).prop('checked') ? 'addClass' : 'removeClass']('selected');\n });\n };\n\n BootstrapTable.prototype.updateRows = function () {\n var that = this;\n\n this.$selectItem.each(function () {\n that.data[$(this).data('index')][that.header.stateField] = $(this).prop('checked');\n });\n };\n\n BootstrapTable.prototype.resetRows = function () {\n var that = this;\n\n $.each(this.data, function (i, row) {\n that.$selectAll.prop('checked', false);\n that.$selectItem.prop('checked', false);\n if (that.header.stateField) {\n row[that.header.stateField] = false;\n }\n });\n this.initHiddenRows();\n };\n\n BootstrapTable.prototype.trigger = function (name) {\n var args = Array.prototype.slice.call(arguments, 1);\n\n name += '.bs.table';\n this.options[BootstrapTable.EVENTS[name]].apply(this.options, args);\n this.$el.trigger($.Event(name), args);\n\n this.options.onAll(name, args);\n this.$el.trigger($.Event('all.bs.table'), [name, args]);\n };\n\n BootstrapTable.prototype.resetHeader = function () {\n // fix #61: the hidden table reset header bug.\n // fix bug: get $el.css('width') error sometime (height = 500)\n clearTimeout(this.timeoutId_);\n this.timeoutId_ = setTimeout($.proxy(this.fitHeader, this), this.$el.is(':hidden') ? 100 : 0);\n };\n\n BootstrapTable.prototype.fitHeader = function () {\n var that = this,\n fixedBody,\n scrollWidth,\n focused,\n focusedTemp;\n\n if (that.$el.is(':hidden')) {\n that.timeoutId_ = setTimeout($.proxy(that.fitHeader, that), 100);\n return;\n }\n fixedBody = this.$tableBody.get(0);\n\n scrollWidth = fixedBody.scrollWidth > fixedBody.clientWidth &&\n fixedBody.scrollHeight > fixedBody.clientHeight + this.$header.outerHeight() ?\n getScrollBarWidth() : 0;\n\n this.$el.css('margin-top', -this.$header.outerHeight());\n\n focused = $(':focus');\n if (focused.length > 0) {\n var $th = focused.parents('th');\n if ($th.length > 0) {\n var dataField = $th.attr('data-field');\n if (dataField !== undefined) {\n var $headerTh = this.$header.find(\"[data-field='\" + dataField + \"']\");\n if ($headerTh.length > 0) {\n $headerTh.find(\":input\").addClass(\"focus-temp\");\n }\n }\n }\n }\n\n this.$header_ = this.$header.clone(true, true);\n this.$selectAll_ = this.$header_.find('[name=\"btSelectAll\"]');\n this.$tableHeader.css({\n 'margin-right': scrollWidth\n }).find('table').css('width', this.$el.outerWidth())\n .html('').attr('class', this.$el.attr('class'))\n .append(this.$header_);\n\n\n focusedTemp = $('.focus-temp:visible:eq(0)');\n if (focusedTemp.length > 0) {\n focusedTemp.focus();\n this.$header.find('.focus-temp').removeClass('focus-temp');\n }\n\n // fix bug: $.data() is not working as expected after $.append()\n this.$header.find('th[data-field]').each(function (i) {\n that.$header_.find(sprintf('th[data-field=\"%s\"]', $(this).data('field'))).data($(this).data());\n });\n\n var visibleFields = this.getVisibleFields(),\n $ths = this.$header_.find('th');\n\n this.$body.find('>tr:first-child:not(.no-records-found) > *').each(function (i) {\n var $this = $(this),\n index = i;\n\n if (that.options.detailView && !that.options.cardView) {\n if (i === 0) {\n that.$header_.find('th.detail').find('.fht-cell').width($this.innerWidth());\n }\n index = i - 1;\n }\n\n var $th = that.$header_.find(sprintf('th[data-field=\"%s\"]', visibleFields[index]));\n if ($th.length > 1) {\n $th = $($ths[$this[0].cellIndex]);\n }\n\n $th.find('.fht-cell').width($this.innerWidth());\n });\n // horizontal scroll event\n // TODO: it's probably better improving the layout than binding to scroll event\n this.$tableBody.off('scroll').on('scroll', function () {\n that.$tableHeader.scrollLeft($(this).scrollLeft());\n\n if (that.options.showFooter && !that.options.cardView) {\n that.$tableFooter.scrollLeft($(this).scrollLeft());\n }\n });\n that.trigger('post-header');\n };\n\n BootstrapTable.prototype.resetFooter = function () {\n var that = this,\n data = that.getData(),\n html = [];\n\n if (!this.options.showFooter || this.options.cardView) { //do nothing\n return;\n }\n\n if (!this.options.cardView && this.options.detailView) {\n html.push('<td><div class=\"th-inner\"> </div><div class=\"fht-cell\"></div></td>');\n }\n\n $.each(this.columns, function (i, column) {\n var key,\n falign = '', // footer align style\n valign = '',\n csses = [],\n style = {},\n class_ = sprintf(' class=\"%s\"', column['class']);\n\n if (!column.visible) {\n return;\n }\n\n if (that.options.cardView && (!column.cardVisible)) {\n return;\n }\n\n falign = sprintf('text-align: %s; ', column.falign ? column.falign : column.align);\n valign = sprintf('vertical-align: %s; ', column.valign);\n\n style = calculateObjectValue(null, that.options.footerStyle);\n\n if (style && style.css) {\n for (key in style.css) {\n csses.push(key + ': ' + style.css[key]);\n }\n }\n\n html.push('<td', class_, sprintf(' style=\"%s\"', falign + valign + csses.concat().join('; ')), '>');\n html.push('<div class=\"th-inner\">');\n\n html.push(calculateObjectValue(column, column.footerFormatter, [data], ' ') || ' ');\n\n html.push('</div>');\n html.push('<div class=\"fht-cell\"></div>');\n html.push('</div>');\n html.push('</td>');\n });\n\n this.$tableFooter.find('tr').html(html.join(''));\n this.$tableFooter.show();\n clearTimeout(this.timeoutFooter_);\n this.timeoutFooter_ = setTimeout($.proxy(this.fitFooter, this),\n this.$el.is(':hidden') ? 100 : 0);\n };\n\n BootstrapTable.prototype.fitFooter = function () {\n var that = this,\n $footerTd,\n elWidth,\n scrollWidth;\n\n clearTimeout(this.timeoutFooter_);\n if (this.$el.is(':hidden')) {\n this.timeoutFooter_ = setTimeout($.proxy(this.fitFooter, this), 100);\n return;\n }\n\n elWidth = this.$el.css('width');\n scrollWidth = elWidth > this.$tableBody.width() ? getScrollBarWidth() : 0;\n\n this.$tableFooter.css({\n 'margin-right': scrollWidth\n }).find('table').css('width', elWidth)\n .attr('class', this.$el.attr('class'));\n\n $footerTd = this.$tableFooter.find('td');\n\n this.$body.find('>tr:first-child:not(.no-records-found) > *').each(function (i) {\n var $this = $(this);\n\n $footerTd.eq(i).find('.fht-cell').width($this.innerWidth());\n });\n };\n\n BootstrapTable.prototype.toggleColumn = function (index, checked, needUpdate) {\n if (index === -1) {\n return;\n }\n this.columns[index].visible = checked;\n this.initHeader();\n this.initSearch();\n this.initPagination();\n this.initBody();\n\n if (this.options.showColumns) {\n var $items = this.$toolbar.find('.keep-open input').prop('disabled', false);\n\n if (needUpdate) {\n $items.filter(sprintf('[value=\"%s\"]', index)).prop('checked', checked);\n }\n\n if ($items.filter(':checked').length <= this.options.minimumCountColumns) {\n $items.filter(':checked').prop('disabled', true);\n }\n }\n };\n\n BootstrapTable.prototype.getVisibleFields = function () {\n var that = this,\n visibleFields = [];\n\n $.each(this.header.fields, function (j, field) {\n var column = that.columns[getFieldIndex(that.columns, field)];\n\n if (!column.visible) {\n return;\n }\n visibleFields.push(field);\n });\n return visibleFields;\n };\n\n // PUBLIC FUNCTION DEFINITION\n // =======================\n\n BootstrapTable.prototype.resetView = function (params) {\n var padding = 0;\n\n if (params && params.height) {\n this.options.height = params.height;\n }\n\n this.$selectAll.prop('checked', this.$selectItem.length > 0 &&\n this.$selectItem.length === this.$selectItem.filter(':checked').length);\n\n if (this.options.height) {\n var toolbarHeight = this.$toolbar.outerHeight(true),\n paginationHeight = this.$pagination.outerHeight(true),\n height = this.options.height - toolbarHeight - paginationHeight;\n\n this.$tableContainer.css('height', height + 'px');\n }\n\n if (this.options.cardView) {\n // remove the element css\n this.$el.css('margin-top', '0');\n this.$tableContainer.css('padding-bottom', '0');\n this.$tableFooter.hide();\n return;\n }\n\n if (this.options.showHeader && this.options.height) {\n this.$tableHeader.show();\n this.resetHeader();\n padding += this.$header.outerHeight();\n } else {\n this.$tableHeader.hide();\n this.trigger('post-header');\n }\n\n if (this.options.showFooter) {\n this.resetFooter();\n if (this.options.height) {\n padding += this.$tableFooter.outerHeight() + 1;\n }\n }\n\n // Assign the correct sortable arrow\n this.getCaret();\n this.$tableContainer.css('padding-bottom', padding + 'px');\n this.trigger('reset-view');\n };\n\n BootstrapTable.prototype.getData = function (useCurrentPage) {\n return (this.searchText || !$.isEmptyObject(this.filterColumns) || !$.isEmptyObject(this.filterColumnsPartial)) ?\n (useCurrentPage ? this.data.slice(this.pageFrom - 1, this.pageTo) : this.data) :\n (useCurrentPage ? this.options.data.slice(this.pageFrom - 1, this.pageTo) : this.options.data);\n };\n\n BootstrapTable.prototype.load = function (data) {\n var fixedScroll = false;\n\n // #431: support pagination\n if (this.options.sidePagination === 'server') {\n this.options.totalRows = data[this.options.totalField];\n fixedScroll = data.fixedScroll;\n data = data[this.options.dataField];\n } else if (!$.isArray(data)) { // support fixedScroll\n fixedScroll = data.fixedScroll;\n data = data.data;\n }\n\n this.initData(data);\n this.initSearch();\n this.initPagination();\n this.initBody(fixedScroll);\n };\n\n BootstrapTable.prototype.append = function (data) {\n this.initData(data, 'append');\n this.initSearch();\n this.initPagination();\n this.initSort();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.prepend = function (data) {\n this.initData(data, 'prepend');\n this.initSearch();\n this.initPagination();\n this.initSort();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.remove = function (params) {\n var len = this.options.data.length,\n i, row;\n\n if (!params.hasOwnProperty('field') || !params.hasOwnProperty('values')) {\n return;\n }\n\n for (i = len - 1; i >= 0; i--) {\n row = this.options.data[i];\n\n if (!row.hasOwnProperty(params.field)) {\n continue;\n }\n if ($.inArray(row[params.field], params.values) !== -1) {\n this.options.data.splice(i, 1);\n if (this.options.sidePagination === 'server') {\n this.options.totalRows -= 1;\n }\n }\n }\n\n if (len === this.options.data.length) {\n return;\n }\n\n this.initSearch();\n this.initPagination();\n this.initSort();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.removeAll = function () {\n if (this.options.data.length > 0) {\n this.options.data.splice(0, this.options.data.length);\n this.initSearch();\n this.initPagination();\n this.initBody(true);\n }\n };\n\n BootstrapTable.prototype.getRowByUniqueId = function (id) {\n var uniqueId = this.options.uniqueId,\n len = this.options.data.length,\n dataRow = null,\n i, row, rowUniqueId;\n\n for (i = len - 1; i >= 0; i--) {\n row = this.options.data[i];\n\n if (row.hasOwnProperty(uniqueId)) { // uniqueId is a column\n rowUniqueId = row[uniqueId];\n } else if(row._data.hasOwnProperty(uniqueId)) { // uniqueId is a row data property\n rowUniqueId = row._data[uniqueId];\n } else {\n continue;\n }\n\n if (typeof rowUniqueId === 'string') {\n id = id.toString();\n } else if (typeof rowUniqueId === 'number') {\n if ((Number(rowUniqueId) === rowUniqueId) && (rowUniqueId % 1 === 0)) {\n id = parseInt(id);\n } else if ((rowUniqueId === Number(rowUniqueId)) && (rowUniqueId !== 0)) {\n id = parseFloat(id);\n }\n }\n\n if (rowUniqueId === id) {\n dataRow = row;\n break;\n }\n }\n\n return dataRow;\n };\n\n BootstrapTable.prototype.removeByUniqueId = function (id) {\n var len = this.options.data.length,\n row = this.getRowByUniqueId(id);\n\n if (row) {\n this.options.data.splice(this.options.data.indexOf(row), 1);\n }\n\n if (len === this.options.data.length) {\n return;\n }\n\n this.initSearch();\n this.initPagination();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.updateByUniqueId = function (params) {\n var that = this;\n var allParams = $.isArray(params) ? params : [ params ];\n\n $.each(allParams, function(i, params) {\n var rowId;\n\n if (!params.hasOwnProperty('id') || !params.hasOwnProperty('row')) {\n return;\n }\n\n rowId = $.inArray(that.getRowByUniqueId(params.id), that.options.data);\n\n if (rowId === -1) {\n return;\n }\n $.extend(that.options.data[rowId], params.row);\n });\n\n this.initSearch();\n this.initPagination();\n this.initSort();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.insertRow = function (params) {\n if (!params.hasOwnProperty('index') || !params.hasOwnProperty('row')) {\n return;\n }\n this.data.splice(params.index, 0, params.row);\n this.initSearch();\n this.initPagination();\n this.initSort();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.updateRow = function (params) {\n var that = this;\n var allParams = $.isArray(params) ? params : [ params ];\n\n $.each(allParams, function(i, params) {\n if (!params.hasOwnProperty('index') || !params.hasOwnProperty('row')) {\n return;\n }\n $.extend(that.options.data[params.index], params.row);\n });\n\n this.initSearch();\n this.initPagination();\n this.initSort();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.initHiddenRows = function () {\n this.hiddenRows = [];\n };\n\n BootstrapTable.prototype.showRow = function (params) {\n this.toggleRow(params, true);\n };\n\n BootstrapTable.prototype.hideRow = function (params) {\n this.toggleRow(params, false);\n };\n\n BootstrapTable.prototype.toggleRow = function (params, visible) {\n var row, index;\n\n if (params.hasOwnProperty('index')) {\n row = this.getData()[params.index];\n } else if (params.hasOwnProperty('uniqueId')) {\n row = this.getRowByUniqueId(params.uniqueId);\n }\n\n if (!row) {\n return;\n }\n\n index = $.inArray(row, this.hiddenRows);\n\n if (!visible && index === -1) {\n this.hiddenRows.push(row);\n } else if (visible && index > -1) {\n this.hiddenRows.splice(index, 1);\n }\n this.initBody(true);\n };\n\n BootstrapTable.prototype.getHiddenRows = function (show) {\n var that = this,\n data = this.getData(),\n rows = [];\n\n $.each(data, function (i, row) {\n if ($.inArray(row, that.hiddenRows) > -1) {\n rows.push(row);\n }\n });\n this.hiddenRows = rows;\n return rows;\n };\n\n BootstrapTable.prototype.mergeCells = function (options) {\n var row = options.index,\n col = $.inArray(options.field, this.getVisibleFields()),\n rowspan = options.rowspan || 1,\n colspan = options.colspan || 1,\n i, j,\n $tr = this.$body.find('>tr'),\n $td;\n\n if (this.options.detailView && !this.options.cardView) {\n col += 1;\n }\n\n $td = $tr.eq(row).find('>td').eq(col);\n\n if (row < 0 || col < 0 || row >= this.data.length) {\n return;\n }\n\n for (i = row; i < row + rowspan; i++) {\n for (j = col; j < col + colspan; j++) {\n $tr.eq(i).find('>td').eq(j).hide();\n }\n }\n\n $td.attr('rowspan', rowspan).attr('colspan', colspan).show();\n };\n\n BootstrapTable.prototype.updateCell = function (params) {\n if (!params.hasOwnProperty('index') ||\n !params.hasOwnProperty('field') ||\n !params.hasOwnProperty('value')) {\n return;\n }\n this.data[params.index][params.field] = params.value;\n\n if (params.reinit === false) {\n return;\n }\n this.initSort();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.getOptions = function () {\n return this.options;\n };\n\n BootstrapTable.prototype.getSelections = function () {\n var that = this;\n\n return $.grep(this.options.data, function (row) {\n // fix #2424: from html with checkbox\n return row[that.header.stateField] === true;\n });\n };\n\n BootstrapTable.prototype.getAllSelections = function () {\n var that = this;\n\n return $.grep(this.options.data, function (row) {\n return row[that.header.stateField];\n });\n };\n\n BootstrapTable.prototype.checkAll = function () {\n this.checkAll_(true);\n };\n\n BootstrapTable.prototype.uncheckAll = function () {\n this.checkAll_(false);\n };\n\n BootstrapTable.prototype.checkInvert = function () {\n var that = this;\n var rows = that.$selectItem.filter(':enabled');\n var checked = rows.filter(':checked');\n rows.each(function() {\n $(this).prop('checked', !$(this).prop('checked'));\n });\n that.updateRows();\n that.updateSelected();\n that.trigger('uncheck-some', checked);\n checked = that.getSelections();\n that.trigger('check-some', checked);\n };\n\n BootstrapTable.prototype.checkAll_ = function (checked) {\n var rows;\n if (!checked) {\n rows = this.getSelections();\n }\n this.$selectAll.add(this.$selectAll_).prop('checked', checked);\n this.$selectItem.filter(':enabled').prop('checked', checked);\n this.updateRows();\n if (checked) {\n rows = this.getSelections();\n }\n this.trigger(checked ? 'check-all' : 'uncheck-all', rows);\n };\n\n BootstrapTable.prototype.check = function (index) {\n this.check_(true, index);\n };\n\n BootstrapTable.prototype.uncheck = function (index) {\n this.check_(false, index);\n };\n\n BootstrapTable.prototype.check_ = function (checked, index) {\n var $el = this.$selectItem.filter(sprintf('[data-index=\"%s\"]', index)).prop('checked', checked);\n this.data[index][this.header.stateField] = checked;\n this.updateSelected();\n this.trigger(checked ? 'check' : 'uncheck', this.data[index], $el);\n };\n\n BootstrapTable.prototype.checkBy = function (obj) {\n this.checkBy_(true, obj);\n };\n\n BootstrapTable.prototype.uncheckBy = function (obj) {\n this.checkBy_(false, obj);\n };\n\n BootstrapTable.prototype.checkBy_ = function (checked, obj) {\n if (!obj.hasOwnProperty('field') || !obj.hasOwnProperty('values')) {\n return;\n }\n\n var that = this,\n rows = [];\n $.each(this.options.data, function (index, row) {\n if (!row.hasOwnProperty(obj.field)) {\n return false;\n }\n if ($.inArray(row[obj.field], obj.values) !== -1) {\n var $el = that.$selectItem.filter(':enabled')\n .filter(sprintf('[data-index=\"%s\"]', index)).prop('checked', checked);\n row[that.header.stateField] = checked;\n rows.push(row);\n that.trigger(checked ? 'check' : 'uncheck', row, $el);\n }\n });\n this.updateSelected();\n this.trigger(checked ? 'check-some' : 'uncheck-some', rows);\n };\n\n BootstrapTable.prototype.destroy = function () {\n this.$el.insertBefore(this.$container);\n $(this.options.toolbar).insertBefore(this.$el);\n this.$container.next().remove();\n this.$container.remove();\n this.$el.html(this.$el_.html())\n .css('margin-top', '0')\n .attr('class', this.$el_.attr('class') || ''); // reset the class\n };\n\n BootstrapTable.prototype.showLoading = function () {\n this.$tableLoading.show();\n };\n\n BootstrapTable.prototype.hideLoading = function () {\n this.$tableLoading.hide();\n };\n\n BootstrapTable.prototype.togglePagination = function () {\n this.options.pagination = !this.options.pagination;\n var button = this.$toolbar.find('button[name=\"paginationSwitch\"] i');\n if (this.options.pagination) {\n button.attr(\"class\", this.options.iconsPrefix + \" \" + this.options.icons.paginationSwitchDown);\n } else {\n button.attr(\"class\", this.options.iconsPrefix + \" \" + this.options.icons.paginationSwitchUp);\n }\n this.updatePagination();\n };\n\n BootstrapTable.prototype.refresh = function (params) {\n if (params && params.url) {\n this.options.url = params.url;\n }\n if (params && params.pageNumber) {\n this.options.pageNumber = params.pageNumber;\n }\n if (params && params.pageSize) {\n this.options.pageSize = params.pageSize;\n }\n this.initServer(params && params.silent,\n params && params.query, params && params.url);\n this.trigger('refresh', params);\n };\n\n BootstrapTable.prototype.resetWidth = function () {\n if (this.options.showHeader && this.options.height) {\n this.fitHeader();\n }\n if (this.options.showFooter) {\n this.fitFooter();\n }\n };\n\n BootstrapTable.prototype.showColumn = function (field) {\n this.toggleColumn(getFieldIndex(this.columns, field), true, true);\n };\n\n BootstrapTable.prototype.hideColumn = function (field) {\n this.toggleColumn(getFieldIndex(this.columns, field), false, true);\n };\n\n BootstrapTable.prototype.getHiddenColumns = function () {\n return $.grep(this.columns, function (column) {\n return !column.visible;\n });\n };\n\n BootstrapTable.prototype.getVisibleColumns = function () {\n return $.grep(this.columns, function (column) {\n return column.visible;\n });\n };\n\n BootstrapTable.prototype.toggleAllColumns = function (visible) {\n $.each(this.columns, function (i, column) {\n this.columns[i].visible = visible;\n });\n\n this.initHeader();\n this.initSearch();\n this.initPagination();\n this.initBody();\n if (this.options.showColumns) {\n var $items = this.$toolbar.find('.keep-open input').prop('disabled', false);\n\n if ($items.filter(':checked').length <= this.options.minimumCountColumns) {\n $items.filter(':checked').prop('disabled', true);\n }\n }\n };\n\n BootstrapTable.prototype.showAllColumns = function () {\n this.toggleAllColumns(true);\n };\n\n BootstrapTable.prototype.hideAllColumns = function () {\n this.toggleAllColumns(false);\n };\n\n BootstrapTable.prototype.filterBy = function (columns) {\n this.filterColumns = $.isEmptyObject(columns) ? {} : columns;\n this.options.pageNumber = 1;\n this.initSearch();\n this.updatePagination();\n };\n\n BootstrapTable.prototype.scrollTo = function (value) {\n if (typeof value === 'string') {\n value = value === 'bottom' ? this.$tableBody[0].scrollHeight : 0;\n }\n if (typeof value === 'number') {\n this.$tableBody.scrollTop(value);\n }\n if (typeof value === 'undefined') {\n return this.$tableBody.scrollTop();\n }\n };\n\n BootstrapTable.prototype.getScrollPosition = function () {\n return this.scrollTo();\n };\n\n BootstrapTable.prototype.selectPage = function (page) {\n if (page > 0 && page <= this.options.totalPages) {\n this.options.pageNumber = page;\n this.updatePagination();\n }\n };\n\n BootstrapTable.prototype.prevPage = function () {\n if (this.options.pageNumber > 1) {\n this.options.pageNumber--;\n this.updatePagination();\n }\n };\n\n BootstrapTable.prototype.nextPage = function () {\n if (this.options.pageNumber < this.options.totalPages) {\n this.options.pageNumber++;\n this.updatePagination();\n }\n };\n\n BootstrapTable.prototype.toggleView = function () {\n this.options.cardView = !this.options.cardView;\n this.initHeader();\n // Fixed remove toolbar when click cardView button.\n //that.initToolbar();\n this.initBody();\n this.trigger('toggle', this.options.cardView);\n };\n\n BootstrapTable.prototype.refreshOptions = function (options) {\n //If the objects are equivalent then avoid the call of destroy / init methods\n if (compareObjects(this.options, options, true)) {\n return;\n }\n this.options = $.extend(this.options, options);\n this.trigger('refresh-options', this.options);\n this.destroy();\n this.init();\n };\n\n BootstrapTable.prototype.resetSearch = function (text) {\n var $search = this.$toolbar.find('.search input');\n $search.val(text || '');\n this.onSearch({currentTarget: $search});\n };\n\n BootstrapTable.prototype.expandRow_ = function (expand, index) {\n var $tr = this.$body.find(sprintf('> tr[data-index=\"%s\"]', index));\n if ($tr.next().is('tr.detail-view') === (expand ? false : true)) {\n $tr.find('> td > .detail-icon').click();\n }\n };\n\n BootstrapTable.prototype.expandRow = function (index) {\n this.expandRow_(true, index);\n };\n\n BootstrapTable.prototype.collapseRow = function (index) {\n this.expandRow_(false, index);\n };\n\n BootstrapTable.prototype.expandAllRows = function (isSubTable) {\n if (isSubTable) {\n var $tr = this.$body.find(sprintf('> tr[data-index=\"%s\"]', 0)),\n that = this,\n detailIcon = null,\n executeInterval = false,\n idInterval = -1;\n\n if (!$tr.next().is('tr.detail-view')) {\n $tr.find('> td > .detail-icon').click();\n executeInterval = true;\n } else if (!$tr.next().next().is('tr.detail-view')) {\n $tr.next().find(\".detail-icon\").click();\n executeInterval = true;\n }\n\n if (executeInterval) {\n try {\n idInterval = setInterval(function () {\n detailIcon = that.$body.find(\"tr.detail-view\").last().find(\".detail-icon\");\n if (detailIcon.length > 0) {\n detailIcon.click();\n } else {\n clearInterval(idInterval);\n }\n }, 1);\n } catch (ex) {\n clearInterval(idInterval);\n }\n }\n } else {\n var trs = this.$body.children();\n for (var i = 0; i < trs.length; i++) {\n this.expandRow_(true, $(trs[i]).data(\"index\"));\n }\n }\n };\n\n BootstrapTable.prototype.collapseAllRows = function (isSubTable) {\n if (isSubTable) {\n this.expandRow_(false, 0);\n } else {\n var trs = this.$body.children();\n for (var i = 0; i < trs.length; i++) {\n this.expandRow_(false, $(trs[i]).data(\"index\"));\n }\n }\n };\n\n BootstrapTable.prototype.updateFormatText = function (name, text) {\n if (this.options[sprintf('format%s', name)]) {\n if (typeof text === 'string') {\n this.options[sprintf('format%s', name)] = function () {\n return text;\n };\n } else if (typeof text === 'function') {\n this.options[sprintf('format%s', name)] = text;\n }\n }\n this.initToolbar();\n this.initPagination();\n this.initBody();\n };\n\n // BOOTSTRAP TABLE PLUGIN DEFINITION\n // =======================\n\n var allowedMethods = [\n 'getOptions',\n 'getSelections', 'getAllSelections', 'getData',\n 'load', 'append', 'prepend', 'remove', 'removeAll',\n 'insertRow', 'updateRow', 'updateCell', 'updateByUniqueId', 'removeByUniqueId',\n 'getRowByUniqueId', 'showRow', 'hideRow', 'getHiddenRows',\n 'mergeCells',\n 'checkAll', 'uncheckAll', 'checkInvert',\n 'check', 'uncheck',\n 'checkBy', 'uncheckBy',\n 'refresh',\n 'resetView',\n 'resetWidth',\n 'destroy',\n 'showLoading', 'hideLoading',\n 'showColumn', 'hideColumn', 'getHiddenColumns', 'getVisibleColumns',\n 'showAllColumns', 'hideAllColumns',\n 'filterBy',\n 'scrollTo',\n 'getScrollPosition',\n 'selectPage', 'prevPage', 'nextPage',\n 'togglePagination',\n 'toggleView',\n 'refreshOptions',\n 'resetSearch',\n 'expandRow', 'collapseRow', 'expandAllRows', 'collapseAllRows',\n 'updateFormatText'\n ];\n\n $.fn.bootstrapTable = function (option) {\n var value,\n args = Array.prototype.slice.call(arguments, 1);\n\n this.each(function () {\n var $this = $(this),\n data = $this.data('bootstrap.table'),\n options = $.extend({}, BootstrapTable.DEFAULTS, $this.data(),\n typeof option === 'object' && option);\n\n if (typeof option === 'string') {\n if ($.inArray(option, allowedMethods) < 0) {\n throw new Error(\"Unknown method: \" + option);\n }\n\n if (!data) {\n return;\n }\n\n value = data[option].apply(data, args);\n\n if (option === 'destroy') {\n $this.removeData('bootstrap.table');\n }\n }\n\n if (!data) {\n $this.data('bootstrap.table', (data = new BootstrapTable(this, options)));\n }\n });\n\n return typeof value === 'undefined' ? this : value;\n };\n\n $.fn.bootstrapTable.Constructor = BootstrapTable;\n $.fn.bootstrapTable.defaults = BootstrapTable.DEFAULTS;\n $.fn.bootstrapTable.columnDefaults = BootstrapTable.COLUMN_DEFAULTS;\n $.fn.bootstrapTable.locales = BootstrapTable.LOCALES;\n $.fn.bootstrapTable.methods = allowedMethods;\n $.fn.bootstrapTable.utils = {\n sprintf: sprintf,\n getFieldIndex: getFieldIndex,\n compareObjects: compareObjects,\n calculateObjectValue: calculateObjectValue,\n getItemField: getItemField,\n objectKeys: objectKeys,\n isIEBrowser: isIEBrowser\n };\n\n // BOOTSTRAP TABLE INIT\n // =======================\n\n $(function () {\n $('[data-toggle=\"table\"]').bootstrapTable();\n });\n})(jQuery);\n"],"sourceRoot":""}
|