bootstrap-table-rails 1.15.5 → 1.18.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +143 -36
  3. data/lib/bootstrap-table-rails/version.rb +1 -1
  4. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table-locale-all.js +1012 -83
  5. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table-vue.esm.js +684 -208
  6. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table-vue.js +686 -210
  7. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table.css +75 -12
  8. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table.js +1617 -763
  9. data/vendor/assets/javascripts/bootstrap-table/extensions/addrbar/bootstrap-table-addrbar.js +280 -93
  10. data/vendor/assets/javascripts/bootstrap-table/extensions/auto-refresh/bootstrap-table-auto-refresh.js +200 -78
  11. data/vendor/assets/javascripts/bootstrap-table/extensions/cookie/bootstrap-table-cookie.js +1349 -258
  12. data/vendor/assets/javascripts/bootstrap-table/extensions/copy-rows/bootstrap-table-copy-rows.js +216 -77
  13. data/vendor/assets/javascripts/bootstrap-table/extensions/custom-view/bootstrap-table-custom-view.js +1198 -0
  14. data/vendor/assets/javascripts/bootstrap-table/extensions/defer-url/bootstrap-table-defer-url.js +83 -42
  15. data/vendor/assets/javascripts/bootstrap-table/extensions/editable/bootstrap-table-editable.js +1219 -208
  16. data/vendor/assets/javascripts/bootstrap-table/extensions/export/bootstrap-table-export.js +458 -204
  17. data/vendor/assets/javascripts/bootstrap-table/extensions/filter-control/bootstrap-table-filter-control.css +1 -1
  18. data/vendor/assets/javascripts/bootstrap-table/extensions/filter-control/bootstrap-table-filter-control.js +1420 -901
  19. data/vendor/assets/javascripts/bootstrap-table/extensions/filter-control/utils.js +2361 -0
  20. data/vendor/assets/javascripts/bootstrap-table/extensions/fixed-columns/bootstrap-table-fixed-columns.css +12 -14
  21. data/vendor/assets/javascripts/bootstrap-table/extensions/fixed-columns/bootstrap-table-fixed-columns.js +589 -423
  22. data/vendor/assets/javascripts/bootstrap-table/extensions/group-by-v2/bootstrap-table-group-by.css +3 -2
  23. data/vendor/assets/javascripts/bootstrap-table/extensions/group-by-v2/bootstrap-table-group-by.js +552 -487
  24. data/vendor/assets/javascripts/bootstrap-table/extensions/i18n-enhance/bootstrap-table-i18n-enhance.js +3 -3
  25. data/vendor/assets/javascripts/bootstrap-table/extensions/key-events/bootstrap-table-key-events.js +219 -74
  26. data/vendor/assets/javascripts/bootstrap-table/extensions/mobile/bootstrap-table-mobile.js +143 -66
  27. data/vendor/assets/javascripts/bootstrap-table/extensions/multiple-sort/bootstrap-table-multiple-sort.js +326 -462
  28. data/vendor/assets/javascripts/bootstrap-table/extensions/page-jump-to/bootstrap-table-page-jump-to.js +137 -65
  29. data/vendor/assets/javascripts/bootstrap-table/extensions/pipeline/bootstrap-table-pipeline.js +87 -42
  30. data/vendor/assets/javascripts/bootstrap-table/extensions/print/bootstrap-table-print.js +452 -155
  31. data/vendor/assets/javascripts/bootstrap-table/extensions/reorder-columns/bootstrap-table-reorder-columns.js +643 -255
  32. data/vendor/assets/javascripts/bootstrap-table/extensions/reorder-rows/bootstrap-table-reorder-rows.js +348 -136
  33. data/vendor/assets/javascripts/bootstrap-table/extensions/resizable/bootstrap-table-resizable.js +84 -44
  34. data/vendor/assets/javascripts/bootstrap-table/extensions/sticky-header/bootstrap-table-sticky-header.css +0 -1
  35. data/vendor/assets/javascripts/bootstrap-table/extensions/sticky-header/bootstrap-table-sticky-header.js +218 -76
  36. data/vendor/assets/javascripts/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.js +558 -217
  37. data/vendor/assets/javascripts/bootstrap-table/extensions/treegrid/bootstrap-table-treegrid.js +221 -115
  38. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-af-ZA.js +98 -42
  39. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ar-SA.js +98 -42
  40. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-bg-BG.js +777 -0
  41. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ca-ES.js +98 -42
  42. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-cs-CZ.js +98 -42
  43. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-da-DK.js +98 -42
  44. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-de-DE.js +98 -42
  45. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-el-GR.js +98 -42
  46. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-en-US.js +98 -42
  47. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-AR.js +120 -63
  48. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-CL.js +98 -42
  49. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-CR.js +98 -42
  50. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-ES.js +98 -42
  51. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-MX.js +98 -42
  52. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-NI.js +98 -42
  53. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-SP.js +98 -42
  54. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-et-EE.js +98 -42
  55. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-eu-EU.js +98 -42
  56. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fa-IR.js +98 -42
  57. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fi-FI.js +98 -42
  58. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-BE.js +98 -42
  59. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-CH.js +98 -42
  60. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-FR.js +99 -43
  61. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-LU.js +98 -42
  62. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-he-IL.js +98 -42
  63. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-hr-HR.js +98 -42
  64. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-hu-HU.js +98 -42
  65. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-id-ID.js +98 -42
  66. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-it-IT.js +113 -57
  67. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ja-JP.js +98 -42
  68. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ka-GE.js +98 -42
  69. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ko-KR.js +98 -42
  70. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ms-MY.js +98 -42
  71. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-nb-NO.js +98 -42
  72. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-nl-BE.js +99 -43
  73. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-nl-NL.js +98 -42
  74. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-pl-PL.js +98 -42
  75. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-pt-BR.js +102 -45
  76. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-pt-PT.js +98 -42
  77. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ro-RO.js +98 -42
  78. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ru-RU.js +98 -42
  79. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-sk-SK.js +98 -42
  80. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-sr-Cyrl-RS.js +98 -42
  81. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-sr-Latn-RS.js +98 -42
  82. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-sv-SE.js +98 -42
  83. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-th-TH.js +98 -42
  84. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-tr-TR.js +98 -42
  85. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-uk-UA.js +98 -42
  86. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ur-PK.js +98 -42
  87. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-uz-Latn-UZ.js +98 -42
  88. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-vi-VN.js +98 -42
  89. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-zh-CN.js +98 -42
  90. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-zh-TW.js +98 -42
  91. data/vendor/assets/javascripts/bootstrap-table/themes/bootstrap-table/bootstrap-table.css +776 -0
  92. data/vendor/assets/javascripts/bootstrap-table/themes/bootstrap-table/bootstrap-table.js +1049 -0
  93. data/vendor/assets/javascripts/bootstrap-table/themes/bootstrap-table/fonts/bootstrap-table.eot +0 -0
  94. data/vendor/assets/javascripts/bootstrap-table/themes/bootstrap-table/fonts/bootstrap-table.svg +28 -0
  95. data/vendor/assets/javascripts/bootstrap-table/themes/bootstrap-table/fonts/bootstrap-table.ttf +0 -0
  96. data/vendor/assets/javascripts/bootstrap-table/themes/bootstrap-table/fonts/bootstrap-table.woff +0 -0
  97. data/vendor/assets/javascripts/bootstrap-table/themes/bulma/bootstrap-table-bulma.css +89 -13
  98. data/vendor/assets/javascripts/bootstrap-table/themes/bulma/bootstrap-table-bulma.js +161 -63
  99. data/vendor/assets/javascripts/bootstrap-table/themes/foundation/bootstrap-table-foundation.css +88 -15
  100. data/vendor/assets/javascripts/bootstrap-table/themes/foundation/bootstrap-table-foundation.js +166 -65
  101. data/vendor/assets/javascripts/bootstrap-table/themes/materialize/bootstrap-table-materialize.css +83 -11
  102. data/vendor/assets/javascripts/bootstrap-table/themes/materialize/bootstrap-table-materialize.js +164 -66
  103. data/vendor/assets/javascripts/bootstrap-table/themes/semantic/bootstrap-table-semantic.css +89 -15
  104. data/vendor/assets/javascripts/bootstrap-table/themes/semantic/bootstrap-table-semantic.js +164 -66
  105. metadata +10 -5
  106. data/vendor/assets/javascripts/bootstrap-table/extensions/accent-neutralise/bootstrap-table-accent-neutralise.js +0 -1757
  107. data/vendor/assets/javascripts/bootstrap-table/extensions/cell-input/bootstrap-table-cell-input.css +0 -12
  108. data/vendor/assets/javascripts/bootstrap-table/extensions/cell-input/bootstrap-table-cell-input.js +0 -2087
  109. data/vendor/assets/javascripts/bootstrap-table/extensions/natural-sorting/bootstrap-table-natural-sorting.js +0 -1265
@@ -2,9 +2,9 @@
2
2
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) :
3
3
  typeof define === 'function' && define.amd ? define(['jquery'], factory) :
4
4
  (global = global || self, factory(global.jQuery));
5
- }(this, function ($) { 'use strict';
5
+ }(this, (function ($) { 'use strict';
6
6
 
7
- $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
7
+ $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;
8
8
 
9
9
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
10
10
 
@@ -12,7 +12,6 @@
12
12
  return module = { exports: {} }, fn(module, module.exports), module.exports;
13
13
  }
14
14
 
15
- var O = 'object';
16
15
  var check = function (it) {
17
16
  return it && it.Math == Math && it;
18
17
  };
@@ -20,10 +19,10 @@
20
19
  // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
21
20
  var global_1 =
22
21
  // eslint-disable-next-line no-undef
23
- check(typeof globalThis == O && globalThis) ||
24
- check(typeof window == O && window) ||
25
- check(typeof self == O && self) ||
26
- check(typeof commonjsGlobal == O && commonjsGlobal) ||
22
+ check(typeof globalThis == 'object' && globalThis) ||
23
+ check(typeof window == 'object' && window) ||
24
+ check(typeof self == 'object' && self) ||
25
+ check(typeof commonjsGlobal == 'object' && commonjsGlobal) ||
27
26
  // eslint-disable-next-line no-new-func
28
27
  Function('return this')();
29
28
 
@@ -121,12 +120,12 @@
121
120
  return hasOwnProperty.call(it, key);
122
121
  };
123
122
 
124
- var document = global_1.document;
123
+ var document$1 = global_1.document;
125
124
  // typeof document.createElement is 'object' in old IE
126
- var EXISTS = isObject(document) && isObject(document.createElement);
125
+ var EXISTS = isObject(document$1) && isObject(document$1.createElement);
127
126
 
128
127
  var documentCreateElement = function (it) {
129
- return EXISTS ? document.createElement(it) : {};
128
+ return EXISTS ? document$1.createElement(it) : {};
130
129
  };
131
130
 
132
131
  // Thank's IE8 for his funny defineProperty
@@ -179,7 +178,7 @@
179
178
  f: f$2
180
179
  };
181
180
 
182
- var hide = descriptors ? function (object, key, value) {
181
+ var createNonEnumerableProperty = descriptors ? function (object, key, value) {
183
182
  return objectDefineProperty.f(object, key, createPropertyDescriptor(1, value));
184
183
  } : function (object, key, value) {
185
184
  object[key] = value;
@@ -188,31 +187,42 @@
188
187
 
189
188
  var setGlobal = function (key, value) {
190
189
  try {
191
- hide(global_1, key, value);
190
+ createNonEnumerableProperty(global_1, key, value);
192
191
  } catch (error) {
193
192
  global_1[key] = value;
194
193
  } return value;
195
194
  };
196
195
 
197
- var shared = createCommonjsModule(function (module) {
198
196
  var SHARED = '__core-js_shared__';
199
197
  var store = global_1[SHARED] || setGlobal(SHARED, {});
200
198
 
199
+ var sharedStore = store;
200
+
201
+ var functionToString = Function.toString;
202
+
203
+ // this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper
204
+ if (typeof sharedStore.inspectSource != 'function') {
205
+ sharedStore.inspectSource = function (it) {
206
+ return functionToString.call(it);
207
+ };
208
+ }
209
+
210
+ var inspectSource = sharedStore.inspectSource;
211
+
212
+ var WeakMap = global_1.WeakMap;
213
+
214
+ var nativeWeakMap = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));
215
+
216
+ var shared = createCommonjsModule(function (module) {
201
217
  (module.exports = function (key, value) {
202
- return store[key] || (store[key] = value !== undefined ? value : {});
218
+ return sharedStore[key] || (sharedStore[key] = value !== undefined ? value : {});
203
219
  })('versions', []).push({
204
- version: '3.1.3',
220
+ version: '3.6.0',
205
221
  mode: 'global',
206
222
  copyright: '© 2019 Denis Pushkarev (zloirock.ru)'
207
223
  });
208
224
  });
209
225
 
210
- var functionToString = shared('native-function-to-string', Function.toString);
211
-
212
- var WeakMap = global_1.WeakMap;
213
-
214
- var nativeWeakMap = typeof WeakMap === 'function' && /native code/.test(functionToString.call(WeakMap));
215
-
216
226
  var id = 0;
217
227
  var postfix = Math.random();
218
228
 
@@ -245,25 +255,25 @@
245
255
  };
246
256
 
247
257
  if (nativeWeakMap) {
248
- var store = new WeakMap$1();
249
- var wmget = store.get;
250
- var wmhas = store.has;
251
- var wmset = store.set;
258
+ var store$1 = new WeakMap$1();
259
+ var wmget = store$1.get;
260
+ var wmhas = store$1.has;
261
+ var wmset = store$1.set;
252
262
  set = function (it, metadata) {
253
- wmset.call(store, it, metadata);
263
+ wmset.call(store$1, it, metadata);
254
264
  return metadata;
255
265
  };
256
266
  get = function (it) {
257
- return wmget.call(store, it) || {};
267
+ return wmget.call(store$1, it) || {};
258
268
  };
259
269
  has$1 = function (it) {
260
- return wmhas.call(store, it);
270
+ return wmhas.call(store$1, it);
261
271
  };
262
272
  } else {
263
273
  var STATE = sharedKey('state');
264
274
  hiddenKeys[STATE] = true;
265
275
  set = function (it, metadata) {
266
- hide(it, STATE, metadata);
276
+ createNonEnumerableProperty(it, STATE, metadata);
267
277
  return metadata;
268
278
  };
269
279
  get = function (it) {
@@ -285,18 +295,14 @@
285
295
  var redefine = createCommonjsModule(function (module) {
286
296
  var getInternalState = internalState.get;
287
297
  var enforceInternalState = internalState.enforce;
288
- var TEMPLATE = String(functionToString).split('toString');
289
-
290
- shared('inspectSource', function (it) {
291
- return functionToString.call(it);
292
- });
298
+ var TEMPLATE = String(String).split('String');
293
299
 
294
300
  (module.exports = function (O, key, value, options) {
295
301
  var unsafe = options ? !!options.unsafe : false;
296
302
  var simple = options ? !!options.enumerable : false;
297
303
  var noTargetGet = options ? !!options.noTargetGet : false;
298
304
  if (typeof value == 'function') {
299
- if (typeof key == 'string' && !has(value, 'name')) hide(value, 'name', key);
305
+ if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);
300
306
  enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');
301
307
  }
302
308
  if (O === global_1) {
@@ -309,10 +315,10 @@
309
315
  simple = true;
310
316
  }
311
317
  if (simple) O[key] = value;
312
- else hide(O, key, value);
318
+ else createNonEnumerableProperty(O, key, value);
313
319
  // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
314
320
  })(Function.prototype, 'toString', function toString() {
315
- return typeof this == 'function' && getInternalState(this).source || functionToString.call(this);
321
+ return typeof this == 'function' && getInternalState(this).source || inspectSource(this);
316
322
  });
317
323
  });
318
324
 
@@ -349,7 +355,7 @@
349
355
 
350
356
  // Helper for a popular repeating case of the spec:
351
357
  // Let integer be ? ToInteger(index).
352
- // If integer < 0, let result be max((length + integer), 0); else let result be min(length, length).
358
+ // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).
353
359
  var toAbsoluteIndex = function (index, length) {
354
360
  var integer = toInteger(index);
355
361
  return integer < 0 ? max(integer + length, 0) : min$1(integer, length);
@@ -513,40 +519,17 @@
513
519
  }
514
520
  // add a flag to not completely full polyfills
515
521
  if (options.sham || (targetProperty && targetProperty.sham)) {
516
- hide(sourceProperty, 'sham', true);
522
+ createNonEnumerableProperty(sourceProperty, 'sham', true);
517
523
  }
518
524
  // extend global
519
525
  redefine(target, key, sourceProperty, options);
520
526
  }
521
527
  };
522
528
 
523
- var aFunction$1 = function (it) {
524
- if (typeof it != 'function') {
525
- throw TypeError(String(it) + ' is not a function');
526
- } return it;
527
- };
528
-
529
- // optional / simple context binding
530
- var bindContext = function (fn, that, length) {
531
- aFunction$1(fn);
532
- if (that === undefined) return fn;
533
- switch (length) {
534
- case 0: return function () {
535
- return fn.call(that);
536
- };
537
- case 1: return function (a) {
538
- return fn.call(that, a);
539
- };
540
- case 2: return function (a, b) {
541
- return fn.call(that, a, b);
542
- };
543
- case 3: return function (a, b, c) {
544
- return fn.call(that, a, b, c);
545
- };
546
- }
547
- return function (/* ...args */) {
548
- return fn.apply(that, arguments);
549
- };
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';
550
533
  };
551
534
 
552
535
  // `ToObject` abstract operation
@@ -555,10 +538,10 @@
555
538
  return Object(requireObjectCoercible(argument));
556
539
  };
557
540
 
558
- // `IsArray` abstract operation
559
- // https://tc39.github.io/ecma262/#sec-isarray
560
- var isArray = Array.isArray || function isArray(arg) {
561
- 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;
562
545
  };
563
546
 
564
547
  var nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () {
@@ -567,12 +550,21 @@
567
550
  return !String(Symbol());
568
551
  });
569
552
 
553
+ var useSymbolAsUid = nativeSymbol
554
+ // eslint-disable-next-line no-undef
555
+ && !Symbol.sham
556
+ // eslint-disable-next-line no-undef
557
+ && typeof Symbol() == 'symbol';
558
+
559
+ var WellKnownSymbolsStore = shared('wks');
570
560
  var Symbol$1 = global_1.Symbol;
571
- var store$1 = shared('wks');
561
+ var createWellKnownSymbol = useSymbolAsUid ? Symbol$1 : uid;
572
562
 
573
563
  var wellKnownSymbol = function (name) {
574
- return store$1[name] || (store$1[name] = nativeSymbol && Symbol$1[name]
575
- || (nativeSymbol ? Symbol$1 : uid)('Symbol.' + name));
564
+ if (!has(WellKnownSymbolsStore, name)) {
565
+ if (nativeSymbol && has(Symbol$1, name)) WellKnownSymbolsStore[name] = Symbol$1[name];
566
+ else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);
567
+ } return WellKnownSymbolsStore[name];
576
568
  };
577
569
 
578
570
  var SPECIES = wellKnownSymbol('species');
@@ -592,6 +584,119 @@
592
584
  } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);
593
585
  };
594
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
+
595
700
  var push = [].push;
596
701
 
597
702
  // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation
@@ -652,26 +757,20 @@
652
757
  findIndex: createMethod$1(6)
653
758
  };
654
759
 
655
- var SPECIES$1 = wellKnownSymbol('species');
760
+ var $filter = arrayIteration.filter;
656
761
 
657
- var arrayMethodHasSpeciesSupport = function (METHOD_NAME) {
658
- return !fails(function () {
659
- var array = [];
660
- var constructor = array.constructor = {};
661
- constructor[SPECIES$1] = function () {
662
- return { foo: 1 };
663
- };
664
- return array[METHOD_NAME](Boolean).foo !== 1;
665
- });
666
- };
667
762
 
668
- var $filter = arrayIteration.filter;
669
763
 
764
+ var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');
765
+ // Edge 14- issue
766
+ var USES_TO_LENGTH = HAS_SPECIES_SUPPORT && !fails(function () {
767
+ [].filter.call({ length: -1, 0: 1 }, function (it) { throw it; });
768
+ });
670
769
 
671
770
  // `Array.prototype.filter` method
672
771
  // https://tc39.github.io/ecma262/#sec-array.prototype.filter
673
772
  // with adding support of @@species
674
- _export({ target: 'Array', proto: true, forced: !arrayMethodHasSpeciesSupport('filter') }, {
773
+ _export({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {
675
774
  filter: function filter(callbackfn /* , thisArg */) {
676
775
  return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
677
776
  }
@@ -697,56 +796,87 @@
697
796
 
698
797
  var html = getBuiltIn('document', 'documentElement');
699
798
 
799
+ var GT = '>';
800
+ var LT = '<';
801
+ var PROTOTYPE = 'prototype';
802
+ var SCRIPT = 'script';
700
803
  var IE_PROTO = sharedKey('IE_PROTO');
701
804
 
702
- var PROTOTYPE = 'prototype';
703
- var Empty = function () { /* empty */ };
805
+ var EmptyConstructor = function () { /* empty */ };
806
+
807
+ var scriptTag = function (content) {
808
+ return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;
809
+ };
810
+
811
+ // Create object with fake `null` prototype: use ActiveX Object with cleared prototype
812
+ var NullProtoObjectViaActiveX = function (activeXDocument) {
813
+ activeXDocument.write(scriptTag(''));
814
+ activeXDocument.close();
815
+ var temp = activeXDocument.parentWindow.Object;
816
+ activeXDocument = null; // avoid memory leak
817
+ return temp;
818
+ };
704
819
 
705
820
  // Create object with fake `null` prototype: use iframe Object with cleared prototype
706
- var createDict = function () {
821
+ var NullProtoObjectViaIFrame = function () {
707
822
  // Thrash, waste and sodomy: IE GC bug
708
823
  var iframe = documentCreateElement('iframe');
709
- var length = enumBugKeys.length;
710
- var lt = '<';
711
- var script = 'script';
712
- var gt = '>';
713
- var js = 'java' + script + ':';
824
+ var JS = 'java' + SCRIPT + ':';
714
825
  var iframeDocument;
715
826
  iframe.style.display = 'none';
716
827
  html.appendChild(iframe);
717
- iframe.src = String(js);
828
+ // https://github.com/zloirock/core-js/issues/475
829
+ iframe.src = String(JS);
718
830
  iframeDocument = iframe.contentWindow.document;
719
831
  iframeDocument.open();
720
- iframeDocument.write(lt + script + gt + 'document.F=Object' + lt + '/' + script + gt);
832
+ iframeDocument.write(scriptTag('document.F=Object'));
721
833
  iframeDocument.close();
722
- createDict = iframeDocument.F;
723
- while (length--) delete createDict[PROTOTYPE][enumBugKeys[length]];
724
- return createDict();
834
+ return iframeDocument.F;
835
+ };
836
+
837
+ // Check for document.domain and active x support
838
+ // No need to use active x approach when document.domain is not set
839
+ // see https://github.com/es-shims/es5-shim/issues/150
840
+ // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346
841
+ // avoid IE GC bug
842
+ var activeXDocument;
843
+ var NullProtoObject = function () {
844
+ try {
845
+ /* global ActiveXObject */
846
+ activeXDocument = document.domain && new ActiveXObject('htmlfile');
847
+ } catch (error) { /* ignore */ }
848
+ NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();
849
+ var length = enumBugKeys.length;
850
+ while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];
851
+ return NullProtoObject();
725
852
  };
726
853
 
854
+ hiddenKeys[IE_PROTO] = true;
855
+
727
856
  // `Object.create` method
728
857
  // https://tc39.github.io/ecma262/#sec-object.create
729
858
  var objectCreate = Object.create || function create(O, Properties) {
730
859
  var result;
731
860
  if (O !== null) {
732
- Empty[PROTOTYPE] = anObject(O);
733
- result = new Empty();
734
- Empty[PROTOTYPE] = null;
861
+ EmptyConstructor[PROTOTYPE] = anObject(O);
862
+ result = new EmptyConstructor();
863
+ EmptyConstructor[PROTOTYPE] = null;
735
864
  // add "__proto__" for Object.getPrototypeOf polyfill
736
865
  result[IE_PROTO] = O;
737
- } else result = createDict();
866
+ } else result = NullProtoObject();
738
867
  return Properties === undefined ? result : objectDefineProperties(result, Properties);
739
868
  };
740
869
 
741
- hiddenKeys[IE_PROTO] = true;
742
-
743
870
  var UNSCOPABLES = wellKnownSymbol('unscopables');
744
871
  var ArrayPrototype = Array.prototype;
745
872
 
746
873
  // Array.prototype[@@unscopables]
747
874
  // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables
748
875
  if (ArrayPrototype[UNSCOPABLES] == undefined) {
749
- hide(ArrayPrototype, UNSCOPABLES, objectCreate(null));
876
+ objectDefineProperty.f(ArrayPrototype, UNSCOPABLES, {
877
+ configurable: true,
878
+ value: objectCreate(null)
879
+ });
750
880
  }
751
881
 
752
882
  // add a key to Array.prototype[@@unscopables]
@@ -795,12 +925,6 @@
795
925
  }
796
926
  });
797
927
 
798
- var createProperty = function (object, key, value) {
799
- var propertyKey = toPrimitive(key);
800
- if (propertyKey in object) objectDefineProperty.f(object, propertyKey, createPropertyDescriptor(0, value));
801
- else object[propertyKey] = value;
802
- };
803
-
804
928
  var SPECIES$2 = wellKnownSymbol('species');
805
929
  var nativeSlice = [].slice;
806
930
  var max$1 = Math.max;
@@ -836,8 +960,8 @@
836
960
  }
837
961
  });
838
962
 
839
- var nativeSort = [].sort;
840
- var test = [1, 2, 3];
963
+ var test = [];
964
+ var nativeSort = test.sort;
841
965
 
842
966
  // IE8-
843
967
  var FAILS_ON_UNDEFINED = fails(function () {
@@ -850,11 +974,11 @@
850
974
  // Old WebKit
851
975
  var SLOPPY_METHOD$1 = sloppyArrayMethod('sort');
852
976
 
853
- var FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || SLOPPY_METHOD$1;
977
+ var FORCED$1 = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || SLOPPY_METHOD$1;
854
978
 
855
979
  // `Array.prototype.sort` method
856
980
  // https://tc39.github.io/ecma262/#sec-array.prototype.sort
857
- _export({ target: 'Array', proto: true, forced: FORCED }, {
981
+ _export({ target: 'Array', proto: true, forced: FORCED$1 }, {
858
982
  sort: function sort(comparefn) {
859
983
  return comparefn === undefined
860
984
  ? nativeSort.call(toObject(this))
@@ -884,326 +1008,54 @@
884
1008
  });
885
1009
  }
886
1010
 
887
- // `RegExp.prototype.flags` getter implementation
888
- // https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags
889
- var regexpFlags = function () {
890
- var that = anObject(this);
891
- var result = '';
892
- if (that.global) result += 'g';
893
- if (that.ignoreCase) result += 'i';
894
- if (that.multiline) result += 'm';
895
- if (that.dotAll) result += 's';
896
- if (that.unicode) result += 'u';
897
- if (that.sticky) result += 'y';
898
- return result;
899
- };
900
-
901
- var nativeExec = RegExp.prototype.exec;
902
- // This always refers to the native implementation, because the
903
- // String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,
904
- // which loads this file before patching the method.
905
- var nativeReplace = String.prototype.replace;
906
-
907
- var patchedExec = nativeExec;
1011
+ var nativeAssign = Object.assign;
1012
+ var defineProperty$1 = Object.defineProperty;
908
1013
 
909
- var UPDATES_LAST_INDEX_WRONG = (function () {
910
- var re1 = /a/;
911
- var re2 = /b*/g;
912
- nativeExec.call(re1, 'a');
913
- nativeExec.call(re2, 'a');
914
- return re1.lastIndex !== 0 || re2.lastIndex !== 0;
915
- })();
916
-
917
- // nonparticipating capturing group, copied from es5-shim's String#split patch.
918
- var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;
919
-
920
- var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;
921
-
922
- if (PATCH) {
923
- patchedExec = function exec(str) {
924
- var re = this;
925
- var lastIndex, reCopy, match, i;
926
-
927
- if (NPCG_INCLUDED) {
928
- reCopy = new RegExp('^' + re.source + '$(?!\\s)', regexpFlags.call(re));
929
- }
930
- if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;
931
-
932
- match = nativeExec.call(re, str);
933
-
934
- if (UPDATES_LAST_INDEX_WRONG && match) {
935
- re.lastIndex = re.global ? match.index + match[0].length : lastIndex;
936
- }
937
- if (NPCG_INCLUDED && match && match.length > 1) {
938
- // Fix browsers whose `exec` methods don't consistently return `undefined`
939
- // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
940
- nativeReplace.call(match[0], reCopy, function () {
941
- for (i = 1; i < arguments.length - 2; i++) {
942
- if (arguments[i] === undefined) match[i] = undefined;
943
- }
1014
+ // `Object.assign` method
1015
+ // https://tc39.github.io/ecma262/#sec-object.assign
1016
+ var objectAssign = !nativeAssign || fails(function () {
1017
+ // should have correct order of operations (Edge bug)
1018
+ if (descriptors && nativeAssign({ b: 1 }, nativeAssign(defineProperty$1({}, 'a', {
1019
+ enumerable: true,
1020
+ get: function () {
1021
+ defineProperty$1(this, 'b', {
1022
+ value: 3,
1023
+ enumerable: false
944
1024
  });
945
1025
  }
946
-
947
- return match;
948
- };
949
- }
950
-
951
- var regexpExec = patchedExec;
952
-
953
- var SPECIES$3 = wellKnownSymbol('species');
954
-
955
- var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {
956
- // #replace needs built-in support for named groups.
957
- // #match works fine because it just return the exec results, even if it has
958
- // a "grops" property.
959
- var re = /./;
960
- re.exec = function () {
961
- var result = [];
962
- result.groups = { a: '7' };
963
- return result;
964
- };
965
- return ''.replace(re, '$<a>') !== '7';
966
- });
967
-
968
- // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
969
- // Weex JS has frozen built-in prototypes, so use try / catch wrapper
970
- var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {
971
- var re = /(?:)/;
972
- var originalExec = re.exec;
973
- re.exec = function () { return originalExec.apply(this, arguments); };
974
- var result = 'ab'.split(re);
975
- return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';
976
- });
977
-
978
- var fixRegexpWellKnownSymbolLogic = function (KEY, length, exec, sham) {
979
- var SYMBOL = wellKnownSymbol(KEY);
980
-
981
- var DELEGATES_TO_SYMBOL = !fails(function () {
982
- // String methods call symbol-named RegEp methods
983
- var O = {};
984
- O[SYMBOL] = function () { return 7; };
985
- return ''[KEY](O) != 7;
986
- });
987
-
988
- var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {
989
- // Symbol-named RegExp methods call .exec
990
- var execCalled = false;
991
- var re = /a/;
992
- re.exec = function () { execCalled = true; return null; };
993
-
994
- if (KEY === 'split') {
995
- // RegExp[@@split] doesn't call the regex's exec method, but first creates
996
- // a new one. We need to return the patched regex when creating the new one.
997
- re.constructor = {};
998
- re.constructor[SPECIES$3] = function () { return re; };
999
- }
1000
-
1001
- re[SYMBOL]('');
1002
- return !execCalled;
1003
- });
1004
-
1005
- if (
1006
- !DELEGATES_TO_SYMBOL ||
1007
- !DELEGATES_TO_EXEC ||
1008
- (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||
1009
- (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)
1010
- ) {
1011
- var nativeRegExpMethod = /./[SYMBOL];
1012
- var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {
1013
- if (regexp.exec === regexpExec) {
1014
- if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
1015
- // The native String method already delegates to @@method (this
1016
- // polyfilled function), leasing to infinite recursion.
1017
- // We avoid it by directly calling the native @@method method.
1018
- return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };
1019
- }
1020
- return { done: true, value: nativeMethod.call(str, regexp, arg2) };
1021
- }
1022
- return { done: false };
1023
- });
1024
- var stringMethod = methods[0];
1025
- var regexMethod = methods[1];
1026
-
1027
- redefine(String.prototype, KEY, stringMethod);
1028
- redefine(RegExp.prototype, SYMBOL, length == 2
1029
- // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
1030
- // 21.2.5.11 RegExp.prototype[@@split](string, limit)
1031
- ? function (string, arg) { return regexMethod.call(string, this, arg); }
1032
- // 21.2.5.6 RegExp.prototype[@@match](string)
1033
- // 21.2.5.9 RegExp.prototype[@@search](string)
1034
- : function (string) { return regexMethod.call(string, this); }
1035
- );
1036
- if (sham) hide(RegExp.prototype[SYMBOL], 'sham', true);
1037
- }
1038
- };
1039
-
1040
- // `String.prototype.{ codePointAt, at }` methods implementation
1041
- var createMethod$2 = function (CONVERT_TO_STRING) {
1042
- return function ($this, pos) {
1043
- var S = String(requireObjectCoercible($this));
1044
- var position = toInteger(pos);
1045
- var size = S.length;
1046
- var first, second;
1047
- if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;
1048
- first = S.charCodeAt(position);
1049
- return first < 0xD800 || first > 0xDBFF || position + 1 === size
1050
- || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF
1051
- ? CONVERT_TO_STRING ? S.charAt(position) : first
1052
- : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
1053
- };
1054
- };
1055
-
1056
- var stringMultibyte = {
1057
- // `String.prototype.codePointAt` method
1058
- // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat
1059
- codeAt: createMethod$2(false),
1060
- // `String.prototype.at` method
1061
- // https://github.com/mathiasbynens/String.prototype.at
1062
- charAt: createMethod$2(true)
1063
- };
1064
-
1065
- var charAt = stringMultibyte.charAt;
1066
-
1067
- // `AdvanceStringIndex` abstract operation
1068
- // https://tc39.github.io/ecma262/#sec-advancestringindex
1069
- var advanceStringIndex = function (S, index, unicode) {
1070
- return index + (unicode ? charAt(S, index).length : 1);
1071
- };
1072
-
1073
- // `RegExpExec` abstract operation
1074
- // https://tc39.github.io/ecma262/#sec-regexpexec
1075
- var regexpExecAbstract = function (R, S) {
1076
- var exec = R.exec;
1077
- if (typeof exec === 'function') {
1078
- var result = exec.call(R, S);
1079
- if (typeof result !== 'object') {
1080
- throw TypeError('RegExp exec method returned something other than an Object or null');
1026
+ }), { b: 2 })).b !== 1) return true;
1027
+ // should work with symbols and should have deterministic property order (V8 bug)
1028
+ var A = {};
1029
+ var B = {};
1030
+ // eslint-disable-next-line no-undef
1031
+ var symbol = Symbol();
1032
+ var alphabet = 'abcdefghijklmnopqrst';
1033
+ A[symbol] = 7;
1034
+ alphabet.split('').forEach(function (chr) { B[chr] = chr; });
1035
+ return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;
1036
+ }) ? function assign(target, source) { // eslint-disable-line no-unused-vars
1037
+ var T = toObject(target);
1038
+ var argumentsLength = arguments.length;
1039
+ var index = 1;
1040
+ var getOwnPropertySymbols = objectGetOwnPropertySymbols.f;
1041
+ var propertyIsEnumerable = objectPropertyIsEnumerable.f;
1042
+ while (argumentsLength > index) {
1043
+ var S = indexedObject(arguments[index++]);
1044
+ var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);
1045
+ var length = keys.length;
1046
+ var j = 0;
1047
+ var key;
1048
+ while (length > j) {
1049
+ key = keys[j++];
1050
+ if (!descriptors || propertyIsEnumerable.call(S, key)) T[key] = S[key];
1081
1051
  }
1082
- return result;
1083
- }
1052
+ } return T;
1053
+ } : nativeAssign;
1084
1054
 
1085
- if (classofRaw(R) !== 'RegExp') {
1086
- throw TypeError('RegExp#exec called on incompatible receiver');
1087
- }
1088
-
1089
- return regexpExec.call(R, S);
1090
- };
1091
-
1092
- var max$2 = Math.max;
1093
- var min$2 = Math.min;
1094
- var floor$1 = Math.floor;
1095
- var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d\d?|<[^>]*>)/g;
1096
- var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d\d?)/g;
1097
-
1098
- var maybeToString = function (it) {
1099
- return it === undefined ? it : String(it);
1100
- };
1101
-
1102
- // @@replace logic
1103
- fixRegexpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative) {
1104
- return [
1105
- // `String.prototype.replace` method
1106
- // https://tc39.github.io/ecma262/#sec-string.prototype.replace
1107
- function replace(searchValue, replaceValue) {
1108
- var O = requireObjectCoercible(this);
1109
- var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];
1110
- return replacer !== undefined
1111
- ? replacer.call(searchValue, O, replaceValue)
1112
- : nativeReplace.call(String(O), searchValue, replaceValue);
1113
- },
1114
- // `RegExp.prototype[@@replace]` method
1115
- // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace
1116
- function (regexp, replaceValue) {
1117
- var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);
1118
- if (res.done) return res.value;
1119
-
1120
- var rx = anObject(regexp);
1121
- var S = String(this);
1122
-
1123
- var functionalReplace = typeof replaceValue === 'function';
1124
- if (!functionalReplace) replaceValue = String(replaceValue);
1125
-
1126
- var global = rx.global;
1127
- if (global) {
1128
- var fullUnicode = rx.unicode;
1129
- rx.lastIndex = 0;
1130
- }
1131
- var results = [];
1132
- while (true) {
1133
- var result = regexpExecAbstract(rx, S);
1134
- if (result === null) break;
1135
-
1136
- results.push(result);
1137
- if (!global) break;
1138
-
1139
- var matchStr = String(result[0]);
1140
- if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
1141
- }
1142
-
1143
- var accumulatedResult = '';
1144
- var nextSourcePosition = 0;
1145
- for (var i = 0; i < results.length; i++) {
1146
- result = results[i];
1147
-
1148
- var matched = String(result[0]);
1149
- var position = max$2(min$2(toInteger(result.index), S.length), 0);
1150
- var captures = [];
1151
- // NOTE: This is equivalent to
1152
- // captures = result.slice(1).map(maybeToString)
1153
- // but for some reason `nativeSlice.call(result, 1, result.length)` (called in
1154
- // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and
1155
- // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
1156
- for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));
1157
- var namedCaptures = result.groups;
1158
- if (functionalReplace) {
1159
- var replacerArgs = [matched].concat(captures, position, S);
1160
- if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);
1161
- var replacement = String(replaceValue.apply(undefined, replacerArgs));
1162
- } else {
1163
- replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
1164
- }
1165
- if (position >= nextSourcePosition) {
1166
- accumulatedResult += S.slice(nextSourcePosition, position) + replacement;
1167
- nextSourcePosition = position + matched.length;
1168
- }
1169
- }
1170
- return accumulatedResult + S.slice(nextSourcePosition);
1171
- }
1172
- ];
1173
-
1174
- // https://tc39.github.io/ecma262/#sec-getsubstitution
1175
- function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {
1176
- var tailPos = position + matched.length;
1177
- var m = captures.length;
1178
- var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
1179
- if (namedCaptures !== undefined) {
1180
- namedCaptures = toObject(namedCaptures);
1181
- symbols = SUBSTITUTION_SYMBOLS;
1182
- }
1183
- return nativeReplace.call(replacement, symbols, function (match, ch) {
1184
- var capture;
1185
- switch (ch.charAt(0)) {
1186
- case '$': return '$';
1187
- case '&': return matched;
1188
- case '`': return str.slice(0, position);
1189
- case "'": return str.slice(tailPos);
1190
- case '<':
1191
- capture = namedCaptures[ch.slice(1, -1)];
1192
- break;
1193
- default: // \d\d?
1194
- var n = +ch;
1195
- if (n === 0) return match;
1196
- if (n > m) {
1197
- var f = floor$1(n / 10);
1198
- if (f === 0) return match;
1199
- if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
1200
- return match;
1201
- }
1202
- capture = captures[n - 1];
1203
- }
1204
- return capture === undefined ? '' : capture;
1205
- });
1206
- }
1055
+ // `Object.assign` method
1056
+ // https://tc39.github.io/ecma262/#sec-object.assign
1057
+ _export({ target: 'Object', stat: true, forced: Object.assign !== objectAssign }, {
1058
+ assign: objectAssign
1207
1059
  });
1208
1060
 
1209
1061
  // iterable DOM collections
@@ -1256,58 +1108,169 @@
1256
1108
  var CollectionPrototype = Collection && Collection.prototype;
1257
1109
  // some Chrome versions have non-configurable methods on DOMTokenList
1258
1110
  if (CollectionPrototype && CollectionPrototype.forEach !== arrayForEach) try {
1259
- hide(CollectionPrototype, 'forEach', arrayForEach);
1111
+ createNonEnumerableProperty(CollectionPrototype, 'forEach', arrayForEach);
1260
1112
  } catch (error) {
1261
1113
  CollectionPrototype.forEach = arrayForEach;
1262
1114
  }
1263
1115
  }
1264
1116
 
1117
+ function _typeof(obj) {
1118
+ if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
1119
+ _typeof = function (obj) {
1120
+ return typeof obj;
1121
+ };
1122
+ } else {
1123
+ _typeof = function (obj) {
1124
+ return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
1125
+ };
1126
+ }
1127
+
1128
+ return _typeof(obj);
1129
+ }
1130
+
1131
+ function _classCallCheck(instance, Constructor) {
1132
+ if (!(instance instanceof Constructor)) {
1133
+ throw new TypeError("Cannot call a class as a function");
1134
+ }
1135
+ }
1136
+
1137
+ function _defineProperties(target, props) {
1138
+ for (var i = 0; i < props.length; i++) {
1139
+ var descriptor = props[i];
1140
+ descriptor.enumerable = descriptor.enumerable || false;
1141
+ descriptor.configurable = true;
1142
+ if ("value" in descriptor) descriptor.writable = true;
1143
+ Object.defineProperty(target, descriptor.key, descriptor);
1144
+ }
1145
+ }
1146
+
1147
+ function _createClass(Constructor, protoProps, staticProps) {
1148
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
1149
+ if (staticProps) _defineProperties(Constructor, staticProps);
1150
+ return Constructor;
1151
+ }
1152
+
1153
+ function _inherits(subClass, superClass) {
1154
+ if (typeof superClass !== "function" && superClass !== null) {
1155
+ throw new TypeError("Super expression must either be null or a function");
1156
+ }
1157
+
1158
+ subClass.prototype = Object.create(superClass && superClass.prototype, {
1159
+ constructor: {
1160
+ value: subClass,
1161
+ writable: true,
1162
+ configurable: true
1163
+ }
1164
+ });
1165
+ if (superClass) _setPrototypeOf(subClass, superClass);
1166
+ }
1167
+
1168
+ function _getPrototypeOf(o) {
1169
+ _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
1170
+ return o.__proto__ || Object.getPrototypeOf(o);
1171
+ };
1172
+ return _getPrototypeOf(o);
1173
+ }
1174
+
1175
+ function _setPrototypeOf(o, p) {
1176
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
1177
+ o.__proto__ = p;
1178
+ return o;
1179
+ };
1180
+
1181
+ return _setPrototypeOf(o, p);
1182
+ }
1183
+
1184
+ function _assertThisInitialized(self) {
1185
+ if (self === void 0) {
1186
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
1187
+ }
1188
+
1189
+ return self;
1190
+ }
1191
+
1192
+ function _possibleConstructorReturn(self, call) {
1193
+ if (call && (typeof call === "object" || typeof call === "function")) {
1194
+ return call;
1195
+ }
1196
+
1197
+ return _assertThisInitialized(self);
1198
+ }
1199
+
1200
+ function _superPropBase(object, property) {
1201
+ while (!Object.prototype.hasOwnProperty.call(object, property)) {
1202
+ object = _getPrototypeOf(object);
1203
+ if (object === null) break;
1204
+ }
1205
+
1206
+ return object;
1207
+ }
1208
+
1209
+ function _get(target, property, receiver) {
1210
+ if (typeof Reflect !== "undefined" && Reflect.get) {
1211
+ _get = Reflect.get;
1212
+ } else {
1213
+ _get = function _get(target, property, receiver) {
1214
+ var base = _superPropBase(target, property);
1215
+
1216
+ if (!base) return;
1217
+ var desc = Object.getOwnPropertyDescriptor(base, property);
1218
+
1219
+ if (desc.get) {
1220
+ return desc.get.call(receiver);
1221
+ }
1222
+
1223
+ return desc.value;
1224
+ };
1225
+ }
1226
+
1227
+ return _get(target, property, receiver || target);
1228
+ }
1229
+
1265
1230
  /**
1266
1231
  * @author: Yura Knoxville
1267
1232
  * @version: v1.1.0
1268
1233
  */
1269
1234
 
1270
1235
  var initBodyCaller;
1271
- var tableGroups; // it only does '%s', and return '' when arguments are undefined
1272
-
1273
- var sprintf = function sprintf(str) {
1274
- var args = arguments;
1275
- var flag = true;
1276
- var i = 1;
1277
- str = str.replace(/%s/g, function () {
1278
- var arg = args[i++];
1279
-
1280
- if (typeof arg === 'undefined') {
1281
- flag = false;
1282
- return '';
1283
- }
1284
-
1285
- return arg;
1286
- });
1287
- return flag ? str : '';
1288
- };
1289
1236
 
1290
1237
  var groupBy = function groupBy(array, f) {
1291
- var groups = {};
1238
+ var tmpGroups = {};
1292
1239
  array.forEach(function (o) {
1293
- var group = f(o);
1294
- groups[group] = groups[group] || [];
1295
- groups[group].push(o);
1240
+ var groups = f(o);
1241
+ tmpGroups[groups] = tmpGroups[groups] || [];
1242
+ tmpGroups[groups].push(o);
1296
1243
  });
1297
- return groups;
1298
- };
1299
-
1244
+ return tmpGroups;
1245
+ };
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
+ });
1300
1257
  $.extend($.fn.bootstrapTable.defaults, {
1301
1258
  groupBy: false,
1302
1259
  groupByField: '',
1303
- groupByFormatter: undefined
1260
+ groupByFormatter: undefined,
1261
+ groupByToggle: false,
1262
+ groupByShowToggleIcon: false,
1263
+ groupByCollapsedGroups: []
1304
1264
  });
1265
+ var Utils = $.fn.bootstrapTable.utils;
1305
1266
  var BootstrapTable = $.fn.bootstrapTable.Constructor;
1306
1267
  var _initSort = BootstrapTable.prototype.initSort;
1307
1268
  var _initBody = BootstrapTable.prototype.initBody;
1308
1269
  var _updateSelected = BootstrapTable.prototype.updateSelected;
1309
1270
 
1310
1271
  BootstrapTable.prototype.initSort = function () {
1272
+ var _this = this;
1273
+
1311
1274
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
1312
1275
  args[_key] = arguments[_key];
1313
1276
  }
@@ -1315,30 +1278,57 @@
1315
1278
  _initSort.apply(this, Array.prototype.slice.apply(args));
1316
1279
 
1317
1280
  var that = this;
1318
- tableGroups = [];
1281
+ this.tableGroups = [];
1319
1282
 
1320
1283
  if (this.options.groupBy && this.options.groupByField !== '') {
1321
1284
  if (this.options.sortName !== this.options.groupByField) {
1322
- this.data.sort(function (a, b) {
1323
- return a[that.options.groupByField].localeCompare(b[that.options.groupByField]);
1324
- });
1285
+ if (this.options.customSort) {
1286
+ Utils.calculateObjectValue(this.options, this.options.customSort, [this.options.sortName, this.options.sortOrder, this.data]);
1287
+ } else {
1288
+ this.data.sort(function (a, b) {
1289
+ var groupByFields = _this.getGroupByFields();
1290
+
1291
+ var fieldValuesA = [];
1292
+ var fieldValuesB = [];
1293
+ $.each(groupByFields, function (i, field) {
1294
+ fieldValuesA.push(a[field]);
1295
+ fieldValuesB.push(b[field]);
1296
+ });
1297
+ a = fieldValuesA.join();
1298
+ b = fieldValuesB.join();
1299
+ return a.localeCompare(b, undefined, {
1300
+ numeric: true
1301
+ });
1302
+ });
1303
+ }
1325
1304
  }
1326
1305
 
1327
1306
  var groups = groupBy(that.data, function (item) {
1328
- return [item[that.options.groupByField]];
1307
+ var groupByFields = _this.getGroupByFields();
1308
+
1309
+ var groupValues = [];
1310
+ $.each(groupByFields, function (i, field) {
1311
+ groupValues.push(item[field]);
1312
+ });
1313
+ return groupValues.join(', ');
1329
1314
  });
1330
1315
  var index = 0;
1331
1316
  $.each(groups, function (key, value) {
1332
- tableGroups.push({
1317
+ _this.tableGroups.push({
1333
1318
  id: index,
1334
1319
  name: key,
1335
1320
  data: value
1336
1321
  });
1322
+
1337
1323
  value.forEach(function (item) {
1338
1324
  if (!item._data) {
1339
1325
  item._data = {};
1340
1326
  }
1341
1327
 
1328
+ if (_this.isCollapsed(key, value)) {
1329
+ item._class = 'hidden';
1330
+ }
1331
+
1342
1332
  item._data['parent-index'] = index;
1343
1333
  });
1344
1334
  index++;
@@ -1347,6 +1337,8 @@
1347
1337
  };
1348
1338
 
1349
1339
  BootstrapTable.prototype.initBody = function () {
1340
+ var _this2 = this;
1341
+
1350
1342
  initBodyCaller = true;
1351
1343
 
1352
1344
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
@@ -1373,9 +1365,9 @@
1373
1365
  visibleColumns += 1;
1374
1366
  }
1375
1367
 
1376
- tableGroups.forEach(function (item) {
1368
+ this.tableGroups.forEach(function (item) {
1377
1369
  var html = [];
1378
- 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));
1379
1371
 
1380
1372
  if (that.options.detailView && !that.options.cardView) {
1381
1373
  html.push('<td class="detail"></td>');
@@ -1391,8 +1383,18 @@
1391
1383
  formattedValue = that.options.groupByFormatter(item.name, item.id, item.data);
1392
1384
  }
1393
1385
 
1394
- html.push('<td', sprintf(' colspan="%s"', visibleColumns), '>', formattedValue, '</td>');
1395
- 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>');
1396
1398
  that.$body.find("tr[data-parent-index=".concat(item.id, "]:first")).before($(html.join('')));
1397
1399
  });
1398
1400
  this.$selectGroup = [];
@@ -1405,10 +1407,15 @@
1405
1407
  })
1406
1408
  });
1407
1409
  });
1408
- this.$container.off('click', '.groupBy').on('click', '.groupBy', function () {
1409
- $(this).toggleClass('expanded');
1410
- that.$body.find("tr[data-parent-index=".concat($(this).closest('tr').data('group-index'), "]")).toggleClass('hidden');
1411
- });
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
+
1412
1419
  this.$container.off('click', '[name="btSelectGroup"]').on('click', '[name="btSelectGroup"]', function (event) {
1413
1420
  event.stopImmediatePropagation();
1414
1421
  var self = $(this);
@@ -1438,13 +1445,6 @@
1438
1445
  }
1439
1446
  };
1440
1447
 
1441
- BootstrapTable.prototype.getGroupSelections = function (index) {
1442
- var that = this;
1443
- return this.data.filter(function (row) {
1444
- return row[that.header.stateField] && row._data['parent-index'] === index;
1445
- });
1446
- };
1447
-
1448
1448
  BootstrapTable.prototype.checkGroup = function (index) {
1449
1449
  this.checkGroup_(index, true);
1450
1450
  };
@@ -1453,26 +1453,91 @@
1453
1453
  this.checkGroup_(index, false);
1454
1454
  };
1455
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
+
1456
1468
  BootstrapTable.prototype.checkGroup_ = function (index, checked) {
1457
- var rows;
1469
+ var rowsBefore = this.getSelections();
1458
1470
 
1459
1471
  var filter = function filter() {
1460
1472
  return $(this).closest('tr').data('parent-index') === index;
1461
1473
  };
1462
1474
 
1463
- if (!checked) {
1464
- rows = this.getGroupSelections(index);
1465
- }
1466
-
1467
1475
  this.$selectItem.filter(filter).prop('checked', checked);
1468
1476
  this.updateRows();
1469
1477
  this.updateSelected();
1478
+ var rowsAfter = this.getSelections();
1470
1479
 
1471
1480
  if (checked) {
1472
- rows = this.getGroupSelections(index);
1481
+ this.trigger('check-all', rowsAfter, rowsBefore);
1482
+ return;
1483
+ }
1484
+
1485
+ this.trigger('uncheck-all', rowsAfter, rowsBefore);
1486
+ };
1487
+
1488
+ BootstrapTable.prototype.getGroupByFields = function () {
1489
+ var groupByFields = this.options.groupByField;
1490
+
1491
+ if (!$.isArray(this.options.groupByField)) {
1492
+ groupByFields = [this.options.groupByField];
1473
1493
  }
1474
1494
 
1475
- this.trigger(checked ? 'check-all' : 'uncheck-all', rows);
1495
+ return groupByFields;
1476
1496
  };
1477
1497
 
1478
- }));
1498
+ $.BootstrapTable =
1499
+ /*#__PURE__*/
1500
+ function (_$$BootstrapTable) {
1501
+ _inherits(_class, _$$BootstrapTable);
1502
+
1503
+ function _class() {
1504
+ _classCallCheck(this, _class);
1505
+
1506
+ return _possibleConstructorReturn(this, _getPrototypeOf(_class).apply(this, arguments));
1507
+ }
1508
+
1509
+ _createClass(_class, [{
1510
+ key: "scrollTo",
1511
+ value: function scrollTo(params) {
1512
+ if (this.options.groupBy) {
1513
+ var options = {
1514
+ unit: 'px',
1515
+ value: 0
1516
+ };
1517
+
1518
+ if (_typeof(params) === 'object') {
1519
+ options = Object.assign(options, params);
1520
+ }
1521
+
1522
+ if (options.unit === 'rows') {
1523
+ var scrollTo = 0;
1524
+ this.$body.find("> tr:not(.groupBy):lt(".concat(options.value, ")")).each(function (i, el) {
1525
+ scrollTo += $(el).outerHeight(true);
1526
+ });
1527
+ var $targetColumn = this.$body.find("> tr:not(.groupBy):eq(".concat(options.value, ")"));
1528
+ $targetColumn.prevAll('.groupBy').each(function (i, el) {
1529
+ scrollTo += $(el).outerHeight(true);
1530
+ });
1531
+ this.$tableBody.scrollTop(scrollTo);
1532
+ return;
1533
+ }
1534
+ }
1535
+
1536
+ _get(_getPrototypeOf(_class.prototype), "scrollTo", this).call(this, params);
1537
+ }
1538
+ }]);
1539
+
1540
+ return _class;
1541
+ }($.BootstrapTable);
1542
+
1543
+ })));