vendor/assets/javascripts/bootstrap-table/bootstrap-table.js in bootstrap-table-rails-1.17.0 vs vendor/assets/javascripts/bootstrap-table/bootstrap-table.js in bootstrap-table-rails-1.17.1

- old
+ new

@@ -2849,11 +2849,11 @@ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - var VERSION = '1.17.0'; + var VERSION = '1.17.1'; var bootstrapVersion = 4; try { var rawVersion = $.fn.dropdown.Constructor.VERSION; // Only try to parse VERSION if it is defined. // It is undefined in older versions of Bootstrap (tested with 3.1.1). @@ -3102,10 +3102,11 @@ showHeader: true, showFooter: false, footerStyle: function footerStyle(column) { return {}; }, + searchAccentNeutralise: false, showColumns: false, showColumnsToggleAll: false, showColumnsSearch: false, minimumCountColumns: 1, showPaginationSwitch: false, @@ -3146,11 +3147,10 @@ buttonsAlign: 'right', buttonsOrder: ['paginationSwitch', 'refresh', 'toggle', 'fullscreen', 'columns'], buttonsPrefix: CONSTANTS.classes.buttonsPrefix, buttonsClass: CONSTANTS.classes.buttons, icons: CONSTANTS.icons, - html: CONSTANTS.html, iconSize: undefined, iconsPrefix: CONSTANTS.iconsPrefix, // glyphicon or fa(font-awesome) loadingFontSize: 'auto', loadingTemplate: function loadingTemplate(loadingMessage) { @@ -3403,10 +3403,74 @@ keys: function keys(it) { return objectKeys(toObject(it)); } }); + var getOwnPropertyDescriptor$3 = objectGetOwnPropertyDescriptor.f; + + + + + + + var nativeEndsWith = ''.endsWith; + var min$5 = Math.min; + + var CORRECT_IS_REGEXP_LOGIC = correctIsRegexpLogic('endsWith'); + // https://github.com/zloirock/core-js/pull/702 + var MDN_POLYFILL_BUG = !CORRECT_IS_REGEXP_LOGIC && !!function () { + var descriptor = getOwnPropertyDescriptor$3(String.prototype, 'endsWith'); + return descriptor && !descriptor.writable; + }(); + + // `String.prototype.endsWith` method + // https://tc39.github.io/ecma262/#sec-string.prototype.endswith + _export({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, { + endsWith: function endsWith(searchString /* , endPosition = @length */) { + var that = String(requireObjectCoercible(this)); + notARegexp(searchString); + var endPosition = arguments.length > 1 ? arguments[1] : undefined; + var len = toLength(that.length); + var end = endPosition === undefined ? len : min$5(toLength(endPosition), len); + var search = String(searchString); + return nativeEndsWith + ? nativeEndsWith.call(that, search, end) + : that.slice(end - search.length, end) === search; + } + }); + + var getOwnPropertyDescriptor$4 = objectGetOwnPropertyDescriptor.f; + + + + + + + var nativeStartsWith = ''.startsWith; + var min$6 = Math.min; + + var CORRECT_IS_REGEXP_LOGIC$1 = correctIsRegexpLogic('startsWith'); + // https://github.com/zloirock/core-js/pull/702 + var MDN_POLYFILL_BUG$1 = !CORRECT_IS_REGEXP_LOGIC$1 && !!function () { + var descriptor = getOwnPropertyDescriptor$4(String.prototype, 'startsWith'); + return descriptor && !descriptor.writable; + }(); + + // `String.prototype.startsWith` method + // https://tc39.github.io/ecma262/#sec-string.prototype.startswith + _export({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG$1 && !CORRECT_IS_REGEXP_LOGIC$1 }, { + startsWith: function startsWith(searchString /* , position = 0 */) { + var that = String(requireObjectCoercible(this)); + notARegexp(searchString); + var index = toLength(min$6(arguments.length > 1 ? arguments[1] : undefined, that.length)); + var search = String(searchString); + return nativeStartsWith + ? nativeStartsWith.call(that, search, index) + : that.slice(index, index + search.length) === search; + } + }); + var Utils = { // it only does '%s', and return '' when arguments are undefined sprintf: function sprintf(_str) { for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; @@ -3547,10 +3611,13 @@ } } } } }, + normalizeAccent: function normalizeAccent(string) { + return string.normalize('NFD').replace(/[\u0300-\u036f]/g, ''); + }, updateFieldGroup: function updateFieldGroup(columns) { var _ref; var allColumns = (_ref = []).concat.apply(_ref, _toConsumableArray(columns)); @@ -3902,10 +3969,44 @@ id = id || "".concat(+new Date()).concat(~~(Math.random() * 1000000)); return "resize.bootstrap-table-".concat(id); }, hasDetailViewIcon: function hasDetailViewIcon(options) { return options.detailView && options.detailViewIcon && !options.cardView; + }, + checkAutoMergeCells: function checkAutoMergeCells(data) { + var _iteratorNormalCompletion9 = true; + var _didIteratorError9 = false; + var _iteratorError9 = undefined; + + try { + for (var _iterator9 = data[Symbol.iterator](), _step9; !(_iteratorNormalCompletion9 = (_step9 = _iterator9.next()).done); _iteratorNormalCompletion9 = true) { + var row = _step9.value; + + for (var _i4 = 0, _Object$keys = Object.keys(row); _i4 < _Object$keys.length; _i4++) { + var key = _Object$keys[_i4]; + + if (key.startsWith('_') && (key.endsWith('_rowspan') || key.endsWith('_colspan'))) { + return true; + } + } + } + } catch (err) { + _didIteratorError9 = true; + _iteratorError9 = err; + } finally { + try { + if (!_iteratorNormalCompletion9 && _iterator9.return != null) { + _iterator9.return(); + } + } finally { + if (_didIteratorError9) { + throw _iteratorError9; + } + } + } + + return false; } }; var BLOCK_ROWS = 50; var CLUSTER_BLOCKS = 4; @@ -4428,16 +4529,20 @@ if (type === 'append') { this.options.data = this.options.data.concat(data); } else if (type === 'prepend') { this.options.data = [].concat(data).concat(this.options.data); } else { - this.options.data = data || this.options.data; + data = data || this.options.data; + this.options.data = Array.isArray(data) ? data : data[this.options.dataField]; } - this.data = this.options.data; - this.unsortedData = _toConsumableArray(this.data); + this.data = _toConsumableArray(this.options.data); + if (this.options.sortReset) { + this.unsortedData = _toConsumableArray(this.data); + } + if (this.options.sidePagination === 'server') { return; } this.initSort(); @@ -4493,12 +4598,12 @@ var index = _this3.$header.find("[data-field=\"".concat(_this3.options.sortName, "\"]")).index(); _this3.$el.find("tr td:nth-child(".concat(index + 1, ")")).addClass(_this3.options.sortClass); }, 250); } - } else { - this.data = this.unsortedData; + } else if (this.options.sortReset) { + this.data = _toConsumableArray(this.unsortedData); } } }, { key: "onSort", value: function onSort(_ref) { @@ -4582,11 +4687,11 @@ columns: function () { var html = []; html.push("<div class=\"keep-open ".concat(_this4.constants.classes.buttonsDropdown, "\" title=\"").concat(opts.formatColumns(), "\">\n <button class=\"").concat(_this4.constants.buttonsClass, " dropdown-toggle\" type=\"button\" data-toggle=\"dropdown\"\n aria-label=\"Columns\" title=\"").concat(opts.formatColumns(), "\">\n ").concat(opts.showButtonIcons ? Utils.sprintf(_this4.constants.html.icon, opts.iconsPrefix, opts.icons.columns) : '', "\n ").concat(opts.showButtonText ? opts.formatColumns() : '', "\n ").concat(_this4.constants.html.dropdownCaret, "\n </button>\n ").concat(_this4.constants.html.toolbarDropdown[0])); if (opts.showColumnsSearch) { - html.push(Utils.sprintf(_this4.constants.html.toolbarDropdownItem, Utils.sprintf('<input type="text" class="%s" id="columnsSearch" placeholder="%s" autocomplete="off">', _this4.constants.classes.input, opts.formatSearch()))); + html.push(Utils.sprintf(_this4.constants.html.toolbarDropdownItem, Utils.sprintf('<input type="text" class="%s" name="columnsSearch" placeholder="%s" autocomplete="off">', _this4.constants.classes.input, opts.formatSearch()))); html.push(_this4.constants.html.toolbarDropdownSeparator); } if (opts.showColumnsToggleAll) { var allFieldsVisible = _this4.getVisibleColumns().length === _this4.columns.filter(function (column) { @@ -4718,11 +4823,11 @@ _this4._toggleAllColumns($(currentTarget).prop('checked')); }); if (opts.showColumnsSearch) { - var $columnsSearch = $keepOpen.find('#columnsSearch'); + var $columnsSearch = $keepOpen.find('[name="columnsSearch"]'); var $listItems = $keepOpen.find('.dropdown-item-marker'); $columnsSearch.on('keyup paste change', function (_ref4) { var currentTarget = _ref4.currentTarget; var $this = $(currentTarget); var searchValue = $this.val().toLowerCase(); @@ -4887,11 +4992,11 @@ return match; } return true; - }) : this.options.data; + }) : _toConsumableArray(this.options.data); } var visibleFields = this.getVisibleFields(); this.data = s ? this.data.filter(function (item, i) { for (var j = 0; j < _this5.header.fields.length; j++) { @@ -4912,10 +5017,14 @@ value = value[props[_i2]]; } } } else { value = item[key]; + } + + if (_this5.options.searchAccentNeutralise) { + value = Utils.normalizeAccent(value); } // Fix #142: respect searchFormatter boolean if (column && column.searchFormatter) { value = Utils.calculateObjectValue(column, _this5.header.formatters[j], [value, item, i, column.field], value); @@ -4971,11 +5080,15 @@ } } return false; }) : this.data; - this.unsortedData = _toConsumableArray(this.data); + + if (this.options.sortReset) { + this.unsortedData = _toConsumableArray(this.data); + } + this.initSort(); } } }, { key: "initPagination", @@ -5392,11 +5505,11 @@ var rowspan_ = ''; var colspan_ = ''; var title_ = ''; var column = _this7.columns[j]; - if (_this7.fromHtml && typeof value_ === 'undefined') { + if ((_this7.fromHtml || _this7.autoMergeCells) && typeof value_ === 'undefined') { if (!column.checkbox && !column.radio) { return; } } @@ -5531,9 +5644,10 @@ } var rows = []; var trFragments = $(document.createDocumentFragment()); var hasTr = false; + this.autoMergeCells = Utils.checkAutoMergeCells(data.slice(this.pageFrom - 1, this.pageTo)); for (var i = this.pageFrom - 1; i < this.pageTo; i++) { var item = data[i]; var tr = this.initRow(item, i, data, trFragments); hasTr = hasTr || !!tr;