bootstrap-table-rails 1.17.1 → 1.18.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/lib/bootstrap-table-rails/version.rb +1 -1
  3. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table-locale-all.js +321 -3
  4. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table.css +10 -2
  5. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table.js +517 -248
  6. data/vendor/assets/javascripts/bootstrap-table/extensions/addrbar/bootstrap-table-addrbar.js +26 -5
  7. data/vendor/assets/javascripts/bootstrap-table/extensions/auto-refresh/bootstrap-table-auto-refresh.js +61 -12
  8. data/vendor/assets/javascripts/bootstrap-table/extensions/cookie/bootstrap-table-cookie.js +45 -5
  9. data/vendor/assets/javascripts/bootstrap-table/extensions/copy-rows/bootstrap-table-copy-rows.js +78 -14
  10. data/vendor/assets/javascripts/bootstrap-table/extensions/custom-view/bootstrap-table-custom-view.js +59 -448
  11. data/vendor/assets/javascripts/bootstrap-table/extensions/export/bootstrap-table-export.js +83 -22
  12. data/vendor/assets/javascripts/bootstrap-table/extensions/filter-control/bootstrap-table-filter-control.js +65 -11
  13. data/vendor/assets/javascripts/bootstrap-table/extensions/group-by-v2/bootstrap-table-group-by.css +3 -2
  14. data/vendor/assets/javascripts/bootstrap-table/extensions/group-by-v2/bootstrap-table-group-by.js +179 -501
  15. data/vendor/assets/javascripts/bootstrap-table/extensions/key-events/bootstrap-table-key-events.js +2 -1
  16. data/vendor/assets/javascripts/bootstrap-table/extensions/multiple-sort/bootstrap-table-multiple-sort.js +65 -437
  17. data/vendor/assets/javascripts/bootstrap-table/extensions/print/bootstrap-table-print.js +74 -17
  18. data/vendor/assets/javascripts/bootstrap-table/extensions/sticky-header/bootstrap-table-sticky-header.js +17 -4
  19. data/vendor/assets/javascripts/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.js +71 -18
  20. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-af-ZA.js +6 -0
  21. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ar-SA.js +6 -0
  22. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-bg-BG.js +6 -0
  23. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ca-ES.js +6 -0
  24. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-cs-CZ.js +6 -0
  25. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-da-DK.js +6 -0
  26. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-de-DE.js +9 -3
  27. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-el-GR.js +6 -0
  28. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-en-US.js +6 -0
  29. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-AR.js +6 -0
  30. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-CL.js +6 -0
  31. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-CR.js +6 -0
  32. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-ES.js +6 -0
  33. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-MX.js +6 -0
  34. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-NI.js +6 -0
  35. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-SP.js +6 -0
  36. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-et-EE.js +6 -0
  37. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-eu-EU.js +6 -0
  38. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fa-IR.js +6 -0
  39. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fi-FI.js +6 -0
  40. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-BE.js +6 -0
  41. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-CH.js +6 -0
  42. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-FR.js +6 -0
  43. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-LU.js +6 -0
  44. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-he-IL.js +6 -0
  45. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-hr-HR.js +6 -0
  46. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-hu-HU.js +6 -0
  47. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-id-ID.js +6 -0
  48. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-it-IT.js +6 -0
  49. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ja-JP.js +6 -0
  50. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ka-GE.js +6 -0
  51. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ko-KR.js +6 -0
  52. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ms-MY.js +6 -0
  53. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-nb-NO.js +6 -0
  54. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-nl-BE.js +6 -0
  55. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-nl-NL.js +6 -0
  56. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-pl-PL.js +6 -0
  57. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-pt-BR.js +6 -0
  58. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-pt-PT.js +6 -0
  59. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ro-RO.js +6 -0
  60. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ru-RU.js +6 -0
  61. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-sk-SK.js +6 -0
  62. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-sr-Cyrl-RS.js +6 -0
  63. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-sr-Latn-RS.js +6 -0
  64. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-sv-SE.js +6 -0
  65. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-th-TH.js +6 -0
  66. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-tr-TR.js +6 -0
  67. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-uk-UA.js +6 -0
  68. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ur-PK.js +6 -0
  69. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-uz-Latn-UZ.js +6 -0
  70. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-vi-VN.js +6 -0
  71. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-zh-CN.js +6 -0
  72. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-zh-TW.js +6 -0
  73. data/vendor/assets/javascripts/bootstrap-table/themes/bootstrap-table/bootstrap-table.css +9 -1
  74. data/vendor/assets/javascripts/bootstrap-table/themes/bulma/bootstrap-table-bulma.css +9 -1
  75. data/vendor/assets/javascripts/bootstrap-table/themes/bulma/bootstrap-table-bulma.js +1 -1
  76. data/vendor/assets/javascripts/bootstrap-table/themes/foundation/bootstrap-table-foundation.css +9 -1
  77. data/vendor/assets/javascripts/bootstrap-table/themes/foundation/bootstrap-table-foundation.js +1 -1
  78. data/vendor/assets/javascripts/bootstrap-table/themes/materialize/bootstrap-table-materialize.css +9 -1
  79. data/vendor/assets/javascripts/bootstrap-table/themes/semantic/bootstrap-table-semantic.css +9 -1
  80. metadata +1 -1
@@ -526,33 +526,10 @@
526
526
  }
527
527
  };
528
528
 
529
- var aFunction$1 = function (it) {
530
- if (typeof it != 'function') {
531
- throw TypeError(String(it) + ' is not a function');
532
- } return it;
533
- };
534
-
535
- // optional / simple context binding
536
- var bindContext = function (fn, that, length) {
537
- aFunction$1(fn);
538
- if (that === undefined) return fn;
539
- switch (length) {
540
- case 0: return function () {
541
- return fn.call(that);
542
- };
543
- case 1: return function (a) {
544
- return fn.call(that, a);
545
- };
546
- case 2: return function (a, b) {
547
- return fn.call(that, a, b);
548
- };
549
- case 3: return function (a, b, c) {
550
- return fn.call(that, a, b, c);
551
- };
552
- }
553
- return function (/* ...args */) {
554
- return fn.apply(that, arguments);
555
- };
529
+ // `IsArray` abstract operation
530
+ // https://tc39.github.io/ecma262/#sec-isarray
531
+ var isArray = Array.isArray || function isArray(arg) {
532
+ return classofRaw(arg) == 'Array';
556
533
  };
557
534
 
558
535
  // `ToObject` abstract operation
@@ -561,10 +538,10 @@
561
538
  return Object(requireObjectCoercible(argument));
562
539
  };
563
540
 
564
- // `IsArray` abstract operation
565
- // https://tc39.github.io/ecma262/#sec-isarray
566
- var isArray = Array.isArray || function isArray(arg) {
567
- return classofRaw(arg) == 'Array';
541
+ var createProperty = function (object, key, value) {
542
+ var propertyKey = toPrimitive(key);
543
+ if (propertyKey in object) objectDefineProperty.f(object, propertyKey, createPropertyDescriptor(0, value));
544
+ else object[propertyKey] = value;
568
545
  };
569
546
 
570
547
  var nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () {
@@ -607,6 +584,119 @@
607
584
  } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);
608
585
  };
609
586
 
587
+ var userAgent = getBuiltIn('navigator', 'userAgent') || '';
588
+
589
+ var process = global_1.process;
590
+ var versions = process && process.versions;
591
+ var v8 = versions && versions.v8;
592
+ var match, version;
593
+
594
+ if (v8) {
595
+ match = v8.split('.');
596
+ version = match[0] + match[1];
597
+ } else if (userAgent) {
598
+ match = userAgent.match(/Edge\/(\d+)/);
599
+ if (!match || match[1] >= 74) {
600
+ match = userAgent.match(/Chrome\/(\d+)/);
601
+ if (match) version = match[1];
602
+ }
603
+ }
604
+
605
+ var v8Version = version && +version;
606
+
607
+ var SPECIES$1 = wellKnownSymbol('species');
608
+
609
+ var arrayMethodHasSpeciesSupport = function (METHOD_NAME) {
610
+ // We can't use this feature detection in V8 since it causes
611
+ // deoptimization and serious performance degradation
612
+ // https://github.com/zloirock/core-js/issues/677
613
+ return v8Version >= 51 || !fails(function () {
614
+ var array = [];
615
+ var constructor = array.constructor = {};
616
+ constructor[SPECIES$1] = function () {
617
+ return { foo: 1 };
618
+ };
619
+ return array[METHOD_NAME](Boolean).foo !== 1;
620
+ });
621
+ };
622
+
623
+ var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');
624
+ var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
625
+ var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';
626
+
627
+ // We can't use this feature detection in V8 since it causes
628
+ // deoptimization and serious performance degradation
629
+ // https://github.com/zloirock/core-js/issues/679
630
+ var IS_CONCAT_SPREADABLE_SUPPORT = v8Version >= 51 || !fails(function () {
631
+ var array = [];
632
+ array[IS_CONCAT_SPREADABLE] = false;
633
+ return array.concat()[0] !== array;
634
+ });
635
+
636
+ var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');
637
+
638
+ var isConcatSpreadable = function (O) {
639
+ if (!isObject(O)) return false;
640
+ var spreadable = O[IS_CONCAT_SPREADABLE];
641
+ return spreadable !== undefined ? !!spreadable : isArray(O);
642
+ };
643
+
644
+ var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;
645
+
646
+ // `Array.prototype.concat` method
647
+ // https://tc39.github.io/ecma262/#sec-array.prototype.concat
648
+ // with adding support of @@isConcatSpreadable and @@species
649
+ _export({ target: 'Array', proto: true, forced: FORCED }, {
650
+ concat: function concat(arg) { // eslint-disable-line no-unused-vars
651
+ var O = toObject(this);
652
+ var A = arraySpeciesCreate(O, 0);
653
+ var n = 0;
654
+ var i, k, length, len, E;
655
+ for (i = -1, length = arguments.length; i < length; i++) {
656
+ E = i === -1 ? O : arguments[i];
657
+ if (isConcatSpreadable(E)) {
658
+ len = toLength(E.length);
659
+ if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
660
+ for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);
661
+ } else {
662
+ if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
663
+ createProperty(A, n++, E);
664
+ }
665
+ }
666
+ A.length = n;
667
+ return A;
668
+ }
669
+ });
670
+
671
+ var aFunction$1 = function (it) {
672
+ if (typeof it != 'function') {
673
+ throw TypeError(String(it) + ' is not a function');
674
+ } return it;
675
+ };
676
+
677
+ // optional / simple context binding
678
+ var bindContext = function (fn, that, length) {
679
+ aFunction$1(fn);
680
+ if (that === undefined) return fn;
681
+ switch (length) {
682
+ case 0: return function () {
683
+ return fn.call(that);
684
+ };
685
+ case 1: return function (a) {
686
+ return fn.call(that, a);
687
+ };
688
+ case 2: return function (a, b) {
689
+ return fn.call(that, a, b);
690
+ };
691
+ case 3: return function (a, b, c) {
692
+ return fn.call(that, a, b, c);
693
+ };
694
+ }
695
+ return function (/* ...args */) {
696
+ return fn.apply(that, arguments);
697
+ };
698
+ };
699
+
610
700
  var push = [].push;
611
701
 
612
702
  // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation
@@ -667,42 +757,6 @@
667
757
  findIndex: createMethod$1(6)
668
758
  };
669
759
 
670
- var userAgent = getBuiltIn('navigator', 'userAgent') || '';
671
-
672
- var process = global_1.process;
673
- var versions = process && process.versions;
674
- var v8 = versions && versions.v8;
675
- var match, version;
676
-
677
- if (v8) {
678
- match = v8.split('.');
679
- version = match[0] + match[1];
680
- } else if (userAgent) {
681
- match = userAgent.match(/Edge\/(\d+)/);
682
- if (!match || match[1] >= 74) {
683
- match = userAgent.match(/Chrome\/(\d+)/);
684
- if (match) version = match[1];
685
- }
686
- }
687
-
688
- var v8Version = version && +version;
689
-
690
- var SPECIES$1 = wellKnownSymbol('species');
691
-
692
- var arrayMethodHasSpeciesSupport = function (METHOD_NAME) {
693
- // We can't use this feature detection in V8 since it causes
694
- // deoptimization and serious performance degradation
695
- // https://github.com/zloirock/core-js/issues/677
696
- return v8Version >= 51 || !fails(function () {
697
- var array = [];
698
- var constructor = array.constructor = {};
699
- constructor[SPECIES$1] = function () {
700
- return { foo: 1 };
701
- };
702
- return array[METHOD_NAME](Boolean).foo !== 1;
703
- });
704
- };
705
-
706
760
  var $filter = arrayIteration.filter;
707
761
 
708
762
 
@@ -871,12 +925,6 @@
871
925
  }
872
926
  });
873
927
 
874
- var createProperty = function (object, key, value) {
875
- var propertyKey = toPrimitive(key);
876
- if (propertyKey in object) objectDefineProperty.f(object, propertyKey, createPropertyDescriptor(0, value));
877
- else object[propertyKey] = value;
878
- };
879
-
880
928
  var SPECIES$2 = wellKnownSymbol('species');
881
929
  var nativeSlice = [].slice;
882
930
  var max$1 = Math.max;
@@ -926,11 +974,11 @@
926
974
  // Old WebKit
927
975
  var SLOPPY_METHOD$1 = sloppyArrayMethod('sort');
928
976
 
929
- var FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || SLOPPY_METHOD$1;
977
+ var FORCED$1 = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || SLOPPY_METHOD$1;
930
978
 
931
979
  // `Array.prototype.sort` method
932
980
  // https://tc39.github.io/ecma262/#sec-array.prototype.sort
933
- _export({ target: 'Array', proto: true, forced: FORCED }, {
981
+ _export({ target: 'Array', proto: true, forced: FORCED$1 }, {
934
982
  sort: function sort(comparefn) {
935
983
  return comparefn === undefined
936
984
  ? nativeSort.call(toObject(this))
@@ -1010,405 +1058,6 @@
1010
1058
  assign: objectAssign
1011
1059
  });
1012
1060
 
1013
- // `RegExp.prototype.flags` getter implementation
1014
- // https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags
1015
- var regexpFlags = function () {
1016
- var that = anObject(this);
1017
- var result = '';
1018
- if (that.global) result += 'g';
1019
- if (that.ignoreCase) result += 'i';
1020
- if (that.multiline) result += 'm';
1021
- if (that.dotAll) result += 's';
1022
- if (that.unicode) result += 'u';
1023
- if (that.sticky) result += 'y';
1024
- return result;
1025
- };
1026
-
1027
- // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,
1028
- // so we use an intermediate function.
1029
- function RE(s, f) {
1030
- return RegExp(s, f);
1031
- }
1032
-
1033
- var UNSUPPORTED_Y = fails(function () {
1034
- // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError
1035
- var re = RE('a', 'y');
1036
- re.lastIndex = 2;
1037
- return re.exec('abcd') != null;
1038
- });
1039
-
1040
- var BROKEN_CARET = fails(function () {
1041
- // https://bugzilla.mozilla.org/show_bug.cgi?id=773687
1042
- var re = RE('^r', 'gy');
1043
- re.lastIndex = 2;
1044
- return re.exec('str') != null;
1045
- });
1046
-
1047
- var regexpStickyHelpers = {
1048
- UNSUPPORTED_Y: UNSUPPORTED_Y,
1049
- BROKEN_CARET: BROKEN_CARET
1050
- };
1051
-
1052
- var nativeExec = RegExp.prototype.exec;
1053
- // This always refers to the native implementation, because the
1054
- // String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,
1055
- // which loads this file before patching the method.
1056
- var nativeReplace = String.prototype.replace;
1057
-
1058
- var patchedExec = nativeExec;
1059
-
1060
- var UPDATES_LAST_INDEX_WRONG = (function () {
1061
- var re1 = /a/;
1062
- var re2 = /b*/g;
1063
- nativeExec.call(re1, 'a');
1064
- nativeExec.call(re2, 'a');
1065
- return re1.lastIndex !== 0 || re2.lastIndex !== 0;
1066
- })();
1067
-
1068
- var UNSUPPORTED_Y$1 = regexpStickyHelpers.UNSUPPORTED_Y || regexpStickyHelpers.BROKEN_CARET;
1069
-
1070
- // nonparticipating capturing group, copied from es5-shim's String#split patch.
1071
- var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;
1072
-
1073
- var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y$1;
1074
-
1075
- if (PATCH) {
1076
- patchedExec = function exec(str) {
1077
- var re = this;
1078
- var lastIndex, reCopy, match, i;
1079
- var sticky = UNSUPPORTED_Y$1 && re.sticky;
1080
- var flags = regexpFlags.call(re);
1081
- var source = re.source;
1082
- var charsAdded = 0;
1083
- var strCopy = str;
1084
-
1085
- if (sticky) {
1086
- flags = flags.replace('y', '');
1087
- if (flags.indexOf('g') === -1) {
1088
- flags += 'g';
1089
- }
1090
-
1091
- strCopy = String(str).slice(re.lastIndex);
1092
- // Support anchored sticky behavior.
1093
- if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\n')) {
1094
- source = '(?: ' + source + ')';
1095
- strCopy = ' ' + strCopy;
1096
- charsAdded++;
1097
- }
1098
- // ^(? + rx + ) is needed, in combination with some str slicing, to
1099
- // simulate the 'y' flag.
1100
- reCopy = new RegExp('^(?:' + source + ')', flags);
1101
- }
1102
-
1103
- if (NPCG_INCLUDED) {
1104
- reCopy = new RegExp('^' + source + '$(?!\\s)', flags);
1105
- }
1106
- if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;
1107
-
1108
- match = nativeExec.call(sticky ? reCopy : re, strCopy);
1109
-
1110
- if (sticky) {
1111
- if (match) {
1112
- match.input = match.input.slice(charsAdded);
1113
- match[0] = match[0].slice(charsAdded);
1114
- match.index = re.lastIndex;
1115
- re.lastIndex += match[0].length;
1116
- } else re.lastIndex = 0;
1117
- } else if (UPDATES_LAST_INDEX_WRONG && match) {
1118
- re.lastIndex = re.global ? match.index + match[0].length : lastIndex;
1119
- }
1120
- if (NPCG_INCLUDED && match && match.length > 1) {
1121
- // Fix browsers whose `exec` methods don't consistently return `undefined`
1122
- // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
1123
- nativeReplace.call(match[0], reCopy, function () {
1124
- for (i = 1; i < arguments.length - 2; i++) {
1125
- if (arguments[i] === undefined) match[i] = undefined;
1126
- }
1127
- });
1128
- }
1129
-
1130
- return match;
1131
- };
1132
- }
1133
-
1134
- var regexpExec = patchedExec;
1135
-
1136
- _export({ target: 'RegExp', proto: true, forced: /./.exec !== regexpExec }, {
1137
- exec: regexpExec
1138
- });
1139
-
1140
- var SPECIES$3 = wellKnownSymbol('species');
1141
-
1142
- var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {
1143
- // #replace needs built-in support for named groups.
1144
- // #match works fine because it just return the exec results, even if it has
1145
- // a "grops" property.
1146
- var re = /./;
1147
- re.exec = function () {
1148
- var result = [];
1149
- result.groups = { a: '7' };
1150
- return result;
1151
- };
1152
- return ''.replace(re, '$<a>') !== '7';
1153
- });
1154
-
1155
- // IE <= 11 replaces $0 with the whole match, as if it was $&
1156
- // https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0
1157
- var REPLACE_KEEPS_$0 = (function () {
1158
- return 'a'.replace(/./, '$0') === '$0';
1159
- })();
1160
-
1161
- // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
1162
- // Weex JS has frozen built-in prototypes, so use try / catch wrapper
1163
- var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {
1164
- var re = /(?:)/;
1165
- var originalExec = re.exec;
1166
- re.exec = function () { return originalExec.apply(this, arguments); };
1167
- var result = 'ab'.split(re);
1168
- return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';
1169
- });
1170
-
1171
- var fixRegexpWellKnownSymbolLogic = function (KEY, length, exec, sham) {
1172
- var SYMBOL = wellKnownSymbol(KEY);
1173
-
1174
- var DELEGATES_TO_SYMBOL = !fails(function () {
1175
- // String methods call symbol-named RegEp methods
1176
- var O = {};
1177
- O[SYMBOL] = function () { return 7; };
1178
- return ''[KEY](O) != 7;
1179
- });
1180
-
1181
- var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {
1182
- // Symbol-named RegExp methods call .exec
1183
- var execCalled = false;
1184
- var re = /a/;
1185
-
1186
- if (KEY === 'split') {
1187
- // We can't use real regex here since it causes deoptimization
1188
- // and serious performance degradation in V8
1189
- // https://github.com/zloirock/core-js/issues/306
1190
- re = {};
1191
- // RegExp[@@split] doesn't call the regex's exec method, but first creates
1192
- // a new one. We need to return the patched regex when creating the new one.
1193
- re.constructor = {};
1194
- re.constructor[SPECIES$3] = function () { return re; };
1195
- re.flags = '';
1196
- re[SYMBOL] = /./[SYMBOL];
1197
- }
1198
-
1199
- re.exec = function () { execCalled = true; return null; };
1200
-
1201
- re[SYMBOL]('');
1202
- return !execCalled;
1203
- });
1204
-
1205
- if (
1206
- !DELEGATES_TO_SYMBOL ||
1207
- !DELEGATES_TO_EXEC ||
1208
- (KEY === 'replace' && !(REPLACE_SUPPORTS_NAMED_GROUPS && REPLACE_KEEPS_$0)) ||
1209
- (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)
1210
- ) {
1211
- var nativeRegExpMethod = /./[SYMBOL];
1212
- var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {
1213
- if (regexp.exec === regexpExec) {
1214
- if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
1215
- // The native String method already delegates to @@method (this
1216
- // polyfilled function), leasing to infinite recursion.
1217
- // We avoid it by directly calling the native @@method method.
1218
- return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };
1219
- }
1220
- return { done: true, value: nativeMethod.call(str, regexp, arg2) };
1221
- }
1222
- return { done: false };
1223
- }, { REPLACE_KEEPS_$0: REPLACE_KEEPS_$0 });
1224
- var stringMethod = methods[0];
1225
- var regexMethod = methods[1];
1226
-
1227
- redefine(String.prototype, KEY, stringMethod);
1228
- redefine(RegExp.prototype, SYMBOL, length == 2
1229
- // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
1230
- // 21.2.5.11 RegExp.prototype[@@split](string, limit)
1231
- ? function (string, arg) { return regexMethod.call(string, this, arg); }
1232
- // 21.2.5.6 RegExp.prototype[@@match](string)
1233
- // 21.2.5.9 RegExp.prototype[@@search](string)
1234
- : function (string) { return regexMethod.call(string, this); }
1235
- );
1236
- }
1237
-
1238
- if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);
1239
- };
1240
-
1241
- // `String.prototype.{ codePointAt, at }` methods implementation
1242
- var createMethod$2 = function (CONVERT_TO_STRING) {
1243
- return function ($this, pos) {
1244
- var S = String(requireObjectCoercible($this));
1245
- var position = toInteger(pos);
1246
- var size = S.length;
1247
- var first, second;
1248
- if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;
1249
- first = S.charCodeAt(position);
1250
- return first < 0xD800 || first > 0xDBFF || position + 1 === size
1251
- || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF
1252
- ? CONVERT_TO_STRING ? S.charAt(position) : first
1253
- : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
1254
- };
1255
- };
1256
-
1257
- var stringMultibyte = {
1258
- // `String.prototype.codePointAt` method
1259
- // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat
1260
- codeAt: createMethod$2(false),
1261
- // `String.prototype.at` method
1262
- // https://github.com/mathiasbynens/String.prototype.at
1263
- charAt: createMethod$2(true)
1264
- };
1265
-
1266
- var charAt = stringMultibyte.charAt;
1267
-
1268
- // `AdvanceStringIndex` abstract operation
1269
- // https://tc39.github.io/ecma262/#sec-advancestringindex
1270
- var advanceStringIndex = function (S, index, unicode) {
1271
- return index + (unicode ? charAt(S, index).length : 1);
1272
- };
1273
-
1274
- // `RegExpExec` abstract operation
1275
- // https://tc39.github.io/ecma262/#sec-regexpexec
1276
- var regexpExecAbstract = function (R, S) {
1277
- var exec = R.exec;
1278
- if (typeof exec === 'function') {
1279
- var result = exec.call(R, S);
1280
- if (typeof result !== 'object') {
1281
- throw TypeError('RegExp exec method returned something other than an Object or null');
1282
- }
1283
- return result;
1284
- }
1285
-
1286
- if (classofRaw(R) !== 'RegExp') {
1287
- throw TypeError('RegExp#exec called on incompatible receiver');
1288
- }
1289
-
1290
- return regexpExec.call(R, S);
1291
- };
1292
-
1293
- var max$2 = Math.max;
1294
- var min$2 = Math.min;
1295
- var floor$1 = Math.floor;
1296
- var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d\d?|<[^>]*>)/g;
1297
- var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d\d?)/g;
1298
-
1299
- var maybeToString = function (it) {
1300
- return it === undefined ? it : String(it);
1301
- };
1302
-
1303
- // @@replace logic
1304
- fixRegexpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {
1305
- return [
1306
- // `String.prototype.replace` method
1307
- // https://tc39.github.io/ecma262/#sec-string.prototype.replace
1308
- function replace(searchValue, replaceValue) {
1309
- var O = requireObjectCoercible(this);
1310
- var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];
1311
- return replacer !== undefined
1312
- ? replacer.call(searchValue, O, replaceValue)
1313
- : nativeReplace.call(String(O), searchValue, replaceValue);
1314
- },
1315
- // `RegExp.prototype[@@replace]` method
1316
- // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace
1317
- function (regexp, replaceValue) {
1318
- if (reason.REPLACE_KEEPS_$0 || (typeof replaceValue === 'string' && replaceValue.indexOf('$0') === -1)) {
1319
- var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);
1320
- if (res.done) return res.value;
1321
- }
1322
-
1323
- var rx = anObject(regexp);
1324
- var S = String(this);
1325
-
1326
- var functionalReplace = typeof replaceValue === 'function';
1327
- if (!functionalReplace) replaceValue = String(replaceValue);
1328
-
1329
- var global = rx.global;
1330
- if (global) {
1331
- var fullUnicode = rx.unicode;
1332
- rx.lastIndex = 0;
1333
- }
1334
- var results = [];
1335
- while (true) {
1336
- var result = regexpExecAbstract(rx, S);
1337
- if (result === null) break;
1338
-
1339
- results.push(result);
1340
- if (!global) break;
1341
-
1342
- var matchStr = String(result[0]);
1343
- if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
1344
- }
1345
-
1346
- var accumulatedResult = '';
1347
- var nextSourcePosition = 0;
1348
- for (var i = 0; i < results.length; i++) {
1349
- result = results[i];
1350
-
1351
- var matched = String(result[0]);
1352
- var position = max$2(min$2(toInteger(result.index), S.length), 0);
1353
- var captures = [];
1354
- // NOTE: This is equivalent to
1355
- // captures = result.slice(1).map(maybeToString)
1356
- // but for some reason `nativeSlice.call(result, 1, result.length)` (called in
1357
- // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and
1358
- // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
1359
- for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));
1360
- var namedCaptures = result.groups;
1361
- if (functionalReplace) {
1362
- var replacerArgs = [matched].concat(captures, position, S);
1363
- if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);
1364
- var replacement = String(replaceValue.apply(undefined, replacerArgs));
1365
- } else {
1366
- replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
1367
- }
1368
- if (position >= nextSourcePosition) {
1369
- accumulatedResult += S.slice(nextSourcePosition, position) + replacement;
1370
- nextSourcePosition = position + matched.length;
1371
- }
1372
- }
1373
- return accumulatedResult + S.slice(nextSourcePosition);
1374
- }
1375
- ];
1376
-
1377
- // https://tc39.github.io/ecma262/#sec-getsubstitution
1378
- function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {
1379
- var tailPos = position + matched.length;
1380
- var m = captures.length;
1381
- var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
1382
- if (namedCaptures !== undefined) {
1383
- namedCaptures = toObject(namedCaptures);
1384
- symbols = SUBSTITUTION_SYMBOLS;
1385
- }
1386
- return nativeReplace.call(replacement, symbols, function (match, ch) {
1387
- var capture;
1388
- switch (ch.charAt(0)) {
1389
- case '$': return '$';
1390
- case '&': return matched;
1391
- case '`': return str.slice(0, position);
1392
- case "'": return str.slice(tailPos);
1393
- case '<':
1394
- capture = namedCaptures[ch.slice(1, -1)];
1395
- break;
1396
- default: // \d\d?
1397
- var n = +ch;
1398
- if (n === 0) return match;
1399
- if (n > m) {
1400
- var f = floor$1(n / 10);
1401
- if (f === 0) return match;
1402
- if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
1403
- return match;
1404
- }
1405
- capture = captures[n - 1];
1406
- }
1407
- return capture === undefined ? '' : capture;
1408
- });
1409
- }
1410
- });
1411
-
1412
1061
  // iterable DOM collections
1413
1062
  // flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods
1414
1063
  var domIterables = {
@@ -1583,24 +1232,7 @@
1583
1232
  * @version: v1.1.0
1584
1233
  */
1585
1234
 
1586
- var initBodyCaller; // it only does '%s', and return '' when arguments are undefined
1587
-
1588
- var sprintf = function sprintf(str) {
1589
- var args = arguments;
1590
- var flag = true;
1591
- var i = 1;
1592
- str = str.replace(/%s/g, function () {
1593
- var arg = args[i++];
1594
-
1595
- if (typeof arg === 'undefined') {
1596
- flag = false;
1597
- return '';
1598
- }
1599
-
1600
- return arg;
1601
- });
1602
- return flag ? str : '';
1603
- };
1235
+ var initBodyCaller;
1604
1236
 
1605
1237
  var groupBy = function groupBy(array, f) {
1606
1238
  var tmpGroups = {};
@@ -1612,10 +1244,23 @@
1612
1244
  return tmpGroups;
1613
1245
  };
1614
1246
 
1247
+ $.extend($.fn.bootstrapTable.defaults.icons, {
1248
+ collapseGroup: {
1249
+ bootstrap3: 'glyphicon-chevron-up',
1250
+ materialize: 'arrow_drop_down'
1251
+ }[$.fn.bootstrapTable.theme] || 'fa-angle-up',
1252
+ expandGroup: {
1253
+ bootstrap3: 'glyphicon-chevron-down',
1254
+ materialize: 'arrow_drop_up'
1255
+ }[$.fn.bootstrapTable.theme] || 'fa-angle-down'
1256
+ });
1615
1257
  $.extend($.fn.bootstrapTable.defaults, {
1616
1258
  groupBy: false,
1617
1259
  groupByField: '',
1618
- groupByFormatter: undefined
1260
+ groupByFormatter: undefined,
1261
+ groupByToggle: false,
1262
+ groupByShowToggleIcon: false,
1263
+ groupByCollapsedGroups: []
1619
1264
  });
1620
1265
  var Utils = $.fn.bootstrapTable.utils;
1621
1266
  var BootstrapTable = $.fn.bootstrapTable.Constructor;
@@ -1680,6 +1325,10 @@
1680
1325
  item._data = {};
1681
1326
  }
1682
1327
 
1328
+ if (_this.isCollapsed(key, value)) {
1329
+ item._class = 'hidden';
1330
+ }
1331
+
1683
1332
  item._data['parent-index'] = index;
1684
1333
  });
1685
1334
  index++;
@@ -1688,6 +1337,8 @@
1688
1337
  };
1689
1338
 
1690
1339
  BootstrapTable.prototype.initBody = function () {
1340
+ var _this2 = this;
1341
+
1691
1342
  initBodyCaller = true;
1692
1343
 
1693
1344
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
@@ -1716,7 +1367,7 @@
1716
1367
 
1717
1368
  this.tableGroups.forEach(function (item) {
1718
1369
  var html = [];
1719
- html.push(sprintf('<tr class="info groupBy expanded" data-group-index="%s">', item.id));
1370
+ html.push(Utils.sprintf('<tr class="info groupBy %s" data-group-index="%s">', _this2.options.groupByToggle ? 'expanded' : '', item.id));
1720
1371
 
1721
1372
  if (that.options.detailView && !that.options.cardView) {
1722
1373
  html.push('<td class="detail"></td>');
@@ -1732,8 +1383,18 @@
1732
1383
  formattedValue = that.options.groupByFormatter(item.name, item.id, item.data);
1733
1384
  }
1734
1385
 
1735
- html.push('<td', sprintf(' colspan="%s"', visibleColumns), '>', formattedValue, '</td>');
1736
- html.push('</tr>');
1386
+ html.push('<td', Utils.sprintf(' colspan="%s"', visibleColumns), '>', formattedValue);
1387
+ var icon = _this2.options.icons.collapseGroup;
1388
+
1389
+ if (_this2.isCollapsed(item.name, item.data)) {
1390
+ icon = _this2.options.icons.expandGroup;
1391
+ }
1392
+
1393
+ if (_this2.options.groupByToggle && _this2.options.groupByShowToggleIcon) {
1394
+ html.push("<span class=\"float-right ".concat(_this2.options.iconsPrefix, " ").concat(icon, "\"></span>"));
1395
+ }
1396
+
1397
+ html.push('</td></tr>');
1737
1398
  that.$body.find("tr[data-parent-index=".concat(item.id, "]:first")).before($(html.join('')));
1738
1399
  });
1739
1400
  this.$selectGroup = [];
@@ -1746,10 +1407,15 @@
1746
1407
  })
1747
1408
  });
1748
1409
  });
1749
- this.$container.off('click', '.groupBy').on('click', '.groupBy', function () {
1750
- $(this).toggleClass('expanded');
1751
- that.$body.find("tr[data-parent-index=".concat($(this).closest('tr').data('group-index'), "]")).toggleClass('hidden');
1752
- });
1410
+
1411
+ if (this.options.groupByToggle) {
1412
+ this.$container.off('click', '.groupBy').on('click', '.groupBy', function () {
1413
+ $(this).toggleClass('expanded collapsed');
1414
+ $(this).find('span').toggleClass("".concat(that.options.icons.collapseGroup, " ").concat(that.options.icons.expandGroup));
1415
+ that.$body.find("tr[data-parent-index=".concat($(this).closest('tr').data('group-index'), "]")).toggleClass('hidden');
1416
+ });
1417
+ }
1418
+
1753
1419
  this.$container.off('click', '[name="btSelectGroup"]').on('click', '[name="btSelectGroup"]', function (event) {
1754
1420
  event.stopImmediatePropagation();
1755
1421
  var self = $(this);
@@ -1787,6 +1453,18 @@
1787
1453
  this.checkGroup_(index, false);
1788
1454
  };
1789
1455
 
1456
+ BootstrapTable.prototype.isCollapsed = function (groupKey, items) {
1457
+ if (this.options.groupByCollapsedGroups) {
1458
+ var collapsedGroups = Utils.calculateObjectValue(this, this.options.groupByCollapsedGroups, [groupKey, items], true);
1459
+
1460
+ if ($.inArray(groupKey, collapsedGroups) > -1) {
1461
+ return true;
1462
+ }
1463
+ }
1464
+
1465
+ return false;
1466
+ };
1467
+
1790
1468
  BootstrapTable.prototype.checkGroup_ = function (index, checked) {
1791
1469
  var rowsBefore = this.getSelections();
1792
1470
 
@@ -1843,7 +1521,7 @@
1843
1521
 
1844
1522
  if (options.unit === 'rows') {
1845
1523
  var scrollTo = 0;
1846
- this.$body.find("> tr:lt(".concat(options.value, ")")).each(function (i, el) {
1524
+ this.$body.find("> tr:not(.groupBy):lt(".concat(options.value, ")")).each(function (i, el) {
1847
1525
  scrollTo += $(el).outerHeight(true);
1848
1526
  });
1849
1527
  var $targetColumn = this.$body.find("> tr:not(.groupBy):eq(".concat(options.value, ")"));