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
 
@@ -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,13 +519,25 @@
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
 
529
+ var nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () {
530
+ // Chrome 38 Symbol has incorrect toString conversion
531
+ // eslint-disable-next-line no-undef
532
+ return !String(Symbol());
533
+ });
534
+
535
+ var useSymbolAsUid = nativeSymbol
536
+ // eslint-disable-next-line no-undef
537
+ && !Symbol.sham
538
+ // eslint-disable-next-line no-undef
539
+ && typeof Symbol() == 'symbol';
540
+
523
541
  // `IsArray` abstract operation
524
542
  // https://tc39.github.io/ecma262/#sec-isarray
525
543
  var isArray = Array.isArray || function isArray(arg) {
@@ -532,100 +550,160 @@
532
550
  return Object(requireObjectCoercible(argument));
533
551
  };
534
552
 
535
- var createProperty = function (object, key, value) {
536
- var propertyKey = toPrimitive(key);
537
- if (propertyKey in object) objectDefineProperty.f(object, propertyKey, createPropertyDescriptor(0, value));
538
- else object[propertyKey] = value;
553
+ // `Object.keys` method
554
+ // https://tc39.github.io/ecma262/#sec-object.keys
555
+ var objectKeys = Object.keys || function keys(O) {
556
+ return objectKeysInternal(O, enumBugKeys);
539
557
  };
540
558
 
541
- var nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () {
542
- // Chrome 38 Symbol has incorrect toString conversion
543
- // eslint-disable-next-line no-undef
544
- return !String(Symbol());
545
- });
559
+ // `Object.defineProperties` method
560
+ // https://tc39.github.io/ecma262/#sec-object.defineproperties
561
+ var objectDefineProperties = descriptors ? Object.defineProperties : function defineProperties(O, Properties) {
562
+ anObject(O);
563
+ var keys = objectKeys(Properties);
564
+ var length = keys.length;
565
+ var index = 0;
566
+ var key;
567
+ while (length > index) objectDefineProperty.f(O, key = keys[index++], Properties[key]);
568
+ return O;
569
+ };
570
+
571
+ var html = getBuiltIn('document', 'documentElement');
572
+
573
+ var GT = '>';
574
+ var LT = '<';
575
+ var PROTOTYPE = 'prototype';
576
+ var SCRIPT = 'script';
577
+ var IE_PROTO = sharedKey('IE_PROTO');
578
+
579
+ var EmptyConstructor = function () { /* empty */ };
580
+
581
+ var scriptTag = function (content) {
582
+ return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;
583
+ };
584
+
585
+ // Create object with fake `null` prototype: use ActiveX Object with cleared prototype
586
+ var NullProtoObjectViaActiveX = function (activeXDocument) {
587
+ activeXDocument.write(scriptTag(''));
588
+ activeXDocument.close();
589
+ var temp = activeXDocument.parentWindow.Object;
590
+ activeXDocument = null; // avoid memory leak
591
+ return temp;
592
+ };
593
+
594
+ // Create object with fake `null` prototype: use iframe Object with cleared prototype
595
+ var NullProtoObjectViaIFrame = function () {
596
+ // Thrash, waste and sodomy: IE GC bug
597
+ var iframe = documentCreateElement('iframe');
598
+ var JS = 'java' + SCRIPT + ':';
599
+ var iframeDocument;
600
+ iframe.style.display = 'none';
601
+ html.appendChild(iframe);
602
+ // https://github.com/zloirock/core-js/issues/475
603
+ iframe.src = String(JS);
604
+ iframeDocument = iframe.contentWindow.document;
605
+ iframeDocument.open();
606
+ iframeDocument.write(scriptTag('document.F=Object'));
607
+ iframeDocument.close();
608
+ return iframeDocument.F;
609
+ };
610
+
611
+ // Check for document.domain and active x support
612
+ // No need to use active x approach when document.domain is not set
613
+ // see https://github.com/es-shims/es5-shim/issues/150
614
+ // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346
615
+ // avoid IE GC bug
616
+ var activeXDocument;
617
+ var NullProtoObject = function () {
618
+ try {
619
+ /* global ActiveXObject */
620
+ activeXDocument = document.domain && new ActiveXObject('htmlfile');
621
+ } catch (error) { /* ignore */ }
622
+ NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();
623
+ var length = enumBugKeys.length;
624
+ while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];
625
+ return NullProtoObject();
626
+ };
546
627
 
628
+ hiddenKeys[IE_PROTO] = true;
629
+
630
+ // `Object.create` method
631
+ // https://tc39.github.io/ecma262/#sec-object.create
632
+ var objectCreate = Object.create || function create(O, Properties) {
633
+ var result;
634
+ if (O !== null) {
635
+ EmptyConstructor[PROTOTYPE] = anObject(O);
636
+ result = new EmptyConstructor();
637
+ EmptyConstructor[PROTOTYPE] = null;
638
+ // add "__proto__" for Object.getPrototypeOf polyfill
639
+ result[IE_PROTO] = O;
640
+ } else result = NullProtoObject();
641
+ return Properties === undefined ? result : objectDefineProperties(result, Properties);
642
+ };
643
+
644
+ var nativeGetOwnPropertyNames = objectGetOwnPropertyNames.f;
645
+
646
+ var toString$1 = {}.toString;
647
+
648
+ var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
649
+ ? Object.getOwnPropertyNames(window) : [];
650
+
651
+ var getWindowNames = function (it) {
652
+ try {
653
+ return nativeGetOwnPropertyNames(it);
654
+ } catch (error) {
655
+ return windowNames.slice();
656
+ }
657
+ };
658
+
659
+ // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
660
+ var f$5 = function getOwnPropertyNames(it) {
661
+ return windowNames && toString$1.call(it) == '[object Window]'
662
+ ? getWindowNames(it)
663
+ : nativeGetOwnPropertyNames(toIndexedObject(it));
664
+ };
665
+
666
+ var objectGetOwnPropertyNamesExternal = {
667
+ f: f$5
668
+ };
669
+
670
+ var WellKnownSymbolsStore = shared('wks');
547
671
  var Symbol$1 = global_1.Symbol;
548
- var store$1 = shared('wks');
672
+ var createWellKnownSymbol = useSymbolAsUid ? Symbol$1 : uid;
549
673
 
550
674
  var wellKnownSymbol = function (name) {
551
- return store$1[name] || (store$1[name] = nativeSymbol && Symbol$1[name]
552
- || (nativeSymbol ? Symbol$1 : uid)('Symbol.' + name));
675
+ if (!has(WellKnownSymbolsStore, name)) {
676
+ if (nativeSymbol && has(Symbol$1, name)) WellKnownSymbolsStore[name] = Symbol$1[name];
677
+ else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);
678
+ } return WellKnownSymbolsStore[name];
553
679
  };
554
680
 
555
- var SPECIES = wellKnownSymbol('species');
681
+ var f$6 = wellKnownSymbol;
556
682
 
557
- // `ArraySpeciesCreate` abstract operation
558
- // https://tc39.github.io/ecma262/#sec-arrayspeciescreate
559
- var arraySpeciesCreate = function (originalArray, length) {
560
- var C;
561
- if (isArray(originalArray)) {
562
- C = originalArray.constructor;
563
- // cross-realm fallback
564
- if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
565
- else if (isObject(C)) {
566
- C = C[SPECIES];
567
- if (C === null) C = undefined;
568
- }
569
- } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);
683
+ var wrappedWellKnownSymbol = {
684
+ f: f$6
570
685
  };
571
686
 
572
- var SPECIES$1 = wellKnownSymbol('species');
687
+ var defineProperty = objectDefineProperty.f;
573
688
 
574
- var arrayMethodHasSpeciesSupport = function (METHOD_NAME) {
575
- return !fails(function () {
576
- var array = [];
577
- var constructor = array.constructor = {};
578
- constructor[SPECIES$1] = function () {
579
- return { foo: 1 };
580
- };
581
- return array[METHOD_NAME](Boolean).foo !== 1;
689
+ var defineWellKnownSymbol = function (NAME) {
690
+ var Symbol = path.Symbol || (path.Symbol = {});
691
+ if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {
692
+ value: wrappedWellKnownSymbol.f(NAME)
582
693
  });
583
694
  };
584
695
 
585
- var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');
586
- var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
587
- var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';
588
-
589
- var IS_CONCAT_SPREADABLE_SUPPORT = !fails(function () {
590
- var array = [];
591
- array[IS_CONCAT_SPREADABLE] = false;
592
- return array.concat()[0] !== array;
593
- });
696
+ var defineProperty$1 = objectDefineProperty.f;
594
697
 
595
- var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');
596
698
 
597
- var isConcatSpreadable = function (O) {
598
- if (!isObject(O)) return false;
599
- var spreadable = O[IS_CONCAT_SPREADABLE];
600
- return spreadable !== undefined ? !!spreadable : isArray(O);
601
- };
602
699
 
603
- var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;
700
+ var TO_STRING_TAG = wellKnownSymbol('toStringTag');
604
701
 
605
- // `Array.prototype.concat` method
606
- // https://tc39.github.io/ecma262/#sec-array.prototype.concat
607
- // with adding support of @@isConcatSpreadable and @@species
608
- _export({ target: 'Array', proto: true, forced: FORCED }, {
609
- concat: function concat(arg) { // eslint-disable-line no-unused-vars
610
- var O = toObject(this);
611
- var A = arraySpeciesCreate(O, 0);
612
- var n = 0;
613
- var i, k, length, len, E;
614
- for (i = -1, length = arguments.length; i < length; i++) {
615
- E = i === -1 ? O : arguments[i];
616
- if (isConcatSpreadable(E)) {
617
- len = toLength(E.length);
618
- if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
619
- for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);
620
- } else {
621
- if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
622
- createProperty(A, n++, E);
623
- }
624
- }
625
- A.length = n;
626
- return A;
702
+ var setToStringTag = function (it, TAG, STATIC) {
703
+ if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {
704
+ defineProperty$1(it, TO_STRING_TAG, { configurable: true, value: TAG });
627
705
  }
628
- });
706
+ };
629
707
 
630
708
  var aFunction$1 = function (it) {
631
709
  if (typeof it != 'function') {
@@ -656,6 +734,23 @@
656
734
  };
657
735
  };
658
736
 
737
+ var SPECIES = wellKnownSymbol('species');
738
+
739
+ // `ArraySpeciesCreate` abstract operation
740
+ // https://tc39.github.io/ecma262/#sec-arrayspeciescreate
741
+ var arraySpeciesCreate = function (originalArray, length) {
742
+ var C;
743
+ if (isArray(originalArray)) {
744
+ C = originalArray.constructor;
745
+ // cross-realm fallback
746
+ if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
747
+ else if (isObject(C)) {
748
+ C = C[SPECIES];
749
+ if (C === null) C = undefined;
750
+ }
751
+ } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);
752
+ };
753
+
659
754
  var push = [].push;
660
755
 
661
756
  // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation
@@ -716,80 +811,435 @@
716
811
  findIndex: createMethod$1(6)
717
812
  };
718
813
 
719
- var $filter = arrayIteration.filter;
814
+ var $forEach = arrayIteration.forEach;
815
+
816
+ var HIDDEN = sharedKey('hidden');
817
+ var SYMBOL = 'Symbol';
818
+ var PROTOTYPE$1 = 'prototype';
819
+ var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
820
+ var setInternalState = internalState.set;
821
+ var getInternalState = internalState.getterFor(SYMBOL);
822
+ var ObjectPrototype = Object[PROTOTYPE$1];
823
+ var $Symbol = global_1.Symbol;
824
+ var $stringify = getBuiltIn('JSON', 'stringify');
825
+ var nativeGetOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f;
826
+ var nativeDefineProperty$1 = objectDefineProperty.f;
827
+ var nativeGetOwnPropertyNames$1 = objectGetOwnPropertyNamesExternal.f;
828
+ var nativePropertyIsEnumerable$1 = objectPropertyIsEnumerable.f;
829
+ var AllSymbols = shared('symbols');
830
+ var ObjectPrototypeSymbols = shared('op-symbols');
831
+ var StringToSymbolRegistry = shared('string-to-symbol-registry');
832
+ var SymbolToStringRegistry = shared('symbol-to-string-registry');
833
+ var WellKnownSymbolsStore$1 = shared('wks');
834
+ var QObject = global_1.QObject;
835
+ // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
836
+ var USE_SETTER = !QObject || !QObject[PROTOTYPE$1] || !QObject[PROTOTYPE$1].findChild;
837
+
838
+ // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
839
+ var setSymbolDescriptor = descriptors && fails(function () {
840
+ return objectCreate(nativeDefineProperty$1({}, 'a', {
841
+ get: function () { return nativeDefineProperty$1(this, 'a', { value: 7 }).a; }
842
+ })).a != 7;
843
+ }) ? function (O, P, Attributes) {
844
+ var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor$1(ObjectPrototype, P);
845
+ if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];
846
+ nativeDefineProperty$1(O, P, Attributes);
847
+ if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {
848
+ nativeDefineProperty$1(ObjectPrototype, P, ObjectPrototypeDescriptor);
849
+ }
850
+ } : nativeDefineProperty$1;
851
+
852
+ var wrap = function (tag, description) {
853
+ var symbol = AllSymbols[tag] = objectCreate($Symbol[PROTOTYPE$1]);
854
+ setInternalState(symbol, {
855
+ type: SYMBOL,
856
+ tag: tag,
857
+ description: description
858
+ });
859
+ if (!descriptors) symbol.description = description;
860
+ return symbol;
861
+ };
720
862
 
863
+ var isSymbol = nativeSymbol && typeof $Symbol.iterator == 'symbol' ? function (it) {
864
+ return typeof it == 'symbol';
865
+ } : function (it) {
866
+ return Object(it) instanceof $Symbol;
867
+ };
721
868
 
722
- // `Array.prototype.filter` method
723
- // https://tc39.github.io/ecma262/#sec-array.prototype.filter
724
- // with adding support of @@species
725
- _export({ target: 'Array', proto: true, forced: !arrayMethodHasSpeciesSupport('filter') }, {
726
- filter: function filter(callbackfn /* , thisArg */) {
727
- return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
869
+ var $defineProperty = function defineProperty(O, P, Attributes) {
870
+ if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);
871
+ anObject(O);
872
+ var key = toPrimitive(P, true);
873
+ anObject(Attributes);
874
+ if (has(AllSymbols, key)) {
875
+ if (!Attributes.enumerable) {
876
+ if (!has(O, HIDDEN)) nativeDefineProperty$1(O, HIDDEN, createPropertyDescriptor(1, {}));
877
+ O[HIDDEN][key] = true;
878
+ } else {
879
+ if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;
880
+ Attributes = objectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });
881
+ } return setSymbolDescriptor(O, key, Attributes);
882
+ } return nativeDefineProperty$1(O, key, Attributes);
883
+ };
884
+
885
+ var $defineProperties = function defineProperties(O, Properties) {
886
+ anObject(O);
887
+ var properties = toIndexedObject(Properties);
888
+ var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));
889
+ $forEach(keys, function (key) {
890
+ if (!descriptors || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);
891
+ });
892
+ return O;
893
+ };
894
+
895
+ var $create = function create(O, Properties) {
896
+ return Properties === undefined ? objectCreate(O) : $defineProperties(objectCreate(O), Properties);
897
+ };
898
+
899
+ var $propertyIsEnumerable = function propertyIsEnumerable(V) {
900
+ var P = toPrimitive(V, true);
901
+ var enumerable = nativePropertyIsEnumerable$1.call(this, P);
902
+ if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;
903
+ return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;
904
+ };
905
+
906
+ var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {
907
+ var it = toIndexedObject(O);
908
+ var key = toPrimitive(P, true);
909
+ if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;
910
+ var descriptor = nativeGetOwnPropertyDescriptor$1(it, key);
911
+ if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {
912
+ descriptor.enumerable = true;
913
+ }
914
+ return descriptor;
915
+ };
916
+
917
+ var $getOwnPropertyNames = function getOwnPropertyNames(O) {
918
+ var names = nativeGetOwnPropertyNames$1(toIndexedObject(O));
919
+ var result = [];
920
+ $forEach(names, function (key) {
921
+ if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);
922
+ });
923
+ return result;
924
+ };
925
+
926
+ var $getOwnPropertySymbols = function getOwnPropertySymbols(O) {
927
+ var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;
928
+ var names = nativeGetOwnPropertyNames$1(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));
929
+ var result = [];
930
+ $forEach(names, function (key) {
931
+ if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {
932
+ result.push(AllSymbols[key]);
933
+ }
934
+ });
935
+ return result;
936
+ };
937
+
938
+ // `Symbol` constructor
939
+ // https://tc39.github.io/ecma262/#sec-symbol-constructor
940
+ if (!nativeSymbol) {
941
+ $Symbol = function Symbol() {
942
+ if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');
943
+ var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);
944
+ var tag = uid(description);
945
+ var setter = function (value) {
946
+ if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);
947
+ if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
948
+ setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));
949
+ };
950
+ if (descriptors && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });
951
+ return wrap(tag, description);
952
+ };
953
+
954
+ redefine($Symbol[PROTOTYPE$1], 'toString', function toString() {
955
+ return getInternalState(this).tag;
956
+ });
957
+
958
+ objectPropertyIsEnumerable.f = $propertyIsEnumerable;
959
+ objectDefineProperty.f = $defineProperty;
960
+ objectGetOwnPropertyDescriptor.f = $getOwnPropertyDescriptor;
961
+ objectGetOwnPropertyNames.f = objectGetOwnPropertyNamesExternal.f = $getOwnPropertyNames;
962
+ objectGetOwnPropertySymbols.f = $getOwnPropertySymbols;
963
+
964
+ if (descriptors) {
965
+ // https://github.com/tc39/proposal-Symbol-description
966
+ nativeDefineProperty$1($Symbol[PROTOTYPE$1], 'description', {
967
+ configurable: true,
968
+ get: function description() {
969
+ return getInternalState(this).description;
970
+ }
971
+ });
972
+ {
973
+ redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });
974
+ }
728
975
  }
976
+ }
977
+
978
+ if (!useSymbolAsUid) {
979
+ wrappedWellKnownSymbol.f = function (name) {
980
+ return wrap(wellKnownSymbol(name), name);
981
+ };
982
+ }
983
+
984
+ _export({ global: true, wrap: true, forced: !nativeSymbol, sham: !nativeSymbol }, {
985
+ Symbol: $Symbol
729
986
  });
730
987
 
731
- // `Object.keys` method
732
- // https://tc39.github.io/ecma262/#sec-object.keys
733
- var objectKeys = Object.keys || function keys(O) {
734
- return objectKeysInternal(O, enumBugKeys);
988
+ $forEach(objectKeys(WellKnownSymbolsStore$1), function (name) {
989
+ defineWellKnownSymbol(name);
990
+ });
991
+
992
+ _export({ target: SYMBOL, stat: true, forced: !nativeSymbol }, {
993
+ // `Symbol.for` method
994
+ // https://tc39.github.io/ecma262/#sec-symbol.for
995
+ 'for': function (key) {
996
+ var string = String(key);
997
+ if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];
998
+ var symbol = $Symbol(string);
999
+ StringToSymbolRegistry[string] = symbol;
1000
+ SymbolToStringRegistry[symbol] = string;
1001
+ return symbol;
1002
+ },
1003
+ // `Symbol.keyFor` method
1004
+ // https://tc39.github.io/ecma262/#sec-symbol.keyfor
1005
+ keyFor: function keyFor(sym) {
1006
+ if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');
1007
+ if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];
1008
+ },
1009
+ useSetter: function () { USE_SETTER = true; },
1010
+ useSimple: function () { USE_SETTER = false; }
1011
+ });
1012
+
1013
+ _export({ target: 'Object', stat: true, forced: !nativeSymbol, sham: !descriptors }, {
1014
+ // `Object.create` method
1015
+ // https://tc39.github.io/ecma262/#sec-object.create
1016
+ create: $create,
1017
+ // `Object.defineProperty` method
1018
+ // https://tc39.github.io/ecma262/#sec-object.defineproperty
1019
+ defineProperty: $defineProperty,
1020
+ // `Object.defineProperties` method
1021
+ // https://tc39.github.io/ecma262/#sec-object.defineproperties
1022
+ defineProperties: $defineProperties,
1023
+ // `Object.getOwnPropertyDescriptor` method
1024
+ // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors
1025
+ getOwnPropertyDescriptor: $getOwnPropertyDescriptor
1026
+ });
1027
+
1028
+ _export({ target: 'Object', stat: true, forced: !nativeSymbol }, {
1029
+ // `Object.getOwnPropertyNames` method
1030
+ // https://tc39.github.io/ecma262/#sec-object.getownpropertynames
1031
+ getOwnPropertyNames: $getOwnPropertyNames,
1032
+ // `Object.getOwnPropertySymbols` method
1033
+ // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols
1034
+ getOwnPropertySymbols: $getOwnPropertySymbols
1035
+ });
1036
+
1037
+ // Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
1038
+ // https://bugs.chromium.org/p/v8/issues/detail?id=3443
1039
+ _export({ target: 'Object', stat: true, forced: fails(function () { objectGetOwnPropertySymbols.f(1); }) }, {
1040
+ getOwnPropertySymbols: function getOwnPropertySymbols(it) {
1041
+ return objectGetOwnPropertySymbols.f(toObject(it));
1042
+ }
1043
+ });
1044
+
1045
+ // `JSON.stringify` method behavior with symbols
1046
+ // https://tc39.github.io/ecma262/#sec-json.stringify
1047
+ if ($stringify) {
1048
+ var FORCED_JSON_STRINGIFY = !nativeSymbol || fails(function () {
1049
+ var symbol = $Symbol();
1050
+ // MS Edge converts symbol values to JSON as {}
1051
+ return $stringify([symbol]) != '[null]'
1052
+ // WebKit converts symbol values to JSON as null
1053
+ || $stringify({ a: symbol }) != '{}'
1054
+ // V8 throws on boxed symbols
1055
+ || $stringify(Object(symbol)) != '{}';
1056
+ });
1057
+
1058
+ _export({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {
1059
+ // eslint-disable-next-line no-unused-vars
1060
+ stringify: function stringify(it, replacer, space) {
1061
+ var args = [it];
1062
+ var index = 1;
1063
+ var $replacer;
1064
+ while (arguments.length > index) args.push(arguments[index++]);
1065
+ $replacer = replacer;
1066
+ if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
1067
+ if (!isArray(replacer)) replacer = function (key, value) {
1068
+ if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
1069
+ if (!isSymbol(value)) return value;
1070
+ };
1071
+ args[1] = replacer;
1072
+ return $stringify.apply(null, args);
1073
+ }
1074
+ });
1075
+ }
1076
+
1077
+ // `Symbol.prototype[@@toPrimitive]` method
1078
+ // https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive
1079
+ if (!$Symbol[PROTOTYPE$1][TO_PRIMITIVE]) {
1080
+ createNonEnumerableProperty($Symbol[PROTOTYPE$1], TO_PRIMITIVE, $Symbol[PROTOTYPE$1].valueOf);
1081
+ }
1082
+ // `Symbol.prototype[@@toStringTag]` property
1083
+ // https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag
1084
+ setToStringTag($Symbol, SYMBOL);
1085
+
1086
+ hiddenKeys[HIDDEN] = true;
1087
+
1088
+ var defineProperty$2 = objectDefineProperty.f;
1089
+
1090
+
1091
+ var NativeSymbol = global_1.Symbol;
1092
+
1093
+ if (descriptors && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||
1094
+ // Safari 12 bug
1095
+ NativeSymbol().description !== undefined
1096
+ )) {
1097
+ var EmptyStringDescriptionStore = {};
1098
+ // wrap Symbol constructor for correct work with undefined description
1099
+ var SymbolWrapper = function Symbol() {
1100
+ var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);
1101
+ var result = this instanceof SymbolWrapper
1102
+ ? new NativeSymbol(description)
1103
+ // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'
1104
+ : description === undefined ? NativeSymbol() : NativeSymbol(description);
1105
+ if (description === '') EmptyStringDescriptionStore[result] = true;
1106
+ return result;
1107
+ };
1108
+ copyConstructorProperties(SymbolWrapper, NativeSymbol);
1109
+ var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;
1110
+ symbolPrototype.constructor = SymbolWrapper;
1111
+
1112
+ var symbolToString = symbolPrototype.toString;
1113
+ var native = String(NativeSymbol('test')) == 'Symbol(test)';
1114
+ var regexp = /^Symbol\((.*)\)[^)]+$/;
1115
+ defineProperty$2(symbolPrototype, 'description', {
1116
+ configurable: true,
1117
+ get: function description() {
1118
+ var symbol = isObject(this) ? this.valueOf() : this;
1119
+ var string = symbolToString.call(symbol);
1120
+ if (has(EmptyStringDescriptionStore, symbol)) return '';
1121
+ var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');
1122
+ return desc === '' ? undefined : desc;
1123
+ }
1124
+ });
1125
+
1126
+ _export({ global: true, forced: true }, {
1127
+ Symbol: SymbolWrapper
1128
+ });
1129
+ }
1130
+
1131
+ // `Symbol.iterator` well-known symbol
1132
+ // https://tc39.github.io/ecma262/#sec-symbol.iterator
1133
+ defineWellKnownSymbol('iterator');
1134
+
1135
+ var createProperty = function (object, key, value) {
1136
+ var propertyKey = toPrimitive(key);
1137
+ if (propertyKey in object) objectDefineProperty.f(object, propertyKey, createPropertyDescriptor(0, value));
1138
+ else object[propertyKey] = value;
735
1139
  };
736
1140
 
737
- // `Object.defineProperties` method
738
- // https://tc39.github.io/ecma262/#sec-object.defineproperties
739
- var objectDefineProperties = descriptors ? Object.defineProperties : function defineProperties(O, Properties) {
740
- anObject(O);
741
- var keys = objectKeys(Properties);
742
- var length = keys.length;
743
- var index = 0;
744
- var key;
745
- while (length > index) objectDefineProperty.f(O, key = keys[index++], Properties[key]);
746
- return O;
1141
+ var userAgent = getBuiltIn('navigator', 'userAgent') || '';
1142
+
1143
+ var process = global_1.process;
1144
+ var versions = process && process.versions;
1145
+ var v8 = versions && versions.v8;
1146
+ var match, version;
1147
+
1148
+ if (v8) {
1149
+ match = v8.split('.');
1150
+ version = match[0] + match[1];
1151
+ } else if (userAgent) {
1152
+ match = userAgent.match(/Edge\/(\d+)/);
1153
+ if (!match || match[1] >= 74) {
1154
+ match = userAgent.match(/Chrome\/(\d+)/);
1155
+ if (match) version = match[1];
1156
+ }
1157
+ }
1158
+
1159
+ var v8Version = version && +version;
1160
+
1161
+ var SPECIES$1 = wellKnownSymbol('species');
1162
+
1163
+ var arrayMethodHasSpeciesSupport = function (METHOD_NAME) {
1164
+ // We can't use this feature detection in V8 since it causes
1165
+ // deoptimization and serious performance degradation
1166
+ // https://github.com/zloirock/core-js/issues/677
1167
+ return v8Version >= 51 || !fails(function () {
1168
+ var array = [];
1169
+ var constructor = array.constructor = {};
1170
+ constructor[SPECIES$1] = function () {
1171
+ return { foo: 1 };
1172
+ };
1173
+ return array[METHOD_NAME](Boolean).foo !== 1;
1174
+ });
747
1175
  };
748
1176
 
749
- var html = getBuiltIn('document', 'documentElement');
1177
+ var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');
1178
+ var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
1179
+ var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';
750
1180
 
751
- var IE_PROTO = sharedKey('IE_PROTO');
1181
+ // We can't use this feature detection in V8 since it causes
1182
+ // deoptimization and serious performance degradation
1183
+ // https://github.com/zloirock/core-js/issues/679
1184
+ var IS_CONCAT_SPREADABLE_SUPPORT = v8Version >= 51 || !fails(function () {
1185
+ var array = [];
1186
+ array[IS_CONCAT_SPREADABLE] = false;
1187
+ return array.concat()[0] !== array;
1188
+ });
752
1189
 
753
- var PROTOTYPE = 'prototype';
754
- var Empty = function () { /* empty */ };
1190
+ var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');
755
1191
 
756
- // Create object with fake `null` prototype: use iframe Object with cleared prototype
757
- var createDict = function () {
758
- // Thrash, waste and sodomy: IE GC bug
759
- var iframe = documentCreateElement('iframe');
760
- var length = enumBugKeys.length;
761
- var lt = '<';
762
- var script = 'script';
763
- var gt = '>';
764
- var js = 'java' + script + ':';
765
- var iframeDocument;
766
- iframe.style.display = 'none';
767
- html.appendChild(iframe);
768
- iframe.src = String(js);
769
- iframeDocument = iframe.contentWindow.document;
770
- iframeDocument.open();
771
- iframeDocument.write(lt + script + gt + 'document.F=Object' + lt + '/' + script + gt);
772
- iframeDocument.close();
773
- createDict = iframeDocument.F;
774
- while (length--) delete createDict[PROTOTYPE][enumBugKeys[length]];
775
- return createDict();
1192
+ var isConcatSpreadable = function (O) {
1193
+ if (!isObject(O)) return false;
1194
+ var spreadable = O[IS_CONCAT_SPREADABLE];
1195
+ return spreadable !== undefined ? !!spreadable : isArray(O);
776
1196
  };
777
1197
 
778
- // `Object.create` method
779
- // https://tc39.github.io/ecma262/#sec-object.create
780
- var objectCreate = Object.create || function create(O, Properties) {
781
- var result;
782
- if (O !== null) {
783
- Empty[PROTOTYPE] = anObject(O);
784
- result = new Empty();
785
- Empty[PROTOTYPE] = null;
786
- // add "__proto__" for Object.getPrototypeOf polyfill
787
- result[IE_PROTO] = O;
788
- } else result = createDict();
789
- return Properties === undefined ? result : objectDefineProperties(result, Properties);
790
- };
1198
+ var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;
1199
+
1200
+ // `Array.prototype.concat` method
1201
+ // https://tc39.github.io/ecma262/#sec-array.prototype.concat
1202
+ // with adding support of @@isConcatSpreadable and @@species
1203
+ _export({ target: 'Array', proto: true, forced: FORCED }, {
1204
+ concat: function concat(arg) { // eslint-disable-line no-unused-vars
1205
+ var O = toObject(this);
1206
+ var A = arraySpeciesCreate(O, 0);
1207
+ var n = 0;
1208
+ var i, k, length, len, E;
1209
+ for (i = -1, length = arguments.length; i < length; i++) {
1210
+ E = i === -1 ? O : arguments[i];
1211
+ if (isConcatSpreadable(E)) {
1212
+ len = toLength(E.length);
1213
+ if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
1214
+ for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);
1215
+ } else {
1216
+ if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
1217
+ createProperty(A, n++, E);
1218
+ }
1219
+ }
1220
+ A.length = n;
1221
+ return A;
1222
+ }
1223
+ });
1224
+
1225
+ var $filter = arrayIteration.filter;
791
1226
 
792
- hiddenKeys[IE_PROTO] = true;
1227
+
1228
+
1229
+ var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');
1230
+ // Edge 14- issue
1231
+ var USES_TO_LENGTH = HAS_SPECIES_SUPPORT && !fails(function () {
1232
+ [].filter.call({ length: -1, 0: 1 }, function (it) { throw it; });
1233
+ });
1234
+
1235
+ // `Array.prototype.filter` method
1236
+ // https://tc39.github.io/ecma262/#sec-array.prototype.filter
1237
+ // with adding support of @@species
1238
+ _export({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {
1239
+ filter: function filter(callbackfn /* , thisArg */) {
1240
+ return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
1241
+ }
1242
+ });
793
1243
 
794
1244
  var UNSCOPABLES = wellKnownSymbol('unscopables');
795
1245
  var ArrayPrototype = Array.prototype;
@@ -797,7 +1247,10 @@
797
1247
  // Array.prototype[@@unscopables]
798
1248
  // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables
799
1249
  if (ArrayPrototype[UNSCOPABLES] == undefined) {
800
- hide(ArrayPrototype, UNSCOPABLES, objectCreate(null));
1250
+ objectDefineProperty.f(ArrayPrototype, UNSCOPABLES, {
1251
+ configurable: true,
1252
+ value: objectCreate(null)
1253
+ });
801
1254
  }
802
1255
 
803
1256
  // add a key to Array.prototype[@@unscopables]
@@ -825,6 +1278,211 @@
825
1278
  // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables
826
1279
  addToUnscopables(FIND);
827
1280
 
1281
+ var correctPrototypeGetter = !fails(function () {
1282
+ function F() { /* empty */ }
1283
+ F.prototype.constructor = null;
1284
+ return Object.getPrototypeOf(new F()) !== F.prototype;
1285
+ });
1286
+
1287
+ var IE_PROTO$1 = sharedKey('IE_PROTO');
1288
+ var ObjectPrototype$1 = Object.prototype;
1289
+
1290
+ // `Object.getPrototypeOf` method
1291
+ // https://tc39.github.io/ecma262/#sec-object.getprototypeof
1292
+ var objectGetPrototypeOf = correctPrototypeGetter ? Object.getPrototypeOf : function (O) {
1293
+ O = toObject(O);
1294
+ if (has(O, IE_PROTO$1)) return O[IE_PROTO$1];
1295
+ if (typeof O.constructor == 'function' && O instanceof O.constructor) {
1296
+ return O.constructor.prototype;
1297
+ } return O instanceof Object ? ObjectPrototype$1 : null;
1298
+ };
1299
+
1300
+ var ITERATOR = wellKnownSymbol('iterator');
1301
+ var BUGGY_SAFARI_ITERATORS = false;
1302
+
1303
+ var returnThis = function () { return this; };
1304
+
1305
+ // `%IteratorPrototype%` object
1306
+ // https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object
1307
+ var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;
1308
+
1309
+ if ([].keys) {
1310
+ arrayIterator = [].keys();
1311
+ // Safari 8 has buggy iterators w/o `next`
1312
+ if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;
1313
+ else {
1314
+ PrototypeOfArrayIteratorPrototype = objectGetPrototypeOf(objectGetPrototypeOf(arrayIterator));
1315
+ if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;
1316
+ }
1317
+ }
1318
+
1319
+ if (IteratorPrototype == undefined) IteratorPrototype = {};
1320
+
1321
+ // 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
1322
+ if ( !has(IteratorPrototype, ITERATOR)) {
1323
+ createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);
1324
+ }
1325
+
1326
+ var iteratorsCore = {
1327
+ IteratorPrototype: IteratorPrototype,
1328
+ BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS
1329
+ };
1330
+
1331
+ var IteratorPrototype$1 = iteratorsCore.IteratorPrototype;
1332
+
1333
+ var createIteratorConstructor = function (IteratorConstructor, NAME, next) {
1334
+ var TO_STRING_TAG = NAME + ' Iterator';
1335
+ IteratorConstructor.prototype = objectCreate(IteratorPrototype$1, { next: createPropertyDescriptor(1, next) });
1336
+ setToStringTag(IteratorConstructor, TO_STRING_TAG, false);
1337
+ return IteratorConstructor;
1338
+ };
1339
+
1340
+ var aPossiblePrototype = function (it) {
1341
+ if (!isObject(it) && it !== null) {
1342
+ throw TypeError("Can't set " + String(it) + ' as a prototype');
1343
+ } return it;
1344
+ };
1345
+
1346
+ // `Object.setPrototypeOf` method
1347
+ // https://tc39.github.io/ecma262/#sec-object.setprototypeof
1348
+ // Works with __proto__ only. Old v8 can't work with null proto objects.
1349
+ /* eslint-disable no-proto */
1350
+ var objectSetPrototypeOf = Object.setPrototypeOf || ('__proto__' in {} ? function () {
1351
+ var CORRECT_SETTER = false;
1352
+ var test = {};
1353
+ var setter;
1354
+ try {
1355
+ setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;
1356
+ setter.call(test, []);
1357
+ CORRECT_SETTER = test instanceof Array;
1358
+ } catch (error) { /* empty */ }
1359
+ return function setPrototypeOf(O, proto) {
1360
+ anObject(O);
1361
+ aPossiblePrototype(proto);
1362
+ if (CORRECT_SETTER) setter.call(O, proto);
1363
+ else O.__proto__ = proto;
1364
+ return O;
1365
+ };
1366
+ }() : undefined);
1367
+
1368
+ var IteratorPrototype$2 = iteratorsCore.IteratorPrototype;
1369
+ var BUGGY_SAFARI_ITERATORS$1 = iteratorsCore.BUGGY_SAFARI_ITERATORS;
1370
+ var ITERATOR$1 = wellKnownSymbol('iterator');
1371
+ var KEYS = 'keys';
1372
+ var VALUES = 'values';
1373
+ var ENTRIES = 'entries';
1374
+
1375
+ var returnThis$1 = function () { return this; };
1376
+
1377
+ var defineIterator = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {
1378
+ createIteratorConstructor(IteratorConstructor, NAME, next);
1379
+
1380
+ var getIterationMethod = function (KIND) {
1381
+ if (KIND === DEFAULT && defaultIterator) return defaultIterator;
1382
+ if (!BUGGY_SAFARI_ITERATORS$1 && KIND in IterablePrototype) return IterablePrototype[KIND];
1383
+ switch (KIND) {
1384
+ case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };
1385
+ case VALUES: return function values() { return new IteratorConstructor(this, KIND); };
1386
+ case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };
1387
+ } return function () { return new IteratorConstructor(this); };
1388
+ };
1389
+
1390
+ var TO_STRING_TAG = NAME + ' Iterator';
1391
+ var INCORRECT_VALUES_NAME = false;
1392
+ var IterablePrototype = Iterable.prototype;
1393
+ var nativeIterator = IterablePrototype[ITERATOR$1]
1394
+ || IterablePrototype['@@iterator']
1395
+ || DEFAULT && IterablePrototype[DEFAULT];
1396
+ var defaultIterator = !BUGGY_SAFARI_ITERATORS$1 && nativeIterator || getIterationMethod(DEFAULT);
1397
+ var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;
1398
+ var CurrentIteratorPrototype, methods, KEY;
1399
+
1400
+ // fix native
1401
+ if (anyNativeIterator) {
1402
+ CurrentIteratorPrototype = objectGetPrototypeOf(anyNativeIterator.call(new Iterable()));
1403
+ if (IteratorPrototype$2 !== Object.prototype && CurrentIteratorPrototype.next) {
1404
+ if ( objectGetPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype$2) {
1405
+ if (objectSetPrototypeOf) {
1406
+ objectSetPrototypeOf(CurrentIteratorPrototype, IteratorPrototype$2);
1407
+ } else if (typeof CurrentIteratorPrototype[ITERATOR$1] != 'function') {
1408
+ createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR$1, returnThis$1);
1409
+ }
1410
+ }
1411
+ // Set @@toStringTag to native iterators
1412
+ setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true);
1413
+ }
1414
+ }
1415
+
1416
+ // fix Array#{values, @@iterator}.name in V8 / FF
1417
+ if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {
1418
+ INCORRECT_VALUES_NAME = true;
1419
+ defaultIterator = function values() { return nativeIterator.call(this); };
1420
+ }
1421
+
1422
+ // define iterator
1423
+ if ( IterablePrototype[ITERATOR$1] !== defaultIterator) {
1424
+ createNonEnumerableProperty(IterablePrototype, ITERATOR$1, defaultIterator);
1425
+ }
1426
+
1427
+ // export additional methods
1428
+ if (DEFAULT) {
1429
+ methods = {
1430
+ values: getIterationMethod(VALUES),
1431
+ keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),
1432
+ entries: getIterationMethod(ENTRIES)
1433
+ };
1434
+ if (FORCED) for (KEY in methods) {
1435
+ if (BUGGY_SAFARI_ITERATORS$1 || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {
1436
+ redefine(IterablePrototype, KEY, methods[KEY]);
1437
+ }
1438
+ } else _export({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS$1 || INCORRECT_VALUES_NAME }, methods);
1439
+ }
1440
+
1441
+ return methods;
1442
+ };
1443
+
1444
+ var ARRAY_ITERATOR = 'Array Iterator';
1445
+ var setInternalState$1 = internalState.set;
1446
+ var getInternalState$1 = internalState.getterFor(ARRAY_ITERATOR);
1447
+
1448
+ // `Array.prototype.entries` method
1449
+ // https://tc39.github.io/ecma262/#sec-array.prototype.entries
1450
+ // `Array.prototype.keys` method
1451
+ // https://tc39.github.io/ecma262/#sec-array.prototype.keys
1452
+ // `Array.prototype.values` method
1453
+ // https://tc39.github.io/ecma262/#sec-array.prototype.values
1454
+ // `Array.prototype[@@iterator]` method
1455
+ // https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator
1456
+ // `CreateArrayIterator` internal method
1457
+ // https://tc39.github.io/ecma262/#sec-createarrayiterator
1458
+ var es_array_iterator = defineIterator(Array, 'Array', function (iterated, kind) {
1459
+ setInternalState$1(this, {
1460
+ type: ARRAY_ITERATOR,
1461
+ target: toIndexedObject(iterated), // target
1462
+ index: 0, // next index
1463
+ kind: kind // kind
1464
+ });
1465
+ // `%ArrayIteratorPrototype%.next` method
1466
+ // https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next
1467
+ }, function () {
1468
+ var state = getInternalState$1(this);
1469
+ var target = state.target;
1470
+ var kind = state.kind;
1471
+ var index = state.index++;
1472
+ if (!target || index >= target.length) {
1473
+ state.target = undefined;
1474
+ return { value: undefined, done: true };
1475
+ }
1476
+ if (kind == 'keys') return { value: index, done: false };
1477
+ if (kind == 'values') return { value: target[index], done: false };
1478
+ return { value: [index, target[index]], done: false };
1479
+ }, 'values');
1480
+
1481
+ // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables
1482
+ addToUnscopables('keys');
1483
+ addToUnscopables('values');
1484
+ addToUnscopables('entries');
1485
+
828
1486
  var sloppyArrayMethod = function (METHOD_NAME, argument) {
829
1487
  var method = [][METHOD_NAME];
830
1488
  return !method || !fails(function () {
@@ -846,6 +1504,67 @@
846
1504
  }
847
1505
  });
848
1506
 
1507
+ var $map = arrayIteration.map;
1508
+
1509
+
1510
+
1511
+ var HAS_SPECIES_SUPPORT$1 = arrayMethodHasSpeciesSupport('map');
1512
+ // FF49- issue
1513
+ var USES_TO_LENGTH$1 = HAS_SPECIES_SUPPORT$1 && !fails(function () {
1514
+ [].map.call({ length: -1, 0: 1 }, function (it) { throw it; });
1515
+ });
1516
+
1517
+ // `Array.prototype.map` method
1518
+ // https://tc39.github.io/ecma262/#sec-array.prototype.map
1519
+ // with adding support of @@species
1520
+ _export({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$1 || !USES_TO_LENGTH$1 }, {
1521
+ map: function map(callbackfn /* , thisArg */) {
1522
+ return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
1523
+ }
1524
+ });
1525
+
1526
+ var TO_STRING_TAG$1 = wellKnownSymbol('toStringTag');
1527
+ var test = {};
1528
+
1529
+ test[TO_STRING_TAG$1] = 'z';
1530
+
1531
+ var toStringTagSupport = String(test) === '[object z]';
1532
+
1533
+ var TO_STRING_TAG$2 = wellKnownSymbol('toStringTag');
1534
+ // ES3 wrong here
1535
+ var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';
1536
+
1537
+ // fallback for IE11 Script Access Denied error
1538
+ var tryGet = function (it, key) {
1539
+ try {
1540
+ return it[key];
1541
+ } catch (error) { /* empty */ }
1542
+ };
1543
+
1544
+ // getting tag from ES6+ `Object.prototype.toString`
1545
+ var classof = toStringTagSupport ? classofRaw : function (it) {
1546
+ var O, tag, result;
1547
+ return it === undefined ? 'Undefined' : it === null ? 'Null'
1548
+ // @@toStringTag case
1549
+ : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG$2)) == 'string' ? tag
1550
+ // builtinTag case
1551
+ : CORRECT_ARGUMENTS ? classofRaw(O)
1552
+ // ES3 arguments fallback
1553
+ : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;
1554
+ };
1555
+
1556
+ // `Object.prototype.toString` method implementation
1557
+ // https://tc39.github.io/ecma262/#sec-object.prototype.tostring
1558
+ var objectToString = toStringTagSupport ? {}.toString : function toString() {
1559
+ return '[object ' + classof(this) + ']';
1560
+ };
1561
+
1562
+ // `Object.prototype.toString` method
1563
+ // https://tc39.github.io/ecma262/#sec-object.prototype.tostring
1564
+ if (!toStringTagSupport) {
1565
+ redefine(Object.prototype, 'toString', objectToString, { unsafe: true });
1566
+ }
1567
+
849
1568
  // `RegExp.prototype.flags` getter implementation
850
1569
  // https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags
851
1570
  var regexpFlags = function () {
@@ -860,6 +1579,31 @@
860
1579
  return result;
861
1580
  };
862
1581
 
1582
+ // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,
1583
+ // so we use an intermediate function.
1584
+ function RE(s, f) {
1585
+ return RegExp(s, f);
1586
+ }
1587
+
1588
+ var UNSUPPORTED_Y = fails(function () {
1589
+ // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError
1590
+ var re = RE('a', 'y');
1591
+ re.lastIndex = 2;
1592
+ return re.exec('abcd') != null;
1593
+ });
1594
+
1595
+ var BROKEN_CARET = fails(function () {
1596
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=773687
1597
+ var re = RE('^r', 'gy');
1598
+ re.lastIndex = 2;
1599
+ return re.exec('str') != null;
1600
+ });
1601
+
1602
+ var regexpStickyHelpers = {
1603
+ UNSUPPORTED_Y: UNSUPPORTED_Y,
1604
+ BROKEN_CARET: BROKEN_CARET
1605
+ };
1606
+
863
1607
  var nativeExec = RegExp.prototype.exec;
864
1608
  // This always refers to the native implementation, because the
865
1609
  // String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,
@@ -876,24 +1620,56 @@
876
1620
  return re1.lastIndex !== 0 || re2.lastIndex !== 0;
877
1621
  })();
878
1622
 
1623
+ var UNSUPPORTED_Y$1 = regexpStickyHelpers.UNSUPPORTED_Y || regexpStickyHelpers.BROKEN_CARET;
1624
+
879
1625
  // nonparticipating capturing group, copied from es5-shim's String#split patch.
880
1626
  var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;
881
1627
 
882
- var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;
1628
+ var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y$1;
883
1629
 
884
1630
  if (PATCH) {
885
1631
  patchedExec = function exec(str) {
886
1632
  var re = this;
887
1633
  var lastIndex, reCopy, match, i;
1634
+ var sticky = UNSUPPORTED_Y$1 && re.sticky;
1635
+ var flags = regexpFlags.call(re);
1636
+ var source = re.source;
1637
+ var charsAdded = 0;
1638
+ var strCopy = str;
1639
+
1640
+ if (sticky) {
1641
+ flags = flags.replace('y', '');
1642
+ if (flags.indexOf('g') === -1) {
1643
+ flags += 'g';
1644
+ }
1645
+
1646
+ strCopy = String(str).slice(re.lastIndex);
1647
+ // Support anchored sticky behavior.
1648
+ if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\n')) {
1649
+ source = '(?: ' + source + ')';
1650
+ strCopy = ' ' + strCopy;
1651
+ charsAdded++;
1652
+ }
1653
+ // ^(? + rx + ) is needed, in combination with some str slicing, to
1654
+ // simulate the 'y' flag.
1655
+ reCopy = new RegExp('^(?:' + source + ')', flags);
1656
+ }
888
1657
 
889
1658
  if (NPCG_INCLUDED) {
890
- reCopy = new RegExp('^' + re.source + '$(?!\\s)', regexpFlags.call(re));
1659
+ reCopy = new RegExp('^' + source + '$(?!\\s)', flags);
891
1660
  }
892
1661
  if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;
893
1662
 
894
- match = nativeExec.call(re, str);
1663
+ match = nativeExec.call(sticky ? reCopy : re, strCopy);
895
1664
 
896
- if (UPDATES_LAST_INDEX_WRONG && match) {
1665
+ if (sticky) {
1666
+ if (match) {
1667
+ match.input = match.input.slice(charsAdded);
1668
+ match[0] = match[0].slice(charsAdded);
1669
+ match.index = re.lastIndex;
1670
+ re.lastIndex += match[0].length;
1671
+ } else re.lastIndex = 0;
1672
+ } else if (UPDATES_LAST_INDEX_WRONG && match) {
897
1673
  re.lastIndex = re.global ? match.index + match[0].length : lastIndex;
898
1674
  }
899
1675
  if (NPCG_INCLUDED && match && match.length > 1) {
@@ -912,6 +1688,84 @@
912
1688
 
913
1689
  var regexpExec = patchedExec;
914
1690
 
1691
+ _export({ target: 'RegExp', proto: true, forced: /./.exec !== regexpExec }, {
1692
+ exec: regexpExec
1693
+ });
1694
+
1695
+ var TO_STRING = 'toString';
1696
+ var RegExpPrototype = RegExp.prototype;
1697
+ var nativeToString = RegExpPrototype[TO_STRING];
1698
+
1699
+ var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });
1700
+ // FF44- RegExp#toString has a wrong name
1701
+ var INCORRECT_NAME = nativeToString.name != TO_STRING;
1702
+
1703
+ // `RegExp.prototype.toString` method
1704
+ // https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring
1705
+ if (NOT_GENERIC || INCORRECT_NAME) {
1706
+ redefine(RegExp.prototype, TO_STRING, function toString() {
1707
+ var R = anObject(this);
1708
+ var p = String(R.source);
1709
+ var rf = R.flags;
1710
+ var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? regexpFlags.call(R) : rf);
1711
+ return '/' + p + '/' + f;
1712
+ }, { unsafe: true });
1713
+ }
1714
+
1715
+ // `String.prototype.{ codePointAt, at }` methods implementation
1716
+ var createMethod$2 = function (CONVERT_TO_STRING) {
1717
+ return function ($this, pos) {
1718
+ var S = String(requireObjectCoercible($this));
1719
+ var position = toInteger(pos);
1720
+ var size = S.length;
1721
+ var first, second;
1722
+ if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;
1723
+ first = S.charCodeAt(position);
1724
+ return first < 0xD800 || first > 0xDBFF || position + 1 === size
1725
+ || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF
1726
+ ? CONVERT_TO_STRING ? S.charAt(position) : first
1727
+ : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
1728
+ };
1729
+ };
1730
+
1731
+ var stringMultibyte = {
1732
+ // `String.prototype.codePointAt` method
1733
+ // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat
1734
+ codeAt: createMethod$2(false),
1735
+ // `String.prototype.at` method
1736
+ // https://github.com/mathiasbynens/String.prototype.at
1737
+ charAt: createMethod$2(true)
1738
+ };
1739
+
1740
+ var charAt = stringMultibyte.charAt;
1741
+
1742
+
1743
+
1744
+ var STRING_ITERATOR = 'String Iterator';
1745
+ var setInternalState$2 = internalState.set;
1746
+ var getInternalState$2 = internalState.getterFor(STRING_ITERATOR);
1747
+
1748
+ // `String.prototype[@@iterator]` method
1749
+ // https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator
1750
+ defineIterator(String, 'String', function (iterated) {
1751
+ setInternalState$2(this, {
1752
+ type: STRING_ITERATOR,
1753
+ string: String(iterated),
1754
+ index: 0
1755
+ });
1756
+ // `%StringIteratorPrototype%.next` method
1757
+ // https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next
1758
+ }, function next() {
1759
+ var state = getInternalState$2(this);
1760
+ var string = state.string;
1761
+ var index = state.index;
1762
+ var point;
1763
+ if (index >= string.length) return { value: undefined, done: true };
1764
+ point = charAt(string, index);
1765
+ state.index += point.length;
1766
+ return { value: point, done: false };
1767
+ });
1768
+
915
1769
  var SPECIES$2 = wellKnownSymbol('species');
916
1770
 
917
1771
  var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {
@@ -927,6 +1781,12 @@
927
1781
  return ''.replace(re, '$<a>') !== '7';
928
1782
  });
929
1783
 
1784
+ // IE <= 11 replaces $0 with the whole match, as if it was $&
1785
+ // https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0
1786
+ var REPLACE_KEEPS_$0 = (function () {
1787
+ return 'a'.replace(/./, '$0') === '$0';
1788
+ })();
1789
+
930
1790
  // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
931
1791
  // Weex JS has frozen built-in prototypes, so use try / catch wrapper
932
1792
  var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {
@@ -951,15 +1811,22 @@
951
1811
  // Symbol-named RegExp methods call .exec
952
1812
  var execCalled = false;
953
1813
  var re = /a/;
954
- re.exec = function () { execCalled = true; return null; };
955
1814
 
956
1815
  if (KEY === 'split') {
1816
+ // We can't use real regex here since it causes deoptimization
1817
+ // and serious performance degradation in V8
1818
+ // https://github.com/zloirock/core-js/issues/306
1819
+ re = {};
957
1820
  // RegExp[@@split] doesn't call the regex's exec method, but first creates
958
1821
  // a new one. We need to return the patched regex when creating the new one.
959
1822
  re.constructor = {};
960
1823
  re.constructor[SPECIES$2] = function () { return re; };
1824
+ re.flags = '';
1825
+ re[SYMBOL] = /./[SYMBOL];
961
1826
  }
962
1827
 
1828
+ re.exec = function () { execCalled = true; return null; };
1829
+
963
1830
  re[SYMBOL]('');
964
1831
  return !execCalled;
965
1832
  });
@@ -967,7 +1834,7 @@
967
1834
  if (
968
1835
  !DELEGATES_TO_SYMBOL ||
969
1836
  !DELEGATES_TO_EXEC ||
970
- (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||
1837
+ (KEY === 'replace' && !(REPLACE_SUPPORTS_NAMED_GROUPS && REPLACE_KEEPS_$0)) ||
971
1838
  (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)
972
1839
  ) {
973
1840
  var nativeRegExpMethod = /./[SYMBOL];
@@ -982,7 +1849,7 @@
982
1849
  return { done: true, value: nativeMethod.call(str, regexp, arg2) };
983
1850
  }
984
1851
  return { done: false };
985
- });
1852
+ }, { REPLACE_KEEPS_$0: REPLACE_KEEPS_$0 });
986
1853
  var stringMethod = methods[0];
987
1854
  var regexMethod = methods[1];
988
1855
 
@@ -995,41 +1862,17 @@
995
1862
  // 21.2.5.9 RegExp.prototype[@@search](string)
996
1863
  : function (string) { return regexMethod.call(string, this); }
997
1864
  );
998
- if (sham) hide(RegExp.prototype[SYMBOL], 'sham', true);
999
1865
  }
1000
- };
1001
-
1002
- // `String.prototype.{ codePointAt, at }` methods implementation
1003
- var createMethod$2 = function (CONVERT_TO_STRING) {
1004
- return function ($this, pos) {
1005
- var S = String(requireObjectCoercible($this));
1006
- var position = toInteger(pos);
1007
- var size = S.length;
1008
- var first, second;
1009
- if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;
1010
- first = S.charCodeAt(position);
1011
- return first < 0xD800 || first > 0xDBFF || position + 1 === size
1012
- || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF
1013
- ? CONVERT_TO_STRING ? S.charAt(position) : first
1014
- : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
1015
- };
1016
- };
1017
1866
 
1018
- var stringMultibyte = {
1019
- // `String.prototype.codePointAt` method
1020
- // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat
1021
- codeAt: createMethod$2(false),
1022
- // `String.prototype.at` method
1023
- // https://github.com/mathiasbynens/String.prototype.at
1024
- charAt: createMethod$2(true)
1867
+ if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);
1025
1868
  };
1026
1869
 
1027
- var charAt = stringMultibyte.charAt;
1870
+ var charAt$1 = stringMultibyte.charAt;
1028
1871
 
1029
1872
  // `AdvanceStringIndex` abstract operation
1030
1873
  // https://tc39.github.io/ecma262/#sec-advancestringindex
1031
1874
  var advanceStringIndex = function (S, index, unicode) {
1032
- return index + (unicode ? charAt(S, index).length : 1);
1875
+ return index + (unicode ? charAt$1(S, index).length : 1);
1033
1876
  };
1034
1877
 
1035
1878
  // `RegExpExec` abstract operation
@@ -1062,7 +1905,7 @@
1062
1905
  };
1063
1906
 
1064
1907
  // @@replace logic
1065
- fixRegexpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative) {
1908
+ fixRegexpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {
1066
1909
  return [
1067
1910
  // `String.prototype.replace` method
1068
1911
  // https://tc39.github.io/ecma262/#sec-string.prototype.replace
@@ -1076,8 +1919,10 @@
1076
1919
  // `RegExp.prototype[@@replace]` method
1077
1920
  // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace
1078
1921
  function (regexp, replaceValue) {
1079
- var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);
1080
- if (res.done) return res.value;
1922
+ if (reason.REPLACE_KEEPS_$0 || (typeof replaceValue === 'string' && replaceValue.indexOf('$0') === -1)) {
1923
+ var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);
1924
+ if (res.done) return res.value;
1925
+ }
1081
1926
 
1082
1927
  var rx = anObject(regexp);
1083
1928
  var S = String(this);
@@ -1345,6 +2190,90 @@
1345
2190
  ];
1346
2191
  }, !SUPPORTS_Y);
1347
2192
 
2193
+ // iterable DOM collections
2194
+ // flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods
2195
+ var domIterables = {
2196
+ CSSRuleList: 0,
2197
+ CSSStyleDeclaration: 0,
2198
+ CSSValueList: 0,
2199
+ ClientRectList: 0,
2200
+ DOMRectList: 0,
2201
+ DOMStringList: 0,
2202
+ DOMTokenList: 1,
2203
+ DataTransferItemList: 0,
2204
+ FileList: 0,
2205
+ HTMLAllCollection: 0,
2206
+ HTMLCollection: 0,
2207
+ HTMLFormElement: 0,
2208
+ HTMLSelectElement: 0,
2209
+ MediaList: 0,
2210
+ MimeTypeArray: 0,
2211
+ NamedNodeMap: 0,
2212
+ NodeList: 1,
2213
+ PaintRequestList: 0,
2214
+ Plugin: 0,
2215
+ PluginArray: 0,
2216
+ SVGLengthList: 0,
2217
+ SVGNumberList: 0,
2218
+ SVGPathSegList: 0,
2219
+ SVGPointList: 0,
2220
+ SVGStringList: 0,
2221
+ SVGTransformList: 0,
2222
+ SourceBufferList: 0,
2223
+ StyleSheetList: 0,
2224
+ TextTrackCueList: 0,
2225
+ TextTrackList: 0,
2226
+ TouchList: 0
2227
+ };
2228
+
2229
+ var $forEach$1 = arrayIteration.forEach;
2230
+
2231
+
2232
+ // `Array.prototype.forEach` method implementation
2233
+ // https://tc39.github.io/ecma262/#sec-array.prototype.foreach
2234
+ var arrayForEach = sloppyArrayMethod('forEach') ? function forEach(callbackfn /* , thisArg */) {
2235
+ return $forEach$1(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
2236
+ } : [].forEach;
2237
+
2238
+ for (var COLLECTION_NAME in domIterables) {
2239
+ var Collection = global_1[COLLECTION_NAME];
2240
+ var CollectionPrototype = Collection && Collection.prototype;
2241
+ // some Chrome versions have non-configurable methods on DOMTokenList
2242
+ if (CollectionPrototype && CollectionPrototype.forEach !== arrayForEach) try {
2243
+ createNonEnumerableProperty(CollectionPrototype, 'forEach', arrayForEach);
2244
+ } catch (error) {
2245
+ CollectionPrototype.forEach = arrayForEach;
2246
+ }
2247
+ }
2248
+
2249
+ var ITERATOR$2 = wellKnownSymbol('iterator');
2250
+ var TO_STRING_TAG$3 = wellKnownSymbol('toStringTag');
2251
+ var ArrayValues = es_array_iterator.values;
2252
+
2253
+ for (var COLLECTION_NAME$1 in domIterables) {
2254
+ var Collection$1 = global_1[COLLECTION_NAME$1];
2255
+ var CollectionPrototype$1 = Collection$1 && Collection$1.prototype;
2256
+ if (CollectionPrototype$1) {
2257
+ // some Chrome versions have non-configurable methods on DOMTokenList
2258
+ if (CollectionPrototype$1[ITERATOR$2] !== ArrayValues) try {
2259
+ createNonEnumerableProperty(CollectionPrototype$1, ITERATOR$2, ArrayValues);
2260
+ } catch (error) {
2261
+ CollectionPrototype$1[ITERATOR$2] = ArrayValues;
2262
+ }
2263
+ if (!CollectionPrototype$1[TO_STRING_TAG$3]) {
2264
+ createNonEnumerableProperty(CollectionPrototype$1, TO_STRING_TAG$3, COLLECTION_NAME$1);
2265
+ }
2266
+ if (domIterables[COLLECTION_NAME$1]) for (var METHOD_NAME in es_array_iterator) {
2267
+ // some Chrome versions have non-configurable methods on DOMTokenList
2268
+ if (CollectionPrototype$1[METHOD_NAME] !== es_array_iterator[METHOD_NAME]) try {
2269
+ createNonEnumerableProperty(CollectionPrototype$1, METHOD_NAME, es_array_iterator[METHOD_NAME]);
2270
+ } catch (error) {
2271
+ CollectionPrototype$1[METHOD_NAME] = es_array_iterator[METHOD_NAME];
2272
+ }
2273
+ }
2274
+ }
2275
+ }
2276
+
1348
2277
  function _classCallCheck(instance, Constructor) {
1349
2278
  if (!(instance instanceof Constructor)) {
1350
2279
  throw new TypeError("Cannot call a class as a function");
@@ -1450,6 +2379,7 @@
1450
2379
  * @update zhixin wen <wenzhixin2010@gmail.com>
1451
2380
  */
1452
2381
 
2382
+ var Utils = $.fn.bootstrapTable.utils;
1453
2383
  var UtilsCookie = {
1454
2384
  cookieIds: {
1455
2385
  sortOrder: 'bs.table.sortOrder',
@@ -1458,6 +2388,7 @@
1458
2388
  pageList: 'bs.table.pageList',
1459
2389
  columns: 'bs.table.columns',
1460
2390
  searchText: 'bs.table.searchText',
2391
+ reorderColumns: 'bs.table.reorderColumns',
1461
2392
  filterControl: 'bs.table.filterControl',
1462
2393
  filterBy: 'bs.table.filterBy'
1463
2394
  },
@@ -1507,7 +2438,7 @@
1507
2438
 
1508
2439
  switch (that.options.cookieStorage) {
1509
2440
  case 'cookieStorage':
1510
- document.cookie = [cookieName, '=', encodeURIComponent(cookieValue), "; expires=".concat(UtilsCookie.calculateExpiration(that.options.cookieExpire)), that.options.cookiePath ? "; path=".concat(that.options.cookiePath) : '', that.options.cookieDomain ? "; domain=".concat(that.options.cookieDomain) : '', that.options.cookieSecure ? '; secure' : ''].join('');
2441
+ document.cookie = [cookieName, '=', encodeURIComponent(cookieValue), "; expires=".concat(UtilsCookie.calculateExpiration(that.options.cookieExpire)), that.options.cookiePath ? "; path=".concat(that.options.cookiePath) : '', that.options.cookieDomain ? "; domain=".concat(that.options.cookieDomain) : '', that.options.cookieSecure ? '; secure' : '', ';SameSite=' + that.options.cookieSameSite].join('');
1511
2442
  break;
1512
2443
 
1513
2444
  case 'localStorage':
@@ -1518,6 +2449,14 @@
1518
2449
  sessionStorage.setItem(cookieName, cookieValue);
1519
2450
  break;
1520
2451
 
2452
+ case 'customStorage':
2453
+ if (!that.options.cookieCustomStorageSet || !that.options.cookieCustomStorageGet || !that.options.cookieCustomStorageDelete) {
2454
+ throw new Error('The following options must be set while using the customStorage: cookieCustomStorageSet, cookieCustomStorageGet and cookieCustomStorageDelete');
2455
+ }
2456
+
2457
+ Utils.calculateObjectValue(that.options, that.options.cookieCustomStorageSet, [cookieName, cookieValue], '');
2458
+ break;
2459
+
1521
2460
  default:
1522
2461
  return false;
1523
2462
  }
@@ -1547,6 +2486,13 @@
1547
2486
  case 'sessionStorage':
1548
2487
  return sessionStorage.getItem(cookieName);
1549
2488
 
2489
+ case 'customStorage':
2490
+ if (!that.options.cookieCustomStorageSet || !that.options.cookieCustomStorageGet || !that.options.cookieCustomStorageDelete) {
2491
+ throw new Error('The following options must be set while using the customStorage: cookieCustomStorageSet, cookieCustomStorageGet and cookieCustomStorageDelete');
2492
+ }
2493
+
2494
+ return Utils.calculateObjectValue(that.options, that.options.cookieCustomStorageGet, [cookieName], '');
2495
+
1550
2496
  default:
1551
2497
  return null;
1552
2498
  }
@@ -1567,6 +2513,14 @@
1567
2513
  sessionStorage.removeItem(cookieName);
1568
2514
  break;
1569
2515
 
2516
+ case 'customStorage':
2517
+ if (!that.options.cookieCustomStorageSet || !that.options.cookieCustomStorageGet || !that.options.cookieCustomStorageDelete) {
2518
+ throw new Error('The following options must be set while using the customStorage: cookieCustomStorageSet, cookieCustomStorageGet and cookieCustomStorageDelete');
2519
+ }
2520
+
2521
+ Utils.calculateObjectValue(that.options, that.options.cookieCustomStorageDelete, [cookieName], '');
2522
+ break;
2523
+
1570
2524
  default:
1571
2525
  return false;
1572
2526
  }
@@ -1626,15 +2580,47 @@
1626
2580
  var searchControls = UtilsCookie.getCurrentSearchControls(bootstrapTable);
1627
2581
 
1628
2582
  var applyCookieFilters = function applyCookieFilters(element, filteredCookies) {
1629
- $(filteredCookies).each(function (i, cookie) {
1630
- if (cookie.text !== '') {
1631
- $(element).val(cookie.text);
2583
+ filteredCookies.forEach(function (cookie) {
2584
+ if (cookie.text === '' || element.type === 'radio' && element.value.toString() !== cookie.text.toString()) {
2585
+ return;
2586
+ }
2587
+
2588
+ if (element.tagName === 'INPUT' && element.type === 'radio' && element.value.toString() === cookie.text.toString()) {
2589
+ element.checked = true;
2590
+ cachedFilters[cookie.field] = cookie.text;
2591
+ } else if (element.tagName === 'INPUT') {
2592
+ element.value = cookie.text;
2593
+ cachedFilters[cookie.field] = cookie.text;
2594
+ } else if (element.tagName === 'SELECT' && bootstrapTable.options.filterControlContainer) {
2595
+ element.value = cookie.text;
2596
+ cachedFilters[cookie.field] = cookie.text;
2597
+ } else if (cookie.text !== '' && element.tagName === 'SELECT') {
2598
+ for (var i = 0; i < element.length; i++) {
2599
+ var currentElement = element[i];
2600
+
2601
+ if (currentElement.value === cookie.text) {
2602
+ currentElement.selected = true;
2603
+ return;
2604
+ }
2605
+ }
2606
+
2607
+ var option = document.createElement('option');
2608
+ option.value = cookie.text;
2609
+ option.text = cookie.text;
2610
+ element.add(option, element[1]);
2611
+ element.selectedIndex = 1;
1632
2612
  cachedFilters[cookie.field] = cookie.text;
1633
2613
  }
1634
2614
  });
1635
2615
  };
1636
2616
 
1637
- header.find(searchControls).each(function () {
2617
+ var filterContainer = header;
2618
+
2619
+ if (bootstrapTable.options.filterControlContainer) {
2620
+ filterContainer = $("".concat(bootstrapTable.options.filterControlContainer));
2621
+ }
2622
+
2623
+ filterContainer.find(searchControls).each(function () {
1638
2624
  var field = $(this).closest('[data-field]').data('field');
1639
2625
  var filteredCookies = parsedCookieFilters.filter(function (cookie) {
1640
2626
  return cookie.field === field;
@@ -1654,10 +2640,14 @@
1654
2640
  cookiePath: null,
1655
2641
  cookieDomain: null,
1656
2642
  cookieSecure: null,
2643
+ cookieSameSite: 'Lax',
1657
2644
  cookieIdTable: '',
1658
- cookiesEnabled: ['bs.table.sortOrder', 'bs.table.sortName', 'bs.table.pageNumber', 'bs.table.pageList', 'bs.table.columns', 'bs.table.searchText', 'bs.table.filterControl', 'bs.table.filterBy'],
2645
+ cookiesEnabled: ['bs.table.sortOrder', 'bs.table.sortName', 'bs.table.pageNumber', 'bs.table.pageList', 'bs.table.columns', 'bs.table.searchText', 'bs.table.filterControl', 'bs.table.filterBy', 'bs.table.reorderColumns'],
1659
2646
  cookieStorage: 'cookieStorage',
1660
- // localStorage, sessionStorage
2647
+ // localStorage, sessionStorage, customStorage
2648
+ cookieCustomStorageGet: null,
2649
+ cookieCustomStorageSet: null,
2650
+ cookieCustomStorageDelete: null,
1661
2651
  // internal variable
1662
2652
  filterControls: [],
1663
2653
  filterControlValuesLoaded: false
@@ -1683,36 +2673,51 @@
1683
2673
  _createClass(_class, [{
1684
2674
  key: "init",
1685
2675
  value: function init() {
1686
- // FilterBy logic
1687
- var filterByCookie = JSON.parse(UtilsCookie.getCookie(this, this.options.cookieIdTable, UtilsCookie.cookieIds.filterBy));
1688
- this.filterColumns = filterByCookie ? filterByCookie : {}; // FilterControl logic
1689
-
1690
- this.options.filterControls = [];
1691
- this.options.filterControlValuesLoaded = false;
1692
- this.options.cookiesEnabled = typeof this.options.cookiesEnabled === 'string' ? this.options.cookiesEnabled.replace('[', '').replace(']', '').replace(/ /g, '').toLowerCase().split(',') : this.options.cookiesEnabled;
1693
-
1694
- if (this.options.filterControl) {
1695
- var that = this;
1696
- this.$el.on('column-search.bs.table', function (e, field, text) {
1697
- var isNewField = true;
1698
-
1699
- for (var i = 0; i < that.options.filterControls.length; i++) {
1700
- if (that.options.filterControls[i].field === field) {
1701
- that.options.filterControls[i].text = text;
1702
- isNewField = false;
1703
- break;
2676
+ if (this.options.cookie) {
2677
+ // FilterBy logic
2678
+ var filterByCookieValue = UtilsCookie.getCookie(this, this.options.cookieIdTable, UtilsCookie.cookieIds.filterBy);
2679
+
2680
+ if (typeof filterByCookieValue === 'boolean' && !filterByCookieValue) {
2681
+ throw new Error('The cookie value of filterBy must be a json!');
2682
+ }
2683
+
2684
+ var filterByCookie = {};
2685
+
2686
+ try {
2687
+ filterByCookie = JSON.parse(filterByCookieValue);
2688
+ } catch (e) {
2689
+ throw new Error('Could not parse the json of the filterBy cookie!');
2690
+ }
2691
+
2692
+ this.filterColumns = filterByCookie ? filterByCookie : {}; // FilterControl logic
2693
+
2694
+ this.options.filterControls = [];
2695
+ this.options.filterControlValuesLoaded = false;
2696
+ this.options.cookiesEnabled = typeof this.options.cookiesEnabled === 'string' ? this.options.cookiesEnabled.replace('[', '').replace(']', '').replace(/'/g, '').replace(/ /g, '').toLowerCase().split(',') : this.options.cookiesEnabled;
2697
+
2698
+ if (this.options.filterControl) {
2699
+ var that = this;
2700
+ this.$el.on('column-search.bs.table', function (e, field, text) {
2701
+ var isNewField = true;
2702
+
2703
+ for (var i = 0; i < that.options.filterControls.length; i++) {
2704
+ if (that.options.filterControls[i].field === field) {
2705
+ that.options.filterControls[i].text = text;
2706
+ isNewField = false;
2707
+ break;
2708
+ }
1704
2709
  }
1705
- }
1706
2710
 
1707
- if (isNewField) {
1708
- that.options.filterControls.push({
1709
- field: field,
1710
- text: text
1711
- });
1712
- }
2711
+ if (isNewField) {
2712
+ that.options.filterControls.push({
2713
+ field: field,
2714
+ text: text
2715
+ });
2716
+ }
1713
2717
 
1714
- UtilsCookie.setCookie(that, UtilsCookie.cookieIds.filterControl, JSON.stringify(that.options.filterControls));
1715
- }).on('created-controls.bs.table', UtilsCookie.initCookieFilters(that));
2718
+ UtilsCookie.setCookie(that, UtilsCookie.cookieIds.filterControl, JSON.stringify(that.options.filterControls));
2719
+ }).on('created-controls.bs.table', UtilsCookie.initCookieFilters(that));
2720
+ }
1716
2721
  }
1717
2722
 
1718
2723
  _get(_getPrototypeOf(_class.prototype), "init", this).call(this);
@@ -1827,13 +2832,24 @@
1827
2832
 
1828
2833
  (_get9 = _get(_getPrototypeOf(_class.prototype), "_toggleColumn", this)).call.apply(_get9, [this].concat(args));
1829
2834
 
1830
- var visibleColumns = [];
1831
- $.each(this.columns, function (i, column) {
1832
- if (column.visible) {
1833
- visibleColumns.push(column.field);
1834
- }
1835
- });
1836
- UtilsCookie.setCookie(this, UtilsCookie.cookieIds.columns, JSON.stringify(visibleColumns));
2835
+ UtilsCookie.setCookie(this, UtilsCookie.cookieIds.columns, JSON.stringify(this.getVisibleColumns().map(function (column) {
2836
+ return column.field;
2837
+ })));
2838
+ }
2839
+ }, {
2840
+ key: "_toggleAllColumns",
2841
+ value: function _toggleAllColumns() {
2842
+ var _get10;
2843
+
2844
+ for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
2845
+ args[_key9] = arguments[_key9];
2846
+ }
2847
+
2848
+ (_get10 = _get(_getPrototypeOf(_class.prototype), "_toggleAllColumns", this)).call.apply(_get10, [this].concat(args));
2849
+
2850
+ UtilsCookie.setCookie(this, UtilsCookie.cookieIds.columns, JSON.stringify(this.getVisibleColumns().map(function (column) {
2851
+ return column.field;
2852
+ })));
1837
2853
  }
1838
2854
  }, {
1839
2855
  key: "selectPage",
@@ -1853,22 +2869,44 @@
1853
2869
 
1854
2870
  UtilsCookie.setCookie(this, UtilsCookie.cookieIds.pageNumber, this.options.pageNumber);
1855
2871
  }
2872
+ }, {
2873
+ key: "initHeader",
2874
+ value: function initHeader() {
2875
+ var _get11;
2876
+
2877
+ if (this.options.reorderableColumns) {
2878
+ this.columnsSortOrder = JSON.parse(UtilsCookie.getCookie(this, this.options.cookieIdTable, UtilsCookie.cookieIds.reorderColumns));
2879
+ }
2880
+
2881
+ for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {
2882
+ args[_key10] = arguments[_key10];
2883
+ }
2884
+
2885
+ (_get11 = _get(_getPrototypeOf(_class.prototype), "initHeader", this)).call.apply(_get11, [this].concat(args));
2886
+ }
2887
+ }, {
2888
+ key: "persistReorderColumnsState",
2889
+ value: function persistReorderColumnsState(that) {
2890
+ UtilsCookie.setCookie(that, UtilsCookie.cookieIds.reorderColumns, JSON.stringify(that.columnsSortOrder));
2891
+ }
1856
2892
  }, {
1857
2893
  key: "filterBy",
1858
2894
  value: function filterBy() {
1859
- var _get10;
2895
+ var _get12;
1860
2896
 
1861
- for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
1862
- args[_key9] = arguments[_key9];
2897
+ for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {
2898
+ args[_key11] = arguments[_key11];
1863
2899
  }
1864
2900
 
1865
- (_get10 = _get(_getPrototypeOf(_class.prototype), "filterBy", this)).call.apply(_get10, [this].concat(args));
2901
+ (_get12 = _get(_getPrototypeOf(_class.prototype), "filterBy", this)).call.apply(_get12, [this].concat(args));
1866
2902
 
1867
2903
  UtilsCookie.setCookie(this, UtilsCookie.cookieIds.filterBy, JSON.stringify(this.filterColumns));
1868
2904
  }
1869
2905
  }, {
1870
2906
  key: "initCookie",
1871
2907
  value: function initCookie() {
2908
+ var _this = this;
2909
+
1872
2910
  if (!this.options.cookie) {
1873
2911
  return;
1874
2912
  }
@@ -1884,8 +2922,21 @@
1884
2922
  var sortOrderNameCookie = UtilsCookie.getCookie(this, this.options.cookieIdTable, UtilsCookie.cookieIds.sortName);
1885
2923
  var pageNumberCookie = UtilsCookie.getCookie(this, this.options.cookieIdTable, UtilsCookie.cookieIds.pageNumber);
1886
2924
  var pageListCookie = UtilsCookie.getCookie(this, this.options.cookieIdTable, UtilsCookie.cookieIds.pageList);
1887
- var columnsCookie = JSON.parse(UtilsCookie.getCookie(this, this.options.cookieIdTable, UtilsCookie.cookieIds.columns));
1888
- var searchTextCookie = UtilsCookie.getCookie(this, this.options.cookieIdTable, UtilsCookie.cookieIds.searchText); // sortOrder
2925
+ var searchTextCookie = UtilsCookie.getCookie(this, this.options.cookieIdTable, UtilsCookie.cookieIds.searchText);
2926
+ var columnsCookieValue = UtilsCookie.getCookie(this, this.options.cookieIdTable, UtilsCookie.cookieIds.columns);
2927
+
2928
+ if (typeof columnsCookieValue === 'boolean' && !columnsCookieValue) {
2929
+ throw new Error('The cookie value of filterBy must be a json!');
2930
+ }
2931
+
2932
+ var columnsCookie = {};
2933
+
2934
+ try {
2935
+ columnsCookie = JSON.parse(columnsCookieValue);
2936
+ } catch (e) {
2937
+ throw new Error('Could not parse the json of the columns cookie!', columnsCookieValue);
2938
+ } // sortOrder
2939
+
1889
2940
 
1890
2941
  this.options.sortOrder = sortOrderCookie ? sortOrderCookie : this.options.sortOrder; // sortName
1891
2942
 
@@ -1898,9 +2949,49 @@
1898
2949
  this.options.searchText = searchTextCookie ? searchTextCookie : '';
1899
2950
 
1900
2951
  if (columnsCookie) {
1901
- $.each(this.columns, function (i, column) {
1902
- column.visible = $.inArray(column.field, columnsCookie) !== -1;
1903
- });
2952
+ var _iteratorNormalCompletion = true;
2953
+ var _didIteratorError = false;
2954
+ var _iteratorError = undefined;
2955
+
2956
+ try {
2957
+ var _loop = function _loop() {
2958
+ var column = _step.value;
2959
+ column.visible = columnsCookie.filter(function (columnField) {
2960
+ if (_this.isSelectionColumn(column)) {
2961
+ return true;
2962
+ }
2963
+ /**
2964
+ * This is needed for the old saved cookies or the table will show no columns!
2965
+ * It can be removed in 2-3 Versions Later!!
2966
+ * TODO: Remove this part some versions later e.g. 1.17.3
2967
+ */
2968
+
2969
+
2970
+ if (columnField instanceof Object) {
2971
+ return columnField.field === column.field;
2972
+ }
2973
+
2974
+ return columnField === column.field;
2975
+ }).length > 0 || !column.switchable;
2976
+ };
2977
+
2978
+ for (var _iterator = this.columns[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
2979
+ _loop();
2980
+ }
2981
+ } catch (err) {
2982
+ _didIteratorError = true;
2983
+ _iteratorError = err;
2984
+ } finally {
2985
+ try {
2986
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
2987
+ _iterator.return();
2988
+ }
2989
+ } finally {
2990
+ if (_didIteratorError) {
2991
+ throw _iteratorError;
2992
+ }
2993
+ }
2994
+ }
1904
2995
  }
1905
2996
  }
1906
2997
  }, {
@@ -1931,4 +3022,4 @@
1931
3022
  return _class;
1932
3023
  }($.BootstrapTable);
1933
3024
 
1934
- }));
3025
+ })));